| 13 | ProgramManager programManager; |
| 14 | |
| 15 | void 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 | |
| 36 | extern "C" void setup_kernel() |
| 37 | { |
nothing calls this directly
no test coverage detected