• 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
                  • Aufgabe 6: Synchronisation
                    • Assembler Crashkurs
                      • C++ Crashkurs
                        • Entwicklungsumgebung
                          • FAQ
                            • Ruhmeshalle

                          Aufgabe 6: Synchronisation

                          Public Member Functions | Public Attributes | List of all members
                          Mouse Class Reference
                          I/O subsystem

                          Handles mouse movements and clicks. More...

                          #include <device/mouse.h>

                          + Inheritance diagram for Mouse:
                          [legend]
                          + Collaboration diagram for Mouse:
                          [legend]

                          Public Member Functions

                           Mouse (unsigned max_x, unsigned max_y)
                           Constructor. More...
                           
                          void getPos (unsigned &x, unsigned &y) const
                           Retrieve the current mouse position. More...
                           
                          bool isPressed (MouseButton btn) const
                           Check if a given mouse button is pressed. More...
                           
                          void plugin ()
                           Initialization of the mouse. More...
                           
                          bool prologue () override
                           Prologue of mouse interrupts. More...
                           
                          void epilogue () override
                           Epilogue of mouse interrupts. More...
                           
                          - Public Member Functions inherited from Gate
                           Gate ()
                           Constructor.
                           
                          virtual ~Gate ()
                           Destructor. More...
                           
                          virtual bool prologue ()=0
                           Device-specific interrupt handling routine that is executed immediately after the interrupt occurs (asynchronously). More...
                           
                          virtual void epilogue ()
                           Possibly delayed, synchronously executed Device-specific interrupt handling routine. More...
                           

                          Public Attributes

                          const unsigned MAX_X
                           Maximum X position of the mouse.
                           
                          const unsigned MAX_Y
                           Maximum Y position of the mouse.
                           

                          Detailed Description

                          Handles mouse movements and clicks.

                          This class ensures correct initialization of the mouse and, above all, its interrupt handling.

                          Constructor & Destructor Documentation

                          Mouse::Mouse ( unsigned  max_x,
                          unsigned  max_y 
                          )
                          inlineexplicit

                          Constructor.

                          Defines a virtual window for the mouse.

                          Parameters
                          max_xMaximum X position (excluding) for the mouse
                          max_yMaximum Y position (excluding) for the mouse

                          Member Function Documentation

                          void Mouse::getPos ( unsigned &  x,
                          unsigned &  y 
                          ) const
                          inline

                          Retrieve the current mouse position.

                          Parameters
                          xReference to variable for the X position (0 ≤ x < MAX_X) of the mouse
                          yReference to variable for the Y position (0 ≤ y < MAX_Y) of the mouse
                          bool Mouse::isPressed ( MouseButton  btn) const
                          inline

                          Check if a given mouse button is pressed.

                          Parameters
                          btnButton to check for press
                          Returns
                          true if button is currently pressed
                          void Mouse::plugin ( )

                          Initialization of the mouse.

                          Initialization of the mouse and activation of the specific interrupt handling: The object will register itself at the Plugbox and configure the IOAPIC to receive the corresponding interrupts.

                          Note
                          The mouse interrupts should be configured as level triggered.
                          bool Mouse::prologue ( )
                          overridevirtual

                          Prologue of mouse interrupts.

                          This method directly handles interrupts caused by the mouse. The position of the mouse and the pressed buttons are calculated and stored in variables, which are used by the epilogue to draw the cursor on the screen.

                          Implements Gate.

                          void Mouse::epilogue ( )
                          overridevirtual

                          Epilogue of mouse interrupts.

                          The current position of the cursor is drawn on the screen using TextMode::showMouse(). Press and release events of the buttons are printed to the debug output.

                          Reimplemented from Gate.


                          The documentation for this class was generated from the following files:
                          • device/mouse.h
                          • device/mouse.cc
                          Friedrich-Alexander-Universität
                          Erlangen-Nürnberg

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