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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access