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
__something
est la bête de somme poursomething
excluant certaines gestions, souvent bloquantes. C'est une raison pour des choses comme__d_lookup
. Une convention similaire pour les appels système est quesys_something
est le point d'entrée de l'appel système qui gère le changement de contexte vers et depuis le noyau et appelledo_something
pour faire le travail proprement dit. - Le
_t
suffix est la convention de bibliothèque standard pour les typedefs. Par exemple.size_t
,ptrdiff_t
,foff_t
et autres choses de ce genre. Le code du noyau suit également cette convention pour ses types internes.