20#ifndef MACHINE_X86_KEYBOARD_H
21#define MACHINE_X86_KEYBOARD_H
22#include "pedigree/kernel/compiler.h"
23#include "pedigree/kernel/machine/Keyboard.h"
24#include "pedigree/kernel/machine/KeymapManager.h"
25#include "pedigree/kernel/machine/types.h"
26#include "pedigree/kernel/process/Mutex.h"
27#include "pedigree/kernel/process/OwnedThread.h"
28#include "pedigree/kernel/processor/types.h"
48 virtual bool getDebugState();
56 void startReaderThread();
57 void stopReaderThread();
60 static int readerThreadTrampoline(
void*);
63 void updateLedState(
char state,
bool toggle);
64 void handleLedResponse(uint8_t response);
81 enum LedCommandState { LedIdle, LedCommandAck, LedDataAck };
82 LedCommandState m_LedCommandState;
KeymapManager::EscapeState m_Escape
The current escape state.
char m_LedState
Current LED state.
Ps2Controller * m_pPs2Controller
Parent PS/2 controller.
virtual char getLedState()
OwnedThread m_ReaderThread
The controller buffer may block this worker until teardown wakes it.
virtual void setDebugState(bool enableDebugState)
virtual void initialise()
Initialises the device.
virtual char getCharNonBlock()
virtual void setLedState(char state)
char scancodeToAscii(uint8_t scancode)
Converts a scancode into an ASCII character (for use in debug state)