Linux Coding style template

Charls D. Chap chapcharls at gmail.com
Sun Aug 7 10:53:15 EDT 2016


On Sun, Aug 7, 2016 at 7:39 AM, Greg KH <greg at kroah.com> wrote:
> On Sun, Aug 07, 2016 at 12:22:03AM +0300, Charls D. Chap wrote:
>> I want to transform some C source files. following Linux kernel coding style.

My questions are more generic, i am interesting in an automatic way for
identation! And also, i am interesting to what kernel developers will
do in the following cases,  so i am  forwarding again the email.


please take a look to this example
width is 90, what a kernel developer will do? spliti in two lines, or
leave it us it is,
cause i think it's more readable, in this way
qq->run = mmap(NULL, mmap_size, PROT_READ | PROT_WRITE, MAP_SHARED,
qq->vcpu, 0);


Also, have you find a way to tell indent not to indent, struct definitions?
In .h, when you have a huge structure definition, it's more readable,
to have it's struct friend one below the other, aligned!
struct kvm_mem_bank {
          struct list_head           list;
         u64                              guest_phys_addr;
         void                              *host_addr;
        u64                               size;
};

This also counts for variables initiliazation
int x = 0
char  *dog         = animal->dog->name;
char  *cat          = animal->cat->name;
char * elephant = animal->elephant->name;

Any ideas?



- Does script/Lindent STRICTLY follows all linux kernel coding style rules?
- What scripts/templates do you use/suggest for elegant code style
with the fact that
  we are talking about Linux Kernel Coding?


The GNU guys suggest indent with the following parameters:
-nbad -bap -nbc -bbo -hnl -br -brs -c33 -cd33 -ncdb -ce -ci4
-cli0 -d0 -di1 -nfc1 -i8 -ip0 -l80 -lp -npcs -nprs -npsl -sai
-saf -saw -ncs -nsc -sob -nfca -cp33 -ss -ts8 -il1

On the other hand:
Linux/script/Lindent contains:
-npro -kr -i8 -ts8 -sob -l80 -ss -ncs -cp1

Differences so far:
1)
indent with gnu parameters inserts a space on labels eg.
 err: vs
err:

2)
indent with gnu parameters inserts 26 spaces
#endif                                                          /*
something like this                 */


So probably gnu site is outdated?


Also, I have noticed  that they both fail theyto leave the empty line
of a label empty
For example, err: code
to
err:
       code

What does the coding style suggests in this case?

Have you found, other cases such the above?



More information about the Kernelnewbies mailing list