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

ubiclib simple circular buffer API More...

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

Go to the source code of this file.

Classes

struct  _cbuf_t
 

Macros

#define cbuf_def_init(_name, _size)
 

Typedefs

typedef struct _cbuf_t cbuf_t
 
typedef cbuf_tcbuf_pt
 

Functions

ubi_st_t cbuf_create (cbuf_pt *cbuf_p, uint32_t size)
 
ubi_st_t cbuf_delete (cbuf_pt *cbuf_p)
 
ubi_st_t cbuf_write (cbuf_pt cbuf, const uint8_t *buf, uint32_t len, uint32_t *written_p)
 
ubi_st_t cbuf_read (cbuf_pt cbuf, uint8_t *buf, uint32_t len, uint32_t *read_p)
 
ubi_st_t cbuf_view (cbuf_pt cbuf, uint8_t *buf, uint32_t len, uint32_t *read_p)
 
ubi_st_t cbuf_clear (cbuf_pt cbuf)
 
uint32_t cbuf_get_len (cbuf_pt cbuf)
 
uint32_t cbuf_get_empty_len (cbuf_pt cbuf)
 
uint8_t cbuf_is_full (cbuf_pt cbuf)
 
uint8_t * cbuf_get_head_addr (cbuf_pt cbuf)
 
uint8_t * cbuf_get_tail_addr (cbuf_pt cbuf)
 
uint32_t cbuf_get_contig_len (cbuf_pt cbuf)
 
uint32_t cbuf_get_contig_empty_len (cbuf_pt cbuf)
 
uint8_t cbuf_align_head (cbuf_pt cbuf, uint8_t align)
 

Detailed Description

ubiclib simple circular buffer API

ubiclib 단순환형버퍼 API를 정의합니다.

Macro Definition Documentation

◆ cbuf_def_init

#define cbuf_def_init (   _name,
  _size 
)
Value:
uint8_t _name##_cbuf_buf[_size]; \
cbuf_t _name##_cbuf = { \
.head = 0, \
.tail = 0, \
.size = _size, \
.buf = _name##_cbuf_buf, \
}; \
cbuf_pt _name = &_name##_cbuf;

정적으로 단순환형버퍼를 선언하고 초기화하는 매크로

Parameters
_name단순환형버퍼 이름
_size버퍼 크기

Typedef Documentation

◆ cbuf_pt

typedef cbuf_t* cbuf_pt

단순환형버퍼 포인터 형 정의

◆ cbuf_t

typedef struct _cbuf_t cbuf_t

단순환형버퍼 형 정의 (저장할 수 있는 최대 크기는 size -1)

Function Documentation

◆ cbuf_align_head()

uint8_t cbuf_align_head ( cbuf_pt  cbuf,
uint8_t  align 
)

단순환형버퍼의 head 주소를 정렬하는 함수 (비어 있을 때만 정렬됨)

Parameters
cbuf대상 단순환형버퍼 포인터
align정렬 단위
Returns
정렬 수행 여부

◆ cbuf_clear()

ubi_st_t cbuf_clear ( cbuf_pt  cbuf)

단순환형버퍼의 자료를 모두 지우는 함수

Parameters
cbuf대상 단순환형버퍼 포인터
Returns
상태 번호

◆ cbuf_create()

ubi_st_t cbuf_create ( cbuf_pt cbuf_p,
uint32_t  size 
)

동적으로 단순환형버퍼를 생성하는 함수

Parameters
cbuf_p생성한 단순환형버퍼의 주소를 저장할 포인터의 주소
size버퍼 크기
Returns
상태 번호

◆ cbuf_delete()

ubi_st_t cbuf_delete ( cbuf_pt cbuf_p)

동적으로 단순환형버퍼를 제거하는 함수

Parameters
cbuf_p제거할 단순환형버퍼의 주소가 저장된 포인터의 주소
제거에 성공하면 *cbuf_p는 NULL이 됨
Returns
상태 번호

◆ cbuf_get_contig_empty_len()

uint32_t cbuf_get_contig_empty_len ( cbuf_pt  cbuf)

단순환형버퍼에 빈 공간 중 연속된 영역의 길이를 돌려주는 함수

Parameters
cbuf대상 단순환형버퍼 포인터
Returns
빈 공간 중 연속된 영역의 길이

◆ cbuf_get_contig_len()

uint32_t cbuf_get_contig_len ( cbuf_pt  cbuf)

단순환형버퍼에 들어있는 자료 중 연속된 영역의 길이를 돌려주는 함수

Parameters
cbuf대상 단순환형버퍼 포인터
Returns
자료 중 연속된 영역의 길이

◆ cbuf_get_empty_len()

uint32_t cbuf_get_empty_len ( cbuf_pt  cbuf)

단순환형버퍼에 빈 공간 길이를 돌려주는 함수

Parameters
cbuf대상 단순환형버퍼 포인터
Returns
사용된 길이

◆ cbuf_get_head_addr()

uint8_t* cbuf_get_head_addr ( cbuf_pt  cbuf)

단순환형버퍼의 머리 부분 주소를 돌려주는 함수

Parameters
cbuf대상 단순환형버퍼 포인터
Returns
머리 부분 주소

◆ cbuf_get_len()

uint32_t cbuf_get_len ( cbuf_pt  cbuf)

단순환형버퍼에 들어있는 자료의 길이를 돌려주는 함수

Parameters
cbuf대상 단순환형버퍼 포인터
Returns
사용된 길이

◆ cbuf_get_tail_addr()

uint8_t* cbuf_get_tail_addr ( cbuf_pt  cbuf)

단순환형버퍼의 꼬리 부분 주소를 돌려주는 함수

Parameters
cbuf대상 단순환형버퍼 포인터
Returns
꼬리 부분 주소

◆ cbuf_is_full()

uint8_t cbuf_is_full ( cbuf_pt  cbuf)

단순환형버퍼가 가득 차있는지 여부를 돌려주는 함수

Parameters
cbuf대상 단순환형버퍼 포인터
Returns
가득 차있는지 여부

◆ cbuf_read()

ubi_st_t cbuf_read ( cbuf_pt  cbuf,
uint8_t *  buf,
uint32_t  len,
uint32_t *  read_p 
)

단순환형버퍼에서 자료를 읽는 함수 (읽어온 자료는 삭제됨)

Parameters
cbuf대상 단순환형버퍼 포인터
buf읽은 자료를 저장할 버퍼
size읽을 자료 크기
read_p읽은 자료 크기를 저장할 변수의 주소 (NULL이면 무시)
Returns
상태 번호

◆ cbuf_view()

ubi_st_t cbuf_view ( cbuf_pt  cbuf,
uint8_t *  buf,
uint32_t  len,
uint32_t *  read_p 
)

단순환형버퍼의 자료를 보는 함수 (본 자료는 삭제되지 않음)

Parameters
cbuf대상 단순환형버퍼 포인터
buf읽은 자료를 저장할 버퍼
size읽을 자료 크기
read_p읽은 자료 크기를 저장할 변수의 주소 (NULL이면 무시)
Returns
상태 번호

◆ cbuf_write()

ubi_st_t cbuf_write ( cbuf_pt  cbuf,
const uint8_t *  buf,
uint32_t  len,
uint32_t *  written_p 
)

단순환형버퍼에 자료를 쓰는 함수

Parameters
cbuf대상 단순환형버퍼 포인터
buf쓸 자료가 저장되어 있는 버퍼
len쓸 자료 길이
written_p쓴 자료 길이를 저장할 변수의 주소 (NULL이면 무시)
Returns
상태 번호