single, comprehensive kernel data types document?

Greg KH greg at kroah.com
Fri Apr 15 08:27:24 EDT 2016


On Fri, Apr 15, 2016 at 08:04:53AM -0400, Robert P. J. Day wrote:
> 
>   is there a single, decent online doc that explains the proper data
> types (int16_t, int32_t and so on) to use in kernel code?

First off, never use int16_t and friends, that's not ok :)

Second, it's simple, use:
	u8
	u16
	u32
	u64
and friends in kernel code (s8, s16, and so on for signed values.)

'int' is a return type, and for loops and other things that you know
will fit in that size.

> including the relationship with types to be used in code to be
> exported to user space (include/uapi/linux/types.h)?

For values that cross the user/kernel boundry, add '__' to the front of
the variable:
	__u8
	__u16
	__u32
and so on.  NEVER use 'int' or 'long' crossing that boundry, it's not
going to work properly.

I think one of the chapters in LDD3 describes all of this, you might
want to re-read it for the details.

hope this helps,

greg k-h



More information about the Kernelnewbies mailing list