Subversion Repositories HelenOS-historic

Rev

Go to most recent revision | Hide changed files | Directory listing | RSS feed

Filtering Options

Rev Age Author Path Log message Diff Changes
1129 6670 d 8 h palkovsky /uspace/trunk/ Completed support for TLS in GCC (modifier __thread) for ia32,amd64,ia64 and mips.  
/uspace/trunk/libc/arch/amd64/src/thread.c
/uspace/trunk/libc/arch/ia32/src/thread.c
/uspace/trunk/libc/arch/ia64/src/thread.c
/uspace/trunk/libc/arch/mips32/src/thread.c
/uspace/trunk/init/init.c
/uspace/trunk/libc/arch/amd64/Makefile.inc
/uspace/trunk/libc/arch/amd64/_link.ld.in
/uspace/trunk/libc/arch/amd64/include/thread.h
/uspace/trunk/libc/arch/ia32/Makefile.inc
/uspace/trunk/libc/arch/ia32/_link.ld.in
/uspace/trunk/libc/arch/ia32/include/thread.h
/uspace/trunk/libc/arch/ia64/Makefile.inc
/uspace/trunk/libc/arch/ia64/_link.ld.in
/uspace/trunk/libc/arch/ia64/include/thread.h
/uspace/trunk/libc/arch/mips32/Makefile.inc
/uspace/trunk/libc/arch/mips32/_link.ld.in
/uspace/trunk/libc/arch/mips32/include/psthread.h
/uspace/trunk/libc/arch/mips32/include/thread.h
/uspace/trunk/libc/generic/libc.c
/uspace/trunk/libc/generic/psthread.c
/uspace/trunk/libc/generic/thread.c
/uspace/trunk/libc/include/psthread.h
/uspace/trunk/libc/include/thread.h
1128 6670 d 9 h jermar /uspace/trunk/ Improve comments in psthread.c
Rename pt->list to pt->link.
Rename ps_preempt() to psthread_schedule_next().
Rename ps_join() to psthread_join().
 
/uspace/trunk/init/init.c
/uspace/trunk/libc/generic/psthread.c
/uspace/trunk/libc/include/psthread.h
1127 6670 d 10 h palkovsky /uspace/trunk/ Correct dependencies creation.  
/uspace/trunk/libadt/Makefile
/uspace/trunk/libc/Makefile
/uspace/trunk/libipc/Makefile
/uspace/trunk/softfloat/Makefile
/uspace/trunk/softint/Makefile
1126 6670 d 10 h palkovsky /kernel/trunk/arch/mips32/src/ Fix bad order of EPC & STATUS change in syscall_shortcut.  
/kernel/trunk/arch/mips32/src/exception.c
/kernel/trunk/arch/mips32/src/start.S
1125 6670 d 11 h jermar /uspace/trunk/ TLS and pseudo thread support for ia64.  
/uspace/trunk/libc/arch/ia64/include/psthread.h
/uspace/trunk/libc/arch/ia64/include/stack.h
/uspace/trunk/libc/arch/ia64/include/thread.h
/uspace/trunk/libc/arch/ia64/src/psthread.S
/uspace/trunk/libc/include/align.h
/uspace/trunk/init/init.c
/uspace/trunk/libc/arch/amd64/Makefile.inc
/uspace/trunk/libc/arch/ia32/Makefile.inc
/uspace/trunk/libc/arch/ia64/Makefile.inc
/uspace/trunk/libc/generic/psthread.c
/uspace/trunk/libc/include/psthread.h
/uspace/trunk/libc/include/stdarg.h
/uspace/trunk/libc/include/stdlib.h
1124 6670 d 11 h jermar /kernel/trunk/arch/ Small changes.
Make sparc64 and ppc32 compile again.
 
/kernel/trunk/arch/ia64/include/faddr.h
/kernel/trunk/arch/ia64/src/context.S
/kernel/trunk/arch/ppc32/src/dummy.s
/kernel/trunk/arch/sparc64/src/dummy.s
1123 6670 d 22 h palkovsky /uspace/trunk/libc/arch/mips32/ Changed MIPS to compile as PIC code.  
/uspace/trunk/libc/arch/mips32/Makefile.inc
/uspace/trunk/libc/arch/mips32/_link.ld.in
/uspace/trunk/libc/arch/mips32/include/psthread.h
/uspace/trunk/libc/arch/mips32/src/entry.s
/uspace/trunk/libc/arch/mips32/src/psthread.S
/uspace/trunk/libc/arch/mips32/src/thread_entry.s
1122 6670 d 22 h palkovsky /kernel/trunk/arch/mips32/ Set up T9 to entry point on entry to userspace to facilitate better
PIC running.
 
