diff --git a/sys/include/extern.h b/sys/include/extern.h new file mode 100644 index 0000000..848bcea --- /dev/null +++ b/sys/include/extern.h @@ -0,0 +1,6 @@ +#ifndef EXTERN_H +#define EXTERN_H + +extern void *malloc(s32 size); + +#endif diff --git a/sys/include/memory.h b/sys/include/memory.h index 5ee51bc..6bbfa35 100644 --- a/sys/include/memory.h +++ b/sys/include/memory.h @@ -19,12 +19,12 @@ * so this complicated structure is utilized instead. */ -#define START 0xb80f1 +#define START 0xb80f0 #define SIZE 16384 -#define USABLE(m) m + sizeof(s32) + sizeof(void *) -#define NEXT(m) (void *) *m -#define SIZE(m) (s32) m[sizeof(void *)] -void *start = 0x0; +struct allocated { + void *ref; + s32 size; +} #endif diff --git a/sys/include/process.h b/sys/include/process.h new file mode 100644 index 0000000..4f7b87d --- /dev/null +++ b/sys/include/process.h @@ -0,0 +1,10 @@ +#ifndef PROCESS_H +#define PROCESS_H + +struct process { + void *prstart; + s32 prsize; + s32 pid; +} + +#endif diff --git a/sys/lib.c b/sys/lib.c index 93f23a7..9c5306b 100644 --- a/sys/lib.c +++ b/sys/lib.c @@ -89,4 +89,4 @@ printf(const char *format, ...) vga_write(format[i], 1, 0x0f); } } -} \ No newline at end of file +} diff --git a/sys/memory.c b/sys/memory.c index a9216c4..0653927 100644 --- a/sys/memory.c +++ b/sys/memory.c @@ -7,4 +7,4 @@ void *malloc(s32 size) { u32 addr = curr; curr += size; return (void*)addr; -} \ No newline at end of file +} diff --git a/sys/sysinit.c b/sys/sysinit.c index 2c76af4..c6891d6 100644 --- a/sys/sysinit.c +++ b/sys/sysinit.c @@ -1,4 +1,6 @@ #include +#include + void sysinit(void) @@ -49,4 +51,8 @@ sysinit(void) vga_write("indian", 6, 0x07); printf("%s%x", "Omh", 0x2a); + vga_write("Starting omOS...", 16, 0x0F); + + s8 *start = (s8 *) 0xb8fa0; + start[0] = 'h'; }