[Krafton Jungle] PintOS 2.0.0
크래프톤 정글 PintOS
 
Loading...
Searching...
No Matches
bitmap.h
Go to the documentation of this file.
1#ifndef __LIB_KERNEL_BITMAP_H
2#define __LIB_KERNEL_BITMAP_H
3
4#include <stdbool.h>
5#include <stddef.h>
6#include <inttypes.h>
7
8/* Bitmap abstract data type. */
9
10/* Creation and destruction. */
11struct bitmap *bitmap_create (size_t bit_cnt);
12struct bitmap *bitmap_create_in_buf (size_t bit_cnt, void *, size_t byte_cnt);
13size_t bitmap_buf_size (size_t bit_cnt);
14void bitmap_destroy (struct bitmap *);
15
16/* Bitmap size. */
17size_t bitmap_size (const struct bitmap *);
18
19/* Setting and testing single bits. */
20void bitmap_set (struct bitmap *, size_t idx, bool);
21void bitmap_mark (struct bitmap *, size_t idx);
22void bitmap_reset (struct bitmap *, size_t idx);
23void bitmap_flip (struct bitmap *, size_t idx);
24bool bitmap_test (const struct bitmap *, size_t idx);
25
26/* Setting and testing multiple bits. */
27void bitmap_set_all (struct bitmap *, bool);
28void bitmap_set_multiple (struct bitmap *, size_t start, size_t cnt, bool);
29size_t bitmap_count (const struct bitmap *, size_t start, size_t cnt, bool);
30bool bitmap_contains (const struct bitmap *, size_t start, size_t cnt, bool);
31bool bitmap_any (const struct bitmap *, size_t start, size_t cnt);
32bool bitmap_none (const struct bitmap *, size_t start, size_t cnt);
33bool bitmap_all (const struct bitmap *, size_t start, size_t cnt);
34
35/* Finding set or unset bits. */
36#define BITMAP_ERROR SIZE_MAX
37size_t bitmap_scan (const struct bitmap *, size_t start, size_t cnt, bool);
38size_t bitmap_scan_and_flip (struct bitmap *, size_t start, size_t cnt, bool);
39
40/* File input and output. */
41#ifdef FILESYS
42struct file;
43size_t bitmap_file_size (const struct bitmap *);
44bool bitmap_read (struct bitmap *, struct file *);
45bool bitmap_write (const struct bitmap *, struct file *);
46#endif
47
48/* Debugging. */
49void bitmap_dump (const struct bitmap *);
50
51#endif /* lib/kernel/bitmap.h */
static size_t byte_cnt(size_t bit_cnt)
Definition: bitmap.c:54
struct bitmap * bitmap_create_in_buf(size_t bit_cnt, void *, size_t byte_cnt)
size_t bitmap_count(const struct bitmap *, size_t start, size_t cnt, bool)
Definition: bitmap.c:213
size_t bitmap_scan_and_flip(struct bitmap *, size_t start, size_t cnt, bool)
Definition: bitmap.c:293
bool bitmap_contains(const struct bitmap *, size_t start, size_t cnt, bool)
Definition: bitmap.c:230
void bitmap_destroy(struct bitmap *)
Definition: bitmap.c:113
size_t bitmap_scan(const struct bitmap *, size_t start, size_t cnt, bool)
Definition: bitmap.c:271
void bitmap_set_multiple(struct bitmap *, size_t start, size_t cnt, bool)
Definition: bitmap.c:199
size_t bitmap_buf_size(size_t bit_cnt)
Definition: bitmap.c:105
size_t bitmap_size(const struct bitmap *)
Definition: bitmap.c:124
void bitmap_reset(struct bitmap *, size_t idx)
Definition: bitmap.c:155
void bitmap_set(struct bitmap *, size_t idx, bool)
Definition: bitmap.c:132
void bitmap_mark(struct bitmap *, size_t idx)
Definition: bitmap.c:143
void bitmap_set_all(struct bitmap *, bool)
Definition: bitmap.c:191
void bitmap_dump(const struct bitmap *)
Definition: bitmap.c:335
bool bitmap_none(const struct bitmap *, size_t start, size_t cnt)
Definition: bitmap.c:253
bool bitmap_test(const struct bitmap *, size_t idx)
Definition: bitmap.c:181
void bitmap_flip(struct bitmap *, size_t idx)
Definition: bitmap.c:169
bool bitmap_any(const struct bitmap *, size_t start, size_t cnt)
Definition: bitmap.c:246
struct bitmap * bitmap_create(size_t bit_cnt)
Definition: bitmap.c:73
bool bitmap_all(const struct bitmap *, size_t start, size_t cnt)
Definition: bitmap.c:260
Definition: bitmap.c:27
size_t bit_cnt
Definition: bitmap.c:28
Definition: file.c:7