X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flib%2Fkernel%2Fbitmap.h;h=dbb70046c96c9074119689827169dacf249fcde2;hb=00bb787f8b81b6ff3664869fbc0073f9b16c7a84;hp=8aef186f709a6073c6c445f19b20285f2b114d08;hpb=0c1e49b3a64a959f95f465ef18cdaa52376eb59e;p=pintos-anon diff --git a/src/lib/kernel/bitmap.h b/src/lib/kernel/bitmap.h index 8aef186..dbb7004 100644 --- a/src/lib/kernel/bitmap.h +++ b/src/lib/kernel/bitmap.h @@ -13,6 +13,7 @@ size_t bitmap_size (const struct bitmap *); void bitmap_set (struct bitmap *, size_t idx, bool); void bitmap_set_all (struct bitmap *, bool); +void bitmap_set_multiple (struct bitmap *, size_t start, size_t end, bool); void bitmap_mark (struct bitmap *, size_t idx); void bitmap_reset (struct bitmap *, size_t idx); @@ -21,16 +22,14 @@ void bitmap_flip (struct bitmap *, size_t idx); bool bitmap_test (const struct bitmap *, size_t idx); #define BITMAP_ERROR ((size_t) -1) -size_t bitmap_scan (const struct bitmap *, bool); -size_t bitmap_find_and_set (struct bitmap *); -size_t bitmap_find_and_clear (struct bitmap *); +size_t bitmap_scan (const struct bitmap *, size_t start, size_t cnt, bool); +size_t bitmap_scan_and_flip (struct bitmap *, size_t start, size_t cnt, + bool); -size_t bitmap_set_cnt (const struct bitmap *); -bool bitmap_clear_cnt (const struct bitmap *); - -bool bitmap_any (const struct bitmap *); -bool bitmap_none (const struct bitmap *); -bool bitmap_all (const struct bitmap *); +size_t bitmap_count (const struct bitmap *, size_t start, size_t end, bool); +bool bitmap_any (const struct bitmap *, size_t start, size_t end); +bool bitmap_none (const struct bitmap *, size_t start, size_t end); +bool bitmap_all (const struct bitmap *, size_t start, size_t end); #ifdef FILESYS struct file; @@ -41,4 +40,8 @@ void bitmap_write (const struct bitmap *, struct file *); void bitmap_dump (const struct bitmap *); +size_t bitmap_needed_bytes (size_t bit_cnt); +struct bitmap *bitmap_create_preallocated (size_t bit_cnt, + void *, size_t byte_cnt); + #endif /* lib/kernel/bitmap.h */