misc.h

来自「iscsi企业级target.很好用」· C头文件 代码 · 共 46 行

H
46
字号
/* * Released under the terms of the GNU GPL v2.0. */#ifndef MISC_H#define MISC_Hstruct qelem {	struct qelem *q_forw;	struct qelem *q_back;};/* stolen list stuff from Linux kernel */#undef offsetof#ifdef __compiler_offsetof#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)#else#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)#endif#define LIST_HEAD_INIT(name) { &(name), &(name) }#define INIT_LIST_HEAD(ptr) do { \	(ptr)->q_forw = (ptr); (ptr)->q_back = (ptr); \} while (0)static inline int list_empty(const struct qelem *head){	return head->q_forw == head;}#define container_of(ptr, type, member) ({			\        const typeof( ((type *)0)->member ) *__mptr = (ptr);	\        (type *)( (char *)__mptr - offsetof(type,member) );})#define list_entry(ptr, type, member) \	container_of(ptr, type, member)#define list_for_each_entry(pos, head, member)				\	for (pos = list_entry((head)->q_forw, typeof(*pos), member);	\	     &pos->member != (head); 	\	     pos = list_entry(pos->member.q_forw, typeof(*pos), member))#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?