Changeset dc0b964 in mainline for kernel/arch/amd64/include
- Timestamp:
- 2010-11-24T14:23:14Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 85369b1, b89e1d3
- Parents:
- 8b3bff5
- Location:
- kernel/arch/amd64/include
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/amd64/include/context.h
r8b3bff5 rdc0b964 27 27 */ 28 28 29 /** @addtogroup amd64 29 /** @addtogroup amd64 30 30 * @{ 31 31 */ … … 44 44 * panic sooner or later 45 45 */ 46 #define SP_DELTA 1646 #define SP_DELTA 16 47 47 48 48 #define context_set(c, _pc, stack, size) \ -
kernel/arch/amd64/include/context_offset.h
r8b3bff5 rdc0b964 30 30 #define KERN_amd64_CONTEXT_OFFSET_H_ 31 31 32 #define OFFSET_SP 0x033 #define OFFSET_PC 0x834 #define OFFSET_RBX 0x1035 #define OFFSET_RBP 0x1836 #define OFFSET_R12 0x2037 #define OFFSET_R13 0x2838 #define OFFSET_R14 0x3039 #define OFFSET_R15 0x3832 #define OFFSET_SP 0x00 33 #define OFFSET_PC 0x08 34 #define OFFSET_RBX 0x10 35 #define OFFSET_RBP 0x18 36 #define OFFSET_R12 0x20 37 #define OFFSET_R13 0x28 38 #define OFFSET_R14 0x30 39 #define OFFSET_R15 0x38 40 40 41 41 #ifdef KERNEL 42 # define OFFSET_IPL0x4042 #define OFFSET_IPL 0x40 43 43 #else 44 # define OFFSET_TLS0x4044 #define OFFSET_TLS 0x40 45 45 #endif 46 46 47 47 #ifdef __ASM__ 48 48 49 # ctx: address of the structure with saved context 49 # ctx: address of the structure with saved context 50 50 # pc: return address 51 51 .macro CONTEXT_SAVE_ARCH_CORE ctx:req pc:req … … 61 61 .endm 62 62 63 # ctx: address of the structure with saved context 63 # ctx: address of the structure with saved context 64 64 .macro CONTEXT_RESTORE_ARCH_CORE ctx:req pc:req 65 65 movq OFFSET_R15(\ctx), %r15 … … 68 68 movq OFFSET_R12(\ctx), %r12 69 69 movq OFFSET_RBP(\ctx), %rbp 70 movq OFFSET_RBX(\ctx), %rbx 70 movq OFFSET_RBX(\ctx), %rbx 71 71 72 72 movq OFFSET_SP(\ctx), %rsp # ctx->sp -> %rsp -
kernel/arch/amd64/include/cpu.h
r8b3bff5 rdc0b964 36 36 #define KERN_amd64_CPU_H_ 37 37 38 #define RFLAGS_CF (1 << 0)39 #define RFLAGS_PF (1 << 2)40 #define RFLAGS_AF (1 << 4)41 #define RFLAGS_ZF (1 << 6)42 #define RFLAGS_SF (1 << 7)43 #define RFLAGS_TF (1 << 8)44 #define RFLAGS_IF (1 << 9)45 #define RFLAGS_DF (1 << 10)46 #define RFLAGS_OF (1 << 11)47 #define RFLAGS_NT (1 << 14)48 #define RFLAGS_RF (1 << 16)38 #define RFLAGS_CF (1 << 0) 39 #define RFLAGS_PF (1 << 2) 40 #define RFLAGS_AF (1 << 4) 41 #define RFLAGS_ZF (1 << 6) 42 #define RFLAGS_SF (1 << 7) 43 #define RFLAGS_TF (1 << 8) 44 #define RFLAGS_IF (1 << 9) 45 #define RFLAGS_DF (1 << 10) 46 #define RFLAGS_OF (1 << 11) 47 #define RFLAGS_NT (1 << 14) 48 #define RFLAGS_RF (1 << 16) 49 49 50 50 #define EFER_MSR_NUM 0xc0000080 -
kernel/arch/amd64/include/debugger.h
r8b3bff5 rdc0b964 41 41 42 42 /* Flags that are passed to breakpoint_add function */ 43 #define BKPOINT_INSTR 0x1 44 #define BKPOINT_WRITE 0x2 45 #define BKPOINT_READ_WRITE 0x4 43 #define BKPOINT_INSTR 0x1U 44 #define BKPOINT_WRITE 0x2U 45 #define BKPOINT_READ_WRITE 0x4U 46 46 47 #define BKPOINT_CHECK_ZERO 0x8 47 #define BKPOINT_CHECK_ZERO 0x8U 48 48 49 49 -
kernel/arch/amd64/include/istate.h
r8b3bff5 rdc0b964 37 37 38 38 #ifdef KERNEL 39 39 40 #include <typedefs.h> 40 41 #include <trace.h> 41 #else 42 43 #else /* KERNEL */ 44 42 45 #include <sys/types.h> 46 43 47 #define NO_TRACE 44 #endif 48 49 #endif /* KERNEL */ 45 50 46 51 /** This is passed to interrupt handlers */ … … 61 66 uint64_t r14; 62 67 uint64_t r15; 63 uint64_t alignment; /* align rbp_frame on multiple of 16 */64 uint64_t rbp_frame; /* imitation of frame pointer linkage */65 uint64_t rip_frame; /* imitation of return address linkage */66 uint64_t error_word; /* real or fake error word */68 uint64_t alignment; /* align rbp_frame on multiple of 16 */ 69 uint64_t rbp_frame; /* imitation of frame pointer linkage */ 70 uint64_t rip_frame; /* imitation of return address linkage */ 71 uint64_t error_word; /* real or fake error word */ 67 72 uint64_t rip; 68 73 uint64_t cs; 69 74 uint64_t rflags; 70 uint64_t rsp; /* only if istate_t is from uspace */71 uint64_t ss; /* only if istate_t is from uspace */75 uint64_t rsp; /* only if istate_t is from uspace */ 76 uint64_t ss; /* only if istate_t is from uspace */ 72 77 } istate_t; 73 78 … … 75 80 NO_TRACE static inline int istate_from_uspace(istate_t *istate) 76 81 { 77 return !(istate->rip & 0x8000000000000000);82 return !(istate->rip & UINT64_C(0x8000000000000000)); 78 83 } 79 84 -
kernel/arch/amd64/include/mm/as.h
r8b3bff5 rdc0b964 36 36 #define KERN_amd64_AS_H_ 37 37 38 #define ADDRESS_SPACE_HOLE_START 0x0000800000000000ULL39 #define ADDRESS_SPACE_HOLE_END 0xffff7fffffffffffULL38 #define ADDRESS_SPACE_HOLE_START UINT64_C(0x0000800000000000) 39 #define ADDRESS_SPACE_HOLE_END UINT64_C(0xffff7fffffffffff) 40 40 41 41 #define KERNEL_ADDRESS_SPACE_SHADOWED_ARCH 0 42 42 43 #define KERNEL_ADDRESS_SPACE_START_ARCH 0xffff800000000000ULL44 #define KERNEL_ADDRESS_SPACE_END_ARCH 0xffffffffffffffffULL43 #define KERNEL_ADDRESS_SPACE_START_ARCH UINT64_C(0xffff800000000000) 44 #define KERNEL_ADDRESS_SPACE_END_ARCH UINT64_C(0xffffffffffffffff) 45 45 46 #define USER_ADDRESS_SPACE_START_ARCH 0x0000000000000000ULL47 #define USER_ADDRESS_SPACE_END_ARCH 0x00007fffffffffffULL46 #define USER_ADDRESS_SPACE_START_ARCH UINT64_C(0x0000000000000000) 47 #define USER_ADDRESS_SPACE_END_ARCH UINT64_C(0x00007fffffffffff) 48 48 49 49 #define USTACK_ADDRESS_ARCH (USER_ADDRESS_SPACE_END_ARCH - (PAGE_SIZE - 1)) -
kernel/arch/amd64/include/mm/page.h
r8b3bff5 rdc0b964 55 55 #ifndef __ASM__ 56 56 57 #define KA2PA(x) (((uintptr_t) (x)) - 0xffff800000000000)58 #define PA2KA(x) (((uintptr_t) (x)) + 0xffff800000000000)57 #define KA2PA(x) (((uintptr_t) (x)) - UINT64_C(0xffff800000000000)) 58 #define PA2KA(x) (((uintptr_t) (x)) + UINT64_C(0xffff800000000000)) 59 59 60 60 #else /* __ASM__ */ … … 78 78 79 79 /* Macros calculating indices into page tables in each level. */ 80 #define PTL0_INDEX_ARCH(vaddr) (((vaddr) >> 39) & 0x1ff )81 #define PTL1_INDEX_ARCH(vaddr) (((vaddr) >> 30) & 0x1ff )82 #define PTL2_INDEX_ARCH(vaddr) (((vaddr) >> 21) & 0x1ff )83 #define PTL3_INDEX_ARCH(vaddr) (((vaddr) >> 12) & 0x1ff )80 #define PTL0_INDEX_ARCH(vaddr) (((vaddr) >> 39) & 0x1ffU) 81 #define PTL1_INDEX_ARCH(vaddr) (((vaddr) >> 30) & 0x1ffU) 82 #define PTL2_INDEX_ARCH(vaddr) (((vaddr) >> 21) & 0x1ffU) 83 #define PTL3_INDEX_ARCH(vaddr) (((vaddr) >> 12) & 0x1ffU) 84 84 85 85 /* Get PTE address accessors for each level. */ … … 205 205 pte_t *p = &pt[i]; 206 206 207 p->addr_12_31 = (a >> 12) & 0xfffff;207 p->addr_12_31 = (a >> 12) & UINT32_C(0xfffff); 208 208 p->addr_32_51 = a >> 32; 209 209 } -
kernel/arch/amd64/include/pm.h
r8b3bff5 rdc0b964 75 75 #define AR_WRITABLE (1 << 1) 76 76 #define AR_READABLE (1 << 1) 77 #define AR_TSS (0x09 )78 #define AR_INTERRUPT (0x0e )79 #define AR_TRAP (0x0f )77 #define AR_TSS (0x09U) 78 #define AR_INTERRUPT (0x0eU) 79 #define AR_TRAP (0x0fU) 80 80 81 81 #define DPL_KERNEL (PL_KERNEL << 5) -
kernel/arch/amd64/include/types.h
r8b3bff5 rdc0b964 50 50 } fncptr_t; 51 51 52 /* Formats for uintptr_t, size_t */ 53 #define PRIp "llx" 54 #define PRIs "llu" 55 56 /* Formats for (u)int8_t, (u)int16_t, (u)int32_t, (u)int64_t and (u)native_t */ 57 #define PRId8 "d" 58 #define PRId16 "d" 59 #define PRId32 "d" 60 #define PRId64 "lld" 61 #define PRIdn "lld" 62 63 #define PRIu8 "u" 64 #define PRIu16 "u" 65 #define PRIu32 "u" 66 #define PRIu64 "llu" 67 #define PRIun "llu" 68 69 #define PRIx8 "x" 70 #define PRIx16 "x" 71 #define PRIx32 "x" 72 #define PRIx64 "llx" 73 #define PRIxn "llx" 52 #define PRIp PRIx64 /**< Format for uintptr_t. */ 53 #define PRIs PRIu64 /**< Format for size_t. */ 54 #define PRIdn PRId64 /**< Format for native_t. */ 55 #define PRIun PRIu64 /**< Format for unative_t. */ 56 #define PRIxn PRIx64 /**< Format for hexadecimal unative_t. */ 74 57 75 58 #endif
Note:
See TracChangeset
for help on using the changeset viewer.
