diff options
Diffstat (limited to 'kc/api')
| -rw-r--r-- | kc/api/core/memory.h | 15 | ||||
| -rw-r--r-- | kc/api/kc.h | 11 | ||||
| -rw-r--r-- | kc/api/lib.h | 10 |
3 files changed, 36 insertions, 0 deletions
diff --git a/kc/api/core/memory.h b/kc/api/core/memory.h new file mode 100644 index 0000000..b428b15 --- /dev/null +++ b/kc/api/core/memory.h @@ -0,0 +1,15 @@ +/* + * kernel component core - memory management interface + */ +#pragma once + +#include <kc.h> + +#include <stdint.h> + +typedef uint64_t kc_phys_addr; +typedef void * kc_virt_addr; + +kc_phys_addr kcc_page_alloc(void); +void kcc_page_free(kc_phys_addr page); + diff --git a/kc/api/kc.h b/kc/api/kc.h new file mode 100644 index 0000000..c3390b2 --- /dev/null +++ b/kc/api/kc.h @@ -0,0 +1,11 @@ +#pragma once + +extern char kc_image_base; +extern char kc_text_begin; +extern char kc_text_end; +extern char kc_rodata_begin; +extern char kc_data_begin; +extern char kc_data_end; + +#define KC_EXPORT __attribute__((visibility("default"))) + diff --git a/kc/api/lib.h b/kc/api/lib.h new file mode 100644 index 0000000..3bf0eca --- /dev/null +++ b/kc/api/lib.h @@ -0,0 +1,10 @@ +#pragma once + +#include <stddef.h> + +void *memcpy(void *dest, const void *src, size_t size); +void *memmove(void *dest, const void *src, size_t size); +void *memset(void *dest, int val, size_t size); +int memcmp(const void *str1, const void *str2, size_t count); +size_t strlen(const char *s); + |
