diff options
author | stefan <stefan@s00.xyz> | 2023-04-04 06:01:50 +0000 |
---|---|---|
committer | stefan <stefan@s00.xyz> | 2023-04-04 06:01:50 +0000 |
commit | 25108684fe235d4296c3cbc480298df209682586 (patch) | |
tree | 59f051e13154764da2b98dfdc1ce66e363d801da /sys/include | |
parent | 254ffbc869c2376e77ecc298dfd396f077e9d58a (diff) | |
download | sv-25108684fe235d4296c3cbc480298df209682586.tar.gz |
build system and some other stuff
Diffstat (limited to 'sys/include')
-rw-r--r-- | sys/include/fdt.h | 37 | ||||
-rw-r--r-- | sys/include/kernel_earlyprintf.h | 6 | ||||
-rw-r--r-- | sys/include/mm/kalloc.h | 11 | ||||
-rw-r--r-- | sys/include/sbi.h | 16 |
4 files changed, 70 insertions, 0 deletions
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 <stdint.h> +#include <endian.h> + +#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 */ + |