X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Ffilesys%2Ffilesys.c;h=fedda08e1d6730421a129e286117298821fd75fb;hb=854aa042a0e960f142cb15ecca8177ee01c3f927;hp=5cf1d974013a008705a91a9b4bd74855416e1967;hpb=a4613d70fb56b93216299f6253698ab0e4bbd46d;p=pintos-anon diff --git a/src/filesys/filesys.c b/src/filesys/filesys.c index 5cf1d97..fedda08 100644 --- a/src/filesys/filesys.c +++ b/src/filesys/filesys.c @@ -8,19 +8,19 @@ #include "filesys/directory.h" #include "devices/disk.h" -/* The disk that contains the filesystem. */ +/* The disk that contains the file system. */ struct disk *filesys_disk; static void do_format (void); -/* Initializes the filesystem module. - If FORMAT is true, reformats the filesystem. */ +/* Initializes the file system module. + If FORMAT is true, reformats the file system. */ void filesys_init (bool format) { filesys_disk = disk_get (0, 1); if (filesys_disk == NULL) - PANIC ("hd0:1 (hdb) not present, filesystem initialization failed"); + PANIC ("hd0:1 (hdb) not present, file system initialization failed"); inode_init (); free_map_init (); @@ -31,7 +31,7 @@ filesys_init (bool format) free_map_open (); } -/* Shuts down the filesystem module, writing any unwritten data +/* Shuts down the file system module, writing any unwritten data to disk. */ void filesys_done (void) @@ -91,70 +91,11 @@ filesys_remove (const char *name) return success; } -static void must_succeed_function (int, bool) NO_INLINE; -#define MUST_SUCCEED(EXPR) must_succeed_function (__LINE__, EXPR) - -/* Performs basic sanity checks on the filesystem. - The filesystem should not contain a file named `foo' when - called. */ -void -filesys_self_test (void) -{ - static const char s[] = "This is a test string."; - static const char zeros[sizeof s] = {0}; - struct file *file; - char s2[sizeof s]; - int i; - - filesys_remove ("foo"); - for (i = 0; i < 2; i++) - { - /* Create file and check that it contains zeros - throughout the created length. */ - MUST_SUCCEED (filesys_create ("foo", sizeof s)); - MUST_SUCCEED ((file = filesys_open ("foo")) != NULL); - MUST_SUCCEED (file_read (file, s2, sizeof s2) == sizeof s2); - MUST_SUCCEED (memcmp (s2, zeros, sizeof s) == 0); - MUST_SUCCEED (file_tell (file) == sizeof s); - MUST_SUCCEED (file_length (file) == sizeof s); - file_close (file); - - /* Reopen file and write to it. */ - MUST_SUCCEED ((file = filesys_open ("foo")) != NULL); - MUST_SUCCEED (file_write (file, s, sizeof s) == sizeof s); - MUST_SUCCEED (file_tell (file) == sizeof s); - MUST_SUCCEED (file_length (file) == sizeof s); - file_close (file); - - /* Reopen file and verify that it reads back correctly. - Delete file while open to check proper semantics. */ - MUST_SUCCEED ((file = filesys_open ("foo")) != NULL); - MUST_SUCCEED (filesys_remove ("foo")); - MUST_SUCCEED (filesys_open ("foo") == NULL); - MUST_SUCCEED (file_read (file, s2, sizeof s) == sizeof s); - MUST_SUCCEED (memcmp (s, s2, sizeof s) == 0); - MUST_SUCCEED (file_tell (file) == sizeof s); - MUST_SUCCEED (file_length (file) == sizeof s); - file_close (file); - } - - printf ("filesys: self test ok\n"); -} - -/* If SUCCESS is false, panics with an error complaining about - LINE_NO. */ -static void -must_succeed_function (int line_no, bool success) -{ - if (!success) - PANIC ("filesys_self_test: operation failed on line %d", line_no); -} - -/* Formats the filesystem. */ +/* Formats the file system. */ static void do_format (void) { - printf ("Formatting filesystem..."); + printf ("Formatting file system..."); free_map_create (); if (!dir_create (ROOT_DIR_SECTOR, 16)) PANIC ("root directory creation failed");