Quick Reference
The following symbols were introduced in this chapter.
-
#include <linux/types.h>,typedef u8;,typedef u16;,typedef u32;,typedef u64; These types are guaranteed to be 8-, 16-, 32-, and 64-bit unsigned integer values. The equivalent signed types exist as well. In user space, you can refer to the types as
__u8,__u16, and so forth.-
#include <asm/page.h>,PAGE_SIZE,PAGE_SHIFT These symbols define the number of bytes per page for the current architecture and the number of bits in the page offset (12 for 4-KB pages and 13 for 8-KB pages).
-
#include <asm/byteorder.h>,__LITTLE_ENDIAN,__BIG_ENDIAN Only one of the two symbols is defined, depending on the architecture.
-
#include <asm/byteorder.h>,u32 __cpu_to_le32 (u32);,u32 __le32_to_cpu (u32);, Functions for converting between known byte orders and that of the processor. There are more than 60 such functions; see the various files in
include/linux/byteorder/for a full list and the ways in which they are defined.-
#include <asm/unaligned.h>,get_unaligned(ptr);,put_unaligned(val, ptr); Some architectures need to protect unaligned data access using these macros. The macros expand to normal pointer dereferencing for architectures that permit you to access unaligned data.
-
#include <linux/list.h>,list_add(struct list_head *new, struct list_head *head);,list_add_tail(struct list_head *new, struct list_head *head);,list_del(struct list_head *entry);,list_empty(struct ...