• Navigation überspringen
  • Zur Navigation
  • Zum Seitenende
Organisationsmenü öffnen Organisationsmenü schließen
Friedrich-Alexander-Universität Lehrstuhl für Informatik 4 (Systemsoftware)
  • FAUZur zentralen FAU Website
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
Suche öffnen
  • English
  • Campo
  • StudOn
  • FAUdir
  • Stellenangebote
  • Lageplan
  • Hilfe im Notfall
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
Friedrich-Alexander-Universität Lehrstuhl für Informatik 4 (Systemsoftware)
Menu Menu schließen
  • Lehrstuhl
    • Team
    • Aktuelles
    • Kontakt und Anfahrt
    • Leitbild
    • 50-jähriges Jubiläum
    Portal Lehrstuhl
  • Forschung
    • Forschungsbereiche
      • Betriebssysteme
      • Confidential Computing
      • Embedded Systems Software
      • Verteilte Systeme
    • Projekte
      • AIMBOS
      • BALu
      • BFT2Chain
      • DOSS
      • Mirador
      • NEON
      • PAVE
      • ResPECT
      • Watwa
    • Projektkampagnen
      • maRE
    • Seminar
      • Systemsoftware
    Portal Forschung
  • Publikationen
  • Lehre
    • Sommersemester 2025
      • Applied Software Architecture
      • Ausgewählte Kapitel der Systemsoftware
      • Betriebssystemtechnik
      • Projekt angewandte Systemsoftwaretechnik
      • System-Level Programming
      • Systemnahe Programmierung in C
      • Systemprogrammierung 1
      • Verteilte Systeme
    • Wintersemester 2025/26
      • Systemprogrammierung 2
      • Betriebssysteme
      • Middleware – Cloud Computing
      • Echtzeitsysteme
      • Virtuelle Maschinen
      • Web-basierte Systeme
      • Projekt angewandte Systemsoftwaretechnik
      • Aktuelle Entwicklung in Verteilten und Objektorientierten Betriebssystemen (für Bachelor-/Masterarbeit)
    Portal Lehre
  • Examensarbeiten
  1. Startseite
  2. Extern

Extern

Bereichsnavigation: Lehre
  • Betriebssysteme
    • Vorlesung
      • Folien
    • Übung
      • Seminar
      • Aufgaben
      • Aufgabe 0: C++ Streams
        • Aufgabe 1: Ein-/Ausgabe
          • Aufgabe 2: Unterbrechungen
            • Aufgabe 3: Pro-/Epilog
              • Aufgabe 4: Kontextwechsel
                • Aufgabe 5: Zeitscheiben
                  • Assembler Crashkurs
                    • C++ Crashkurs
                      • Entwicklungsumgebung
                        • FAQ
                          • Ruhmeshalle

                        C++ Crashkurs

                        Classes | Enumerations | Functions
                        IDT Namespace Reference

                        "Interrupt Descriptor Table (IDT) More...

                        Classes

                        struct  InterruptDescriptor.__unnamed25__.__unnamed27__
                         

                        Enumerations

                        enum  Gate {
                          GATE_TASK = 0x5 ,
                          GATE_INT = 0x6 ,
                          GATE_TRAP = 0x7
                        }
                         Gate types. More...
                         
                        enum  GateSize {
                          GATE_SIZE_16 = 0 ,
                          GATE_SIZE_32 = 1
                        }
                         Segment type. More...
                         
                        enum  DPL {
                          DPL_KERNEL = 0 ,
                          DPL_USER = 3
                        }
                         Descriptor Privilege Level. More...
                         

                        Functions

                        void load ()
                         Load the IDT's address and size into the IDT-Register via idtr.
                         
                        void handle (uint8_t vector, void *handler, enum Gate type=Gate::GATE_INT, enum GateSize size=GateSize::GATE_SIZE_32, enum DPL dpl=DPL::DPL_KERNEL, bool present=true)
                         Configure entry point for interrupt handling. More...
                         

                        Detailed Description

                        "Interrupt Descriptor Table (IDT)

                        See also
                        ISDMv3 6.14 Exception and Interrupt Handling in 64-bit Mode

                        Class Documentation

                        struct IDT::InterruptDescriptor.__unnamed25__.__unnamed27__
                        Class Members
                        uint8_t ist: 3 IST Index (64 bit)
                        uint8_t __pad0__: 5 unused, has to be 0
                        Gate type: 3 gate type
                        GateSize size: 1 gate size
                        uint8_t __pad1__: 1 unused, has to be 0
                        DPL dpl: 2 descriptor privilege level
                        uint8_t present: 1 present: 1 for interrupts

                        Enumeration Type Documentation

                        enum IDT::Gate

                        Gate types.

                        See also
                        ISDMv3 3.5 System Descriptor Types
                        Enumerator
                        GATE_TASK 

                        Task Gate.

                        GATE_INT 

                        Interrupt Gate.

                        GATE_TRAP 

                        Trap Gate.

                        enum IDT::GateSize

                        Segment type.

                        See also
                        ISDMv3 3.5 System Descriptor Types
                        Enumerator
                        GATE_SIZE_16 

                        16 bit

                        GATE_SIZE_32 

                        32 / 64 bit

                        enum IDT::DPL

                        Descriptor Privilege Level.

                        Enumerator
                        DPL_KERNEL 

                        Ring 0 / Kernel mode.

                        DPL_USER 

                        Ring 3 / User mode.

                        Function Documentation

                        void IDT::handle ( uint8_t  vector,
                        void *  handler,
                        enum Gate  type = Gate::GATE_INT,
                        enum GateSize  size = GateSize::GATE_SIZE_32,
                        enum DPL  dpl = DPL::DPL_KERNEL,
                        bool  present = true 
                        )

                        Configure entry point for interrupt handling.

                        The provided entry function ("handler") is required to, as first step, save the registers.

                        Parameters
                        vectorInterrupt vector number for which the handler is to be set/changed
                        handlerLow-level entry point for interrupt handling
                        typeGate type (Interrupt, Trap, or Task)
                        size16- or 32-bit
                        dplPermissions required for enter this interrupt handler (kernel- or user space)
                        presentDenotes whether the IDT descriptor is marked as available
                        Friedrich-Alexander-Universität
                        Erlangen-Nürnberg

                        Schlossplatz 4
                        91054 Erlangen
                        • Impressum
                        • Datenschutz
                        • Barrierefreiheit
                        • Facebook
                        • RSS Feed
                        • Xing
                        Nach oben