Il existe plusieurs cas :
- Dans les en-têtes publics, c'est-à-dire tout ce que la libc prendra en charge et placera sous
/usr/include/linux, les normes spécifient quels symboles doivent être définis et tout autre symbole spécifique au système doit commencer par un trait de soulignement et une majuscule ou deux traits de soulignement. C'est la raison de__KERNEL__en particulier, parce qu'il est utilisé dans les en-têtes qui sont inclus à la fois dans le noyau et dans la libc et que certaines déclarations sont différentes. - Dans le code interne, la convention est généralement le symbole
__somethingest la bête de somme poursomethingexcluant certaines gestions, souvent bloquantes. C'est une raison pour des choses comme__d_lookup. Une convention similaire pour les appels système est quesys_somethingest le point d'entrée de l'appel système qui gère le changement de contexte vers et depuis le noyau et appelledo_somethingpour faire le travail proprement dit. - Le
_tsuffix est la convention de bibliothèque standard pour les typedefs. Par exemple.size_t,ptrdiff_t,foff_tet autres choses de ce genre. Le code du noyau suit également cette convention pour ses types internes.