Subversion Repositories HelenOS-historic

Rev

Go to most recent revision | Hide changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff Changes
483 6813 d 6 h jermar /SPARTAN/trunk/ For now, each architecture must use its own -O switch (-O2 doesn't work for ia64, -O3 doesn't work for mips32).

New mips32 atomic_add() function.

Cleanup.
 
/SPARTAN/trunk/Makefile
/SPARTAN/trunk/Makefile.config
/SPARTAN/trunk/arch/amd64/Makefile.inc
/SPARTAN/trunk/arch/ia32/Makefile.inc
/SPARTAN/trunk/arch/ia64/Makefile.inc
/SPARTAN/trunk/arch/mips32/Makefile.inc
/SPARTAN/trunk/arch/mips32/include/atomic.h
/SPARTAN/trunk/arch/mips32/include/cpu.h
/SPARTAN/trunk/arch/mips32/src/interrupt.c
/SPARTAN/trunk/arch/ppc32/Makefile.inc
/SPARTAN/trunk/arch/sparc64/Makefile.inc
/SPARTAN/trunk/generic/include/arch.h
/SPARTAN/trunk/generic/include/config.h
/SPARTAN/trunk/generic/include/cpu.h
/SPARTAN/trunk/generic/include/proc/scheduler.h
/SPARTAN/trunk/generic/include/synch/rwlock.h
/SPARTAN/trunk/generic/include/typedefs.h
/SPARTAN/trunk/generic/src/proc/scheduler.c
/SPARTAN/trunk/test/fpu/fpu1/test.c
/SPARTAN/trunk/test/fpu/mips1/test.c
/SPARTAN/trunk/test/fpu/sse1/test.c
/SPARTAN/trunk/test/synch/rwlock5/test.c
477 6816 d 12 h vana /SPARTAN/trunk/ Atomic inc & dec functions synchronized on all ia32,ia64 and mips platforms. Now there are 3 versions which returns no value, new value and old value och changed variable.  
/SPARTAN/trunk/Makefile.config
/SPARTAN/trunk/arch/ia32/include/atomic.h
/SPARTAN/trunk/arch/ia64/include/atomic.h
/SPARTAN/trunk/arch/ia64/src/ivt.S
/SPARTAN/trunk/arch/mips32/include/atomic.h
475 6817 d 12 h jermar /SPARTAN/trunk/ Define atomic_t type.  
/SPARTAN/trunk/arch/ia32/include/atomic.h
/SPARTAN/trunk/arch/ia64/include/atomic.h
/SPARTAN/trunk/arch/mips32/include/atomic.h
/SPARTAN/trunk/arch/ppc32/include/atomic.h
/SPARTAN/trunk/arch/sparc64/include/atomic.h
/SPARTAN/trunk/generic/include/proc/scheduler.h
/SPARTAN/trunk/generic/src/proc/scheduler.c
/SPARTAN/trunk/generic/src/proc/thread.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
472 6818 d 11 h jermar /SPARTAN/trunk/ Changes in build system.
For .S targets, always do -D__ASM__.
Remove unnecessary #define __ASM__ from various *.S files.
At the end of build, generate disassembler dump for kernel.raw.

ia64 work.
Better General Exception handler.
 
