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

ubiclib bitmap API More...

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

Go to the source code of this file.

Classes

struct  _bitmap_t
 

Macros

#define BITMAP_DEPTH_MAX   4
 
#define BITMAP_INITVALUE(bitsize)
 

Typedefs

typedef struct _bitmap_t bitmap_t
 
typedef bitmap_tbitmap_pt
 

Functions

int bitmap_init (bitmap_pt bitmap, unsigned int bitsize, unsigned char *buf, unsigned int bufsize)
 
unsigned int bitmap_getmemsize (unsigned int bitsize)
 
unsigned int bitmap_getmapsize (unsigned int bitsize)
 
int bitmap_create (bitmap_pt *bitmap_p, unsigned int bitsize)
 
int bitmap_delete (bitmap_pt *bitmap_p)
 
int bitmap_getbit (bitmap_pt bitmap, unsigned int index)
 
int bitmap_setbit (bitmap_pt bitmap, unsigned int index, int value)
 
int bitmap_setbitall (bitmap_pt bitmap, int value)
 
unsigned int bitmap_getlsb (bitmap_pt bitmap)
 
unsigned int bitmap_getlsb2 (bitmap_pt bitmap, unsigned int index)
 
unsigned int bitmap_getmsb (bitmap_pt bitmap)
 

Detailed Description

ubiclib bitmap API

ubiclib 비트맵 API를 정의합니다.

Macro Definition Documentation

◆ BITMAP_DEPTH_MAX

#define BITMAP_DEPTH_MAX   4

Max bit size is (INT_SIZE * 8) ^ BITMAP_DEPTH_MAX if BITMAP_DEPTH_MAX is 4 in 32 bit machine, then max bit size is 32 ^ = 1,048,576 bits

◆ BITMAP_INITVALUE

#define BITMAP_INITVALUE (   bitsize)
Value:
{ \
bitsize, \
NULL, \
0, \
0, \
{0, } \
}

bitmap을 초기화하는 macro

Typedef Documentation

◆ bitmap_pt

typedef bitmap_t* bitmap_pt

비트맵 포인터 형 정의

◆ bitmap_t

typedef struct _bitmap_t bitmap_t

비트맵 형 정의

Function Documentation

◆ bitmap_create()

int bitmap_create ( bitmap_pt bitmap_p,
unsigned int  bitsize 
)

비트맵를 생성하는 함수 (비트 초기 값은 0)

Parameters
bitmap_p생성한 비트맵의 주소를 저장할 포인터의 주소
bitsize비트맵 크기 (비트 단위)
Returns
0: 성공

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

◆ bitmap_delete()

int bitmap_delete ( bitmap_pt bitmap_p)

비트맵를 제거하는 함수

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

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

◆ bitmap_getbit()

int bitmap_getbit ( bitmap_pt  bitmap,
unsigned int  index 
)

비트 값을 가져오는 함수

Parameters
bitmap대상 비트맵 포인터
index대상 비트 인덱스 (LSB 부터 1)
Returns
가져온 비트 값

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

◆ bitmap_getlsb()

unsigned int bitmap_getlsb ( bitmap_pt  bitmap)

값이 1인 최하위 비트의 인덱스를 구하는 함수

Parameters
bitmap대상 비트맵 포인터
Returns
값이 1인 최하위 비트의 인덱스 (LSB 부터 1, 값이 1이 비트가 없으면 0)

◆ bitmap_getlsb2()

unsigned int bitmap_getlsb2 ( bitmap_pt  bitmap,
unsigned int  index 
)

지정한 인덱스 보다 크거나 같은 값이 1인 최하위 비트의 인덱스를 구하는 함수

Parameters
bitmap대상 비트맵 포인터
index비트 인덱스 (LSB 부터 1)
Returns
지정한 인덱스 보다 크거나 같은 값이 1인 최하위 비트의 인덱스 (LSB 부터 1, 값이 1이 비트가 없으면 0)

◆ bitmap_getmapsize()

unsigned int bitmap_getmapsize ( unsigned int  bitsize)

비트맵 저장에 필요한 메모리 크기를 돌려주는 함수

Parameters
bitsize비트맵 크기 (비트 단위)
Returns
비트맵 저장에 필요한 메모리 크기 (INT_SIZE 바이트 단위)

◆ bitmap_getmemsize()

unsigned int bitmap_getmemsize ( unsigned int  bitsize)

비트맵 저장에 필요한 메모리 크기를 돌려주는 함수

Parameters
bitsize비트맵 크기 (비트 단위)
Returns
비트맵 저장에 필요한 메모리 크기 (바이트 단위)

◆ bitmap_getmsb()

unsigned int bitmap_getmsb ( bitmap_pt  bitmap)

값이 1인 최상위 비트의 인덱스를 구하는 함수

Parameters
bitmap대상 비트맵 포인터
Returns
값이 1인 최상위 비트의 인덱스 (LSB 부터 1, 값이 1이 비트가 없으면 0)

◆ bitmap_init()

int bitmap_init ( bitmap_pt  bitmap,
unsigned int  bitsize,
unsigned char *  buf,
unsigned int  bufsize 
)

비트맵를 초기화하는 함수
정적으로 선언된 비트맵은 이 함수를 사용해 초기화한 다음 사용해야 한다.
bitmap_create 함수를 사용해 동적으로 만들어진 비트맵은 이 함수를 사용해 초기화할 필요가 없다.

Parameters
bitmap대상 비트맵 포인터
bitsize비트맵 크기 (비트 단위)
buf비트맵을 저장할 버퍼 포인터
bufsize비트맵을 저장할 버퍼 크기 (바이트 단위)
Returns
0: 성공

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

◆ bitmap_setbit()

int bitmap_setbit ( bitmap_pt  bitmap,
unsigned int  index,
int  value 
)

비트 값을 설정하는 함수

Parameters
bitmap대상 비트맵 포인터
index대상 비트 인덱스 (LSB 부터 1)
value설정할 값 (0|1)
Returns
0: 성공

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

◆ bitmap_setbitall()

int bitmap_setbitall ( bitmap_pt  bitmap,
int  value 
)

모든 비트 값을 설정하는 함수

Parameters
bitmap대상 비트맵 포인터
value설정할 값 (0|1)
Returns
0: 성공

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