X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=grading%2Fvm%2Fpage-merge-seq.c;h=34d14f66cb49238cd03aaad21731fce9a66a727c;hb=5780c9f434cca090f88463b7f0199d49b4ded288;hp=b451306d4f64be6631f303ad35d61208b2e6ea8a;hpb=e23c0d5dc156a42b3f5169cbac692cfc4fb6394d;p=pintos-anon diff --git a/grading/vm/page-merge-seq.c b/grading/vm/page-merge-seq.c index b451306..34d14f6 100644 --- a/grading/vm/page-merge-seq.c +++ b/grading/vm/page-merge-seq.c @@ -5,9 +5,12 @@ #else #include "posix-compat.h" #endif -#include "arc4.h" +#include "../lib/arc4.h" -#define CHUNK_SIZE (63 * 1024) /* Max file size. */ +/* This is the max file size for an older version of the Pintos + file system that had 126 direct blocks each pointing to a + single disk sector. We could raise it now. */ +#define CHUNK_SIZE (126 * 512) #define CHUNK_CNT 16 /* Number of chunks. */ #define DATA_SIZE (CHUNK_CNT * CHUNK_SIZE) /* Buffer size. */ @@ -32,7 +35,7 @@ init (void) /* Sort each chunk of buf1 using a subprocess. */ static void -sort (void) +sort_chunks (void) { size_t i; @@ -55,15 +58,15 @@ sort (void) close (fd); /* Sort with subprocess. */ - pid_t child = exec ("child-sort"); + pid_t child = exec ("child-sort buffer"); if (child == -1) { printf ("(page-merge-seq) exec() failed\n"); exit (1); } - if (join (child) != 123) + if (wait (child) != 123) { - printf ("(page-merge-seq) join(exec()) returned bad value\n"); + printf ("(page-merge-seq) wait(exec()) returned bad value\n"); exit (1); } @@ -147,7 +150,7 @@ main (void) { printf ("(page-merge-seq) begin\n"); init (); - sort (); + sort_chunks (); merge (); verify (); printf ("(page-merge-seq) end\n");