/SPARTAN/trunk/Makefile
/SPARTAN/trunk/arch/amd64/src/asm_utils.S
/SPARTAN/trunk/arch/amd64/src/boot/boot.S
/SPARTAN/trunk/arch/amd64/src/smp/ap.S
/SPARTAN/trunk/arch/ia32/src/boot/boot.S
/SPARTAN/trunk/arch/ia64/include/asm.h
/SPARTAN/trunk/arch/ia64/include/interrupt.h
/SPARTAN/trunk/arch/ia64/include/register.h
/SPARTAN/trunk/arch/ia64/src/interrupt.c
/SPARTAN/trunk/arch/ia64/src/ivt.S
/SPARTAN/trunk/arch/mips32/src/context.S
/SPARTAN/trunk/arch/mips32/src/start.S
/SPARTAN/trunk/arch/sparc64/src/context.S
461 6819 d 13 h decky /SPARTAN/trunk/ link kernel in ARCH's native format first, then use objcopy to create output format  
/SPARTAN/trunk/Makefile
/SPARTAN/trunk/arch/amd64/_link.ld.in
/SPARTAN/trunk/arch/ia32/_link.ld.in
/SPARTAN/trunk/arch/ia64/_link.ld.in
/SPARTAN/trunk/arch/mips32/_link.ld.in
/SPARTAN/trunk/arch/ppc32/_link.ld.in
/SPARTAN/trunk/arch/sparc64/_link.ld.in
458 6819 d 13 h decky /SPARTAN/trunk/ make configuration variables usage consistent  
/SPARTAN/trunk/Makefile
/SPARTAN/trunk/arch/amd64/Makefile.inc
/SPARTAN/trunk/arch/amd64/src/amd64.c
/SPARTAN/trunk/arch/amd64/src/interrupt.c
/SPARTAN/trunk/arch/amd64/src/smp/ap.S
/SPARTAN/trunk/arch/ia32/Makefile.inc
/SPARTAN/trunk/arch/ia32/include/atomic.h
/SPARTAN/trunk/arch/ia32/src/atomic.S
/SPARTAN/trunk/arch/ia32/src/ia32.c
/SPARTAN/trunk/arch/ia32/src/interrupt.c
/SPARTAN/trunk/arch/ia32/src/smp/ap.S
/SPARTAN/trunk/arch/ia32/src/smp/apic.c
/SPARTAN/trunk/arch/ia32/src/smp/ipi.c
/SPARTAN/trunk/arch/ia32/src/smp/mps.c
/SPARTAN/trunk/arch/ia32/src/smp/smp.c
/SPARTAN/trunk/arch/mips32/Makefile.inc
/SPARTAN/trunk/arch/mips32/src/exception.c
/SPARTAN/trunk/genarch/src/acpi/matd.c
/SPARTAN/trunk/generic/include/cpu.h
/SPARTAN/trunk/generic/include/mm/tlb.h
/SPARTAN/trunk/generic/include/smp/ipi.h
/SPARTAN/trunk/generic/include/smp/smp.h
/SPARTAN/trunk/generic/include/synch/spinlock.h
/SPARTAN/trunk/generic/src/cpu/cpu.c
/SPARTAN/trunk/generic/src/main/kinit.c
/SPARTAN/trunk/generic/src/main/main.c
/SPARTAN/trunk/generic/src/mm/tlb.c
/SPARTAN/trunk/generic/src/proc/scheduler.c
/SPARTAN/trunk/generic/src/smp/ipi.c
/SPARTAN/trunk/generic/src/synch/spinlock.c
457 6819 d 14 h decky /SPARTAN/trunk/ new build system almost finished  
/SPARTAN/trunk/arch/amd64/include/atomic.h
/SPARTAN/trunk/arch/amd64/include/barrier.h
/SPARTAN/trunk/arch/amd64/include/bios
/SPARTAN/trunk/arch/amd64/include/boot/memmap.h
/SPARTAN/trunk/arch/amd64/include/boot/memmapasm.h
/SPARTAN/trunk/arch/amd64/include/context_offset.h
/SPARTAN/trunk/arch/amd64/include/ega.h
/SPARTAN/trunk/arch/amd64/include/fpu_context.h
/SPARTAN/trunk/arch/amd64/include/i8042.h
/SPARTAN/trunk/arch/amd64/include/i8254.h
/SPARTAN/trunk/arch/amd64/include/i8259.h
/SPARTAN/trunk/arch/amd64/include/interrupt.h
/SPARTAN/trunk/arch/amd64/include/mm/memory_init.h
/SPARTAN/trunk/arch/amd64/include/smp
/SPARTAN/trunk/arch/amd64/src/bios
/SPARTAN/trunk/arch/amd64/src/boot/memmap.S
/SPARTAN/trunk/arch/amd64/src/drivers
/SPARTAN/trunk/arch/amd64/src/fmath.c
/SPARTAN/trunk/arch/amd64/src/mm/frame.c
/SPARTAN/trunk/arch/amd64/src/mm/memory_init.c
/SPARTAN/trunk/arch/amd64/src/mm/tlb.c
/SPARTAN/trunk/arch/amd64/src/smp/apic.c
/SPARTAN/trunk/arch/amd64/src/smp/ipi.c
/SPARTAN/trunk/arch/amd64/src/smp/mps.c
/SPARTAN/trunk/arch/amd64/src/smp/smp.c
/SPARTAN/trunk/arch/mips32/include/context_offset.h
/SPARTAN/trunk/build.amd64
/SPARTAN/trunk/build.mips32
/SPARTAN/trunk/clean.amd64
/SPARTAN/trunk/clean.mips32
/SPARTAN/trunk/Makefile
/SPARTAN/trunk/arch/amd64/Makefile.inc
/SPARTAN/trunk/arch/amd64/_link.ld.in
/SPARTAN/trunk/arch/amd64/boot/Makefile
/SPARTAN/trunk/arch/ia32/Makefile.inc
/SPARTAN/trunk/arch/ia32/_link.ld.in
/SPARTAN/trunk/arch/ia32/include/barrier.h
/SPARTAN/trunk/arch/ia64/Makefile.inc
/SPARTAN/trunk/arch/ia64/_link.ld.in
/SPARTAN/trunk/arch/mips32/Makefile.inc
/SPARTAN/trunk/arch/mips32/_link.ld.in
/SPARTAN/trunk/arch/mips32/boot/Makefile
/SPARTAN/trunk/arch/mips32/boot/boot.S
/SPARTAN/trunk/arch/ppc32/Makefile.inc
/SPARTAN/trunk/arch/ppc32/_link.ld.in
/SPARTAN/trunk/arch/sparc64/Makefile.inc
/SPARTAN/trunk/arch/sparc64/_link.ld.in
/SPARTAN/trunk/build.ia32
455 6820 d 2 h decky /SPARTAN/trunk/ new build system upgrade
finished work for IA-32, IA-64, PPC-32, SPARC-64
 
