The Pedigree Project  0.1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
HostedKeyboard Class Reference
+ Inheritance diagram for HostedKeyboard:
+ Collaboration diagram for HostedKeyboard:

Public Member Functions

virtual void initialise ()
 
virtual void setDebugState (bool enableDebugState)
 
virtual bool getDebugState ()
 
virtual char getChar ()
 
virtual char getCharNonBlock ()
 
virtual char getLedState ()
 
virtual void setLedState (char state)
 

Private Member Functions

void blocking (bool enable)
 

Private Attributes

bool m_bDebugState
 True if we're in debug state.
 

Additional Inherited Members

- Public Types inherited from Keyboard
enum  KeyFlags {
  Special = 1ULL << 63, Ctrl = 1ULL << 62, Shift = 1ULL << 61, Alt = 1ULL << 60,
  AltGr = 1ULL << 59, Special = 1ULL << 63, Ctrl = 1ULL << 62, Shift = 1ULL << 61,
  Alt = 1ULL << 60, AltGr = 1ULL << 59
}
 
enum  KeyboardLeds {
  ScrollLock = 1 << 0, NumLock = 1 << 1, CapsLock = 1 << 2, Led1 = 1 << 3,
  Led2 = 1 << 4, Led3 = 1 << 5, Led4 = 1 << 6, Led5 = 1 << 7
}
 Bit numbers follow the same format as the PS/2 keyboard LED byte. More...
 
enum  KeyFlags {
  Special = 1ULL << 63, Ctrl = 1ULL << 62, Shift = 1ULL << 61, Alt = 1ULL << 60,
  AltGr = 1ULL << 59, Special = 1ULL << 63, Ctrl = 1ULL << 62, Shift = 1ULL << 61,
  Alt = 1ULL << 60, AltGr = 1ULL << 59
}
 

Detailed Description

Definition at line 26 of file kernel/machine/hosted/Keyboard.h.

Member Function Documentation

char HostedKeyboard::getChar ( )
virtual

Retrieves a character from the keyboard. Blocking I/O. If DebugState is false this returns zero. If DebugState is true this returns the next character received, or zero if the character is non-ASCII.

Implements Keyboard.

Definition at line 72 of file hosted/Keyboard.cc.

char HostedKeyboard::getCharNonBlock ( )
virtual

Retrieves a character from the keyboard. Non blocking I/O. If DebugState is false this returns zero. If DebugState is true this returns the next character received, or zero if the character is non-ASCII.

Implements Keyboard.

Definition at line 86 of file hosted/Keyboard.cc.

char HostedKeyboard::getLedState ( )
virtual

Gets the current state of the LEDs on the keyboard. A single byte bitmap is returned with flags from KeyboardLeds identifying which LEDs are on or off.

Reimplemented from Keyboard.

Definition at line 110 of file hosted/Keyboard.cc.

void HostedKeyboard::initialise ( )
virtual

Initialises the device.

Implements Keyboard.

Definition at line 63 of file hosted/Keyboard.cc.

void HostedKeyboard::setDebugState ( bool  enableDebugState)
virtual

Sets the state of the device. When debugging, it is unwise to rely on interrupt- driven I/O, however in normal use polling is extremely slow and CPU-intensive.

The debugger therefore will set the device to "debug state" by calling this function with the argument "true". In "debug state", any buffered input will be discarded, the device's interrupt masked, and the device will rely on polling only. This will be the default state.

When the device is set to "normal state" by calling this function with the argument "false", interrupts may be used, along with buffered input, and it is recommended that during blocking I/O a Semaphore is used to signal incoming interrupts, so that the blocked thread may go to sleep.

Implements Keyboard.

Definition at line 100 of file hosted/Keyboard.cc.

void HostedKeyboard::setLedState ( char  state)
virtual

Sets the current state of LEDs on the keyboard. If a keyboard does not have any LEDs this is essentially a no-op.

Reimplemented from Keyboard.

Definition at line 115 of file hosted/Keyboard.cc.


The documentation for this class was generated from the following files: