summaryrefslogtreecommitdiff
path: root/src/kernel/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/include')
-rw-r--r--src/kernel/include/acpi.h39
-rw-r--r--src/kernel/include/libc.h12
-rw-r--r--src/kernel/include/paging.h71
-rw-r--r--src/kernel/include/printf.h117
-rw-r--r--src/kernel/include/serial.h16
-rw-r--r--src/kernel/include/video.h51
6 files changed, 0 insertions, 306 deletions
diff --git a/src/kernel/include/acpi.h b/src/kernel/include/acpi.h
deleted file mode 100644
index c15e044..0000000
--- a/src/kernel/include/acpi.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <stdint.h>
-#include <libc.h>
-
-struct rsdp_v1 {
- char sig[8];
- uint8_t checksum;
- char OEMID[6];
- uint8_t version;
- uint32_t rsdt_addr;
-
-} __attribute__((packed));
-
-struct rsdp_v2 {
- struct rsdp_v1 v1;
- uint32_t len;
- uint64_t xsdt_addr;
- uint8_t extended_checksum;
- uint8_t reserved[3];
-} __attribute__((packed));
-
-
-typedef union rsdp_t {
- struct rsdp_v1 v1;
- struct rsdp_v2 v2;
-} rsdp_t;
-
-struct acpi_header {
- char sig[4];
- uint32_t length;
- uint8_t revision;
- uint8_t checksum;
- char OEMID[6];
- char OEMTableID[8];
- uint32_t OEMRevision;
- uint32_t creator_id;
- uint32_t creator_revision;
-} __attribute__((packed));
-
-rsdp_t *find_RSDP();
diff --git a/src/kernel/include/libc.h b/src/kernel/include/libc.h
deleted file mode 100644
index cdf6dbc..0000000
--- a/src/kernel/include/libc.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef _STRING_H_
-#define _STRING_H_
-#include <stddef.h>
-
-int strcmp(const char *str1, const char *str2);
-int strncmp(const char *str1, const char *str2, size_t n);
-void strcpy(char *dest, char *src);
-void memcpy(void *dest, void *src, size_t n); //TODO
-int memcmp(const void *s1, const void *s2, size_t n);
-void bzero(const void *dest, size_t size);
-int ceil(float n1);
-#endif
diff --git a/src/kernel/include/paging.h b/src/kernel/include/paging.h
deleted file mode 100644
index 267da43..0000000
--- a/src/kernel/include/paging.h
+++ /dev/null
@@ -1,71 +0,0 @@
-#include <stdbool.h>
-//paging errors
-#define PAGEMAP_LOCATION 0x4000
-#ifndef _PAGE_H_
-#define _PAGE_H_
-#include <stdint.h>
-
-#define PAGE_VIRT_UNALIGNED 0x01
-#define PAGE_PHYS_UNALIGNED 0x02
-#define PAGE_PHYS_INVALID 0x03
-#define PAGE_VIRT_INVALID 0x04
-
-//*
-typedef struct __attribute__((packed)) {
- unsigned int present : 1; // present, must be one when accessed.
- unsigned int read_write : 1; // if set to one, read and write is set
- unsigned int user : 1; // another bit we'll never use, for seperating CPL 0-2 and 3+
- unsigned int writethrough_cache : 1; // honestly maybe I should look into caching
- unsigned int cachable : 1; // hardware chaching. 0 is enabled, whats the worst that could happen?
- unsigned int accessed : 1; // we'll never use any of these!
- unsigned int zg0 : 1; // needs to be (and will be) zero'd
- unsigned int size : 1;
- unsigned int zg1 : 1; // needs to be (and will be) zero'd
- unsigned int software_marks : 3; // available for our own use, I doubt we'll use it in such a simple thing
-
- uintptr_t base_ptr : 40;
- unsigned int sign:11;
-} page_entry;
-
-
-typedef struct __attribute__((packed)) {
- page_entry pml4e[512];
- page_entry pdpe[512];
- page_entry pde[512];
- page_entry pte[512];
-} page_table;
-
-#define MEM_AVAILABLE 1
-#define MEM_RESERVED 2
-#define MEM_APCI_RECLAIMABLE 3
-#define MEM_APCI_NVS 4
-#define MEM_BAD 5
-
-#define PAGE_SIZE_4K 12
-#define PAGE_SIZE_2M 21
-#define PAGE_SIZE_1G 30
-
-struct memory_table {
- uint64_t base;
- uint64_t length;
- uint32_t type;
- uint32_t ACPI;
-} __attribute__((packed));
-
-struct phys_map {
- uint64_t map_size; //this way we won't have to calculate it every time
- void *chunk_start;
- uint64_t chunk_size;
- uint64_t *buddies;
-} __attribute__((packed));
-
-
-extern void* _meminfo_loc;
-extern void* _stage2_pagetable;
-
-bool map_page(void *virtual_addr, void *physical_addr, uint8_t PAGE_SIZE);
-void debug_print_memory();
-void create_pagetable_stage2(uint64_t free_mem);
-void init_memory();
-#endif
-
diff --git a/src/kernel/include/printf.h b/src/kernel/include/printf.h
deleted file mode 100644
index 6104ccf..0000000
--- a/src/kernel/include/printf.h
+++ /dev/null
@@ -1,117 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-// \author (c) Marco Paland (info@paland.com)
-// 2014-2019, PALANDesign Hannover, Germany
-//
-// \license The MIT License (MIT)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-//
-// \brief Tiny printf, sprintf and snprintf implementation, optimized for speed on
-// embedded systems with a very limited resources.
-// Use this instead of bloated standard/newlib printf.
-// These routines are thread safe and reentrant.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef _PRINTF_H_
-#define _PRINTF_H_
-
-#include <stdarg.h>
-#include <stddef.h>
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/**
- * Output a character to a custom device like UART, used by the printf() function
- * This function is declared here only. You have to write your custom implementation somewhere
- * \param character Character to output
- */
-void _putchar(char character);
-
-
-/**
- * Tiny printf implementation
- * You have to implement _putchar if you use printf()
- * To avoid conflicts with the regular printf() API it is overridden by macro defines
- * and internal underscore-appended functions like printf_() are used
- * \param format A string that specifies the format of the output
- * \return The number of characters that are written into the array, not counting the terminating null character
- */
-#define printf printf_
-int printf_(const char* format, ...);
-
-
-/**
- * Tiny sprintf implementation
- * Due to security reasons (buffer overflow) YOU SHOULD CONSIDER USING (V)SNPRINTF INSTEAD!
- * \param buffer A pointer to the buffer where to store the formatted string. MUST be big enough to store the output!
- * \param format A string that specifies the format of the output
- * \return The number of characters that are WRITTEN into the buffer, not counting the terminating null character
- */
-#define sprintf sprintf_
-int sprintf_(char* buffer, const char* format, ...);
-
-
-/**
- * Tiny snprintf/vsnprintf implementation
- * \param buffer A pointer to the buffer where to store the formatted string
- * \param count The maximum number of characters to store in the buffer, including a terminating null character
- * \param format A string that specifies the format of the output
- * \param va A value identifying a variable arguments list
- * \return The number of characters that COULD have been written into the buffer, not counting the terminating
- * null character. A value equal or larger than count indicates truncation. Only when the returned value
- * is non-negative and less than count, the string has been completely written.
- */
-#define snprintf snprintf_
-#define vsnprintf vsnprintf_
-int snprintf_(char* buffer, size_t count, const char* format, ...);
-int vsnprintf_(char* buffer, size_t count, const char* format, va_list va);
-
-
-/**
- * Tiny vprintf implementation
- * \param format A string that specifies the format of the output
- * \param va A value identifying a variable arguments list
- * \return The number of characters that are WRITTEN into the buffer, not counting the terminating null character
- */
-#define vprintf vprintf_
-int vprintf_(const char* format, va_list va);
-
-
-/**
- * printf with output function
- * You may use this as dynamic alternative to printf() with its fixed _putchar() output
- * \param out An output function which takes one character and an argument pointer
- * \param arg An argument pointer for user data passed to output function
- * \param format A string that specifies the format of the output
- * \return The number of characters that are sent to the output function, not counting the terminating null character
- */
-int fctprintf(void (*out)(char character, void* arg), void* arg, const char* format, ...);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif // _PRINTF_H_
diff --git a/src/kernel/include/serial.h b/src/kernel/include/serial.h
deleted file mode 100644
index 824e245..0000000
--- a/src/kernel/include/serial.h
+++ /dev/null
@@ -1,16 +0,0 @@
-//these com values are just guesses! Figure out how to find em later if you want
-#ifndef _SERIAL_H_
-#define _SERIAL_H_
-
-#include <stdint.h>
-#define COM1 0x3f8
-#define COM2 0x2f8
-#define COM3 0x3e8
-#define COM4 0x2e8
-
-
-int init_serial(uint16_t port);
-void serial_out(uint16_t port, char *string);
-void _putchar_serial(uint16_t port, char character);
-
-#endif
diff --git a/src/kernel/include/video.h b/src/kernel/include/video.h
deleted file mode 100644
index 82d3423..0000000
--- a/src/kernel/include/video.h
+++ /dev/null
@@ -1,51 +0,0 @@
-#include <stdint.h>
-void dump_video();
-
-//this struct was stolen from wiki.osdev.org
-struct mode_info {
- uint16_t attributes;
- uint8_t window_a;
- uint8_t window_b;
- uint16_t granularity;
- uint16_t window_size;
- uint16_t segment_a;
- uint16_t segment_b;
- uint32_t win_func_ptr;
- uint16_t pitch;
- uint16_t width;
- uint16_t height;
- uint8_t w_char;
- uint8_t y_char;
- uint8_t planes;
- uint8_t bpp;
- uint8_t banks;
- uint8_t memory_model;
- uint8_t bank_size;
- uint8_t image_pages;
- uint8_t reserved0;
- uint8_t red_mask;
- uint8_t red_position;
- uint8_t green_mask;
- uint8_t green_position;
- uint8_t blue_mask;
- uint8_t blue_position;
- uint8_t reserved_mask;
- uint8_t reserved_position;
- uint8_t direct_color_attributes;
-
- uint32_t framebuffer;
- uint32_t off_screen_mem_off;
- uint16_t off_screen_mem_size;
- uint8_t reserved1[206];
-} __attribute__((packed));
-
-struct vbe_infoblock {
- char vbe_signature[4];
- uint16_t vbe_version;
- uint16_t oem_ptr[2];
- uint8_t capabilities[4];
- uint32_t videomodeptr;
- uint16_t total_memory;
-} __attribute__((packed));
-
-extern void *_vbe_infoblock;