summaryrefslogtreecommitdiff
path: root/main.c
blob: 24793cd6787614e0ac2a042659d357cb506f71bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "types.h"
#include "param.h"
#include "memlayout.h"
#include "riscv.h"
#include "defs.h"

// Bootstrap processor starts running C code here.
// Allocate a real stack and switch to it, first
// doing some setup required for memory allocator to work.
void
main(int hartid)
{
  w_tp(hartid);    // save hartid where cpuid() can find it
  uartinit();      // serial port
  consoleinit();
  printf("entering main() on hart %d\n", hartid);
  kinit();         // physical page allocator
  kvminit();       // kernel page table
  procinit();      // process table
  trapinit();      // trap vectors
  plicinit();      // set up interrupt controller
  binit();         // buffer cache
  fileinit();      // file table
  ramdiskinit();   // disk
  userinit();      // first user process

  scheduler();        
}