/kernel/trunk/arch/mips32/include/asm.h
/kernel/trunk/arch/mips32/src/mips32.c
/kernel/trunk/arch/mips32/src/start.S
1121 6671 d 1 h jermar /kernel/trunk/ Small textual changes.  
/kernel/trunk/arch/amd64/include/atomic.h
/kernel/trunk/arch/amd64/src/amd64.c
/kernel/trunk/arch/amd64/src/asm_utils.S
/kernel/trunk/arch/ia32/src/ia32.c
/kernel/trunk/arch/ia32/src/userspace.c
/kernel/trunk/arch/ia64/src/ia64.c
/kernel/trunk/arch/mips32/src/mips32.c
/kernel/trunk/generic/src/adt/btree.c
1120 6671 d 1 h palkovsky /uspace/trunk/libc/arch/ Added missing ia32 files.
Renamed __entry to __start in mips, which is standard in gcc standard
linking scripts.
 
/uspace/trunk/libc/arch/ia32/include/psthread.h
/uspace/trunk/libc/arch/ia32/include/thread.h
/uspace/trunk/libc/arch/ia32/src/psthread.S
/uspace/trunk/libc/arch/mips32/Makefile.inc
/uspace/trunk/libc/arch/mips32/_link.ld.in
/uspace/trunk/libc/arch/mips32/include/thread.h
/uspace/trunk/libc/arch/mips32/src/entry.s
1119 6671 d 1 h palkovsky /kernel/trunk/arch/ Fixed bad rflags masking in amd64.
Added TLS get address instruction emulation for mips.
 
/kernel/trunk/arch/amd64/src/userspace.c
/kernel/trunk/arch/ia32/src/ia32.c
/kernel/trunk/arch/mips32/src/exception.c
1118 6671 d 1 h jermar /kernel/trunk/generic/src/syscall/ Change syscall table.  
/kernel/trunk/generic/src/syscall/syscall.c
1117 6671 d 1 h jermar /kernel/trunk/generic/ Improved futexes. (kernel part)  
/kernel/trunk/generic/include/synch/futex.h
/kernel/trunk/generic/src/synch/futex.c
1116 6671 d 1 h jermar /uspace/trunk/libc/ Improved futexes for uspace.
Please review.
 
/uspace/trunk/libc/generic/futex.c
/uspace/trunk/libc/include/futex.h
1115 6671 d 11 h jermar /kernel/trunk/generic/src/proc/ Fix kcpulb() to change state of the migrated thread to Entering so that thread_ready() won't panic() on violated assertion.
Make print out of threads and tasks more dense again.
 
/kernel/trunk/generic/src/proc/scheduler.c
/kernel/trunk/generic/src/proc/task.c
/kernel/trunk/generic/src/proc/thread.c
1114 6671 d 11 h jermar /uspace/trunk/libc/generic/ Fix futexes to correctly wake sleeping threads.  
/uspace/trunk/libc/generic/futex.c
1113 6671 d 12 h palkovsky /uspace/trunk/ Added symbolic links 'libarch','libadt','libipc' into libc/include,
so that it can be easily used from anywhere.
Renamed thread_main to __thread_main.
Allowed MIPS to compile with -O0.
Added non-preemptible threads support (not yet secured by futexes).
Added simple way to hold Thread Local Storage. Support for compiler
will be added later.
This update breaks IA64 uspace.

There is some forgotten spinlock_lock() in futexes, amd64 gets locked
in the secod uspace thread probably with preemption disabled.
 
