Changeset 1b20da0 in mainline for kernel/arch/ia32
- Timestamp:
- 2018-02-28T17:52:03Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 3061bc1
- Parents:
- df6ded8
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:26:03)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:52:03)
- Location:
- kernel/arch/ia32
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia32/include/arch/asm.h
rdf6ded8 r1b20da0 119 119 "outb %b[val], %w[port]\n" 120 120 :: [val] "a" (val), [port] "d" (port) 121 ); 121 ); 122 122 } else 123 123 *port = val; … … 417 417 { 418 418 asm volatile ( 419 "lidtl %[idtr_reg]\n" 419 "lidtl %[idtr_reg]\n" 420 420 :: [idtr_reg] "m" (*idtr_reg) 421 421 ); -
kernel/arch/ia32/include/arch/atomic.h
rdf6ded8 r1b20da0 220 220 221 221 #ifndef local_atomic_exchange 222 /* 222 /* 223 223 * Issuing a xchg instruction always implies lock prefix semantics. 224 * Therefore, it is cheaper to use a cmpxchg without a lock prefix 224 * Therefore, it is cheaper to use a cmpxchg without a lock prefix 225 225 * in a loop. 226 226 */ -
kernel/arch/ia32/include/arch/boot/memmap_struct.ag
rdf6ded8 r1b20da0 1 # Copyright (c) 2016 Jakub Jermar 1 # Copyright (c) 2016 Jakub Jermar 2 2 # All rights reserved. 3 3 # -
kernel/arch/ia32/include/arch/context_struct.ag
rdf6ded8 r1b20da0 1 # Copyright (c) 2014 Jakub Jermar 1 # Copyright (c) 2014 Jakub Jermar 2 2 # All rights reserved. 3 3 # -
kernel/arch/ia32/include/arch/cpu.h
rdf6ded8 r1b20da0 43 43 #define EFLAGS_ID (1 << 21) 44 44 45 #define CR0_PE (1 << 0) 45 #define CR0_PE (1 << 0) 46 46 #define CR0_TS (1 << 3) 47 47 #define CR0_AM (1 << 18) -
kernel/arch/ia32/include/arch/istate_struct.ag
rdf6ded8 r1b20da0 1 # Copyright (c) 2014 Jakub Jermar 1 # Copyright (c) 2014 Jakub Jermar 2 2 # All rights reserved. 3 3 # -
kernel/arch/ia32/include/arch/mm/page.h
rdf6ded8 r1b20da0 161 161 #define PFERR_CODE_US (1 << 2) 162 162 163 /** When bit on this position is 1, a reserved bit was set in page directory. */ 163 /** When bit on this position is 1, a reserved bit was set in page directory. */ 164 164 #define PFERR_CODE_RSVD (1 << 3) 165 165 -
kernel/arch/ia32/src/asm.S
rdf6ded8 r1b20da0 139 139 * and without the error word. 140 140 */ 141 #define ISTATE_SOFT_SIZE ISTATE_SIZE - (6 * 4) 141 #define ISTATE_SOFT_SIZE ISTATE_SIZE - (6 * 4) 142 142 143 143 /* … … 329 329 .else 330 330 /* 331 * Interrupt: fake up an error word 331 * Interrupt: fake up an error word 332 332 */ 333 333 subl $(ISTATE_SOFT_SIZE + 4), %esp … … 433 433 434 434 interrupt_handlers: 435 .irp cnt, LIST_0_63 435 .irp cnt, LIST_0_63 436 436 handler \cnt 437 437 .endr -
kernel/arch/ia32/src/atomic.S
rdf6ded8 r1b20da0 34 34 35 35 # 36 # This is a bus-and-hyperthreading-friendly implementation of spinlock 36 # This is a bus-and-hyperthreading-friendly implementation of spinlock 37 37 # 38 38 FUNCTION_BEGIN(spinlock_arch) … … 42 42 movl 12(%esp),%ebx 43 43 44 0: 44 0: 45 45 pause # Pentium 4's with HT love this instruction 46 46 movl (%ebx),%eax -
kernel/arch/ia32/src/context.S
rdf6ded8 r1b20da0 39 39 # 40 40 FUNCTION_BEGIN(context_save_arch) 41 movl 0(%esp), %eax # save pc value into eax 42 movl 4(%esp), %edx # address of the context variable to save context to 41 movl 0(%esp), %eax # save pc value into eax 42 movl 4(%esp), %edx # address of the context variable to save context to 43 43 44 44 # save registers to given structure -
kernel/arch/ia32/src/cpu/cpu.c
rdf6ded8 r1b20da0 72 72 void fpu_disable(void) 73 73 { 74 write_cr0(read_cr0() & ~CR0_TS); 74 write_cr0(read_cr0() & ~CR0_TS); 75 75 } 76 76 77 77 void fpu_enable(void) 78 78 { 79 write_cr0(read_cr0() | CR0_TS); 79 write_cr0(read_cr0() | CR0_TS); 80 80 } 81 81 … … 150 150 void cpu_print_report(cpu_t* cpu) 151 151 { 152 printf("cpu%u: (%s family=%u model=%u stepping=%u apicid=%u) %" PRIu16 152 printf("cpu%u: (%s family=%u model=%u stepping=%u apicid=%u) %" PRIu16 153 153 " MHz\n", cpu->id, vendor_str[cpu->arch.vendor], cpu->arch.family, 154 154 cpu->arch.model, cpu->arch.stepping, cpu->arch.id, cpu->frequency_mhz); -
kernel/arch/ia32/src/smp/ap.S
rdf6ded8 r1b20da0 47 47 KDATA=16 48 48 49 /* 49 /* 50 50 * This piece of code is real-mode and is meant to be aligned at 4K boundary. 51 51 * The requirement for such an alignment comes from MP Specification's -
kernel/arch/ia32/src/smp/smp.c
rdf6ded8 r1b20da0 106 106 107 107 /* 108 * SMP initialized, cpus array allocated. Assign each CPU its 108 * SMP initialized, cpus array allocated. Assign each CPU its 109 109 * physical APIC ID. 110 110 */ -
kernel/arch/ia32/src/vreg.c
rdf6ded8 r1b20da0 75 75 gs_load(GDT_SELECTOR(VREG_DES)); 76 76 77 vreg_ptr = NULL; 77 vreg_ptr = NULL; 78 78 } 79 79
Note:
See TracChangeset
for help on using the changeset viewer.