ubinos
Classes | Macros | Typedefs | Functions
list.h File Reference

ubiclib list API More...

#include <ubinos_config.h>
#include <ubinos/type.h>

Go to the source code of this file.

Classes

struct  _list_elmt_t
 
struct  _list_t
 

Macros

#define LIST_ERR__NOTEXIST   -21
 
#define list_init(list)
 

Typedefs

typedef struct _list_elmt_t list_elmt_t
 
typedef list_elmt_tlist_elmt_pt
 
typedef struct _list_t list_t
 
typedef list_tlist_pt
 

Functions

list_elmt_pt list_elmt_create (void *data)
 
int list_elmt_delete (list_elmt_pt elmt)
 
int list_create (list_pt *list_p)
 
int list_delete (list_pt *list_p)
 
int list_insertnext (list_pt list, list_elmt_pt ref, list_elmt_pt elmt)
 
int list_inserttail (list_pt list, list_elmt_pt elmt)
 
int list_removenext (list_pt list, list_elmt_pt ref, list_elmt_pt *elmt_p)
 
int list_find (list_pt list, list_elmt_pt *elmt_p, void *data)
 
int list_findandremove (list_pt list, list_elmt_pt *elmt_p, void *data)
 

Detailed Description

ubiclib list API

ubiclib list API를 정의합니다.

Macro Definition Documentation

◆ LIST_ERR__NOTEXIST

#define LIST_ERR__NOTEXIST   -21

오류: 해당 엘리먼트가 없음

◆ list_init

#define list_init (   list)
Value:
{ \
(list)->count = 0; \
(list)->head = NULL; \
(list)->tail = NULL; \
}

리스트를 초기화하는 매크로

Parameters
list대상 리스트 포인터

Typedef Documentation

◆ list_elmt_pt

리스트 엘리먼트 포인터 형 정의

◆ list_elmt_t

typedef struct _list_elmt_t list_elmt_t

리스트 엘리먼트 자료 구조

리스트 엘리먼트 형 정의

◆ list_pt

typedef list_t* list_pt

리스트 포인터 형 정의

◆ list_t

typedef struct _list_t list_t

리스트 자료 구조

리스트 형 정의

Function Documentation

◆ list_create()

int list_create ( list_pt list_p)

리스트를 생성하는 함수

Parameters
list_p생성한 리스트의 주소를 저장할 포인터의 주소
Returns
0: 성공

-1: 오류
-n: n-1 번째 매개변수가 잘못되었음

◆ list_delete()

int list_delete ( list_pt list_p)

리스트를 제거하는 함수

Parameters
list_p제거할 리스트의 주소가 저장된 포인터의 주소
제거에 성공하면 *list_p는 NULL이 됨
Returns
0: 성공

-1: 오류
-n: n-1 번째 매개변수가 잘못되었음

◆ list_elmt_create()

list_elmt_pt list_elmt_create ( void *  data)

리스트 엘리먼트를 생성하는 함수

Parameters
data엘리먼트의 데이터
Returns
생성한 리스트 엘리먼트 포인터

NULL: 오류

◆ list_elmt_delete()

int list_elmt_delete ( list_elmt_pt  elmt)

리스트 엘리먼트를 제거하는 함수

Parameters
elmt대상 리스트 엘리먼트 포인터
Returns
0: 성공

-1: 오류
-n: n-1 번째 매개변수가 잘못되었음

◆ list_find()

int list_find ( list_pt  list,
list_elmt_pt elmt_p,
void *  data 
)

지정된 값을 가진 첫번째 엘리먼트를 찾는 함수

Parameters
list대상 리스트 포인터
elmt_p찾은 엘리먼트 포인터를 저장할 변수 주소
data이 값을 가진 첫번째 엘리먼트를 찾음
Returns
0: 성공

-1: 오류
-n: n-1 번째 매개변수가 잘못되었음
LIST_ERR__NOTEXIST : data를 값으로 가지는 엘리먼트가 없음

◆ list_findandremove()

int list_findandremove ( list_pt  list,
list_elmt_pt elmt_p,
void *  data 
)

지정된 값을 가진 첫번째 엘리먼트를 찾아 제거하는 함수

Parameters
list대상 리스트 포인터
elmt_p찾은 엘리먼트 포인터를 저장할 변수 주소 (NULL이면 무시)
data이 값을 가진 첫번째 엘리먼트를 찾아 제거함
Returns
0: 성공

-1: 오류
-n: n-1 번째 매개변수가 잘못되었음
LIST_ERR__NOTEXIST : data를 값으로 가지는 엘리먼트가 없음

◆ list_insertnext()

int list_insertnext ( list_pt  list,
list_elmt_pt  ref,
list_elmt_pt  elmt 
)

엘리먼트를 지정된 엘리먼트 다음에 추가하는 함수

Parameters
list리스트 포인터
ref이 포인터가 가리키는 엘리먼트 다음에 추가함
NULL 이면 맨 앞에 추가함
elmt추가할 엘리먼트 포인터
Returns
0: 성공

-1: 오류
-n: n-1 번째 매개변수가 잘못되었음

◆ list_inserttail()

int list_inserttail ( list_pt  list,
list_elmt_pt  elmt 
)

엘리먼트를 맨 뒤에 추가하는 함수

Parameters
list리스트 포인터
elmt추가할 엘리먼트 포인터
Returns
0: 성공

-1: 오류
-n: n-1 번째 매개변수가 잘못되었음

◆ list_removenext()

int list_removenext ( list_pt  list,
list_elmt_pt  ref,
list_elmt_pt elmt_p 
)

지정된 엘리먼트 다음 엘리먼트를 제거하는 함수

Parameters
list대상 리스트 포인터
ref이 포인터가 가리키는 엘리먼트 다음 엘리먼트를 제거함
NULL이면 맨 앞의 엘리먼트를 제거함
elmt_p제거한 엘리먼트 포인터를 저장할 변수 주소 (NULL이면 무시)
Returns
0: 성공

-1: 오류
-n: n-1 번째 매개변수가 잘못되었음
NULL
#define NULL
Definition: type.h:65