Je continue à courir à travers de petites conventions comme __KERNEL__
.
Le __
dans ce cas est-il une convention de dénomination utilisée par les développeurs du kernel ou s’agit-il d’une raison spécifique à la syntaxe pour nommer une macro de cette manière?
Il en existe de nombreux exemples dans le code.
Par exemple, certaines fonctions et variables commencent par un _
ou même __
.
Y a-t-il une raison spécifique à cela?
Cela semble assez répandu et j’ai simplement besoin de clarifier si ces choses ont un but syntaxique ou est-ce simplement une convention de dénomination.
De plus, je vois beaucoup de types déclarés par l’utilisateur, tels que uid_t. Encore une fois, je suppose qu’il s’agit d’une convention de dénomination indiquant au lecteur qu’il s’agit d’un type défini par l’utilisateur.
Il y a plusieurs cas:
/usr/include/linux
, les normes spécifient les symboles à définir et tout autre symbole spécifique au système doit commencer par un trait de soulignement ou une majuscule. C’est la raison de __KERNEL__
en particulier, car il est utilisé dans les en-têtes inclus à la fois dans le kernel et dans la libc et certaines déclarations sont différentes. __something
est un __something
travail pour something
exclut une certaine gestion, souvent un locking. C’est une raison pour des choses comme __d_lookup
. Une convention similaire pour les appels système est que sys_something
est le point d’entrée de l’appel système qui gère le changement de contexte vers et depuis le kernel et appelle do_something
pour faire le travail réel. _t
est une convention de bibliothèque standard pour les typedefs. Par size_t
, size_t
, ptrdiff_t
, foff_t
et autres. Le code du kernel suit cette convention pour ses types internes.