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();
}
|