MCPcopy Create free account
hub / github.com/YatSenOS/YatSenOS-Tutorial-Volume-1 / first_thread

Function first_thread

lab7/src/2/src/kernel/setup.cpp:15–34  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13ProgramManager programManager;
14
15void first_thread(void *arg)
16{
17 // 第1个线程不可以返回
18 stdio.moveCursor(0);
19 for (int i = 0; i < 25 * 80; ++i)
20 {
21 stdio.print(' ');
22 }
23 stdio.moveCursor(0);
24
25 uint32 memory = *((uint32 *)MEMORY_SIZE_ADDRESS);
26 // ax寄存器保存的内容
27 uint32 low = memory & 0xffff;
28 // bx寄存器保存的内容
29 uint32 high = (memory >> 16) & 0xffff;
30 memory = low * 1024 + high * 64 * 1024;
31 printf("total memory: %d bytes (%d MB)\n", memory, memory / 1024 / 1024);
32
33 asm_halt();
34}
35
36extern "C" void setup_kernel()
37{

Callers

nothing calls this directly

Calls 3

printfFunction · 0.70
moveCursorMethod · 0.45
printMethod · 0.45

Tested by

no test coverage detected