greatbridf преди 4 години
родител
ревизия
a501e2b69c
променени са 3 файла, в които са добавени 19 реда и са изтрити 0 реда
  1. 2 0
      CMakeLists.txt
  2. 9 0
      include/kernel/errno.h
  3. 8 0
      src/kernel/errno.c

+ 2 - 0
CMakeLists.txt

@@ -32,6 +32,7 @@ endif()
 include_directories(${PROJECT_SOURCE_DIR}/include)
 
 set(KERNEL_MAIN_SOURCES src/kernel_main.c
+                        src/kernel/errno.c
                         src/kernel/interrupt.c
                         src/kernel/stdio.c
                         src/kernel/mem.c
@@ -40,6 +41,7 @@ set(KERNEL_MAIN_SOURCES src/kernel_main.c
                         src/types/buffer.c
                         include/asm/boot.h
                         include/asm/port_io.h
+                        include/kernel/errno.h
                         include/kernel/interrupt.h
                         include/kernel/stdio.h
                         include/kernel/mem.h

+ 9 - 0
include/kernel/errno.h

@@ -0,0 +1,9 @@
+#pragma once
+
+#include <types/types.h>
+
+extern uint32_t* _get_errno(void);
+
+#define errno (*_get_errno())
+
+#define ENOMEM 0

+ 8 - 0
src/kernel/errno.c

@@ -0,0 +1,8 @@
+#include <kernel/errno.h>
+#include <types/types.h>
+
+uint32_t* _get_errno(void)
+{
+    static uint32_t _errno = 0;
+    return &_errno;
+}