Changeset c832cc0a in mainline
- Timestamp:
- 2005-08-31T23:57:30Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 2a0d782
- Parents:
- 3817ed1
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/amd64/Makefile.inc
r3817ed1 rc832cc0a 27 27 arch/delay.S \ 28 28 arch/amd64.c \ 29 arch/bios/bios.c 30 29 arch/bios/bios.c \ 30 arch/interrupt.c -
arch/amd64/_link.ld
r3817ed1 rc832cc0a 32 32 *(.rodata*); /* string literals */ 33 33 *(COMMON); /* global variables */ 34 hardcoded_load_address = .; 35 QUAD(0xffffffff80008000); 36 hardcoded_ktext_size = .; 37 QUAD(ktext_end - ktext_start + (unmapped_ktext_end - unmapped_ktext_start)); 38 hardcoded_kdata_size = .; 39 QUAD(kdata_end - kdata_start + (unmapped_kdata_end - unmapped_kdata_start)); 40 *(.eh_frame); 34 41 *(.bss); /* uninitialized static variables */ 35 *(.eh_frame);36 42 *(K_DATA_END); 37 43 kdata_end = .; 38 44 } 39 40 _hardcoded_ktext_size = ktext_end - ktext_start + (unmapped_ktext_end - unmapped_ktext_start);41 _hardcoded_kdata_size = kdata_end - kdata_start + (unmapped_kdata_end - unmapped_kdata_start);42 _hardcoded_load_address = 0xffffffff80008000;43 45 } -
arch/amd64/include/asm.h
r3817ed1 rc832cc0a 132 132 } 133 133 134 /** Read CR2 135 * 136 * Return value in CR2 137 * 138 * @return Value read. 139 */ 140 static inline __u32 read_cr2(void) { __u64 v; __asm__ volatile ("movq %%cr2,%0" : "=r" (v)); return v; } 141 142 134 143 extern size_t interrupt_handler_size; 135 144 extern void interrupt_handlers(void); -
arch/amd64/src/dummy.s
r3817ed1 rc832cc0a 43 43 .global frame_arch_init 44 44 .global dummy 45 .global trap_register46 .global trap_virtual_eoi47 .global trap_virtual_enable_irqs48 45 .global rdtsc 49 .global trap_virtual_disable_irqs 50 .global enable_irqs_function 51 .global disable_irqs_function 52 .global eoi_function 53 .global syscall 46 .global reset_TS_flag 47 .global fpu_init 54 48 55 .global null_interrupt56 49 .global interrupt_handler_size 57 .global gp_fault58 .global nm_fault59 .global ss_fault60 50 .global interrupt_handlers 61 .global memcpy62 51 63 null_interrupt:64 52 interrupt_handler_size: 65 53 interrupt_handlers: 66 gp_fault:67 nm_fault:68 ss_fault:69 eoi_function:70 syscall:71 enable_irqs_function:72 disable_irqs_function:73 54 rdtsc: 74 trap_virtual_eoi:75 trap_virtual_enable_irqs:76 trap_virtual_disable_irqs:77 trap_register:78 55 before_thread_runs_arch: 79 56 userspace: … … 90 67 page_arch_init: 91 68 frame_arch_init: 92 memcpy: 93 69 reset_TS_flag: 70 fpu_init: 71 94 72 dummy: 95 73 0: 96 74 ret 75 76 .global memcpy 77 memcpy: 78 jmp _memcpy -
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(); -
arch/mips/_link.ld
r3817ed1 rc832cc0a 28 28 *(.sdata); 29 29 *(.sbss); 30 hardcoded_ktext_size = .; 31 LONG(ktext_end - ktext_start); 32 hardcoded_kdata_size = .; 33 LONG(kdata_end - kdata_start); 34 hardcoded_load_address = .; 35 LONG(0x80000000); 30 36 *(.bss); /* uninitialized static variables */ 31 37 *(.scommon); … … 34 40 35 41 } = 0x00000000 36 37 . = ABSOLUTE(hardcoded_ktext_size);38 .patch_1 : {39 LONG(ktext_end - ktext_start);40 }41 42 . = ABSOLUTE(hardcoded_kdata_size);43 .patch_2 : {44 LONG(kdata_end - kdata_start);45 }46 47 . = ABSOLUTE(hardcoded_load_address);48 .patch_3 : {49 LONG(0x80000000);50 }51 52 42 } -
src/build.amd64
r3817ed1 rc832cc0a 5 5 (cd ../arch/amd64/src;make gencontext;./gencontext) 6 6 # Create links to ia32 architecture 7 for a in drivers bios ; do7 for a in drivers bios interrupt.c; do 8 8 ln -sf ../../../arch/ia32/src/$a ../arch/amd64/src/ 9 9 done
Note:
See TracChangeset
for help on using the changeset viewer.