[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.