X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=pintos-anon;a=blobdiff_plain;f=src%2Ffilesys%2Ffree-map.c;h=db0dc4ae1905014fdd9a1acfa592e03643658381;hp=1cd917522c076cb874e0b121a87d3b7633e28d21;hb=69abf67e46fa36f6db047586a56204dcad4f07b8;hpb=615bf3b3d2a8573ed6fb9ddc0055745e163ac999 diff --git a/src/filesys/free-map.c b/src/filesys/free-map.c index 1cd9175..db0dc4a 100644 --- a/src/filesys/free-map.c +++ b/src/filesys/free-map.c @@ -6,27 +6,28 @@ #include "filesys/inode.h" static struct file *free_map_file; /* Free map file. */ -static struct bitmap *free_map; /* Free map, one bit per disk sector. */ +static struct bitmap *free_map; /* Free map, one bit per sector. */ /* Initializes the free map. */ void free_map_init (void) { - free_map = bitmap_create (disk_size (filesys_disk)); + free_map = bitmap_create (block_size (fs_device)); if (free_map == NULL) - PANIC ("bitmap creation failed--disk is too large"); + PANIC ("bitmap creation failed--file system device is too large"); bitmap_mark (free_map, FREE_MAP_SECTOR); bitmap_mark (free_map, ROOT_DIR_SECTOR); } /* Allocates CNT consecutive sectors from the free map and stores the first into *SECTORP. - Returns true if successful, false if all sectors were - available. */ + Returns true if successful, false if not enough consecutive +   sectors were available or if the free_map file could not be +   written. */ bool -free_map_allocate (size_t cnt, disk_sector_t *sectorp) +free_map_allocate (size_t cnt, block_sector_t *sectorp) { - disk_sector_t sector = bitmap_scan_and_flip (free_map, 0, cnt, false); + block_sector_t sector = bitmap_scan_and_flip (free_map, 0, cnt, false); if (sector != BITMAP_ERROR && free_map_file != NULL && !bitmap_write (free_map, free_map_file)) @@ -41,7 +42,7 @@ free_map_allocate (size_t cnt, disk_sector_t *sectorp) /* Makes CNT sectors starting at SECTOR available for use. */ void -free_map_release (disk_sector_t sector, size_t cnt) +free_map_release (block_sector_t sector, size_t cnt) { ASSERT (bitmap_all (free_map, sector, cnt)); bitmap_set_multiple (free_map, sector, cnt, false);