diff options
Diffstat (limited to 'src/kernel')
-rw-r--r-- | src/kernel/acpi.c (renamed from src/kernel/libs/acpi.c) | 0 | ||||
-rw-r--r-- | src/kernel/drivers/serial.c (renamed from src/kernel/libs/drivers/serial.c) | 0 | ||||
-rw-r--r-- | src/kernel/drivers/video.c (renamed from src/kernel/libs/drivers/video.c) | 0 | ||||
-rw-r--r-- | src/kernel/include/acpi.h | 39 | ||||
-rw-r--r-- | src/kernel/include/libc.h | 12 | ||||
-rw-r--r-- | src/kernel/include/paging.h | 71 | ||||
-rw-r--r-- | src/kernel/include/serial.h | 16 | ||||
-rw-r--r-- | src/kernel/include/video.h | 51 | ||||
-rw-r--r-- | src/kernel/libc.c (renamed from src/kernel/libs/libc.c) | 0 | ||||
-rw-r--r-- | src/kernel/libs/printf.h | 117 | ||||
-rw-r--r-- | src/kernel/page.c (renamed from src/kernel/libs/page.c) | 0 | ||||
-rw-r--r-- | src/kernel/printf.c (renamed from src/kernel/libs/printf.c) | 0 | ||||
-rw-r--r-- | src/kernel/printf.h (renamed from src/kernel/include/printf.h) | 0 |
13 files changed, 0 insertions, 306 deletions
diff --git a/src/kernel/libs/acpi.c b/src/kernel/acpi.c index 0c22fe4..0c22fe4 100644 --- a/src/kernel/libs/acpi.c +++ b/src/kernel/acpi.c diff --git a/src/kernel/libs/drivers/serial.c b/src/kernel/drivers/serial.c index 25f89ad..25f89ad 100644 --- a/src/kernel/libs/drivers/serial.c +++ b/src/kernel/drivers/serial.c diff --git a/src/kernel/libs/drivers/video.c b/src/kernel/drivers/video.c index ab73bb0..ab73bb0 100644 --- a/src/kernel/libs/drivers/video.c +++ b/src/kernel/drivers/video.c 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/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; diff --git a/src/kernel/libs/libc.c b/src/kernel/libc.c index dc5c0ac..dc5c0ac 100644 --- a/src/kernel/libs/libc.c +++ b/src/kernel/libc.c diff --git a/src/kernel/libs/printf.h b/src/kernel/libs/printf.h deleted file mode 100644 index 6104ccf..0000000 --- a/src/kernel/libs/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/libs/page.c b/src/kernel/page.c index 6f1dd7c..6f1dd7c 100644 --- a/src/kernel/libs/page.c +++ b/src/kernel/page.c diff --git a/src/kernel/libs/printf.c b/src/kernel/printf.c index 14c897d..14c897d 100644 --- a/src/kernel/libs/printf.c +++ b/src/kernel/printf.c diff --git a/src/kernel/include/printf.h b/src/kernel/printf.h index 6104ccf..6104ccf 100644 --- a/src/kernel/include/printf.h +++ b/src/kernel/printf.h |