/uspace/trunk/libc/arch/amd64/include/atomic.h
/uspace/trunk/libc/arch/amd64/include/context_offset.h
/uspace/trunk/libc/arch/amd64/include/psthread.h
/uspace/trunk/libc/arch/amd64/include/thread.h
/uspace/trunk/libc/arch/amd64/src/psthread.S
/uspace/trunk/libc/arch/ia32/include/atomic.h
/uspace/trunk/libc/arch/ia64/include/atomic.h
/uspace/trunk/libc/arch/mips32/include/atomic.h
/uspace/trunk/libc/arch/mips32/include/context_offset.h
/uspace/trunk/libc/arch/mips32/include/psthread.h
/uspace/trunk/libc/arch/mips32/include/thread.h
/uspace/trunk/libc/arch/mips32/src/psthread.S
/uspace/trunk/libc/generic/psthread.c
/uspace/trunk/libc/include/psthread.h
/uspace/trunk/libc/include/types.h
/uspace/trunk/libc/arch/amd64/include/atomic_arch.h
/uspace/trunk/libc/arch/ia32/include/atomic_arch.h
/uspace/trunk/libc/arch/ia64/include/atomic_arch.h
/uspace/trunk/libc/arch/mips32/include/atomic_arch.h
/uspace/trunk/Makefile
/uspace/trunk/init/init.c
/uspace/trunk/libc/Makefile
/uspace/trunk/libc/Makefile.toolchain
/uspace/trunk/libc/arch/amd64/Makefile.inc
/uspace/trunk/libc/arch/amd64/src/entry.s
/uspace/trunk/libc/arch/amd64/src/thread_entry.s
/uspace/trunk/libc/arch/ia32/Makefile.inc
/uspace/trunk/libc/arch/ia32/src/entry.s
/uspace/trunk/libc/arch/ia32/src/thread_entry.s
/uspace/trunk/libc/arch/ia64/src/entry.s
/uspace/trunk/libc/arch/ia64/src/thread_entry.s
/uspace/trunk/libc/arch/mips32/Makefile.inc
/uspace/trunk/libc/arch/mips32/src/entry.s
/uspace/trunk/libc/arch/mips32/src/thread_entry.s
/uspace/trunk/libc/generic/libc.c
/uspace/trunk/libc/generic/thread.c
/uspace/trunk/libc/include/atomic.h
/uspace/trunk/libc/include/io/io.h
/uspace/trunk/libc/include/libc.h
/uspace/trunk/libc/include/stdarg.h
/uspace/trunk/libc/include/stdint.h
/uspace/trunk/libc/include/thread.h
/uspace/trunk/libc/include/unistd.h
/uspace/trunk/libc/malloc/malloc.c
1112 6671 d 12 h palkovsky /kernel/trunk/ Added basic kernel infrastructure for ThreadLocalStorage(TLS) for
ia32(complete),amd64(complete),mips32(missing emulation of rdhwr instruction).
 
