Modelo de datos de lenguaje C

El kernel de 64 bits utiliza el modelo de datos de lenguaje C LP64 (Long Pointer 64 bits) y requiere extensiones de kernel para hacer lo mismo. El modelo de datos LP64 define los tipos Indicadores, Largoy long long como 64 bits, int como 32 bits, corto como 16 bits y char como 8 bits.

En el modelo de datos ILP32 , los tipos Largo y puntero son 32 bits. Con el fin de portar una extensión de kernel de 32 bits existente al entorno de kernel de 64 bits, el código fuente debe ser modificado para que sea de tipo seguro en LP64. Esto significa garantizar que los tipos de datos se utilicen de forma coherente. El código fuente es incorrecto para el entorno de 64 bits si asume que los punteros, Largoy int tienen el mismo tamaño.

Además, se debe examinar el uso de tipos derivados del sistema siempre que se pasen valores de una aplicación al kernel. Por ejemplo, size_t es un tipo derivado del sistema cuyo tamaño depende de la modalidad de compilación, y key_t es un tipo derivado del sistema que es de 64 bits en el entorno de kernel de 64 bits.