Linux Device Drivers (3rd Edition) [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Linux Device Drivers (3rd Edition) [Electronic resources] - نسخه متنی

Jonathan Corbet, Greg Kroah-Hartman, Alessandro Rubini

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید








11.6. Quick Reference


The following symbols were introduced in this chapter:

#include <linux/types.h>

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 <asm/page.h>

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 <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 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 <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/err.h>

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 <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_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.


list_for_each(struct list_head *cursor, struct list_head *list)

list_for_each_prev(struct list_head *cursor, struct list_head *list)

list_for_each_safe(struct list_head *cursor, struct list_head *next, struct

list_head *list)

list_for_each_entry(type *cursor, struct list_head *list, member)

list_for_each_entry_safe(type *cursor, type *next struct list_head *list,

member)


Convenience macros for iterating through linked lists.




    / 202