Subversion Repositories HelenOS-historic

Rev

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

Filtering Options

Rev Age Author Path Log message Diff
1158 6642 d 22 h jermar /kernel/trunk/generic/ Replace list of all threads with B+tree of all threads.
Add function thread_exists() for querying existence of thread.
 
1156 6642 d 22 h jermar /kernel/trunk/generic/ Sleeping in a wait queue can be now interrupted with
waitq_interrupt_sleep().
 
1153 6647 d 0 h jermar /kernel/trunk/generic/src/synch/ Because of another race condition, futex_wakeup() needs to be able to allocate and initialize the kernel futex structure too.  
1117 6659 d 15 h jermar /kernel/trunk/generic/ Improved futexes. (kernel part)  
1109 6660 d 14 h jermar /kernel/trunk/ Basic futex. Prototype implementation.  
1104 6660 d 19 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.
 
1103 6661 d 0 h jermar /kernel/trunk/generic/src/ Remove extra before_thread_runs() calls.  
1100 6662 d 16 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.
 
788 6705 d 18 h jermar /kernel/trunk/ Move list and fifo data types to adt/.  
787 6705 d 19 h palkovsky /kernel/trunk/generic/ Added constructor/destructor calls to SLAB.
Changed allocation of thread_t structure to use SLAB.
 
625 6757 d 20 h palkovsky /kernel/trunk/ We are now almost -Wall clean.
- redefined atomic_t
- deleted many, many unused variables
- some minor code cleanups found using compiler warning.
 
623 6758 d 2 h jermar /kernel/trunk/ Add SPINLOCK_DECLARE and SPINLOCK_INITIALIZE macros.
SPINLOCK_DECLARE is to be used instead of direct spinlock_t declarations
in dynamically allocated structures on which spinlock_initialize() is called after
their creation.
SPINLOCK_INITIALIZE is to be used instead of direct spinlock_t declarations
of global spinlocks. It declares and initializes the spinlock.
Moreover, both macros are empty on UP so that -Wall warnings about unused structures
get supressed.
 
622 6758 d 16 h palkovsky /kernel/trunk/ Better gcc CALLER implementation  
615 6760 d 1 h palkovsky /kernel/trunk/ Cleanups to make it compile with -Wall. Did not catch everything yet.  
581 6763 d 0 h palkovsky /kernel/trunk/ Small debug changes.  
557 6765 d 23 h jermar /kernel/trunk/ Add comments describing locking rules for some locks.
Cleanup.
 
552 6766 d 15 h palkovsky /kernel/trunk/ Named spinlocks  
534 6768 d 17 h jermar / Rename HelenOS/SPARTAN to HelenOS/kernel again.  
532 6768 d 17 h jermar / Revert renaming of HelenOS/SPARTAN to HelenOS/kernel because of important pending patch.  
501 6780 d 21 h jermar / Rename HelenOS/SPARTAN to HelenOS/kernel.  
458 6795 d 0 h decky /SPARTAN/trunk/ make configuration variables usage consistent  
430 6801 d 14 h jermar /SPARTAN/trunk/ Move src/ and include/ to generic.  
414 6816 d 3 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.
 
413 6816 d 13 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.
 
405 6822 d 15 h jermar /SPARTAN/trunk/src/ Doxygen comments fixes.  
404 6822 d 16 h jermar /SPARTAN/trunk/src/ Fix doxygen comments.  
387 6831 d 18 h jermar /SPARTAN/trunk/src/synch/ Doxygen-style comments for condvar.c.  
386 6831 d 19 h jermar /SPARTAN/trunk/src/synch/ Doxygen-style comments for mutex.c.  
385 6831 d 19 h jermar /SPARTAN/trunk/src/synch/ Doxygen-style comments for rwlock.c.  
384 6831 d 20 h jermar /SPARTAN/trunk/src/synch/ Doxygen-style comments for semaphore.c.  
383 6831 d 22 h jermar /SPARTAN/trunk/src/synch/ Doxygen-style comments for spinlock.c.  
382 6832 d 14 h jermar /SPARTAN/trunk/src/synch/ Doxygen-style comments for waitq.c.  
223 6863 d 3 h jermar /SPARTAN/trunk/ Preemption work.
Instrument spinlock functions with preemption_disable() and preemption_enable() calls.
 
195 6864 d 17 h vana /SPARTAN/trunk/ 1) memcopy and _memcopy functions rewriten to ANSI C norm.
2) Repaired ia32,ia64 and mips version of SPARTAN to work with this memcopy functions
3) Warning for non declared funcions added and repaired ia32,ia64 and mips versions to pass build process with this warning and Werror option
 
153 6887 d 13 h jermar /SPARTAN/trunk/ Add memory barriers into spinlock_*().
Implement CS_{ENTER|LEAVE}_BARRIER() for IA-32 (no-op).
Provide incomplete CS_{ENTER|LEAVE}_BARRIER() macros for IA-64 and MIPS as well.

Small changes here and there.
 
115 6946 d 13 h jermar /SPARTAN/trunk/ Implement several assembler functions in gcc's __asm__ notation instead of in .s or .S file.
Gain both better speed and size.
 
111 6949 d 16 h palkovsky /SPARTAN/trunk/ Code cleanup in scheduler.c thread.c - removed unnecessary spinlock.
atomic_inc, atomic_dec moved to arch/atomic.h instead of arch/smp/atomic.h,
advisable to use even in non-smp mode.
Fixed atomic_inc, atomic_dec in mips architecture.
 
68 6975 d 17 h decky /SPARTAN/trunk/ NDEBUG debug symbol, ASSERT debug macro, fancier panic() in debug mode
indentation fixes, ASSERTs
 
25 6995 d 2 h jermar /SPARTAN/trunk/src/ Fix waitq_sleep_timeout() to call before_thread_runs() when handling timeout.  
15 7007 d 18 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.