/SPARTAN/trunk/arch/ia64/_link.ld.in
/SPARTAN/trunk/arch/ppc32/_link.ld.in
/SPARTAN/trunk/arch/sparc64/_link.ld.in
/SPARTAN/trunk/build.ia64
/SPARTAN/trunk/build.ppc32
/SPARTAN/trunk/build.sparc64
/SPARTAN/trunk/clean.ia32
/SPARTAN/trunk/clean.ia64
/SPARTAN/trunk/clean.ppc32
/SPARTAN/trunk/clean.sparc64
/SPARTAN/trunk/arch/ia64/_link.ld
/SPARTAN/trunk/arch/ppc32/_link.ld
/SPARTAN/trunk/arch/sparc64/_link.ld
/SPARTAN/trunk/Makefile
/SPARTAN/trunk/arch/amd64/Makefile.inc
/SPARTAN/trunk/arch/ia32/Makefile.inc
/SPARTAN/trunk/arch/ia32/boot/Makefile
/SPARTAN/trunk/arch/ia64/Makefile.inc
/SPARTAN/trunk/arch/ia64/boot/Makefile
/SPARTAN/trunk/arch/mips32/Makefile.inc
/SPARTAN/trunk/arch/mips32/boot/Makefile
/SPARTAN/trunk/arch/ppc32/Makefile.inc
/SPARTAN/trunk/arch/ppc32/boot/Makefile
/SPARTAN/trunk/arch/sparc64/Makefile.inc
/SPARTAN/trunk/arch/sparc64/boot/Makefile
/SPARTAN/trunk/build.ia32
/SPARTAN/trunk/clean
431 6824 d 14 h jermar /SPARTAN/trunk/arch/ IA-64 work.
Exclude external interrupt from universal_handler() scope.
 
