Move filesys_init into main_thread.
authorBen Pfaff <blp@cs.stanford.edu>
Mon, 30 Aug 2004 22:56:34 +0000 (22:56 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Mon, 30 Aug 2004 22:56:34 +0000 (22:56 +0000)
src/threads/init.c
src/threads/malloc.c
src/threads/malloc.h

index 81188e950c6e8825052c18003d3eeea761ae1435..6e06f2faab178c8ee83a01051355ef42dded2956 100644 (file)
@@ -33,18 +33,12 @@ void power_off (void);
 static void
 main_thread (void *aux UNUSED) 
 {
-  struct disk *hda;
   disk_init ();
-  hda = disk_get (1);
-  if (hda != NULL) 
-    {
-      char buf[DISK_SECTOR_SIZE];
-      disk_read (hda, 0, buf);
-      //hex_dump (buf, sizeof buf);
-    }
-  else
-    printk ("no hda\n");
-  thread_execute ("a.out");
+
+#ifdef FILESYS
+  filesys_init (true);
+#endif
+  filesys_self_test ();
 }
 
 int
@@ -81,10 +75,6 @@ main (void)
   timer_init ();
   kbd_init ();
 
-#ifdef FILESYS
-  filesys_init (false);
-#endif
-
   thread_init ();
 
   t = thread_create ("main", main_thread, NULL);
index 8da4c4e4b0aaf2319f0e885859698daed1222671..72b441488393d862daed5c1a8ba367314089a90a 100644 (file)
@@ -97,6 +97,23 @@ malloc (size_t size)
   return get_free_slot (d);
 }
 
+void *
+calloc (size_t a, size_t b) 
+{
+  void *p;
+  size_t size;
+
+  size = a * b;
+  if (size < a || size < b)
+    return NULL;
+
+  p = malloc (size);
+  if (p != NULL)
+    memset (p, 0, size);
+
+  return p;
+}
+
 void
 free (void *p) 
 {
index 231531247b86fc72d015c7595eb8ff3f0ff439c9..a2125924f47b63340dea967c94c542a943d0379b 100644 (file)
@@ -5,8 +5,8 @@
 #include <stddef.h>
 
 void malloc_init (void);
-void *malloc (size_t)
-     ATTRIBUTE ((malloc));
+void *malloc (size_t) ATTRIBUTE ((malloc));
+void *calloc (size_t, size_t) ATTRIBUTE ((malloc));
 void free (void *);
 
 #endif /* malloc.h */