Home > kernel > Estilo de código no Kernel Linux

Estilo de código no Kernel Linux

Baseado em Documentation/CodingStyle do kernel do Linux

1 – Indentação de 8 characteres

Exemplo:

if (x is true) {        we do y}

2 – Linhas podem possuir apenas 80 colunas

Exemplo:

 printk(KERN_WARNING "Warning this is a long printk with "   "3 parameters a: %u b: %u "   "c: %u \n", a, b, c);

3 – Localização de Chaves
Localizacao das chaves deve ser na ultima coluna do primeira linha e na
primeira coluna da ultima linha

if (x is true) {        we do y}

4 – Nomes de variaveis

LOCAIS devem ser curtas e simples
exemplo: tmp
GLOBAIS devem ser bem descritas, evitando contrações
exemplo: count_active_users()

5 – Evita typedefs.

Evite utilizar typedefs para ponteiros e estruturas, tornando o código
mais complicado.

Exemplo: “struct virtual_container *a;” é muito mais claro do que “vps_t a;”

6 – Funtions devem ser curtas e claras.

Condições:

  6.1 - Dimensões (80x24)  6.2 - Não mais do que 5-10 variáveis.  6.3 - Sem isto, você provavelmente está fazendo algo errado.

7 – Centralizar saída de funções.

GOTO não é péssima prático como muitos dizem.

Exemplo:

int fun(int a){       int result = 0;       char *buffer = kmalloc(SIZE);

       if (buffer == NULL)               return -ENOMEM;

       if (condition1) {               while (loop1) {                       ...               }               result = 1;               goto out;       }       ...out:       kfree(buffer);       return result;}

8 – Comentar é bom, mas NÃO EXAGERE.

Seu código deve ser claro, por isto não coloque no comentário explicações
sobre como seu cógigo funciona.
Veja: Documentation/kernel-doc-nano-HOWTO.txt

9 – Dica pro pessoal que usa emacs.

Eu uso VIM. :P

10 – Configuração no Kconfig

Definições são indentadas com TAB e help com 2 espaços.

11 – Estruturas de dados.

No kernel não tem garbage collector para corrigir suas porcarias.
Se você sujou então vai ter que limpar. Não esqueça que sua estrutura
pode ser acessada por outra thread, por isto lembre de realizar controle
ou você terá um bug.

12 – Macros
Macros devem ser escritas em letras MAIUSCULAS.

13 – Printing messages

Cuidados com erros de escrita nas mensagens.

14 – Alocando memoria

O kernel possui diversas formas de alocação de memória. A forma mais
recomendada de passar o tamanho memória que deve ser alocado é:

p = kmalloc(sizeof(*p), …);

15 – Funções inline

Neste tópico ele desistimula a utilização de funções inline.

16 – Funções retornam valores ou nomes

0 = sucesso
-Exxx = falhou :P

17 – Não re-invente macros

18 – Editor modelines

Não adicionei configurações para o seu editor em código fontes.

Comentários e correções são bem vindos em alecrim@gmail.com

Categories: kernel Tags:
  1. Henry
    December 15th, 2007 at 12:04 | #1

    Agora sim! :)

  1. No trackbacks yet.