Changeset 850235d in mainline for kernel/arch/ia32
- Timestamp:
- 2013-03-10T14:56:21Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 05bab88
- Parents:
- ea906c29 (diff), 2277e03 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- kernel/arch/ia32
- Files:
-
- 2 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia32/Makefile.inc
rea906c29 r850235d 105 105 arch/$(KARCH)/src/boot/memmap.c \ 106 106 arch/$(KARCH)/src/fpu_context.c \ 107 arch/$(KARCH)/src/debugger.c \108 107 arch/$(KARCH)/src/syscall.c -
kernel/arch/ia32/include/arch/istate.h
rea906c29 r850235d 68 68 } istate_t; 69 69 70 #define RPL_USER 3 71 70 72 /** Return true if exception happened while in userspace */ 71 73 NO_TRACE static inline int istate_from_uspace(istate_t *istate) 72 74 { 73 return !(istate->eip & UINT32_C(0x80000000));75 return (istate->cs & RPL_USER) == RPL_USER; 74 76 } 75 77 -
kernel/arch/ia32/src/fpu_context.c
rea906c29 r850235d 37 37 #include <arch.h> 38 38 #include <cpu.h> 39 40 41 /** x87 FPU scr values (P3+ MMX2) */ 42 enum { 43 X87_FLUSH_ZERO_FLAG = (1 << 15), 44 X87_ROUND_CONTROL_MASK = (0x3 << 13), 45 x87_ROUND_TO_NEAREST_EVEN = (0x0 << 13), 46 X87_ROUND_DOWN_TO_NEG_INF = (0x1 << 13), 47 X87_ROUND_UP_TO_POS_INF = (0x2 << 13), 48 X87_ROUND_TO_ZERO = (0x3 << 13), 49 X87_PRECISION_MASK = (1 << 12), 50 X87_UNDERFLOW_MASK = (1 << 11), 51 X87_OVERFLOW_MASK = (1 << 10), 52 X87_ZERO_DIV_MASK = (1 << 9), 53 X87_DENORMAL_OP_MASK = (1 << 8), 54 X87_INVALID_OP_MASK = (1 << 7), 55 X87_DENOM_ZERO_FLAG = (1 << 6), 56 X87_PRECISION_EXC_FLAG = (1 << 5), 57 X87_UNDERFLOW_EXC_FLAG = (1 << 4), 58 X87_OVERFLOW_EXC_FLAG = (1 << 3), 59 X87_ZERO_DIV_EXC_FLAG = (1 << 2), 60 X87_DENORMAL_EXC_FLAG = (1 << 1), 61 X87_INVALID_OP_EXC_FLAG = (1 << 0), 62 63 X87_ALL_MASK = X87_PRECISION_MASK | X87_UNDERFLOW_MASK | X87_OVERFLOW_MASK | X87_ZERO_DIV_MASK | X87_DENORMAL_OP_MASK | X87_INVALID_OP_MASK, 64 }; 65 39 66 40 67 typedef void (*fpu_context_function)(fpu_context_t *fctx); … … 98 125 } 99 126 127 /** Initialize x87 FPU. Mask all exceptions. */ 100 128 void fpu_init() 101 129 { … … 111 139 "ldmxcsr %[help0]\n" 112 140 : [help0] "+m" (help0), [help1] "+r" (help1) 113 : [magic] "i" ( 0x1f80)141 : [magic] "i" (X87_ALL_MASK) 114 142 ); 115 143 } -
kernel/arch/ia32/src/ia32.c
rea906c29 r850235d 45 45 #include <arch/bios/bios.h> 46 46 #include <arch/boot/boot.h> 47 #include <arch/debugger.h>48 47 #include <arch/drivers/i8254.h> 49 48 #include <arch/drivers/i8259.h> … … 118 117 #endif 119 118 120 /* Enable debugger */121 debugger_init();122 119 /* Merge all memory zones to 1 big zone */ 123 120 zone_merge_all();
Note:
See TracChangeset
for help on using the changeset viewer.