blob: e62740c32854e9d35b6e6aa4f3fd614129e0eaf5 (
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
/*
* müll_kernel
*/
// C includes
#include <stddef.h>
// external includes
#include "headers/limine.h"
// limine things
__attribute__((used, section(".limine_requests_start")))
static volatile uint64_t limine_requests_start_marker[] = LIMINE_REQUESTS_START_MARKER;
__attribute__((used, section(".limine_requests")))
static volatile uint64_t limine_base_revision[] = LIMINE_BASE_REVISION(3);
__attribute__((used, section(".limine_requests")))
static volatile struct limine_framebuffer_request framebuffer_request = {
.id = LIMINE_FRAMEBUFFER_REQUEST_ID,
.revision = 0
};
__attribute__((used, section(".limine_requests_end")))
static volatile uint64_t limine_requests_end_marker[] = LIMINE_REQUESTS_END_MARKER;
// API includes
#include "api/io.h"
void kmain(void) __attribute__((noreturn));
void _start(void) {
if (!framebuffer_request.response) {
for (;;) __asm__("hlt");
}
struct limine_framebuffer *fb =
framebuffer_request.response->framebuffers[0];
uint32_t *pix = fb->address;
pix[0] = 0x00FFFFFF; // white pixel
//return kernel_main();
for (;;) __asm__("hlt");
}
|