1 /* 2 * Copyright 2018, Jaroslaw Pelczar <jarek@jpelczar.com> 3 * Distributed under the terms of the MIT License. 4 */ 5 #ifndef _KERNEL_ARCH_ARM64_ARCH_KERNEL_H_ 6 #define _KERNEL_ARCH_ARM64_ARCH_KERNEL_H_ 7 8 9 #include <kernel/arch/cpu.h> 10 11 12 // memory layout 13 #define KERNEL_BASE 0xffff000000000000 14 #define KERNEL_SIZE 0x8000000000 15 #define KERNEL_TOP (KERNEL_BASE + (KERNEL_SIZE - 1)) 16 17 #define USER_BASE 0x1000 18 #define USER_BASE_ANY USER_BASE 19 #define USER_SIZE (0x0001000000000000UL - USER_BASE) 20 #define USER_TOP (0x0001000000000000UL - 1) 21 22 #define KERNEL_USER_DATA_BASE 0x60000000 23 #define USER_STACK_REGION 0x70000000 24 #define USER_STACK_REGION_SIZE ((USER_TOP - USER_STACK_REGION) + 1) 25 26 27 #endif /* _KERNEL_ARCH_ARM64_ARCH_KERNEL_H_ */ 28