nckernel  0.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros
이중 연결 리스트

Linux kenrel 에서 가져온 List 관리 함수들의 구현체 More...

Data Structures

struct  list_head
 리스트의 구조체를 정의한다. More...
 

Macros

#define list_entry(ptr, type, member)   container_of(ptr, type, member)
 list 객체에서 지정된 타입에 해당하는 캑체를 얻어온다. More...
 
#define list_for_each(pos, head)
 loop 를 돌면서 리스트의 각 엔트리들을 참조한다. More...
 
#define list_for_each_entry(pos, head, member)
 loop 를 돌면서 리스트의 각 엔트리의 원형을 반환한다. More...
 
#define list_for_each_prev(pos, head)
 loop 를 거꾸로 돌면서 리스트의 각 엔트리를 참조한다. More...
 
#define list_for_each_prev_safe(pos, n, head)
 loop 를 거꾸로 돌면서 리스트의 각 엔트리를 참조한다. More...
 
#define list_for_each_safe(pos, n, head)
 loop 를 돌면서 리스트의 각 엔트리를 참조한다. More...
 
#define LIST_HEAD(list)   struct list_head list = LIST_HEAD_INIT(list)
 초기화된 리스트를 선언한다. More...
 
#define LIST_HEAD_INIT(list)   { &(list), &(list) }
 List 를 초기화 한다. More...
 
#define LIST_NEXT(name)   ((name)->next)
 리스트의 다음 엔트리를 가리킨다. More...
 
#define list_next_entry(ptr, type, member)
 리스트의 첫번째 엔트리를 반환한다. More...
 
#define LIST_PREV(name)   ((name)->prev)
 리스트의 이전 엔트리를 가리킨다. More...
 
#define list_prev_entry(ptr, type, member)
 리스트에서 가장 마지막 노드를 가져온다. More...
 

Detailed Description

Linux kenrel 에서 가져온 List 관리 함수들의 구현체

Author
Sung-jae Park nices.nosp@m.j@ni.nosp@m.cesj..nosp@m.com
Date
2011-7-20 Linux kernel 에서 사용되고 있는 리스트 관리 코드를 그대로 차용하였으며, 필요한 경우 일부 수정 또는 추가하였다.

Macro Definition Documentation

#define list_entry (   ptr,
  type,
  member 
)    container_of(ptr, type, member)

list 객체에서 지정된 타입에 해당하는 캑체를 얻어온다.

Parameters
[in]ptr리스트 객체
[in]type얻어올 객체의 종류
[in]member얻어올 객체에서 리스트 객체의 이름

Definition at line 47 of file list.h.

Referenced by brk(), cpu_node_destroy(), cpu_node_find(), do_irq(), find_zone(), find_zone_by_addr(), free(), malloc(), page_frame_fini(), posix_memalign(), register_irq(), sbrk(), sem_clear(), sem_destroy(), sem_post(), ston_fini(), unregister_irq(), vfs_del_ninfo(), vfs_get_last_sinfo(), vfs_get_ninfo(), vfs_get_ninfo_child(), vfs_get_ninfo_next_sibling(), vfs_get_ninfo_parent(), and vfs_get_ninfo_prev_sibling().

#define list_for_each (   pos,
  head 
)
Value:
for (pos = (head)->next; \
prefetch(pos->next), pos != (head); pos = pos->next)

loop 를 돌면서 리스트의 각 엔트리들을 참조한다.

Definition at line 67 of file list.h.

Referenced by cpu_node_find(), do_irq(), find_zone(), find_zone_by_addr(), register_irq(), and vfs_get_ninfo().

#define list_for_each_entry (   pos,
  head,
  member 
)
Value:
for (pos = list_entry((head)->next, typeof(*pos), member); \
prefetch(pos->member.next), &pos->member != (head); \
pos = list_entry(pos->member.next, typeof(*pos), member))

loop 를 돌면서 리스트의 각 엔트리의 원형을 반환한다.

Definition at line 95 of file list.h.

#define list_for_each_prev (   pos,
  head 
)
Value:
for (pos = (head)->prev; \
prefetch(pos->prev), pos != (head); pos = pos->prev)

loop 를 거꾸로 돌면서 리스트의 각 엔트리를 참조한다.

Definition at line 74 of file list.h.

#define list_for_each_prev_safe (   pos,
  n,
  head 
)
Value:
for (pos = (head)->prev, n = pos->prev; \
prefetch(pos->prev), pos != (head); pos = n, n = pos->prev)

loop 를 거꾸로 돌면서 리스트의 각 엔트리를 참조한다.

Definition at line 88 of file list.h.

#define list_for_each_safe (   pos,
  n,
  head 
)
Value:
for (pos = (head)->next, n = pos->next; \
pos != (head); pos = n, n = pos->next)

loop 를 돌면서 리스트의 각 엔트리를 참조한다.

Definition at line 81 of file list.h.

Referenced by cpu_node_destroy(), free(), malloc(), page_frame_fini(), posix_memalign(), sem_clear(), sem_destroy(), ston_fini(), unregister_irq(), and vfs_del_ninfo().

#define LIST_HEAD (   list)    struct list_head list = LIST_HEAD_INIT(list)

초기화된 리스트를 선언한다.

Definition at line 21 of file list.h.

Referenced by vfs_del_ninfo().

#define LIST_HEAD_INIT (   list)    { &(list), &(list) }

List 를 초기화 한다.

Definition at line 16 of file list.h.

#define LIST_NEXT (   name)    ((name)->next)

리스트의 다음 엔트리를 가리킨다.

Definition at line 26 of file list.h.

Referenced by sem_post().

#define list_next_entry (   ptr,
  type,
  member 
)
Value:
(((ptr)->next == (ptr)) ? NULL : \
list_entry((ptr)->next, type, member))

리스트의 첫번째 엔트리를 반환한다.

Definition at line 53 of file list.h.

#define LIST_PREV (   name)    ((name)->prev)

리스트의 이전 엔트리를 가리킨다.

Definition at line 31 of file list.h.

#define list_prev_entry (   ptr,
  type,
  member 
)
Value:
(((ptr)->prev == (ptr)) ? NULL : \
list_entry((ptr)->prev, type, member))

리스트에서 가장 마지막 노드를 가져온다.

Definition at line 60 of file list.h.