X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fthreads%2Finit.c;h=0e8e2b9f7508a1ba9b591b70d2a5f80798fa3aef;hb=cd44d58647a33cd74056748e57bb8148cdb6d9df;hp=1afa8653dc6c828f8ab79ad3c500ce69eaee5cc0;hpb=8382bdd7884a6d38f7529e0517dd9a7083f4ce73;p=pintos-anon diff --git a/src/threads/init.c b/src/threads/init.c index 1afa865..0e8e2b9 100644 --- a/src/threads/init.c +++ b/src/threads/init.c @@ -55,6 +55,7 @@ static bool do_power_off; static void ram_init (void); static void paging_init (void); static void argv_init (void); +static void print_stats (void); int main (void) NO_RETURN; @@ -221,9 +222,11 @@ argv_init (void) #ifdef USERPROG else if (!strcmp (argv[i], "-ex")) initial_program = argv[++i]; + else if (!strcmp (argv[i], "-ul")) + user_page_limit = atoi (argv[++i]); #endif #ifdef FILESYS - else if (!strcmp (argv[i], "-f")) + else if (!strcmp (argv[i], "-f")) format_filesys = true; else if (!strcmp (argv[i], "-ci")) { @@ -249,6 +252,7 @@ argv_init (void) " -d CLASS[,...] Enable the given classes of debug messages.\n" #ifdef USERPROG " -ex 'PROG [ARG...]' Run PROG, passing the optional arguments.\n" + " -ul USER_MAX Limit user memory to USER_MAX pages.\n" #endif #ifdef FILESYS " -f Format the filesystem disk (hdb or hd0:1).\n" @@ -282,6 +286,8 @@ power_off (void) filesys_done (); #endif + print_stats (); + printf ("Powering off...\n"); serial_flush (); @@ -289,3 +295,19 @@ power_off (void) outb (0x8900, *p); for (;;); } + +/* Print statistics about Pintos execution. */ +static void +print_stats (void) +{ + timer_print_stats (); + thread_print_stats (); +#ifdef FILESYS + disk_print_stats (); +#endif + console_print_stats (); + kbd_print_stats (); +#ifdef USERPROG + exception_print_stats (); +#endif +}