2012-03-13 20 views

Respuesta

7

encontré que (source) y that

identificadores de tipo de

los siguientes identificadores de tipo corresponden a las u16, u32, y tipos U64, excepto que se definen con el atributo de bit a bit, que se utiliza para restringir su uso como enteros. La utilidad dispersa usa el atributo bit a bit para asegurarse de que la variable se convierta al tipo de procesador local antes de que se realicen otras operaciones (inseguras) en la variable.

Los siguientes tipos se pueden utilizar para variables dependientes endian después de incluir el archivo de encabezado linux/kernel.h.

__le16 
__le32 
__le64 


__be16 
__be32 
__be64 
+0

Nota: el origen está desactualizado, los tipos están definidos (desde Linux 3.16) en [linux/types.h] (http://lxr.free-electrons.com/source/tools/include/linux/types.h) – pevik

0

Según Documentation/sparse.txt:

Y con gcc, todo el __bitwise/__force stuff desaparece, y todo termina pareciendo enteros a gcc.

Así que mi entendimiento es:

a. Solo se usa para verificar tipos.

b. Si tiene

typedef __u16 __bitwise __my_type1; 
typedef __u16 __bitwise __my_type2; 

Sparse le advertirá si asigna __my_type1 a __my_type2.

c. __bitwise solo significa orden sensible, no especifica big-endian o little-endian.

¿Estoy en lo cierto?

Cuestiones relacionadas