/kernel/trunk/arch/amd64/include/cpu.h
/kernel/trunk/arch/amd64/include/thread.h
/kernel/trunk/arch/amd64/src/amd64.c
/kernel/trunk/arch/amd64/src/proc/scheduler.c
/kernel/trunk/arch/ia32/include/pm.h
/kernel/trunk/arch/ia32/include/thread.h
/kernel/trunk/arch/ia32/src/ia32.c
/kernel/trunk/arch/ia32/src/pm.c
/kernel/trunk/arch/ia32/src/proc/scheduler.c
/kernel/trunk/arch/ia32/src/userspace.c
/kernel/trunk/arch/mips32/src/mips32.c
/kernel/trunk/generic/include/syscall/syscall.h
/kernel/trunk/generic/src/syscall/syscall.c
1111 6672 d 0 h jermar /uspace/trunk/ Basic futex support for userspace.  
/uspace/trunk/libc/generic/futex.c
/uspace/trunk/libc/include/futex.h
/uspace/trunk/init/init.c
/uspace/trunk/libc/Makefile
1110 6672 d 0 h jermar /uspace/trunk/libc/ Port atomic operations to uspace.  
/uspace/trunk/libc/arch/amd64/include/atomic_arch.h
/uspace/trunk/libc/arch/ia32/include/atomic_arch.h
/uspace/trunk/libc/arch/ia64/include/atomic_arch.h
/uspace/trunk/libc/arch/mips32/include/atomic_arch.h
/uspace/trunk/libc/include/atomic.h
1109 6672 d 0 h jermar /kernel/trunk/ Basic futex. Prototype implementation.  
/kernel/trunk/generic/include/synch/futex.h
/kernel/trunk/generic/src/synch/futex.c
/kernel/trunk/Makefile
/kernel/trunk/generic/include/syscall/syscall.h
/kernel/trunk/generic/src/main/main.c
/kernel/trunk/generic/src/syscall/syscall.c
1108 6672 d 0 h jermar /kernel/trunk/ Small PTE_* macros and SET_PTL0_ADDRESS macro changes.  
/kernel/trunk/arch/ia64/include/mm/page.h
/kernel/trunk/arch/sparc64/include/mm/page.h
/kernel/trunk/genarch/include/mm/page_ht.h
/kernel/trunk/genarch/include/mm/page_pt.h
/kernel/trunk/generic/src/mm/as.c
1107 6672 d 0 h jermar /kernel/trunk/ Small atomic #include and typedef changes.  
/kernel/trunk/arch/ia64/include/atomic.h
/kernel/trunk/arch/mips32/include/atomic.h
/kernel/trunk/arch/ppc32/include/atomic.h
/kernel/trunk/generic/include/atomic.h
/kernel/trunk/generic/include/typedefs.h
1106 6672 d 0 h jermar /kernel/trunk/arch/ Pass either -DCONFIG_PAGE_PT or -DCONFIG_PAGE_HT to the compiler.  
/kernel/trunk/arch/amd64/Makefile.inc
/kernel/trunk/arch/ia32/Makefile.inc
/kernel/trunk/arch/ia64/Makefile.inc
/kernel/trunk/arch/mips32/Makefile.inc
/kernel/trunk/arch/ppc32/Makefile.inc
/kernel/trunk/arch/sparc64/Makefile.inc
1105 6672 d 0 h jermar /uspace/trunk/libc/arch/mips32/ Fix mips32 linker script.
Add .scommon input section.
Add .got section and define _gp symbol.
Use this symbol to initialize gp register (r28).
 
/uspace/trunk/libc/arch/mips32/_link.ld.in
/uspace/trunk/libc/arch/mips32/src/entry.s
/uspace/trunk/libc/arch/mips32/src/thread_entry.s
1104 6672 d 5 h jermar /kernel/trunk/ Define atomic_t only once in atomic.h
Change the encapsulated counter type to long so that it supports negative values as well.
 
/kernel/trunk/generic/include/atomic.h
/kernel/trunk/arch/amd64/include/atomic.h
/kernel/trunk/arch/amd64/src/proc/scheduler.c
/kernel/trunk/arch/ia32/include/atomic.h
/kernel/trunk/arch/ia32/src/userspace.c
/kernel/trunk/arch/ia64/include/atomic.h
/kernel/trunk/arch/ia64/src/mm/tlb.c
/kernel/trunk/arch/mips32/include/atomic.h
/kernel/trunk/arch/ppc32/include/atomic.h
/kernel/trunk/arch/sparc64/include/atomic.h
/kernel/trunk/generic/include/func.h
/kernel/trunk/generic/include/mm/slab.h
/kernel/trunk/generic/include/proc/scheduler.h
/kernel/trunk/generic/include/synch/spinlock.h
/kernel/trunk/generic/include/typedefs.h
/kernel/trunk/generic/src/console/console.c
/kernel/trunk/generic/src/mm/tlb.c
/kernel/trunk/generic/src/proc/scheduler.c
/kernel/trunk/generic/src/proc/thread.c
/kernel/trunk/generic/src/synch/spinlock.c
/kernel/trunk/generic/src/time/clock.c
/kernel/trunk/test/atomic/atomic1/test.c
/kernel/trunk/test/debug/mips1/test.c
/kernel/trunk/test/fault/fault1/test.c
/kernel/trunk/test/fpu/fpu1/test.c
/kernel/trunk/test/fpu/mips1/test.c
/kernel/trunk/test/fpu/sse1/test.c
/kernel/trunk/test/mm/falloc2/test.c
/kernel/trunk/test/synch/rwlock1/test.c
/kernel/trunk/test/synch/rwlock2/test.c
/kernel/trunk/test/synch/rwlock3/test.c
/kernel/trunk/test/synch/rwlock4/test.c
/kernel/trunk/test/synch/rwlock5/test.c
/kernel/trunk/test/synch/semaphore1/test.c
/kernel/trunk/test/synch/semaphore2/test.c
/kernel/trunk/test/thread/thread1/test.c
1103 6672 d 10 h jermar /kernel/trunk/generic/src/ Remove extra before_thread_runs() calls.  
/kernel/trunk/generic/src/proc/thread.c
/kernel/trunk/generic/src/synch/waitq.c
1102 6673 d 0 h palkovsky /kernel/trunk/arch/ Keep $K1 register for use as a thread local storage pointer on MIPS.  
/kernel/trunk/arch/amd64/src/userspace.c
/kernel/trunk/arch/mips32/include/context_offset.h
/kernel/trunk/arch/mips32/include/exception.h
/kernel/trunk/arch/mips32/src/start.S
1101 6674 d 2 h jermar /kernel/trunk/ B+-tree implementation.
Currently supports only inserting and searching.
 