/SPARTAN/trunk/arch/ia64/src/interrupt.c
/SPARTAN/trunk/arch/ia64/Makefile.inc
/SPARTAN/trunk/arch/ia64/include/asm.h
/SPARTAN/trunk/arch/ia64/include/barrier.h
/SPARTAN/trunk/arch/ia64/include/interrupt.h
/SPARTAN/trunk/arch/ia64/src/ivt.S
/SPARTAN/trunk/arch/mips32/Makefile.inc
430 6826 d 4 h jermar /SPARTAN/trunk/ Move src/ and include/ to generic.  
/SPARTAN/trunk/generic
/SPARTAN/trunk/generic/include
/SPARTAN/trunk/generic/src
/SPARTAN/trunk/include
/SPARTAN/trunk/src
/SPARTAN/trunk/Makefile
/SPARTAN/trunk/arch/amd64/Makefile.inc
/SPARTAN/trunk/arch/ia32/Makefile.inc
/SPARTAN/trunk/arch/ia64/Makefile.inc
/SPARTAN/trunk/arch/mips32/Makefile.inc
/SPARTAN/trunk/arch/mips32/boot/Makefile
/SPARTAN/trunk/arch/ppc32/Makefile.inc
/SPARTAN/trunk/arch/sparc64/Makefile.inc
/SPARTAN/trunk/genarch/Makefile.inc
/SPARTAN/trunk/generic/src/main/kinit.c
429 6826 d 9 h jermar /SPARTAN/trunk/arch/mips32/ For now, compile with -mhard-float.
Libraries required by -msoft-float are not part of gcc.
Moreover, ld doesn't warn about undefined symbols.
 
/SPARTAN/trunk/arch/mips32/Makefile.inc
426 6828 d 12 h jermar /SPARTAN/trunk/ sparc64 work.
Add context_save(), context_set() and context_restore().
Remove putchar() definition from ofw.c.
Add sparc64 putchar().
Add ppc32 putchar() (i.e. the original ofw.c putchar()).
Make arg.h use the builtin va_* constructs.
 
/SPARTAN/trunk/arch/ppc32/src/console.c
/SPARTAN/trunk/arch/sparc64/src/asm.S
/SPARTAN/trunk/arch/sparc64/src/console.c
/SPARTAN/trunk/arch/sparc64/src/context.S
/SPARTAN/trunk/arch/sparc64/src/mm
/SPARTAN/trunk/arch/sparc64/src/mm/frame.c
/SPARTAN/trunk/arch/sparc64/src/mm/page.c
/SPARTAN/trunk/tools/sparc64
/SPARTAN/trunk/tools/sparc64/gencontext.c
/SPARTAN/trunk/arch/mips32/include/arg.h
/SPARTAN/trunk/arch/ppc32/Makefile.inc
/SPARTAN/trunk/arch/sparc64/Makefile.inc
/SPARTAN/trunk/arch/sparc64/_link.ld
/SPARTAN/trunk/arch/sparc64/include/arg.h
/SPARTAN/trunk/arch/sparc64/include/asm.h
/SPARTAN/trunk/arch/sparc64/include/context.h
/SPARTAN/trunk/arch/sparc64/include/types.h
/SPARTAN/trunk/arch/sparc64/src/dummy.s
/SPARTAN/trunk/arch/sparc64/src/start.S
/SPARTAN/trunk/build.sparc64
/SPARTAN/trunk/clean.sparc64
/SPARTAN/trunk/genarch/include/firmware/ofw/ofw.h
/SPARTAN/trunk/genarch/src/firmware/ofw/ofw.c
425 6829 d 10 h cejka /SPARTAN/trunk/arch/mips32/include/ Fixed problem with va_arg macro for mips32. This solves problem with printing 64bit values on it.  
/SPARTAN/trunk/arch/mips32/include/arg.h
418 6836 d 5 h jermar /SPARTAN/trunk/ sparc64 infrastructure.  
/SPARTAN/trunk/arch/sparc64/Makefile.inc
/SPARTAN/trunk/arch/sparc64/_link.ld
/SPARTAN/trunk/arch/sparc64/boot
/SPARTAN/trunk/arch/sparc64/boot/Makefile
/SPARTAN/trunk/arch/sparc64/include
/SPARTAN/trunk/arch/sparc64/include/arch.h
/SPARTAN/trunk/arch/sparc64/include/arg.h
/SPARTAN/trunk/arch/sparc64/include/asm.h
/SPARTAN/trunk/arch/sparc64/include/atomic.h
/SPARTAN/trunk/arch/sparc64/include/barrier.h
/SPARTAN/trunk/arch/sparc64/include/byteorder.h
/SPARTAN/trunk/arch/sparc64/include/context.h
/SPARTAN/trunk/arch/sparc64/include/cpu.h
/SPARTAN/trunk/arch/sparc64/include/faddr.h
/SPARTAN/trunk/arch/sparc64/include/fmath.h
/SPARTAN/trunk/arch/sparc64/include/fpu_context.h
/SPARTAN/trunk/arch/sparc64/include/interrupt.h
/SPARTAN/trunk/arch/sparc64/include/memstr.h
/SPARTAN/trunk/arch/sparc64/include/mm
/SPARTAN/trunk/arch/sparc64/include/mm/asid.h
/SPARTAN/trunk/arch/sparc64/include/mm/frame.h
/SPARTAN/trunk/arch/sparc64/include/mm/memory_init.h
/SPARTAN/trunk/arch/sparc64/include/mm/page.h
/SPARTAN/trunk/arch/sparc64/include/mm/tlb.h
/SPARTAN/trunk/arch/sparc64/include/mm/vm.h
/SPARTAN/trunk/arch/sparc64/include/thread.h
/SPARTAN/trunk/arch/sparc64/include/types.h
/SPARTAN/trunk/arch/sparc64/src
/SPARTAN/trunk/arch/sparc64/src/dummy.s
/SPARTAN/trunk/arch/sparc64/src/start.S
/SPARTAN/trunk/build.sparc64
/SPARTAN/trunk/clean.sparc64
/SPARTAN/trunk/Makefile.config
/SPARTAN/trunk/arch/mips32/_link.ld.in
/SPARTAN/trunk/arch/ppc32/_link.ld
414 6840 d 16 h jermar /SPARTAN/trunk/ Create generic context_save() and context_restore().
These two functions are defined inline and only call context_save_arch() and context_restore_arch(), respectively.
The main purpose of this is to enable centralized commenting of these important and tricky functions.
 
