diff options
| author | Robert Morris <rtm@csail.mit.edu> | 2011-08-30 20:50:19 -0400 | 
|---|---|---|
| committer | Robert Morris <rtm@csail.mit.edu> | 2011-08-30 20:50:19 -0400 | 
| commit | 5e083578278e340e0661f2dede68676432269f49 (patch) | |
| tree | 5783451019b97c53c1b63cb03d313ca1c867acc7 | |
| parent | 1ddfbbb194e3aa668b33469eb547132a7a7f940a (diff) | |
| download | xv6-labs-5e083578278e340e0661f2dede68676432269f49.tar.gz xv6-labs-5e083578278e340e0661f2dede68676432269f49.tar.bz2 xv6-labs-5e083578278e340e0661f2dede68676432269f49.zip | |
enterpgdir -> entrypgdir
| -rw-r--r-- | entry.S | 4 | ||||
| -rw-r--r-- | main.c | 10 | ||||
| -rw-r--r-- | usertests.c | 21 | 
3 files changed, 24 insertions, 11 deletions
| @@ -44,11 +44,11 @@ entry:    orl     $(CR4_PSE), %eax    movl    %eax, %cr4    # Set page directory -  movl    $(V2P_WO(enterpgdir)), %eax +  movl    $(V2P_WO(entrypgdir)), %eax    movl    %eax, %cr3    # Turn on paging.    movl    %cr0, %eax -  orl     $(CR0_PE|CR0_PG|CR0_WP), %eax +  orl     $(CR0_PG|CR0_WP), %eax    movl    %eax, %cr0    # now switch to using addresses above KERNBASE @@ -60,7 +60,7 @@ mpmain(void)    scheduler();     // start running processes  } -pde_t enterpgdir[];  // For entry.S +pde_t entrypgdir[];  // For entry.S  // Start the non-boot (AP) processors.  static void @@ -83,15 +83,15 @@ startothers(void)      // Tell entryother.S what stack to use, the address of mpenter and pgdir;      // We cannot use kpgdir yet, because the AP processor is running in low  -    // memory, so we use enterpgdir for the APs too.  kalloc can return addresses +    // memory, so we use entrypgdir for the APs too.  kalloc can return addresses      // above 4Mbyte (the machine may have much more physical memory than 4Mbyte), which  -    // aren't mapped by enterpgdir, so we must allocate a stack using enter_alloc(); +    // aren't mapped by entrypgdir, so we must allocate a stack using enter_alloc();      // This introduces the constraint that xv6 cannot use kalloc until after these       // last enter_alloc invocations.      stack = enter_alloc();      *(void**)(code-4) = stack + KSTACKSIZE;      *(void**)(code-8) = mpenter; -    *(int**)(code-12) = (void *) v2p(enterpgdir); +    *(int**)(code-12) = (void *) v2p(entrypgdir);      lapicstartap(c->id, v2p(code)); @@ -106,7 +106,7 @@ startothers(void)  // hence the "__aligned__" attribute.    // Use PTE_PS in page directory entry to enable 4Mbyte pages.  __attribute__((__aligned__(PGSIZE))) -pde_t enterpgdir[NPDENTRIES] = { +pde_t entrypgdir[NPDENTRIES] = {    // Map VA's [0, 4MB) to PA's [0, 4MB)    [0] = (0) + PTE_P + PTE_W + PTE_PS,    // Map VA's [KERNBASE, KERNBASE+4MB) to PA's [0, 4MB) diff --git a/usertests.c b/usertests.c index 455e68a..655610c 100644 --- a/usertests.c +++ b/usertests.c @@ -1,3 +1,4 @@ +#include "param.h"  #include "types.h"  #include "stat.h"  #include "user.h" @@ -240,8 +241,10 @@ pipe1(void)        if(cc > sizeof(buf))          cc = sizeof(buf);      } -    if(total != 5 * 1033) +    if(total != 5 * 1033){        printf(1, "pipe1 oops 3 total %d\n", total); +      exit(); +    }      close(fds[0]);      wait();    } else { @@ -401,10 +404,12 @@ sharedfd(void)    }    close(fd);    unlink("sharedfd"); -  if(nc == 10000 && np == 10000) +  if(nc == 10000 && np == 10000){      printf(1, "sharedfd ok\n"); -  else +  } else {      printf(1, "sharedfd oops %d %d\n", nc, np); +    exit(); +  }  }  // two processes write two different files at the same @@ -423,7 +428,7 @@ twofiles(void)    pid = fork();    if(pid < 0){      printf(1, "fork failed\n"); -    return; +    exit();    }    fname = pid ? "f1" : "f2"; @@ -1582,6 +1587,14 @@ fsfull()    printf(1, "fsfull test finished\n");  } +unsigned long randstate = 1; +unsigned int +rand() +{ +  randstate = randstate * 1664525 + 1013904223; +  return randstate; +} +  int  main(int argc, char *argv[])  { | 
