StuBS
I/O subsystem

The input/output subsystem. More...

Files

file  outputstream.h
 This file contains the OutputStream.
 

Namespaces

namespace  ACPI
 Abstracts the ACPI standard that provides interfaces for hardware detection, device configuration, and energy management.
 
namespace  PS2Controller
 PS/2 Controller.
 

Classes

class  CopyStream
 Duplicate all data passed by the stream operator to two output streams. More...
 
class  NullStream
 Ignore all data passed by the stream operator. More...
 
class  Keyboard
 Handles keystrokes. More...
 
class  Mouse
 Handles mouse movements and clicks. More...
 
class  SerialStream
 Console (VT100 compatible) via Serial interface. More...
 
class  TextStream
 Output text (form different data type sources) on screen in text mode. More...
 
struct  ACPI::RSDP
 Root System Description Pointer (RSDP) More...
 
struct  ACPI::SDTH
 System Description Table Header (SDTH) More...
 
struct  ACPI::RSDT
 Root System Description Table (RSDT) More...
 
struct  ACPI::XSDT
 Extended System Description Table (XSDT) More...
 
struct  ACPI::SubHeader
 Helper structure. More...
 
struct  ACPI::MADT
 Multiple APIC Description Table (MADT) More...
 
struct  ACPI::Address
 ACPI address format. More...
 
struct  ACPI::MADS::LAPIC
 Processor Local APIC (LAPIC) Structure. More...
 
struct  ACPI::MADS::IOAPIC
 I/O APIC Structure. More...
 
struct  ACPI::MADS::Interrupt_Source_Override
 Interrupt Source Override Structure. More...
 
struct  ACPI::MADS::LAPIC_Address_Override
 Local APIC Address Override Structure. More...
 
class  KeyDecoder
 Decoder for keyboard codes received from the PS2Controller. More...
 
class  MouseDecoder
 Decoder for mouse codes received from the PS2Controller. More...
 
struct  MouseDecoder::MousePacket.__unnamed58__
 
struct  ACPI::MADS::LAPIC_Address_Override.__unnamed12__.__unnamed14__
 
union  ACPI::MADS::LAPIC_Address_Override.__unnamed12__
 
class  TextMode
 Basic operations in the VGA-compatible text mode. More...
 
struct  TextMode::Attribute.__unnamed66__
 
union  TextMode::Attribute
 Structure of a character attribute consists of 4 bit fore- and 3 bit background color, and a single blink bit. More...
 
struct  TextMode::Cell
 Structure for a cell in text mode. More...
 
class  Serial
 Serial interface. More...
 
class  TextWindow
 Virtual windows in text mode. More...
 

Detailed Description

The input/output subsystem.


Class Documentation

◆ ACPI::RSDP

struct ACPI::RSDP

Root System Description Pointer (RSDP)

The first step to using ACPI is finding the RSDP that is used to find the RSDT / XSDT, which themselves contain pointers to even more tables.

On UEFI systems, the RSDP can be found in the EFI_SYSTEM_TABLE; for non-UEFI systems we have to search for the signature 'RSD PTR ' in the EBDA (Extended Bios Data Area) or in the memory area up to FFFFFh.

See also
ACPI-Specification 5.2.5.3; Root System Description Pointer (RSDP) Structure
Class Members
char signature[8]
uint8_t checksum
char oemid[6]
uint8_t revision
uint32_t rsdtaddress
uint32_t length
uint64_t xsdtaddress
uint8_t extended_checksum
uint8_t reserved[3]

◆ ACPI::Address

struct ACPI::Address

ACPI address format.

The ACPI standard defines its own address format that is able to handle addresses both in memory address space, as well as IO-port address space.

Class Members
AddressSpace address_space
uint8_t register_bit_width
uint8_t register_bit_offset
uint8_t reserved
uint64_t address

◆ MouseDecoder::MousePacket.__unnamed58__

struct MouseDecoder::MousePacket.__unnamed58__
Class Members
uint8_t button_left: 1
uint8_t button_right: 1
uint8_t button_middle: 1
uint8_t always_1: 1
uint8_t sign_x: 1
uint8_t sign_y: 1
uint8_t overflow_x: 1
uint8_t overflow_y: 1

◆ ACPI::MADS::LAPIC_Address_Override.__unnamed12__.__unnamed14__

struct ACPI::MADS::LAPIC_Address_Override.__unnamed12__.__unnamed14__
Class Members
uint32_t lapic_address_low
uint32_t lapic_address_high

◆ ACPI::MADS::LAPIC_Address_Override.__unnamed12__

union ACPI::MADS::LAPIC_Address_Override.__unnamed12__
Class Members
uint64_t lapic_address
struct LAPIC_Address_Override.__unnamed12__.__unnamed14__ __unnamed__

◆ TextMode::Attribute.__unnamed66__

struct TextMode::Attribute.__unnamed66__
Class Members
uint8_t foreground: 4 .... XXXX Foreground color
uint8_t background: 3 .XXX .... Background color
uint8_t blink: 1 X... .... Blink