Rev |
Age |
Author |
Path |
Log message |
Diff |
Changes |
81 |
7081 d 7 h |
jermar |
/SPARTAN/trunk/ |
Add SP_DELTA macro for each architecture.
On IA-32, this macro represents two doublewords that must be on the stack when switching to a new stack.
On MIPS, there is no need to fix sp when switching to a new stack.
On IA-64, this macro is used to allocate the 16-byte scratch area.
IA-64 work.
Changes in start.S. More changes to come.
Define memcopy().
Janitorial fixes.
Add missing #include <panic.h> to rwlock4/test.c.
Remove wrong use of inline keyword from both declaration and definition of l_apic_id(). |
|
/SPARTAN/trunk/arch/ia32/include/context.h /SPARTAN/trunk/arch/ia32/include/smp/apic.h /SPARTAN/trunk/arch/ia32/src/smp/apic.c /SPARTAN/trunk/arch/ia64/include/context.h /SPARTAN/trunk/arch/ia64/src/asm.S /SPARTAN/trunk/arch/ia64/src/start.S /SPARTAN/trunk/arch/mips/include/context.h /SPARTAN/trunk/src/main/main.c /SPARTAN/trunk/src/proc/scheduler.c /SPARTAN/trunk/src/proc/thread.c /SPARTAN/trunk/test/synch/rwlock4/test.c
|
76 |
7086 d 8 h |
jermar |
/SPARTAN/trunk/ |
For each architecture, add function/macro FADDR that calculates absolute address of a function referenced by void (* f)(void).
IA-32 and MIPS gcc's use direct addressing (f == FADDR(f)) while IA-64 gcc uses indirect addressing (f != FADDR(f)).
Tweaks in IA-64 Makefile.inc to declare constant gp and main Makefile to consider ASFLAGS when compiling .s targets. |
|
/SPARTAN/trunk/arch/ia32/include/faddr.h /SPARTAN/trunk/arch/ia64/include/faddr.h /SPARTAN/trunk/arch/mips/include/faddr.h
/SPARTAN/trunk/arch/ia64/Makefile.inc /SPARTAN/trunk/src/Makefile /SPARTAN/trunk/src/main/main.c /SPARTAN/trunk/src/proc/scheduler.c /SPARTAN/trunk/src/proc/thread.c
|
75 |
7086 d 10 h |
vana |
/SPARTAN/trunk/ |
Move fpu_owner pointer from cpu_arch_t to cpu_t. |
|
/SPARTAN/trunk/arch/ia32/include/cpu.h /SPARTAN/trunk/arch/ia32/src/cpu/cpu.c /SPARTAN/trunk/arch/ia32/src/fpu_context.c /SPARTAN/trunk/arch/ia32/src/interrupt.c /SPARTAN/trunk/include/cpu.h /SPARTAN/trunk/src/Makefile.config /SPARTAN/trunk/src/proc/scheduler.c
|
73 |
7087 d 6 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
|
68 |
7087 d 8 h |
decky |
/SPARTAN/trunk/ |
NDEBUG debug symbol, ASSERT debug macro, fancier panic() in debug mode
indentation fixes, ASSERTs |
|
/SPARTAN/trunk/arch/ia32/src/debug/panic.s /SPARTAN/trunk/arch/ia32/src/interrupt.c /SPARTAN/trunk/arch/ia32/src/pm.c /SPARTAN/trunk/arch/ia32/src/smp/mps.c /SPARTAN/trunk/arch/ia64/src/fake.s /SPARTAN/trunk/arch/mips/src/cache.c /SPARTAN/trunk/arch/mips/src/exception.c /SPARTAN/trunk/arch/mips/src/interrupt.c /SPARTAN/trunk/arch/mips/src/mm/tlb.c /SPARTAN/trunk/arch/mips/src/panic.s /SPARTAN/trunk/include/list.h /SPARTAN/trunk/include/panic.h /SPARTAN/trunk/include/print.h /SPARTAN/trunk/include/typedefs.h /SPARTAN/trunk/src/debug/print.c /SPARTAN/trunk/src/main/kinit.c /SPARTAN/trunk/src/main/main.c /SPARTAN/trunk/src/mm/frame.c /SPARTAN/trunk/src/mm/heap.c /SPARTAN/trunk/src/mm/vm.c /SPARTAN/trunk/src/proc/scheduler.c /SPARTAN/trunk/src/synch/rwlock.c /SPARTAN/trunk/src/time/timeout.c
|
57 |
7090 d 4 h |
vana |
/SPARTAN/trunk/ |
Begin support for FPU context switching on platforms which can't do it in lazy way. |
|
/SPARTAN/trunk/arch/ia32/src/fpu_context.c /SPARTAN/trunk/arch/ia64/src/fpu_context.c /SPARTAN/trunk/arch/mips/src/fpu_context.c /SPARTAN/trunk/arch/powerpc/src/fpu_context.c /SPARTAN/trunk/include/fpu_context.h /SPARTAN/trunk/include/proc/thread.h /SPARTAN/trunk/src/proc/scheduler.c
|
52 |
7090 d 6 h |
vana |
/SPARTAN/trunk/ |
Move fpu_context switching functions from context.s to fpu_context.c on all platforms.
Add fpu_context.h.
Make before_thread_runs() arch-independent and create arch dependent version before_thread_runs_arch(). |
|
/SPARTAN/trunk/arch/ia32/src/fpu_context.c /SPARTAN/trunk/arch/ia64/src/fpu_context.c /SPARTAN/trunk/arch/mips/src/fpu_context.c /SPARTAN/trunk/arch/powerpc/src/fpu_context.c /SPARTAN/trunk/include/fpu_context.h
/SPARTAN/trunk/arch/ia32/Makefile.inc /SPARTAN/trunk/arch/ia32/src/context.s /SPARTAN/trunk/arch/ia32/src/proc/scheduler.c /SPARTAN/trunk/arch/ia64/Makefile.inc /SPARTAN/trunk/arch/ia64/src/fake.s /SPARTAN/trunk/arch/mips/Makefile.inc /SPARTAN/trunk/arch/mips/src/fake.s /SPARTAN/trunk/arch/powerpc/Makefile.inc /SPARTAN/trunk/include/context.h /SPARTAN/trunk/include/proc/scheduler.h /SPARTAN/trunk/src/proc/scheduler.c
|
22 |
7111 d 10 h |
jermar |
/SPARTAN/trunk/ |
Added before_thread_runs() to cope with TSS of user space tasks. |
|
/SPARTAN/trunk/arch/ia32/src/proc /SPARTAN/trunk/arch/ia32/src/proc/scheduler.c
/SPARTAN/trunk/arch/ia32/Makefile.inc /SPARTAN/trunk/arch/ia32/src/cpu/cpu.c /SPARTAN/trunk/arch/ia32/src/interrupt.c /SPARTAN/trunk/arch/ia32/src/pm.c /SPARTAN/trunk/arch/ia32/src/userspace.c /SPARTAN/trunk/arch/mips/src/fake.s /SPARTAN/trunk/include/proc/scheduler.h /SPARTAN/trunk/src/Makefile.config /SPARTAN/trunk/src/proc/scheduler.c /SPARTAN/trunk/src/proc/thread.c
|
15 |
7119 d 10 h |
jermar |
/SPARTAN/trunk/ |
Introduce macros CPU, THREAD, TASK and use them to replace the->cpu, the->thread, the->task.
Later on, this will make it possible to reference *current* cpu, thread and/or task without the aid from virtual memory. |
|
/SPARTAN/trunk/arch/ia32/src/cpu/cpu.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/arch/ia32/src/smp/apic.c /SPARTAN/trunk/arch/ia32/src/userspace.c /SPARTAN/trunk/arch/mips/src/cpu/cpu.c /SPARTAN/trunk/arch/mips/src/exception.c /SPARTAN/trunk/arch/mips/src/mm/tlb.c /SPARTAN/trunk/include/arch.h /SPARTAN/trunk/src/cpu/cpu.c /SPARTAN/trunk/src/lib/func.c /SPARTAN/trunk/src/main/kinit.c /SPARTAN/trunk/src/main/main.c /SPARTAN/trunk/src/proc/scheduler.c /SPARTAN/trunk/src/proc/task.c /SPARTAN/trunk/src/proc/thread.c /SPARTAN/trunk/src/synch/rwlock.c /SPARTAN/trunk/src/synch/spinlock.c /SPARTAN/trunk/src/synch/waitq.c /SPARTAN/trunk/src/time/clock.c /SPARTAN/trunk/src/time/delay.c /SPARTAN/trunk/src/time/timeout.c /SPARTAN/trunk/test/synch/rwlock2/test.c /SPARTAN/trunk/test/synch/rwlock3/test.c /SPARTAN/trunk/test/synch/rwlock4/test.c /SPARTAN/trunk/test/synch/rwlock5/test.c /SPARTAN/trunk/test/synch/semaphore1/test.c /SPARTAN/trunk/test/synch/semaphore2/test.c
|
11 |
7162 d 5 h |
jermar |
/SPARTAN/trunk/ |
Clean up (ia32 vs. i386).
Header files reorganization. |
|
/SPARTAN/trunk/arch/ia32/include/smp /SPARTAN/trunk/arch/ia32/include/smp/ap.h /SPARTAN/trunk/arch/ia32/include/smp/apic.h /SPARTAN/trunk/arch/ia32/include/smp/atomic.h /SPARTAN/trunk/arch/ia32/include/smp/mp.h /SPARTAN/trunk/arch/mips/include/smp /SPARTAN/trunk/arch/mips/include/smp/atomic.h
/SPARTAN/trunk/arch/ia32/include/ap.h /SPARTAN/trunk/arch/ia32/include/apic.h /SPARTAN/trunk/arch/ia32/include/atomic.h /SPARTAN/trunk/arch/ia32/include/mp.h /SPARTAN/trunk/arch/mips/include/atomic.h
/SPARTAN/trunk/arch/ia32/_link.ld /SPARTAN/trunk/arch/ia32/include/asm.h /SPARTAN/trunk/arch/ia32/include/context.h /SPARTAN/trunk/arch/ia32/include/cpu.h /SPARTAN/trunk/arch/ia32/include/i8254.h /SPARTAN/trunk/arch/ia32/include/mm/frame.h /SPARTAN/trunk/arch/ia32/include/mm/page.h /SPARTAN/trunk/arch/ia32/include/mm/vm.h /SPARTAN/trunk/arch/ia32/include/thread.h /SPARTAN/trunk/arch/ia32/src/mm/page.c /SPARTAN/trunk/arch/ia32/src/pm.c /SPARTAN/trunk/arch/ia32/src/smp/apic.c /SPARTAN/trunk/arch/ia32/src/smp/ipi.c /SPARTAN/trunk/arch/ia32/src/smp/mp.c /SPARTAN/trunk/src/main/kinit.c /SPARTAN/trunk/src/main/main.c /SPARTAN/trunk/src/mm/tlb.c /SPARTAN/trunk/src/proc/scheduler.c /SPARTAN/trunk/src/synch/spinlock.c /SPARTAN/trunk/src/time/clock.c
|
1 |
7169 d 11 h |
jermar |
/SPARTAN/ |
Initial import |
|
/SPARTAN /SPARTAN/branches /SPARTAN/tags /SPARTAN/trunk /SPARTAN/trunk/arch /SPARTAN/trunk/arch/ia32 /SPARTAN/trunk/arch/ia32/Makefile.inc /SPARTAN/trunk/arch/ia32/_link.ld /SPARTAN/trunk/arch/ia32/boot /SPARTAN/trunk/arch/ia32/boot/Makefile /SPARTAN/trunk/arch/ia32/boot/boot.S /SPARTAN/trunk/arch/ia32/boot/boot.ld /SPARTAN/trunk/arch/ia32/include /SPARTAN/trunk/arch/ia32/include/ap.h /SPARTAN/trunk/arch/ia32/include/apic.h /SPARTAN/trunk/arch/ia32/include/asm.h /SPARTAN/trunk/arch/ia32/include/atomic.h /SPARTAN/trunk/arch/ia32/include/context.h /SPARTAN/trunk/arch/ia32/include/cpu.h /SPARTAN/trunk/arch/ia32/include/cpuid.h /SPARTAN/trunk/arch/ia32/include/ega.h /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/mm /SPARTAN/trunk/arch/ia32/include/mm/frame.h /SPARTAN/trunk/arch/ia32/include/mm/page.h /SPARTAN/trunk/arch/ia32/include/mm/vm.h /SPARTAN/trunk/arch/ia32/include/mp.h /SPARTAN/trunk/arch/ia32/include/pm.h /SPARTAN/trunk/arch/ia32/include/thread.h /SPARTAN/trunk/arch/ia32/include/types.h /SPARTAN/trunk/arch/ia32/src /SPARTAN/trunk/arch/ia32/src/asm.s /SPARTAN/trunk/arch/ia32/src/boot /SPARTAN/trunk/arch/ia32/src/boot/boot.S /SPARTAN/trunk/arch/ia32/src/context.s /SPARTAN/trunk/arch/ia32/src/cpu /SPARTAN/trunk/arch/ia32/src/cpu/cpu.c /SPARTAN/trunk/arch/ia32/src/cpuid.s /SPARTAN/trunk/arch/ia32/src/debug /SPARTAN/trunk/arch/ia32/src/debug/panic.s /SPARTAN/trunk/arch/ia32/src/delay.s /SPARTAN/trunk/arch/ia32/src/drivers /SPARTAN/trunk/arch/ia32/src/drivers/ega.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/arch/ia32/src/ia32.c /SPARTAN/trunk/arch/ia32/src/interrupt.c /SPARTAN/trunk/arch/ia32/src/mm /SPARTAN/trunk/arch/ia32/src/mm/frame.c /SPARTAN/trunk/arch/ia32/src/mm/page.c /SPARTAN/trunk/arch/ia32/src/mm/tlb.c /SPARTAN/trunk/arch/ia32/src/pm.c /SPARTAN/trunk/arch/ia32/src/smp /SPARTAN/trunk/arch/ia32/src/smp/ap.S /SPARTAN/trunk/arch/ia32/src/smp/apic.c /SPARTAN/trunk/arch/ia32/src/smp/atomic.S /SPARTAN/trunk/arch/ia32/src/smp/mp.c /SPARTAN/trunk/arch/ia32/src/userspace.c /SPARTAN/trunk/arch/mips /SPARTAN/trunk/arch/mips/Makefile.inc /SPARTAN/trunk/arch/mips/_link.ld /SPARTAN/trunk/arch/mips/boot /SPARTAN/trunk/arch/mips/boot/Makefile /SPARTAN/trunk/arch/mips/boot/boot.s /SPARTAN/trunk/arch/mips/include /SPARTAN/trunk/arch/mips/include/asm /SPARTAN/trunk/arch/mips/include/asm.h /SPARTAN/trunk/arch/mips/include/asm/macro.h /SPARTAN/trunk/arch/mips/include/atomic.h /SPARTAN/trunk/arch/mips/include/cache.h /SPARTAN/trunk/arch/mips/include/context.h /SPARTAN/trunk/arch/mips/include/cp0.h /SPARTAN/trunk/arch/mips/include/cpu.h /SPARTAN/trunk/arch/mips/include/exception.h /SPARTAN/trunk/arch/mips/include/interrupt.h /SPARTAN/trunk/arch/mips/include/mm /SPARTAN/trunk/arch/mips/include/mm/frame.h /SPARTAN/trunk/arch/mips/include/mm/page.h /SPARTAN/trunk/arch/mips/include/mm/tlb.h /SPARTAN/trunk/arch/mips/include/mm/vm.h /SPARTAN/trunk/arch/mips/include/thread.h /SPARTAN/trunk/arch/mips/include/types.h /SPARTAN/trunk/arch/mips/src /SPARTAN/trunk/arch/mips/src/asm.s /SPARTAN/trunk/arch/mips/src/cache.c /SPARTAN/trunk/arch/mips/src/context.S /SPARTAN/trunk/arch/mips/src/cpu /SPARTAN/trunk/arch/mips/src/cpu/cpu.c /SPARTAN/trunk/arch/mips/src/exception.c /SPARTAN/trunk/arch/mips/src/fake.s /SPARTAN/trunk/arch/mips/src/interrupt.c /SPARTAN/trunk/arch/mips/src/lib /SPARTAN/trunk/arch/mips/src/lib/memstr.c /SPARTAN/trunk/arch/mips/src/mips.c /SPARTAN/trunk/arch/mips/src/mm /SPARTAN/trunk/arch/mips/src/mm/frame.c /SPARTAN/trunk/arch/mips/src/mm/page.c /SPARTAN/trunk/arch/mips/src/mm/tlb.c /SPARTAN/trunk/arch/mips/src/panic.s /SPARTAN/trunk/arch/mips/src/putchar.c /SPARTAN/trunk/arch/mips/src/start.S /SPARTAN/trunk/arch/powerpc /SPARTAN/trunk/arch/powerpc/Makefile.inc /SPARTAN/trunk/arch/powerpc/_link.ld /SPARTAN/trunk/arch/powerpc/boot /SPARTAN/trunk/arch/powerpc/boot/Makefile /SPARTAN/trunk/arch/powerpc/boot/boot.s /SPARTAN/trunk/arch/powerpc/src /SPARTAN/trunk/arch/powerpc/src/powerpc.c /SPARTAN/trunk/doc /SPARTAN/trunk/doc/TODO /SPARTAN/trunk/doc/mips /SPARTAN/trunk/doc/preemption /SPARTAN/trunk/doc/requirements /SPARTAN/trunk/doc/synchronization /SPARTAN/trunk/include /SPARTAN/trunk/include/arch.h /SPARTAN/trunk/include/config.h /SPARTAN/trunk/include/context.h /SPARTAN/trunk/include/cpu.h /SPARTAN/trunk/include/func.h /SPARTAN/trunk/include/list.h /SPARTAN/trunk/include/main /SPARTAN/trunk/include/main/kinit.h /SPARTAN/trunk/include/main/uinit.h /SPARTAN/trunk/include/memstr.h /SPARTAN/trunk/include/mm /SPARTAN/trunk/include/mm/frame.h /SPARTAN/trunk/include/mm/heap.h /SPARTAN/trunk/include/mm/page.h /SPARTAN/trunk/include/mm/tlb.h /SPARTAN/trunk/include/mm/vm.h /SPARTAN/trunk/include/panic.h /SPARTAN/trunk/include/print.h /SPARTAN/trunk/include/proc /SPARTAN/trunk/include/proc/scheduler.h /SPARTAN/trunk/include/proc/task.h /SPARTAN/trunk/include/proc/thread.h /SPARTAN/trunk/include/putchar.h /SPARTAN/trunk/include/synch /SPARTAN/trunk/include/synch/condvar.h /SPARTAN/trunk/include/synch/mutex.h /SPARTAN/trunk/include/synch/rwlock.h /SPARTAN/trunk/include/synch/semaphore.h /SPARTAN/trunk/include/synch/spinlock.h /SPARTAN/trunk/include/synch/synch.h /SPARTAN/trunk/include/synch/waitq.h /SPARTAN/trunk/include/test.h /SPARTAN/trunk/include/time /SPARTAN/trunk/include/time/clock.h /SPARTAN/trunk/include/time/delay.h /SPARTAN/trunk/include/time/timeout.h /SPARTAN/trunk/include/typedefs.h /SPARTAN/trunk/include/userspace.h /SPARTAN/trunk/src /SPARTAN/trunk/src/Makefile /SPARTAN/trunk/src/Makefile.config /SPARTAN/trunk/src/cpu /SPARTAN/trunk/src/cpu/cpu.c /SPARTAN/trunk/src/debug /SPARTAN/trunk/src/debug/print.c /SPARTAN/trunk/src/lib /SPARTAN/trunk/src/lib/func.c /SPARTAN/trunk/src/lib/list.c /SPARTAN/trunk/src/main /SPARTAN/trunk/src/main/kinit.c /SPARTAN/trunk/src/main/main.c /SPARTAN/trunk/src/main/uinit.c /SPARTAN/trunk/src/mm /SPARTAN/trunk/src/mm/frame.c /SPARTAN/trunk/src/mm/heap.c /SPARTAN/trunk/src/mm/page.c /SPARTAN/trunk/src/mm/tlb.c /SPARTAN/trunk/src/mm/vm.c /SPARTAN/trunk/src/proc /SPARTAN/trunk/src/proc/scheduler.c /SPARTAN/trunk/src/proc/task.c /SPARTAN/trunk/src/proc/thread.c /SPARTAN/trunk/src/synch /SPARTAN/trunk/src/synch/condvar.c /SPARTAN/trunk/src/synch/mutex.c /SPARTAN/trunk/src/synch/rwlock.c /SPARTAN/trunk/src/synch/semaphore.c /SPARTAN/trunk/src/synch/spinlock.c /SPARTAN/trunk/src/synch/waitq.c /SPARTAN/trunk/src/time /SPARTAN/trunk/src/time/clock.c /SPARTAN/trunk/src/time/delay.c /SPARTAN/trunk/src/time/timeout.c /SPARTAN/trunk/test /SPARTAN/trunk/test/synch /SPARTAN/trunk/test/synch/rwlock1 /SPARTAN/trunk/test/synch/rwlock1/test.c /SPARTAN/trunk/test/synch/rwlock2 /SPARTAN/trunk/test/synch/rwlock2/test.c /SPARTAN/trunk/test/synch/rwlock3 /SPARTAN/trunk/test/synch/rwlock3/test.c /SPARTAN/trunk/test/synch/rwlock4 /SPARTAN/trunk/test/synch/rwlock4/test.c /SPARTAN/trunk/test/synch/rwlock5 /SPARTAN/trunk/test/synch/rwlock5/test.c /SPARTAN/trunk/test/synch/semaphore1 /SPARTAN/trunk/test/synch/semaphore1/test.c /SPARTAN/trunk/test/synch/semaphore2 /SPARTAN/trunk/test/synch/semaphore2/test.c
|