X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=grading%2Fvm%2Fpage-merge-par.c;h=36f7840bdf68b88053726690548e2e08fcaa344f;hb=365877dfb6d7438056b1a87cedb059e2c28e00d8;hp=c602d160269e58786c2ebf3977b20a38be31f6e3;hpb=9f45770b97fc271a0cc70647aa42353d23faba34;p=pintos-anon diff --git a/grading/vm/page-merge-par.c b/grading/vm/page-merge-par.c index c602d16..36f7840 100644 --- a/grading/vm/page-merge-par.c +++ b/grading/vm/page-merge-par.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 8 /* 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) { pid_t children[CHUNK_CNT]; size_t i; @@ -72,9 +75,9 @@ sort (void) char fn[128]; int fd; - if (join (children[i]) != 123) + if (wait (children[i]) != 123) { - printf ("(page-merge-par) join(exec()) returned bad value\n"); + printf ("(page-merge-par) wait(exec()) returned bad value\n"); exit (1); } @@ -159,7 +162,7 @@ main (void) { printf ("(page-merge-par) begin\n"); init (); - sort (); + sort_chunks (); merge (); verify (); printf ("(page-merge-par) end\n");