ubiclib bitmap API
More...
#include <ubinos_config.h>
#include <ubinos/type.h>
Go to the source code of this file.
ubiclib bitmap API
ubiclib 비트맵 API를 정의합니다.
◆ 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
◆ bitmap_pt
◆ bitmap_t
◆ 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()
비트맵를 제거하는 함수
- 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
-
- 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
-
- Returns
- 비트맵 저장에 필요한 메모리 크기 (INT_SIZE 바이트 단위)
◆ bitmap_getmemsize()
unsigned int bitmap_getmemsize |
( |
unsigned int |
bitsize | ) |
|
비트맵 저장에 필요한 메모리 크기를 돌려주는 함수
- Parameters
-
- Returns
- 비트맵 저장에 필요한 메모리 크기 (바이트 단위)
◆ bitmap_getmsb()
unsigned int bitmap_getmsb |
( |
bitmap_pt |
bitmap | ) |
|
값이 1인 최상위 비트의 인덱스를 구하는 함수
- Parameters
-
- 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 번째 매개변수가 잘못되었음