[Kos-cvs] [kos] Modification CVS par thomas

KOS CVS kos-dev <kos-dev@enix.org>
Sun, 25 May 2003 14:27:40 +0200 (CEST)


Module :	kos
Modifié par :	thomas	25/05/03 14:27:40

Fichiers modifiés :
	modules/kitc   : kitc.c 
	modules/kos    : spinlock.h wolfgang.c 
	modules/scheduler: _kwaitqueue.c _scheduler.c scheduler.c 
	                   scheduler.h 
	modules/task   : _task.h _task_init.c _task_kthread.c 
	                 _task_utils.c task.c task.h 
	modules/tty    : _tty.h 
	modules/x86/task: Makefile _task.h _thread_cpu_context.c task.h 
Fichiers ajoutés :
	modules/x86/task: _cpl0_switch.c _cpl0_switch_asm.S 
Fichiers enlevés :
	modules/x86/task: _cpl0_switch.S 

Détails :
[kos]
* Ajout d'explications à spinlock.h
* Ajout de macros exclusive_* manquantes et de test_interrupt_state.

[scheduler]
* Modif kwaitqueue_add_unsafe pour gérer le cas spécial ou le thread
courant est terminé (state == STOPPED)
* Implémentation de la fonction reschedule_after_termination() qui
n'utilise pas de stack à la con temporaire pourrie ((c) David) pour
élire et switcher vers un nouveau thread tout en supprimant
l'ancien thread.

[task]
* Virage thread_end_handler et thread_end_handler_stack
* delete_kernel_thread_unsafe -> delete_kernel_thread
* Virage de get_global_thread_list

[x86/task]
* cpl0_switch_* en assembleur -> cpl0_switch_*_internal, mais non exportés.
* cpl0_switch_* en C (et exportés) dans _cpl0_switch.c : le but est
que le switch supprime un éventuel thread marqué comme étant à détruire.
* passage par un trampoline intermédiaire pour lancer un thread et
que le reschedule_after_termination() s'appelle automatiquement (sans
bidouille vaseuse de pile) + mise en conformité de cpu_state_t.