Changeset 985e26d2 in mainline for kernel/arch/amd64
- Timestamp:
- 2010-01-07T19:06:59Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 8190e63
- Parents:
- 743e17b (diff), eca2435 (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/amd64
- Files:
-
- 6 edited
-
Makefile.inc (modified) (1 diff)
-
include/mm/page.h (modified) (1 diff)
-
include/types.h (modified) (1 diff)
-
src/amd64.c (modified) (3 diffs)
-
src/cpu/cpu.c (modified) (2 diffs)
-
src/interrupt.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/amd64/Makefile.inc
r743e17b r985e26d2 34 34 BFD = binary 35 35 TARGET = amd64-linux-gnu 36 CLANG_ARCH = x86_64 36 37 TOOLCHAIN_DIR = $(CROSS_PREFIX)/amd64 37 38 -
kernel/arch/amd64/include/mm/page.h
r743e17b r985e26d2 177 177 #define PFERR_CODE_ID (1 << 4) 178 178 179 static inline int get_pt_flags(pte_t *pt, size_t i) 179 /** Page Table Entry. */ 180 typedef struct { 181 unsigned present : 1; 182 unsigned writeable : 1; 183 unsigned uaccessible : 1; 184 unsigned page_write_through : 1; 185 unsigned page_cache_disable : 1; 186 unsigned accessed : 1; 187 unsigned dirty : 1; 188 unsigned unused: 1; 189 unsigned global : 1; 190 unsigned soft_valid : 1; /**< Valid content even if present bit is cleared. */ 191 unsigned avl : 2; 192 unsigned addr_12_31 : 30; 193 unsigned addr_32_51 : 21; 194 unsigned no_execute : 1; 195 } __attribute__ ((packed)) pte_t; 196 197 static inline unsigned int get_pt_flags(pte_t *pt, size_t i) 180 198 { 181 199 pte_t *p = &pt[i]; -
kernel/arch/amd64/include/types.h
r743e17b r985e26d2 82 82 #define PRIxn "llx" 83 83 84 /** Page Table Entry. */85 typedef struct {86 unsigned present : 1;87 unsigned writeable : 1;88 unsigned uaccessible : 1;89 unsigned page_write_through : 1;90 unsigned page_cache_disable : 1;91 unsigned accessed : 1;92 unsigned dirty : 1;93 unsigned unused: 1;94 unsigned global : 1;95 unsigned soft_valid : 1; /**< Valid content even if present bit is cleared. */96 unsigned avl : 2;97 unsigned addr_12_31 : 30;98 unsigned addr_32_51 : 21;99 unsigned no_execute : 1;100 } __attribute__ ((packed)) pte_t;101 102 84 #endif 103 85 -
kernel/arch/amd64/src/amd64.c
r743e17b r985e26d2 67 67 #include <ddi/irq.h> 68 68 #include <sysinfo/sysinfo.h> 69 #include <memstr.h> 69 70 70 71 /** Disable I/O on non-privileged levels … … 211 212 i8042_wire(i8042_instance, kbrd); 212 213 trap_virtual_enable_irqs(1 << IRQ_KBD); 214 trap_virtual_enable_irqs(1 << IRQ_MOUSE); 213 215 } 214 216 } … … 218 220 * self-sufficient. 219 221 */ 220 sysinfo_set_item_val("kbd", NULL, true); 221 sysinfo_set_item_val("kbd.inr", NULL, IRQ_KBD); 222 sysinfo_set_item_val("kbd.address.physical", NULL, 222 sysinfo_set_item_val("i8042", NULL, true); 223 sysinfo_set_item_val("i8042.inr_a", NULL, IRQ_KBD); 224 sysinfo_set_item_val("i8042.inr_b", NULL, IRQ_MOUSE); 225 sysinfo_set_item_val("i8042.address.physical", NULL, 223 226 (uintptr_t) I8042_BASE); 224 sysinfo_set_item_val(" kbd.address.kernel", NULL,227 sysinfo_set_item_val("i8042.address.kernel", NULL, 225 228 (uintptr_t) I8042_BASE); 226 229 #endif -
kernel/arch/amd64/src/cpu/cpu.c
r743e17b r985e26d2 130 130 CPU->arch.vendor = VendorUnknown; 131 131 if (has_cpuid()) { 132 cpuid( 0, &info);132 cpuid(INTEL_CPUID_LEVEL, &info); 133 133 134 134 /* … … 150 150 } 151 151 152 cpuid( 1, &info);152 cpuid(INTEL_CPUID_STANDARD, &info); 153 153 CPU->arch.family = (info.cpuid_eax >> 8) & 0xf; 154 154 CPU->arch.model = (info.cpuid_eax >> 4) & 0xf; -
kernel/arch/amd64/src/interrupt.c
r743e17b r985e26d2 98 98 } 99 99 100 static void de_fault(int n, istate_t *istate) 101 { 102 fault_if_from_uspace(istate, "Divide error."); 103 decode_istate(n, istate); 104 panic("Divide error."); 105 } 106 100 107 /** General Protection Fault. */ 101 108 static void gp_fault(int n, istate_t *istate) … … 200 207 } 201 208 209 exc_register(0, "de_fault", (iroutine) de_fault); 202 210 exc_register(7, "nm_fault", (iroutine) nm_fault); 203 211 exc_register(12, "ss_fault", (iroutine) ss_fault);
Note:
See TracChangeset
for help on using the changeset viewer.
