diff options
author | Tyler Murphy <=> | 2023-07-22 11:05:30 -0400 |
---|---|---|
committer | Tyler Murphy <=> | 2023-07-22 11:05:30 -0400 |
commit | da094d011f52a8f1ce879810cd1a4bbbe34f08d4 (patch) | |
tree | 4649b04705b49c2eb5f8691a5d9951351f65df04 /kernel/include | |
parent | refactoring (diff) | |
download | finix-main.tar.gz finix-main.tar.bz2 finix-main.zip |
Diffstat (limited to 'kernel/include')
-rw-r--r-- | kernel/include/arch.h (renamed from kernel/include/sys.h) | 2 | ||||
-rw-r--r-- | kernel/include/arch/i686/acpi.h | 4 | ||||
-rw-r--r-- | kernel/include/arch/i686/mboot.h | 8 | ||||
-rw-r--r-- | kernel/include/arch/i686/paging.h | 33 | ||||
-rw-r--r-- | kernel/include/drivers/vga.h | 1 | ||||
-rw-r--r-- | kernel/include/memory.h | 7 | ||||
-rw-r--r-- | kernel/include/time.h | 5 |
7 files changed, 54 insertions, 6 deletions
diff --git a/kernel/include/sys.h b/kernel/include/arch.h index 003f85c..eb233f0 100644 --- a/kernel/include/sys.h +++ b/kernel/include/arch.h @@ -1,5 +1,7 @@ #pragma once +#include <stddef.h> + extern void arch_init(void *boot_info); extern void arch_update(void); extern void arch_halt(void); diff --git a/kernel/include/arch/i686/acpi.h b/kernel/include/arch/i686/acpi.h index bb35010..47bcc88 100644 --- a/kernel/include/arch/i686/acpi.h +++ b/kernel/include/arch/i686/acpi.h @@ -102,5 +102,5 @@ struct FixedACPIDescriptionTable { struct GenericAddressStructure x_gpe1_block; }; -void acpi_init(void *rsdp); -void acpi_poweroff(void); +extern void acpi_init(void); +extern void acpi_poweroff(void); diff --git a/kernel/include/arch/i686/mboot.h b/kernel/include/arch/i686/mboot.h index 394071f..2ebc983 100644 --- a/kernel/include/arch/i686/mboot.h +++ b/kernel/include/arch/i686/mboot.h @@ -12,7 +12,7 @@ struct BootTag { uint32_t type; uint32_t size; union { - char cmdline[CMDLINE_MAX]; + char cmdline[CMDLINE_MAX + 1]; struct MemoryMap *memory_map; struct RootSystemDescriptionPointer *rsdp; } data; @@ -26,9 +26,9 @@ struct BootInfo { enum BootTagID { ID_CMDLINE = 0, - iD_MEMORYMAP = 6, + ID_MEMORYMAP = 6, ID_RSDP = 14 }; -void load_boot_info(void* boot_info); -bool get_boot_tag(enum BootTagID id, struct BootTag **tag); +extern void load_boot_info(void* boot_info); +extern bool get_boot_tag(enum BootTagID id, struct BootTag **tag); diff --git a/kernel/include/arch/i686/paging.h b/kernel/include/arch/i686/paging.h new file mode 100644 index 0000000..3c0c335 --- /dev/null +++ b/kernel/include/arch/i686/paging.h @@ -0,0 +1,33 @@ +#pragma once + +#include <stddef.h> + +struct page_directory_t { // 32 bits + unsigned int present : 1; + unsigned int rw_flag : 1; + unsigned int access_lvl : 1; //0 is for only ring0. 1 is for anybody. + unsigned int write_through : 1; + unsigned int cache_off : 1; + unsigned int accessed : 1; + unsigned int zero : 1; + unsigned int page_size : 1; + unsigned int unused : 4; + unsigned int tbl_addr : 20; +}; + +struct page_table_t { // 32 bits + unsigned int present : 1; + unsigned int rw_flag : 1; + unsigned int access_lvl : 1; //0 is for only ring0. 1 is for anybody. + unsigned int write_through : 1; + unsigned int cache_off : 1; + unsigned int accessed : 1; + unsigned int dirty : 1; + unsigned int zero : 1; + unsigned int global : 1; + unsigned int reserved : 3; + unsigned int phys_addr : 20; +}; + +extern void ident_map_addr(void *addr, size_t len); +extern void ident_unmap_addr(void *addr, size_t len); diff --git a/kernel/include/drivers/vga.h b/kernel/include/drivers/vga.h index 68e8690..6b3b796 100644 --- a/kernel/include/drivers/vga.h +++ b/kernel/include/drivers/vga.h @@ -27,6 +27,7 @@ enum vga_color { void vgatext_write_char(char c, enum vga_color color, uint8_t x, uint8_t y); void vgatext_write_data(uint16_t data, uint16_t index); void vgatext_write_buf(const uint16_t *buffer); + void vgatext_cur_mov(uint8_t x, uint8_t y); void vgatext_cur_resize(uint8_t start, uint8_t end); void vgatext_cur_visible(bool visible); diff --git a/kernel/include/memory.h b/kernel/include/memory.h index 07a55c0..db8b761 100644 --- a/kernel/include/memory.h +++ b/kernel/include/memory.h @@ -1,6 +1,13 @@ #pragma once +#include <stddef.h> + extern int memory_lock(void); extern int memory_unlock(void); extern void *memory_alloc_page(int); extern int memory_free_page(void* ,int); + +extern void *malloc(size_t size); +extern void free(void *ptr); +extern void *calloc(size_t nobj, size_t size); +extern void *realloc(void *p, size_t size); diff --git a/kernel/include/time.h b/kernel/include/time.h index 2e86a69..7cf0aa0 100644 --- a/kernel/include/time.h +++ b/kernel/include/time.h @@ -37,6 +37,11 @@ extern struct Time get_utctime(void); extern struct Time get_localtime(void); /** + * Return the time on the system clock + */ +extern size_t get_systemtime(void); + +/** * Converts the time into a string format * @param time the current time * @param format see manpage for date |