Rev |
Age |
Author |
Path |
Log message |
Diff |
Changes |
1595 |
6653 d 0 h |
palkovsky |
/kernel/trunk/ |
Added kernel circular buffer klog.
Added automatic killing of tasks raising inappropriate exceptions.
TODO: Fix vsnprintf return value(and behaviour according to specs) and remove workaround in klog. |
|
/kernel/trunk/generic/include/console/klog.h /kernel/trunk/generic/src/console/klog.c
/kernel/trunk/Makefile /kernel/trunk/arch/amd64/include/interrupt.h /kernel/trunk/arch/amd64/src/interrupt.c /kernel/trunk/arch/amd64/src/mm/page.c /kernel/trunk/arch/ia32/include/interrupt.h /kernel/trunk/arch/ia32/src/interrupt.c /kernel/trunk/arch/ia32/src/mm/page.c /kernel/trunk/arch/ia64/include/interrupt.h /kernel/trunk/arch/ia64/src/interrupt.c /kernel/trunk/arch/mips32/include/arg.h /kernel/trunk/arch/mips32/include/exception.h /kernel/trunk/arch/mips32/src/exception.c /kernel/trunk/arch/mips32/src/mm/tlb.c /kernel/trunk/arch/ppc32/include/exception.h /kernel/trunk/arch/ppc32/src/interrupt.c /kernel/trunk/arch/ppc64/include/exception.h /kernel/trunk/arch/sparc64/include/interrupt.h /kernel/trunk/generic/include/interrupt.h /kernel/trunk/generic/include/ipc/irq.h /kernel/trunk/generic/include/ipc/sysipc.h /kernel/trunk/generic/include/proc/thread.h /kernel/trunk/generic/include/stackarg.h /kernel/trunk/generic/include/stdarg.h /kernel/trunk/generic/src/interrupt/interrupt.c /kernel/trunk/generic/src/ipc/ipc.c /kernel/trunk/generic/src/ipc/irq.c /kernel/trunk/generic/src/ipc/sysipc.c /kernel/trunk/generic/src/main/main.c /kernel/trunk/generic/src/proc/thread.c
|
1411 |
6665 d 14 h |
jermar |
/kernel/trunk/ |
Modify the hierarchy of page fault handlers to pass access mode that caused the fault.
Architectures are required to pass either PF_ACCESS_READ, PF_ACCESS_WRITE or PF_ACCESS_EXEC
to as_page_fault(), depending on the cause of the fault. |
|
/kernel/trunk/arch/amd64/include/mm/page.h /kernel/trunk/arch/amd64/src/mm/page.c /kernel/trunk/arch/ia32/include/interrupt.h /kernel/trunk/arch/ia32/include/mm/page.h /kernel/trunk/arch/ia32/src/interrupt.c /kernel/trunk/arch/ia32/src/mm/page.c /kernel/trunk/arch/ia64/src/mm/tlb.c /kernel/trunk/arch/mips32/src/mm/tlb.c /kernel/trunk/arch/ppc32/src/mm/page.c /kernel/trunk/arch/ppc64/src/mm/page.c /kernel/trunk/generic/include/mm/as.h /kernel/trunk/generic/include/mm/page.h /kernel/trunk/generic/src/lib/elf.c /kernel/trunk/generic/src/mm/as.c
|
1288 |
6684 d 19 h |
jermar |
/kernel/trunk/ |
Complete implementation of copy_from_uspace() and copy_to_uspace()
for amd64 and ia32. Other architectures still compile and run,
but need to implement their own assembly-only memcpy(), memcpy_from_uspace(),
memcpy_to_uspace() and their failover parts. For these architectures
only dummy implementations are provided. |
|
/kernel/trunk/generic/include/syscall/copy.h /kernel/trunk/generic/src/syscall/copy.c
/kernel/trunk/Makefile /kernel/trunk/arch/amd64/include/interrupt.h /kernel/trunk/arch/amd64/src/asm_utils.S /kernel/trunk/arch/amd64/src/mm/page.c /kernel/trunk/arch/ia32/include/interrupt.h /kernel/trunk/arch/ia32/src/asm.S /kernel/trunk/arch/ia32/src/boot/boot.S /kernel/trunk/arch/ia32/src/interrupt.c /kernel/trunk/arch/ia64/include/interrupt.h /kernel/trunk/arch/ia64/src/asm.S /kernel/trunk/arch/ia64/src/mm/tlb.c /kernel/trunk/arch/mips32/include/exception.h /kernel/trunk/arch/mips32/src/asm.S /kernel/trunk/arch/mips32/src/mm/tlb.c /kernel/trunk/arch/ppc32/include/exception.h /kernel/trunk/arch/ppc32/include/interrupt.h /kernel/trunk/arch/ppc32/src/asm.S /kernel/trunk/arch/ppc32/src/mm/tlb.c /kernel/trunk/arch/sparc64/include/interrupt.h /kernel/trunk/arch/sparc64/src/asm.S /kernel/trunk/generic/include/interrupt.h /kernel/trunk/generic/include/mm/as.h /kernel/trunk/generic/include/mm/page.h /kernel/trunk/generic/include/proc/thread.h /kernel/trunk/generic/src/ddi/ddi.c /kernel/trunk/generic/src/ipc/irq.c /kernel/trunk/generic/src/ipc/sysipc.c /kernel/trunk/generic/src/mm/as.c /kernel/trunk/generic/src/mm/slab.c /kernel/trunk/generic/src/printf/vsnprintf.c /kernel/trunk/generic/src/proc/task.c /kernel/trunk/generic/src/proc/thread.c /kernel/trunk/generic/src/smp/ipi.c /kernel/trunk/generic/src/synch/waitq.c
|
1100 |
6730 d 11 h |
palkovsky |
/kernel/trunk/ |
Cleanup of spinlocks, now compiles both ia32 and amd64 with
and without DEBUG_SPINLOCKS. Made spinlocks inline.
Moved syscall_handler to generic (it was identical for ia32,amd64 & mips32).
Made slightly faster syscall for ia32.
Made better interrupt routines for ia32.
Allow not saving non-scratch registers during interrupt on ia32,amd64,mips32.
Aligned interrupt handlers on ia32,amd64, this should prevent problems
with different instruction lengths. |
|
/kernel/trunk/arch/amd64/include/atomic.h /kernel/trunk/arch/amd64/include/syscall.h /kernel/trunk/arch/amd64/src/interrupt.c /kernel/trunk/arch/amd64/src/syscall.c /kernel/trunk/arch/ia32/include/atomic.h /kernel/trunk/arch/ia32/include/interrupt.h /kernel/trunk/arch/ia32/src/asm.S /kernel/trunk/arch/ia32/src/interrupt.c /kernel/trunk/arch/mips32/include/exception.h /kernel/trunk/arch/mips32/src/exception.c /kernel/trunk/arch/mips32/src/start.S /kernel/trunk/generic/include/synch/spinlock.h /kernel/trunk/generic/include/syscall/syscall.h /kernel/trunk/generic/src/lib/func.c /kernel/trunk/generic/src/synch/spinlock.c /kernel/trunk/generic/src/syscall/syscall.c /kernel/trunk/kernel.config
|
1077 |
6733 d 18 h |
palkovsky |
/kernel/trunk/ |
Modified debugger to be able to coexist in AS watch mode and SMP. |
|
/kernel/trunk/arch/amd64/include/debugger.h /kernel/trunk/arch/amd64/include/interrupt.h /kernel/trunk/arch/amd64/src/debugger.c /kernel/trunk/arch/amd64/src/proc/scheduler.c /kernel/trunk/arch/ia32/include/interrupt.h /kernel/trunk/arch/ia32/src/proc/scheduler.c /kernel/trunk/test/thread/thread1/test.c
|
1074 |
6733 d 20 h |
palkovsky |
/kernel/trunk/ |
Ported AMD64 debugger to ia32 and enabled AS watchpoint to ia32 as well. |
|
/kernel/trunk/arch/ia32/include/debugger.h /kernel/trunk/arch/ia32/src/debugger.c
/kernel/trunk/arch/amd64/src/debugger.c /kernel/trunk/arch/amd64/src/proc/scheduler.c /kernel/trunk/arch/ia32/Makefile.inc /kernel/trunk/arch/ia32/include/asm.h /kernel/trunk/arch/ia32/include/cpu.h /kernel/trunk/arch/ia32/include/interrupt.h /kernel/trunk/arch/ia32/src/ia32.c /kernel/trunk/arch/ia32/src/proc/scheduler.c /kernel/trunk/kernel.config
|
1019 |
6735 d 15 h |
vana |
/kernel/trunk/arch/ia32/ |
ia32 MMX and SSEx support |
|
/kernel/trunk/arch/ia32/include/cpu.h /kernel/trunk/arch/ia32/include/cpuid.h /kernel/trunk/arch/ia32/include/fpu_context.h /kernel/trunk/arch/ia32/include/interrupt.h /kernel/trunk/arch/ia32/src/cpu/cpu.c /kernel/trunk/arch/ia32/src/fpu_context.c /kernel/trunk/arch/ia32/src/interrupt.c /kernel/trunk/arch/ia32/src/pm.c
|
958 |
6737 d 11 h |
jermar |
/kernel/trunk/ |
Nicer ia32 interrupt handlers and structures holding interrupted context data.
Unify the name holding interrupted context data on all architectures to be istate. |
|
/kernel/trunk/arch/amd64/include/context.h /kernel/trunk/arch/amd64/include/interrupt.h /kernel/trunk/arch/amd64/src/interrupt.c /kernel/trunk/arch/ia32/include/interrupt.h /kernel/trunk/arch/ia32/include/types.h /kernel/trunk/arch/ia32/src/asm.S /kernel/trunk/arch/ia32/src/drivers/i8254.c /kernel/trunk/arch/ia32/src/drivers/i8259.c /kernel/trunk/arch/ia32/src/ia32.c /kernel/trunk/arch/ia32/src/interrupt.c /kernel/trunk/arch/ia32/src/mm/page.c /kernel/trunk/arch/ia32/src/pm.c /kernel/trunk/arch/ia32/src/smp/apic.c /kernel/trunk/arch/ia64/include/interrupt.h /kernel/trunk/arch/ia64/include/mm/tlb.h /kernel/trunk/arch/ia64/include/types.h /kernel/trunk/arch/ia64/src/interrupt.c /kernel/trunk/arch/ia64/src/mm/tlb.c /kernel/trunk/arch/mips32/include/debugger.h /kernel/trunk/arch/mips32/include/exception.h /kernel/trunk/arch/mips32/include/mm/tlb.h /kernel/trunk/arch/mips32/include/thread.h /kernel/trunk/arch/mips32/src/debugger.c /kernel/trunk/arch/mips32/src/drivers/arc.c /kernel/trunk/arch/mips32/src/drivers/msim.c /kernel/trunk/arch/mips32/src/drivers/serial.c /kernel/trunk/arch/mips32/src/exception.c /kernel/trunk/arch/mips32/src/fpu_context.c /kernel/trunk/arch/mips32/src/interrupt.c /kernel/trunk/arch/mips32/src/mm/tlb.c /kernel/trunk/arch/sparc64/include/drivers/tick.h /kernel/trunk/arch/sparc64/src/drivers/tick.c /kernel/trunk/genarch/src/i8042/i8042.c /kernel/trunk/generic/include/interrupt.h /kernel/trunk/generic/include/typedefs.h /kernel/trunk/generic/src/interrupt/interrupt.c
|
825 |
6769 d 14 h |
jermar |
/kernel/trunk/ |
Remove WAKEUP_IPI stuff.
Make it possible to use PAGE_GLOBAL on ia32, amd64 and mips32.
Make ia32 and amd64 map the kernel using PAGE_GLOBAL. |
|
/kernel/trunk/arch/amd64/include/interrupt.h /kernel/trunk/arch/amd64/include/mm/page.h /kernel/trunk/arch/amd64/src/amd64.c /kernel/trunk/arch/amd64/src/interrupt.c /kernel/trunk/arch/amd64/src/mm/page.c /kernel/trunk/arch/ia32/include/interrupt.h /kernel/trunk/arch/ia32/include/mm/page.h /kernel/trunk/arch/ia32/src/ia32.c /kernel/trunk/arch/ia32/src/interrupt.c /kernel/trunk/arch/ia32/src/mm/page.c /kernel/trunk/arch/mips32/include/mm/page.h /kernel/trunk/contrib/conf/msim.conf
|
576 |
6831 d 6 h |
palkovsky |
/kernel/trunk/ |
Changed ia32 & amd64 to use exc_register instead of trap_register.
Fixed dependency list building. I hope you all have 'makedepend' installed,
if you don't it's time to install it, as CC -M builds the dependency
list without directory names..and it just does not work. |
|
/kernel/trunk/Makefile /kernel/trunk/arch/amd64/src/amd64.c /kernel/trunk/arch/amd64/src/asm_utils.S /kernel/trunk/arch/amd64/src/interrupt.c /kernel/trunk/arch/amd64/src/mm/page.c /kernel/trunk/arch/amd64/src/pm.c /kernel/trunk/arch/ia32/include/i8042.h /kernel/trunk/arch/ia32/include/i8254.h /kernel/trunk/arch/ia32/include/i8259.h /kernel/trunk/arch/ia32/include/interrupt.h /kernel/trunk/arch/ia32/include/smp/apic.h /kernel/trunk/arch/ia32/src/asm.S /kernel/trunk/arch/ia32/src/drivers/i8042.c /kernel/trunk/arch/ia32/src/drivers/i8254.c /kernel/trunk/arch/ia32/src/drivers/i8259.c /kernel/trunk/arch/ia32/src/ia32.c /kernel/trunk/arch/ia32/src/interrupt.c /kernel/trunk/arch/ia32/src/mm/page.c /kernel/trunk/arch/ia32/src/pm.c /kernel/trunk/arch/ia32/src/smp/apic.c
|
534 |
6836 d 12 h |
jermar |
/ |
Rename HelenOS/SPARTAN to HelenOS/kernel again. |
|
/kernel
/SPARTAN
|
532 |
6836 d 12 h |
jermar |
/ |
Revert renaming of HelenOS/SPARTAN to HelenOS/kernel because of important pending patch. |
|
/SPARTAN
/kernel
|
515 |
6846 d 13 h |
jermar |
/kernel/trunk/ |
SMP cleanup continued.
Add nice type for IO APIC ID register.
Replace some magic numbers with more descriptive macros. |
|
/kernel/trunk/arch/ia32/include/interrupt.h /kernel/trunk/arch/ia32/include/smp/apic.h /kernel/trunk/arch/ia32/src/smp/apic.c /kernel/trunk/genarch/include/acpi/madt.h /kernel/trunk/genarch/src/acpi/matd.c
|
501 |
6848 d 16 h |
jermar |
/ |
Rename HelenOS/SPARTAN to HelenOS/kernel. |
|
/kernel
/SPARTAN
|
206 |
6931 d 21 h |
palkovsky |
/SPARTAN/trunk/ |
Better types for ia32 drivers, so that they can be reused in amd64.
Build script cleanup amd64.
New code / not working yet / in amd64. |
|
/SPARTAN/trunk/arch/amd64/src/amd64.c /SPARTAN/trunk/arch/amd64/src/delay.S
/SPARTAN/trunk/arch/amd64/Makefile.inc /SPARTAN/trunk/arch/amd64/include/asm.h /SPARTAN/trunk/arch/amd64/include/interrupt.h /SPARTAN/trunk/arch/amd64/include/pm.h /SPARTAN/trunk/arch/amd64/include/types.h /SPARTAN/trunk/arch/amd64/src/boot/boot.S /SPARTAN/trunk/arch/amd64/src/dummy.s /SPARTAN/trunk/arch/amd64/src/pm.c /SPARTAN/trunk/arch/ia32/include/i8042.h /SPARTAN/trunk/arch/ia32/include/i8254.h /SPARTAN/trunk/arch/ia32/include/i8259.h /SPARTAN/trunk/arch/ia32/include/interrupt.h /SPARTAN/trunk/arch/ia32/include/pm.h /SPARTAN/trunk/arch/ia32/src/acpi/acpi.c /SPARTAN/trunk/arch/ia32/src/drivers/i8042.c /SPARTAN/trunk/arch/ia32/src/drivers/i8254.c /SPARTAN/trunk/arch/ia32/src/drivers/i8259.c /SPARTAN/trunk/src/build.amd64 /SPARTAN/trunk/src/clean.amd64
|
84 |
7035 d 20 h |
vana |
/SPARTAN/trunk/ |
IA-32 FPU lazy context switching.
Doesn't work on Bochs and sometimes produces wrong results on P4.
Seems to work on VMware and PII.
Build script for IA-32 changed to build floppy images (image.bin) 1440K long. |
|
/SPARTAN/trunk/test/fp /SPARTAN/trunk/test/fp/fp0 /SPARTAN/trunk/test/fp/fp0/test.c
/SPARTAN/trunk/arch/ia32/boot/Makefile /SPARTAN/trunk/arch/ia32/include/interrupt.h /SPARTAN/trunk/arch/ia32/src/fpu_context.c /SPARTAN/trunk/arch/ia32/src/interrupt.c /SPARTAN/trunk/arch/ia32/src/pm.c /SPARTAN/trunk/src/Makefile.config
|
73 |
7043 d 10 h |
vana |
/SPARTAN/trunk/ |
Finished FPU lazy context switching - first version. I have not tested it and there are many things which must be changed when
it runs first time OK. |
|
/SPARTAN/trunk/arch/ia32/include/interrupt.h /SPARTAN/trunk/arch/ia32/src/fpu_context.c /SPARTAN/trunk/arch/ia32/src/interrupt.c /SPARTAN/trunk/arch/ia32/src/pm.c /SPARTAN/trunk/doc/TODO /SPARTAN/trunk/include/fpu_context.h /SPARTAN/trunk/include/proc/thread.h /SPARTAN/trunk/src/proc/scheduler.c /SPARTAN/trunk/src/proc/thread.c
|
7 |
7120 d 20 h |
jermar |
/SPARTAN/trunk/ |
New IPI for waking up idle CPU's halted in scheduler.
Added architecture-independent ipi_broadcast(). |
|
/SPARTAN/trunk/arch/ia32/src/smp/ipi.c /SPARTAN/trunk/include/smp
/SPARTAN/trunk/arch/ia32/Makefile.inc /SPARTAN/trunk/arch/ia32/include/interrupt.h /SPARTAN/trunk/arch/ia32/src/ia32.c /SPARTAN/trunk/arch/ia32/src/interrupt.c /SPARTAN/trunk/arch/ia32/src/mm/tlb.c /SPARTAN/trunk/src/mm/tlb.c /SPARTAN/trunk/src/proc/thread.c
|
6 |
7121 d 23 h |
jermar |
/SPARTAN/trunk/ |
shootdown vs. shutdown |
|
/SPARTAN/trunk/arch/ia32/include/interrupt.h /SPARTAN/trunk/arch/ia32/src/ia32.c /SPARTAN/trunk/arch/ia32/src/interrupt.c /SPARTAN/trunk/arch/ia32/src/mm/tlb.c /SPARTAN/trunk/include/mm/tlb.h /SPARTAN/trunk/src/mm/tlb.c /SPARTAN/trunk/src/mm/vm.c
|
5 |
7122 d 10 h |
jermar |
/SPARTAN/trunk/ |
TLB shootdown. |
|
/SPARTAN/trunk/arch/ia32/include/apic.h /SPARTAN/trunk/arch/ia32/include/interrupt.h /SPARTAN/trunk/arch/ia32/src/ia32.c /SPARTAN/trunk/arch/ia32/src/interrupt.c /SPARTAN/trunk/arch/ia32/src/mm/page.c /SPARTAN/trunk/arch/ia32/src/mm/tlb.c /SPARTAN/trunk/arch/ia32/src/smp/apic.c /SPARTAN/trunk/include/mm/tlb.h /SPARTAN/trunk/src/main/main.c /SPARTAN/trunk/src/mm/tlb.c /SPARTAN/trunk/src/mm/vm.c
|