• 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

                        Enumerations | Functions | Constants
                        APIC Namespace Reference

                        Information about the (extended) Advanced Programmable Interrupt Controller. More...

                        Enumerations

                        enum  Device {
                          TIMER = 0 ,
                          KEYBOARD = 1 ,
                          COM1 = 4 ,
                          COM2 = 3 ,
                          COM3 = 4 ,
                          COM4 = 3 ,
                          FLOPPY = 6 ,
                          LPT1 = 7 ,
                          REALTIMECLOCK = 8 ,
                          PS2MOUSE = 12 ,
                          IDE1 = 14 ,
                          IDE2 = 15
                        }
                         Historic order of interrupt lines (PIC) More...
                         

                        Functions

                        bool init ()
                         Executes system detection. More...
                         
                        uint8_t getIOAPICSlot (APIC::Device device)
                         Returns the pin number the device is connected to.
                         
                        uintptr_t getIOAPICAddress ()
                         Queries the physical I/O-APIC address determined during system boot. More...
                         
                        uint8_t getIOAPICID ()
                         Queries of ID of the I/O-APIC determined during system boot. More...
                         
                        uint8_t getLogicalAPICID (uint8_t core)
                         Returns the logical ID of the Local APIC passed for core. More...
                         
                        uint8_t getLAPICID (uint8_t core)
                         Get the Local APIC ID of a CPU. More...
                         

                        Constants

                        const uint8_t INVALID_ID = 0xff
                         Invalid APIC ID. More...
                         

                        Detailed Description

                        Information about the (extended) Advanced Programmable Interrupt Controller.

                        Enumeration Type Documentation

                        enum APIC::Device

                        Historic order of interrupt lines (PIC)

                        Enumerator
                        TIMER 

                        Programmable Interrupt Timer (PIT)

                        KEYBOARD 

                        Keyboard.

                        COM1 

                        First serial interface.

                        COM2 

                        Second serial interface.

                        COM3 

                        Third serial interface (shared with COM1)

                        COM4 

                        Forth serial interface (shared with COM2)

                        FLOPPY 

                        Floppy device.

                        LPT1 

                        Printer.

                        REALTIMECLOCK 

                        Real time clock.

                        PS2MOUSE 

                        Mouse.

                        IDE1 

                        First hard disk.

                        IDE2 

                        Second hard disk.

                        Function Documentation

                        bool APIC::init ( )

                        Executes system detection.

                        Searches and evaluates the APIC entries in the ACPI table. This function recognizes a possibly existing multicore system. After successful detection, the number of available CPUs (which is equal to the number of local APICs) ) can be queried using the method Core::count().

                        Note
                        Called by kernel_init() on BSP
                        Returns
                        true if detection of the APIC entries was successful
                        uintptr_t APIC::getIOAPICAddress ( )

                        Queries the physical I/O-APIC address determined during system boot.

                        Returns
                        Base address of the (first & only supported) I/O APIC
                        uint8_t APIC::getIOAPICID ( )

                        Queries of ID of the I/O-APIC determined during system boot.

                        Returns
                        Identification of the (first & only supported) I/O APIC
                        uint8_t APIC::getLogicalAPICID ( uint8_t  core)

                        Returns the logical ID of the Local APIC passed for core.

                        The LAPIC's logical ID is set (by StuBS) during boot such that exactly one bit is set per CPU core. For core 0, bit 0 is set in its ID, while core 1 has bit 1 set, etc.

                        Parameters
                        coreThe queried CPU core
                        uint8_t APIC::getLAPICID ( uint8_t  core)

                        Get the Local APIC ID of a CPU.

                        Parameters
                        coreQuery CPU core number
                        Returns
                        LAPIC ID of CPU or INVALID_ID if invalid CPU ID

                        Constant Documentation

                        const uint8_t APIC::INVALID_ID = 0xff

                        Invalid APIC ID.

                        The highest address is reserved according to xAPIC specification

                        Friedrich-Alexander-Universität
                        Erlangen-Nürnberg

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