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  NullStream
 Ignore all data passed by the stream operator. More...
 
class  Keyboard
 Handles keystrokes. 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  Serial
 Serial interface. More...
 
class  TextMode
 Basic operations in the VGA-compatible text mode. More...
 
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...
 
struct  TextMode::Attribute.__unnamed66__
 
struct  ACPI::MADS::LAPIC_Address_Override.__unnamed12__.__unnamed14__
 
union  ACPI::MADS::LAPIC_Address_Override.__unnamed12__
 
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

◆ 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

◆ 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__