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 6630 d 5 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 6630 d 6 h jermar /kernel/trunk/generic/ Sleeping in a wait queue can be now interrupted with
waitq_interrupt_sleep().
 
1153 6634 d 8 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 6646 d 23 h jermar /kernel/trunk/generic/ Improved futexes. (kernel part)  
1109 6647 d 22 h jermar /kernel/trunk/ Basic futex. Prototype implementation.  
1104 6648 d 3 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 6648 d 7 h jermar /kernel/trunk/generic/src/ Remove extra before_thread_runs() calls.  
1100 6650 d 0 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 6693 d 2 h jermar /kernel/trunk/ Move list and fifo data types to adt/.  
787 6693 d 3 h palkovsky /kernel/trunk/generic/ Added constructor/destructor calls to SLAB.
Changed allocation of thread_t structure to use SLAB.
 
625 6745 d 4 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 6745 d 10 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 6745 d 23 h palkovsky /kernel/trunk/ Better gcc CALLER implementation  
615 6747 d 9 h palkovsky /kernel/trunk/ Cleanups to make it compile with -Wall. Did not catch everything yet.  
581 6750 d 8 h palkovsky /kernel/trunk/ Small debug changes.  
557 6753 d 7 h jermar /kernel/trunk/ Add comments describing locking rules for some locks.
Cleanup.
 
552 6753 d 22 h palkovsky /kernel/trunk/ Named spinlocks  
534 6756 d 0 h jermar / Rename HelenOS/SPARTAN to HelenOS/kernel again.  
532 6756 d 1 h jermar / Revert renaming of HelenOS/SPARTAN to HelenOS/kernel because of important pending patch.  
501 6768 d 5 h jermar / Rename HelenOS/SPARTAN to HelenOS/kernel.  
458 6782 d 8 h decky /SPARTAN/trunk/ make configuration variables usage consistent  
430 6788 d 22 h jermar /SPARTAN/trunk/ Move src/ and include/ to generic.  
414 6803 d 11 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 6803 d 21 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 6809 d 23 h jermar /SPARTAN/trunk/src/ Doxygen comments fixes.  
404 6810 d 0 h jermar /SPARTAN/trunk/src/ Fix doxygen comments.  
387 6819 d 2 h jermar /SPARTAN/trunk/src/synch/ Doxygen-style comments for condvar.c.  
386 6819 d 3 h jermar /SPARTAN/trunk/src/synch/ Doxygen-style comments for mutex.c.  
385 6819 d 3 h jermar /SPARTAN/trunk/src/synch/ Doxygen-style comments for rwlock.c.  
384 6819 d 4 h jermar /SPARTAN/trunk/src/synch/ Doxygen-style comments for semaphore.c.  
383 6819 d 5 h jermar /SPARTAN/trunk/src/synch/ Doxygen-style comments for spinlock.c.  
382 6819 d 21 h jermar /SPARTAN/trunk/src/synch/ Doxygen-style comments for waitq.c.  
223 6850 d 11 h jermar /SPARTAN/trunk/ Preemption work.
Instrument spinlock functions with preemption_disable() and preemption_enable() calls.
 
195 6852 d 0 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 6874 d 21 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 6933 d 20 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 6937 d 0 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 6963 d 0 h decky /SPARTAN/trunk/ NDEBUG debug symbol, ASSERT debug macro, fancier panic() in debug mode
indentation fixes, ASSERTs
 
25 6982 d 9 h jermar /SPARTAN/trunk/src/ Fix waitq_sleep_timeout() to call before_thread_runs() when handling timeout.  
15 6995 d 2 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.