/kernel/trunk/generic/include/adt/btree.h
/kernel/trunk/generic/src/adt/btree.c
/kernel/trunk/test/btree
/kernel/trunk/test/btree/btree1
/kernel/trunk/test/btree/btree1/test.c
/kernel/trunk/Makefile
/kernel/trunk/generic/include/typedefs.h
/kernel/trunk/generic/src/main/main.c
/kernel/trunk/kernel.config
1100 6674 d 2 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
1099 6674 d 2 h palkovsky /uspace/trunk/libc/arch/ia32/src/ Small calling convention change for ia32.  
/uspace/trunk/libc/arch/ia32/src/syscall.c
1098 6674 d 9 h palkovsky /uspace/trunk/libc/arch/mips32/src/ RA is now saved by caller instead of kernel on syscall.  
/uspace/trunk/libc/arch/mips32/src/syscall.c
1097 6674 d 9 h palkovsky /kernel/trunk/arch/mips32/src/ Still better syscall calling convention for mips.  
/kernel/trunk/arch/mips32/src/start.S
1096 6674 d 9 h palkovsky /kernel/trunk/ Cleanup of mips
- inline register reads
- better fpu disable/enable - global settings is automatically propagated to task
- fast syscall
 
/kernel/trunk/arch/mips32/include/cp0.h
/kernel/trunk/arch/mips32/include/exception.h
/kernel/trunk/arch/mips32/include/thread.h
/kernel/trunk/arch/mips32/src/asm.S
/kernel/trunk/arch/mips32/src/exception.c
/kernel/trunk/arch/mips32/src/fpu_context.c
/kernel/trunk/arch/mips32/src/start.S
/kernel/trunk/contrib/conf/gxemul.sh
/kernel/trunk/kernel.config
1095 6674 d 9 h palkovsky /uspace/trunk/libc/arch/mips32/src/ Change calling convention for MIPS.  
/uspace/trunk/libc/arch/mips32/src/syscall.c
1094 6674 d 12 h palkovsky /kernel/trunk/ Allowed saving less registers.  
/kernel/trunk/Makefile
/kernel/trunk/arch/amd64/src/asm_utils.S
/kernel/trunk/arch/mips32/src/start.S
/kernel/trunk/kernel.config
1093 6675 d 1 h palkovsky /kernel/trunk/generic/src/mm/ Fix bug with refcounts in frame allocator after zone_merge. (it caused some
frames not to be coalesced).
 
/kernel/trunk/generic/src/mm/frame.c
1092 6675 d 3 h palkovsky /uspace/trunk/libipc/generic/ Fixed bad typing on 64-bit platform.  
/uspace/trunk/libipc/generic/ipc.c
1091 6675 d 3 h palkovsky /uspace/trunk/ Adapt userspace API to conform to kernel api.  
/uspace/trunk/init/init.c
/uspace/trunk/libipc/generic/ipc.c
/uspace/trunk/libipc/include/ipc.h
/uspace/trunk/ns/ns.c
1090 6675 d 3 h palkovsky /kernel/trunk/generic/ Reduced unnecessary IPC system calls.
Allow everything to be sync & async, everything is handled using messages.
 
/kernel/trunk/generic/include/ipc/ipc.h
/kernel/trunk/generic/include/ipc/sysipc.h
/kernel/trunk/generic/include/syscall/syscall.h
/kernel/trunk/generic/src/ipc/ipc.c
/kernel/trunk/generic/src/ipc/ipcrsc.c
/kernel/trunk/generic/src/ipc/sysipc.c
/kernel/trunk/generic/src/syscall/syscall.c