/SPARTAN/trunk/arch/amd64/include/context.h
/SPARTAN/trunk/arch/amd64/src/context.S
/SPARTAN/trunk/arch/ia32/include/context.h
/SPARTAN/trunk/arch/ia32/src/context.s
/SPARTAN/trunk/arch/ia64/include/context.h
/SPARTAN/trunk/arch/ia64/src/context.S
/SPARTAN/trunk/arch/mips32/include/context.h
/SPARTAN/trunk/arch/mips32/src/context.S
/SPARTAN/trunk/arch/ppc32/include/context.h
/SPARTAN/trunk/arch/ppc32/src/context.S
/SPARTAN/trunk/include/context.h
/SPARTAN/trunk/src/main/main.c
/SPARTAN/trunk/src/proc/scheduler.c
/SPARTAN/trunk/src/proc/thread.c
/SPARTAN/trunk/src/synch/waitq.c
/SPARTAN/trunk/tools/amd64/gencontext.c
/SPARTAN/trunk/tools/mips32/gencontext.c
413 6841 d 2 h jermar /SPARTAN/trunk/ Rename cpu_priority_{high|low|restore|read} functions to interrupts_{disable|enable|restore|read}.
Rename pri_t to ipl_t (Interrupt Priority Level).
Rename thread_t::pri to thread_t::priority.
 
