The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

Краткая справка

Краткая справка

Предыдущая  Содержание  Следующая V*D*V

В этой главе были представлены следующие символы:

 

#include <linux/types.h>

typedef u8;

typedef u16;

typedef u32;

typedef u64;

Тип гарантированно являющиеся 8-ми, 16-ми, 32-х и 64-х разрядными беззнаковыми целыми величинами. Также существуют эквивалентные знаковые типы. В пользовательском пространстве вы можете ссылаться на эти типы как __u8, __u16 и так далее.

 

#include <asm/page.h>

PAGE_SIZE

PAGE_SHIFT

Символы, которые определяют количество байт на страницу для существующей архитектуры и число битов на смещение страницы (12 для 4 Кб страниц и 13 для 8 Kб страниц).

 

#include <asm/byteorder.h>

__LITTLE_ENDIAN

__BIG_ENDIAN

В зависимости от архитектуры определяется только один из этих двух символов.

 

#include <asm/byteorder.h>

u32 __cpu_to_le32 (u32);

u32 __le32_to_cpu (u32);

Функции, которые выполняют преобразование между известными порядками байтов и таковыми в процессоре. Есть более чем 60 таких функций; для полного списка и способов, которыми они определены, смотрите разные файлы в include/linux/byteorder/.

 

#include <asm/unaligned.h>

get_unaligned(ptr);

put_unaligned(val, ptr);

Некоторым архитектурам необходимо с использованием этих макросов защитить доступ к невыровненным данным. Макросы преобразуются в обычное разыменование указателя для архитектур, которые позволяют вам получить доступ к невыровненным данным.

 

#include <linux/err.h>

void *ERR_PTR(long error);

long PTR_ERR(const void *ptr);

long IS_ERR(const void *ptr);

Функции позволяют функциям, которые возвращают значение указателя, возвращать коды ошибок.

 

#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);

Функции, которые манипулируют круговыми, двойными связными списками.

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)

Удобные макросы для перебора связных списков.

Предыдущая  Содержание  Следующая