Quick Reference
The following symbols were introduced in this chapter:
#include
typedef u8;
typedef u16;
typedef u32;
typedef u64;
Types 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
PAGE_SIZE
PAGE_SHIFT
Symbols that 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
__LITTLE_ENDIAN
__BIG_ENDIAN
Only one of the two symbols is defined, depending on the architecture.
#include
u32 __cpu_to_le32 (u32);
u32 __le32_to_cpu (u32);
Functions that convert 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
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 per-
mit you to access unaligned data.
#include
void *ERR_PTR(long error);
long PTR_ERR(const void *ptr);
long IS_ERR(const void *ptr);
Functions allow error codes to be returned by functions that return a pointer
value.
#include
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_del_init(struct list_head *entry);
list_empty(struct list_head *head);
list_entry(entry, type, member);
list_move(struct list_head *entry, struct list_head *head);
list_move_tail(struct list_head *entry, struct list_head *head);
list_splice(struct list_head *list, struct list_head *head);
Functions that manipulate circular, doubly linked lists.
阅读(821) | 评论(0) | 转发(0) |