1

remove old thread code (state, inc...)

This commit is contained in:
2022-07-23 13:14:42 +02:00
parent dc79b6595c
commit 840c775ff9
4 changed files with 2 additions and 81 deletions

View File

@ -28,7 +28,6 @@
#ifndef __Thread_include__
#define __Thread_include__
#include "kernel/threads/ThreadState.h"
#include "user/lib/Logger.h"
class Thread {
@ -55,10 +54,10 @@ public:
}
// Thread aktivieren
void start();
void start() const;
// Umschalten auf Thread 'next'
void switchTo(Thread& next);
void switchTo(Thread& next) const;
// Ask thread to terminate itself
void suicide() { running = false; }

View File

@ -1,30 +0,0 @@
;*****************************************************************************
;* *
;* C O R O U T I N E *
;* *
;*---------------------------------------------------------------------------*
;* Beschreibung: Assemblerdarstellung der 'struct CoroutineState' aus *
;* CoroutineState.h *
;* *
;* Die Reihenfolge der Registerbezeichnungen muss unbedingt *
;* mit der von 'struct CoroutineState' uebereinstimmen. *
;* *
;* Autor: Olaf Spinczyk, TU Dortmund *
;*****************************************************************************
; Nicht-fluechtige Register des Intel 80386 Prozessors
; Die folgenden Angaben belegen ebx_offset mit dem Wert 0, esi_offset mit 4
; edi_offset mit 8 usw. Dies entspricht den Abstaenden der Elemente ebx, esi,
; edi usw. der Struktur CoroutineState zum Anfang der Struktur (in Bytes).
[ABSOLUTE 0]
ebx_offset: resd 1
esi_offset: resd 1
edi_offset: resd 1
ebp_offset: resd 1
esp_offset: resd 1
eax_offset: resd 1
ecx_offset: resd 1
edx_offset: resd 1
efl_offset: resd 1

View File

@ -1,45 +0,0 @@
/*****************************************************************************
* *
* C O R O U T I N E S T A T E *
* *
*---------------------------------------------------------------------------*
* Beschreibung: Die Struktur CoroutineState dient dazu, bei einem *
* Koroutinenwechsel die Werte der nicht-fluechtigen *
* Register zu sichern. Beim GNU C Compiler sind eax, ecx *
* und edx fluechtige Register, die bei Funktionsaufrufen *
* und somit auch bei einem Koroutinenwechsel keine spaeter *
* noch benoetigten Werte haben duerfen. Daher muss in der *
* Struktur CoroutineState auch kein Platz fuer sie bereit- *
* gestellt werden. *
* *
* Achtung: Fuer den Zugriff auf die Elemente von *
* struct CoroutineState aus einer Assemblerfunktion *
* heraus werden in der Datei Coroutine.inc Namen fuer die *
* benoetigten Abstaende der einzelnen Elemente zum Anfang *
* der Struktur definiert. Damit dann auch auf die richtigen*
* Elemente zugegriffen wird, sollten sich die Angaben von *
* CoroutineState.h und Coroutine.inc exakt entsprechen. *
* Wer also CoroutineState.h aendert, muss auch *
* Coroutine.inc anpassen (und umgekehrt.) *
* *
* Autor: Olaf Spinczyk, TU Dortmund *
*****************************************************************************/
#ifndef __CoroutineState_include__
#define __CoroutineState_include__
struct ThreadState {
void* ebx;
void* esi;
void* edi;
void* ebp;
void* esp;
// nachfolgend die fluechtige Register
// wichtig fuer preemptives Multitasking
void* eax;
void* ecx;
void* edx;
void* efl;
};
#endif

View File

@ -16,9 +16,6 @@
;* Michael Schoettner, HHU, 3.7.2022 *
;******************************************************************************
; fuer preemptives Umschalten zwischen Threads
%include "kernel/threads/Thread.inc"
; Multiboot-Konstanten
MULTIBOOT_PAGE_ALIGN equ 1<<0