Hey. Also ich hab Probleme mit der interpretation des Artikels
[1]http://www.lowlevel.eu/wiki/Teil_5_-_Interrupts ,sowie das dazu nötige
[2]http://www.lowlevel.eu/wiki/Global_Descriptor_Table
Aber zunächst eine generelle (vll auch doofe) Frage: Zeigen GDT's auf ein Daten/Code-Segment, oder ist dieses Segment im GDT enthalten?
Naja jedenfalls:
Im Artikel [1] werden ja über init_gdt(void) die GDT's gesetzt.
In dieser Funktion ist ein load_gdt();
Vorraussetzung für dies war der Artikel [2], indem die Funktion set_entry beschrieben wird, die zunächst benötigt wird.
Nur versteh ich die Form vom Struct nicht. Es besitzt weder Namen noch Variable-Beschreibung. (Ich kenne es als strucht bla{ /////}bla1,bla2;)
Wie wird also der Pointer auf das gerade eingerichtete GDT erstellt?
Und was hat es mit der nirgends definierten Funktion load_gdt(); zu tun, die am Ende von init_gdt aufgerufen wird?
Vielen Danke im Vorraus!
Ps.: Achja. Wenn ich den Befehl "make" in Linux aufrufe um das ganze zu builden (ich habe init_gdt(), set_entry() und die struct in eine externe .c datei gelagert und über header eingebunden) dann bekomm ich den Fehler, dass vor dem "volatile" doch bitte ein '(' zu stehen hat.
[1]http://www.lowlevel.eu/wiki/Teil_5_-_Interrupts ,sowie das dazu nötige
[2]http://www.lowlevel.eu/wiki/Global_Descriptor_Table
Aber zunächst eine generelle (vll auch doofe) Frage: Zeigen GDT's auf ein Daten/Code-Segment, oder ist dieses Segment im GDT enthalten?
Naja jedenfalls:
Im Artikel [1] werden ja über init_gdt(void) die GDT's gesetzt.
In dieser Funktion ist ein load_gdt();
Vorraussetzung für dies war der Artikel [2], indem die Funktion set_entry beschrieben wird, die zunächst benötigt wird.
Nur versteh ich die Form vom Struct nicht. Es besitzt weder Namen noch Variable-Beschreibung. (Ich kenne es als strucht bla{ /////}bla1,bla2;)
Wie wird also der Pointer auf das gerade eingerichtete GDT erstellt?
Und was hat es mit der nirgends definierten Funktion load_gdt(); zu tun, die am Ende von init_gdt aufgerufen wird?
Vielen Danke im Vorraus!
Ps.: Achja. Wenn ich den Befehl "make" in Linux aufrufe um das ganze zu builden (ich habe init_gdt(), set_entry() und die struct in eine externe .c datei gelagert und über header eingebunden) dann bekomm ich den Fehler, dass vor dem "volatile" doch bitte ein '(' zu stehen hat.

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert

.