/SPARTAN/trunk/arch/amd64/include/asm.h
/SPARTAN/trunk/arch/amd64/include/context.h
/SPARTAN/trunk/arch/amd64/include/types.h
/SPARTAN/trunk/arch/amd64/src/interrupt.c
/SPARTAN/trunk/arch/amd64/src/userspace.c
/SPARTAN/trunk/arch/ia32/include/asm.h
/SPARTAN/trunk/arch/ia32/include/context.h
/SPARTAN/trunk/arch/ia32/include/types.h
/SPARTAN/trunk/arch/ia32/src/drivers/ega.c
/SPARTAN/trunk/arch/ia32/src/interrupt.c
/SPARTAN/trunk/arch/ia32/src/userspace.c
/SPARTAN/trunk/arch/ia64/include/context.h
/SPARTAN/trunk/arch/ia64/include/types.h
/SPARTAN/trunk/arch/ia64/src/context.S
/SPARTAN/trunk/arch/ia64/src/dummy.s
/SPARTAN/trunk/arch/mips32/include/context.h
/SPARTAN/trunk/arch/mips32/include/types.h
/SPARTAN/trunk/arch/mips32/src/drivers/arc.c
/SPARTAN/trunk/arch/mips32/src/exception.c
/SPARTAN/trunk/arch/mips32/src/interrupt.c
/SPARTAN/trunk/arch/mips32/src/mips32.c
/SPARTAN/trunk/arch/mips32/src/mm/asid.c
/SPARTAN/trunk/arch/mips32/src/mm/tlb.c
/SPARTAN/trunk/arch/mips32/src/mm/vm.c
/SPARTAN/trunk/arch/ppc32/include/asm.h
/SPARTAN/trunk/arch/ppc32/include/context.h
/SPARTAN/trunk/arch/ppc32/include/types.h
/SPARTAN/trunk/include/arch.h
/SPARTAN/trunk/include/proc/thread.h
/SPARTAN/trunk/src/debug/print.c
/SPARTAN/trunk/src/lib/func.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/proc/task.c
/SPARTAN/trunk/src/proc/thread.c
/SPARTAN/trunk/src/synch/rwlock.c
/SPARTAN/trunk/src/synch/semaphore.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/rwlock4/test.c
/SPARTAN/trunk/tools/amd64/gencontext.c
/SPARTAN/trunk/tools/mips32/gencontext.c
403 6848 d 5 h jermar /SPARTAN/trunk/arch/ Small improvement in pte_t type definition.  
/SPARTAN/trunk/arch/ia64/include/context.h
/SPARTAN/trunk/arch/mips32/include/mm/page.h
/SPARTAN/trunk/arch/mips32/include/mm/tlb.h
/SPARTAN/trunk/arch/mips32/include/types.h
/SPARTAN/trunk/arch/mips32/src/mm/tlb.c
399 6851 d 2 h jermar /SPARTAN/trunk/ mips32 memory management work.
TLB exceptions seem to be working on at least simics.
msim handles TLB Refill and TLB Invalid exceptions well,
but seems to skip writes to the mapped addressies in mm
mapping test #1 (the data is not written and exception
is not triggered).
 
/SPARTAN/trunk/arch/mips32/include/mm/tlb.h
/SPARTAN/trunk/arch/mips32/src/mm/tlb.c
/SPARTAN/trunk/test/mm/mapping1/test.c
397 6851 d 16 h jermar /SPARTAN/trunk/ Small changes to mips32 mm.
Small changes in mm mapping test #1.
 
/SPARTAN/trunk/Makefile.config
/SPARTAN/trunk/arch/mips32/src/mm/tlb.c
/SPARTAN/trunk/arch/mips32/src/mm/vm.c
/SPARTAN/trunk/test/mm/mapping1/test.c
396 6852 d 13 h jermar /SPARTAN/trunk/ Add mm/mapping1 test.
(Will not make it past TLB Invalid exception on mips32.)
Fixes in asid.c.
Make TLB register types union with __u32 value.
Implement tlb_invalidate() for mips32.
(TLB invalidation and shootdown path will have to be revised.)
 
/SPARTAN/trunk/test/mm
/SPARTAN/trunk/test/mm/mapping1
/SPARTAN/trunk/test/mm/mapping1/test.c
/SPARTAN/trunk/Makefile.config
/SPARTAN/trunk/arch/ia32/src/mm/tlb.c
/SPARTAN/trunk/arch/mips32/include/mm/asid.h
/SPARTAN/trunk/arch/mips32/include/mm/tlb.h
/SPARTAN/trunk/arch/mips32/src/mm/asid.c
/SPARTAN/trunk/arch/mips32/src/mm/tlb.c
/SPARTAN/trunk/arch/mips32/src/mm/vm.c
/SPARTAN/trunk/include/mm/tlb.h

Show All