diff --git a/Makefile b/Makefile index 58f5f42..6d4e088 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,7 @@ ARCH_OBJ := $(addprefix $(BUILD_DIR)/,$(ARCH_C_FILES:.c=.o) $(ARCH_ASM_FILES:.S= # Platform-independent kernel source files #################################### -KERNEL_SRC_DIRS := init kernel +KERNEL_SRC_DIRS := init kernel vm KERNEL_C_FILES := $(foreach dir,$(KERNEL_SRC_DIRS),$(wildcard $(dir)/*.c)) KERNEL_OBJ := $(addprefix $(BUILD_DIR)/,$(KERNEL_C_FILES:.c=.o)) diff --git a/include/socks/vm.h b/include/socks/vm.h new file mode 100644 index 0000000..23e0622 --- /dev/null +++ b/include/socks/vm.h @@ -0,0 +1,31 @@ +#ifndef SOCKS_VM_H_ +#define SOCKS_VM_H_ + +#include +#include + +typedef struct vm_map_entry { + int reserved; +} vm_map_entry_t; + +typedef struct vm_map { + int reserved; +} vm_map_t; + +typedef struct vm_object { + int reserved; +} vm_object_t; + +typedef struct vm_page { + char padding[64]; +} __packed vm_page_t; + +extern kern_status_t vm_bootstrap(void); + +extern vm_map_t *vm_map_create(void); + +extern vm_object_t *vm_object_create(void); + +extern void vm_page_init(vm_page_t *page); + +#endif diff --git a/vm/vm_bootstrap.c b/vm/vm_bootstrap.c new file mode 100644 index 0000000..db19b3e --- /dev/null +++ b/vm/vm_bootstrap.c @@ -0,0 +1,6 @@ +#include + +kern_status_t vm_bootstrap(void) +{ + return KERN_ERR_UNIMPLEMENTED; +} diff --git a/vm/vm_map.c b/vm/vm_map.c new file mode 100644 index 0000000..ef93714 --- /dev/null +++ b/vm/vm_map.c @@ -0,0 +1,7 @@ +#include +#include + +vm_map_t *vm_map_create(void) +{ + return NULL; +} diff --git a/vm/vm_object.c b/vm/vm_object.c new file mode 100644 index 0000000..5c25ff4 --- /dev/null +++ b/vm/vm_object.c @@ -0,0 +1,7 @@ +#include +#include + +vm_object_t *vm_object_create(void) +{ + return NULL; +} diff --git a/vm/vm_page.c b/vm/vm_page.c new file mode 100644 index 0000000..5c631b6 --- /dev/null +++ b/vm/vm_page.c @@ -0,0 +1,6 @@ +#include + +void vm_page_init(vm_page_t *page) +{ + +}