From 25108684fe235d4296c3cbc480298df209682586 Mon Sep 17 00:00:00 2001 From: stefan Date: Tue, 4 Apr 2023 06:01:50 +0000 Subject: build system and some other stuff --- sys/include/fdt.h | 37 +++++++++++++++++++++++++++++++++++++ sys/include/kernel_earlyprintf.h | 6 ++++++ sys/include/mm/kalloc.h | 11 +++++++++++ sys/include/sbi.h | 16 ++++++++++++++++ 4 files changed, 70 insertions(+) create mode 100644 sys/include/fdt.h create mode 100644 sys/include/kernel_earlyprintf.h create mode 100644 sys/include/mm/kalloc.h create mode 100644 sys/include/sbi.h (limited to 'sys/include') diff --git a/sys/include/fdt.h b/sys/include/fdt.h new file mode 100644 index 0000000..92e5695 --- /dev/null +++ b/sys/include/fdt.h @@ -0,0 +1,37 @@ +#include +#include + +#ifndef _FDT_H +#define _FDT_H + +#define FDT_HEADER_MAGIC 0xd00dfeed + +static inline uint32_t +fdt_uint32(uint32_t x) +{ +#if BYTE_ORDER == LITTLE_ENDIAN +return __bswap32(x); +#else +return x; +#endif +} + +struct fdt_header { + uint32_t magic; /* FDT_HEADER_MAGIC */ + uint32_t totalsize; /* size of the whole device tree, in bytes */ + uint32_t off_dt_struct; /* offset to structure block */ + uint32_t off_dt_strings; /* offset to strings block */ + uint32_t off_mem_rsvmap; /* offset to memory reservation block */ + uint32_t version; /* dt spec version */ + uint32_t last_comp_version; /* last compatible version. spec says this needs to be 16 */ + uint32_t boot_cpuid_phys; /* physical id of the systems boot cpu */ + uint32_t size_dt_strings; /* size of strings block */ + uint32_t size_dt_struct; /* size of structure block */ +}; + +struct fdt_reserve_entry { + uint64_t address; + uint64_t size; +}; + +#endif /* _FDT_H */ diff --git a/sys/include/kernel_earlyprintf.h b/sys/include/kernel_earlyprintf.h new file mode 100644 index 0000000..051d7e5 --- /dev/null +++ b/sys/include/kernel_earlyprintf.h @@ -0,0 +1,6 @@ +#ifndef _KPRINTF_H +#define _KPRINTF_H + +int kernel_earlyputs(const char *); + +#endif /* _KPRINTF_H */ diff --git a/sys/include/mm/kalloc.h b/sys/include/mm/kalloc.h new file mode 100644 index 0000000..e99d624 --- /dev/null +++ b/sys/include/mm/kalloc.h @@ -0,0 +1,11 @@ +#ifndef _KALLOC_H +#define _KALLOC_H + +void *kalloc(void); + +void *kzalloc(void); + +void kfree(void *); + +#endif /* _KALLOC_H */ + diff --git a/sys/include/sbi.h b/sys/include/sbi.h new file mode 100644 index 0000000..0dbcd02 --- /dev/null +++ b/sys/include/sbi.h @@ -0,0 +1,16 @@ +#ifndef _SBICALL_H +#define _SBICALL_H + +struct sbiret { + long err; + long val; +}; + +struct sbiret sbi_ecall(int _eid, int _fid, unsigned long _a0, unsigned long _a1, + unsigned long _a2, unsigned long _a3, unsigned long _a4, unsigned long _a5); + +void sbi_console_putchar(int c); +void sbi_shutdown(void); + +#endif /* _SBICALL_H */ + -- cgit v1.2.3