diff options
| author | Robert Morris <rtm@csail.mit.edu> | 2022-08-09 15:11:25 -0400 | 
|---|---|---|
| committer | Frans Kaashoek <kaashoek@mit.edu> | 2022-08-09 20:34:06 -0400 | 
| commit | 535f1797f0d849e77b49bebec0b45077fc5fde9a (patch) | |
| tree | b4bb98b3b0a1f70755763aa6973c4fb8ace183e7 /kernel | |
| parent | 62d8da06cd11f88163acd51fe2a27b0b005ef47f (diff) | |
| download | xv6-labs-535f1797f0d849e77b49bebec0b45077fc5fde9a.tar.gz xv6-labs-535f1797f0d849e77b49bebec0b45077fc5fde9a.tar.bz2 xv6-labs-535f1797f0d849e77b49bebec0b45077fc5fde9a.zip | |
nothing much
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/defs.h | 2 | ||||
| -rw-r--r-- | kernel/fs.c | 4 | ||||
| -rw-r--r-- | kernel/plic.c | 3 | ||||
| -rw-r--r-- | kernel/proc.c | 21 | ||||
| -rw-r--r-- | kernel/vm.c | 6 | 
5 files changed, 21 insertions, 15 deletions
| diff --git a/kernel/defs.h b/kernel/defs.h index 3564db4..049569e 100644 --- a/kernel/defs.h +++ b/kernel/defs.h @@ -159,7 +159,7 @@ void            kvminithart(void);  void            kvmmap(pagetable_t, uint64, uint64, uint64, int);  int             mappages(pagetable_t, uint64, uint64, uint64, int);  pagetable_t     uvmcreate(void); -void            uvminit(pagetable_t, uchar *, uint); +void            uvmfirst(pagetable_t, uchar *, uint);  uint64          uvmalloc(pagetable_t, uint64, uint64);  uint64          uvmdealloc(pagetable_t, uint64, uint64);  int             uvmcopy(pagetable_t, pagetable_t, uint64); diff --git a/kernel/fs.c b/kernel/fs.c index 40c9bd4..53a3a0f 100644 --- a/kernel/fs.c +++ b/kernel/fs.c @@ -109,8 +109,8 @@ bfree(int dev, uint b)  // its size, the number of links referring to it, and the  // list of blocks holding the file's content.  // -// The inodes are laid out sequentially on disk at -// sb.startinode. Each inode has a number, indicating its +// The inodes are laid out sequentially on disk at block +// sb.inodestart. Each inode has a number, indicating its  // position on the disk.  //  // The kernel keeps a table of in-use inodes in memory diff --git a/kernel/plic.c b/kernel/plic.c index 5acba39..d4fd122 100644 --- a/kernel/plic.c +++ b/kernel/plic.c @@ -21,7 +21,8 @@ plicinithart(void)  {    int hart = cpuid(); -  // set uart's enable bit for this hart's S-mode.  +  // set enable bits for this hart's S-mode +  // for the uart and virtio disk.    *(uint32*)PLIC_SENABLE(hart)= (1 << UART0_IRQ) | (1 << VIRTIO0_IRQ);    // set this hart's S-mode priority threshold to 0. diff --git a/kernel/proc.c b/kernel/proc.c index 22e7ce4..2d0ffa1 100644 --- a/kernel/proc.c +++ b/kernel/proc.c @@ -30,7 +30,8 @@ struct spinlock wait_lock;  // Map it high in memory, followed by an invalid  // guard page.  void -proc_mapstacks(pagetable_t kpgtbl) { +proc_mapstacks(pagetable_t kpgtbl) +{    struct proc *p;    for(p = proc; p < &proc[NPROC]; p++) { @@ -42,7 +43,7 @@ proc_mapstacks(pagetable_t kpgtbl) {    }  } -// initialize the proc table at boot time. +// initialize the proc table.  void  procinit(void)  { @@ -69,7 +70,8 @@ cpuid()  // Return this CPU's cpu struct.  // Interrupts must be disabled.  struct cpu* -mycpu(void) { +mycpu(void) +{    int id = cpuid();    struct cpu *c = &cpus[id];    return c; @@ -77,7 +79,8 @@ mycpu(void) {  // Return the current struct proc *, or zero if none.  struct proc* -myproc(void) { +myproc(void) +{    push_off();    struct cpu *c = mycpu();    struct proc *p = c->proc; @@ -86,7 +89,8 @@ myproc(void) {  }  int -allocpid() { +allocpid() +{    int pid;    acquire(&pid_lock); @@ -210,7 +214,8 @@ proc_freepagetable(pagetable_t pagetable, uint64 sz)  }  // a user program that calls exec("/init") -// od -t xC initcode +// assembled from ../user/initcode.S +// od -t xC ../user/initcode  uchar initcode[] = {    0x17, 0x05, 0x00, 0x00, 0x13, 0x05, 0x45, 0x02,    0x97, 0x05, 0x00, 0x00, 0x93, 0x85, 0x35, 0x02, @@ -230,9 +235,9 @@ userinit(void)    p = allocproc();    initproc = p; -  // allocate one user page and copy init's instructions +  // allocate one user page and copy initcode's instructions    // and data into it. -  uvminit(p->pagetable, initcode, sizeof(initcode)); +  uvmfirst(p->pagetable, initcode, sizeof(initcode));    p->sz = PGSIZE;    // prepare for the very first "return" from kernel to user. diff --git a/kernel/vm.c b/kernel/vm.c index d5a12a0..3c6f295 100644 --- a/kernel/vm.c +++ b/kernel/vm.c @@ -43,7 +43,7 @@ kvmmake(void)    // the highest virtual address in the kernel.    kvmmap(kpgtbl, TRAMPOLINE, (uint64)trampoline, PGSIZE, PTE_R | PTE_X); -  // map kernel stacks +  // allocate and map a kernel stack for each process.    proc_mapstacks(kpgtbl);    return kpgtbl; @@ -203,12 +203,12 @@ uvmcreate()  // for the very first process.  // sz must be less than a page.  void -uvminit(pagetable_t pagetable, uchar *src, uint sz) +uvmfirst(pagetable_t pagetable, uchar *src, uint sz)  {    char *mem;    if(sz >= PGSIZE) -    panic("inituvm: more than a page"); +    panic("uvmfirst: more than a page");    mem = kalloc();    memset(mem, 0, PGSIZE);    mappages(pagetable, 0, PGSIZE, (uint64)mem, PTE_W|PTE_R|PTE_X|PTE_U); | 
