- Timestamp:
- 2005-08-31T23:57:30Z (21 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 2a0d782
- Parents:
- 3817ed1
- Location:
- arch/ia32
- Files:
-
- 3 edited
-
_link.ld (modified) (1 diff)
-
src/boot/boot.S (modified) (1 diff)
-
src/interrupt.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
arch/ia32/_link.ld
r3817ed1 rc832cc0a 32 32 *(.rodata*); /* string literals */ 33 33 *(COMMON); /* global variables */ 34 hardcoded_load_address = .; 35 LONG(0xffffffff80008000); 36 hardcoded_ktext_size = .; 37 LONG(ktext_end - ktext_start + (unmapped_ktext_end - unmapped_ktext_start)); 38 hardcoded_kdata_size = .; 39 LONG(kdata_end - kdata_start + (unmapped_kdata_end - unmapped_kdata_start)); 34 40 *(.bss); /* uninitialized static variables */ 35 41 *(K_DATA_END); 36 42 kdata_end = .; 37 43 } 38 39 _hardcoded_ktext_size = ktext_end - ktext_start + (unmapped_ktext_end - unmapped_ktext_start);40 _hardcoded_kdata_size = kdata_end - kdata_start + (unmapped_kdata_end - unmapped_kdata_start);41 _hardcoded_load_address = 0x80008000;42 43 44 } -
arch/ia32/src/boot/boot.S
r3817ed1 rc832cc0a 67 67 call map_kernel # map kernel and turn paging on 68 68 69 movl $_hardcoded_ktext_size, hardcoded_ktext_size70 movl $_hardcoded_kdata_size, hardcoded_kdata_size71 movl $_hardcoded_load_address, hardcoded_load_address72 73 69 call main_bsp # never returns 74 70 -
arch/ia32/src/interrupt.c
r3817ed1 rc832cc0a 64 64 * CPU is cpu_priority_high(). 65 65 */ 66 void trap_dispatcher(__u8 n, __ u32stack[])66 void trap_dispatcher(__u8 n, __native stack[]) 67 67 { 68 68 ASSERT(n < IVT_ITEMS); … … 71 71 } 72 72 73 void null_interrupt(__u8 n, __ u32stack[])73 void null_interrupt(__u8 n, __native stack[]) 74 74 { 75 75 printf("int %d: null_interrupt\n", n); … … 78 78 } 79 79 80 void gp_fault(__u8 n, __ u32stack[])80 void gp_fault(__u8 n, __native stack[]) 81 81 { 82 82 printf("ERROR_WORD=%X, %%eip=%X, %%cs=%X, flags=%X\n", stack[0], stack[1], stack[2], stack[3]); … … 87 87 } 88 88 89 void ss_fault(__u8 n, __ u32stack[])89 void ss_fault(__u8 n, __native stack[]) 90 90 { 91 91 printf("ERROR_WORD=%X, %%eip=%X, %%cs=%X, flags=%X\n", stack[0], stack[1], stack[2], stack[3]); … … 96 96 97 97 98 void nm_fault(__u8 n, __ u32stack[])98 void nm_fault(__u8 n, __native stack[]) 99 99 { 100 100 reset_TS_flag(); … … 110 110 111 111 112 void page_fault(__u8 n, __ u32stack[])112 void page_fault(__u8 n, __native stack[]) 113 113 { 114 114 printf("page fault address: %X\n", read_cr2()); … … 119 119 } 120 120 121 void syscall(__u8 n, __ u32stack[])121 void syscall(__u8 n, __native stack[]) 122 122 { 123 123 printf("cpu%d: syscall\n", CPU->id); … … 125 125 } 126 126 127 void tlb_shootdown_ipi(__u8 n, __ u32stack[])127 void tlb_shootdown_ipi(__u8 n, __native stack[]) 128 128 { 129 129 trap_virtual_eoi(); … … 131 131 } 132 132 133 void wakeup_ipi(__u8 n, __ u32stack[])133 void wakeup_ipi(__u8 n, __native stack[]) 134 134 { 135 135 trap_virtual_eoi();
Note:
See TracChangeset
for help on using the changeset viewer.
