Go to the source code of this file.
◆ PS2_CONFIG_AUX_DISABLE
#define PS2_CONFIG_AUX_DISABLE (1 << 5) |
Definition at line 35 of file ps2.h.
◆ PS2_CONFIG_AUX_INT
#define PS2_CONFIG_AUX_INT (1 << 1) |
Definition at line 31 of file ps2.h.
◆ PS2_CONFIG_KBD_DISABLE
#define PS2_CONFIG_KBD_DISABLE (1 << 4) |
Definition at line 34 of file ps2.h.
◆ PS2_CONFIG_KBD_INT
#define PS2_CONFIG_KBD_INT (1 << 0) |
Definition at line 30 of file ps2.h.
◆ PS2_CONFIG_NO_KEYLOCK
#define PS2_CONFIG_NO_KEYLOCK (1 << 3) |
Definition at line 33 of file ps2.h.
◆ PS2_CONFIG_SYSTEM
#define PS2_CONFIG_SYSTEM (1 << 2) |
Definition at line 32 of file ps2.h.
◆ PS2_CONTROL_PORT
Definition at line 17 of file ps2.h.
◆ PS2_DATA_PORT
Definition at line 16 of file ps2.h.
◆ PS2_OUT_A20_SET
#define PS2_OUT_A20_SET (1 << 1) |
Definition at line 40 of file ps2.h.
◆ PS2_OUT_AUX_DATA
#define PS2_OUT_AUX_DATA (1 << 2) |
Definition at line 41 of file ps2.h.
◆ PS2_OUT_CPU_NO_RESET
#define PS2_OUT_CPU_NO_RESET (1 << 0) |
Definition at line 39 of file ps2.h.
◆ PS2_OUT_IRQ01
#define PS2_OUT_IRQ01 (1 << 4) |
Definition at line 43 of file ps2.h.
◆ PS2_OUT_IRQ12
#define PS2_OUT_IRQ12 (1 << 5) |
Definition at line 44 of file ps2.h.
◆ PS2_OUT_KBD_DATA
#define PS2_OUT_KBD_DATA (1 << 7) |
Definition at line 46 of file ps2.h.
◆ PS2_STAT_AUX_OUT_BUF_FULL
#define PS2_STAT_AUX_OUT_BUF_FULL (1 << 5) |
Definition at line 25 of file ps2.h.
◆ PS2_STAT_COMMAND
#define PS2_STAT_COMMAND (1 << 3) |
Definition at line 23 of file ps2.h.
◆ PS2_STAT_GEN_TIMEOUT
#define PS2_STAT_GEN_TIMEOUT (1 << 6) |
Definition at line 26 of file ps2.h.
◆ PS2_STAT_KBD_ENABLE
#define PS2_STAT_KBD_ENABLE (1 << 4) |
Definition at line 24 of file ps2.h.
◆ PS2_STAT_OUT_BUF_FULL
#define PS2_STAT_OUT_BUF_FULL (1 << 0) |
Definition at line 20 of file ps2.h.
◆ PS2_STAT_PARITY_ERROR
#define PS2_STAT_PARITY_ERROR (1 << 7) |
Definition at line 27 of file ps2.h.
◆ PS2_STAT_SYSTEM
#define PS2_STAT_SYSTEM (1 << 2) |
Definition at line 22 of file ps2.h.
◆ PS2_DEVICE_CMDPROC
Definition at line 48 of file ps2.h.
◆ PS2Cleanup()
Definition at line 546 of file ps2.c.
static PS2_PORT Ports[PS2_PORTS]
VOID DestroyHardwareTimer(PHARDWARE_TIMER Timer)
static PHARDWARE_TIMER IrqTimer
Referenced by EmulatorCleanup().
◆ PS2Initialize()
Definition at line 520 of file ps2.c.
static BYTE WINAPI PS2ReadData(USHORT Port)
VOID RegisterIoPort(USHORT Port, EMULATOR_INB_PROC InHandler, EMULATOR_OUTB_PROC OutHandler)
static VOID FASTCALL GeneratePS2Irq(ULONGLONG ElapsedTime)
static VOID WINAPI PS2WriteControl(USHORT Port, BYTE Data)
PHARDWARE_TIMER CreateHardwareTimer(ULONG Flags, ULONGLONG Delay, PHARDWARE_TIMER_PROC Callback)
static PS2_PORT Ports[PS2_PORTS]
#define HARDWARE_TIMER_ONESHOT
static VOID WINAPI PS2WriteData(USHORT Port, BYTE Data)
static BYTE WINAPI PS2ReadControl(USHORT Port)
static PHARDWARE_TIMER IrqTimer
Referenced by EmulatorInitialize().
◆ PS2PortQueueRead()
Definition at line 415 of file ps2.c.
427 if (
Port->QueueEmpty)
447 if (
Port->QueueEmpty)
goto Done;
468 if (
Port->QueueStart ==
Port->QueueEnd)
static BYTE StatusRegister
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
static PS2_PORT Ports[PS2_PORTS]
BOOL WINAPI DECLSPEC_HOTPATCH ReleaseMutex(IN HANDLE hMutex)
#define PS2_STAT_OUT_BUF_FULL
#define PS2_STAT_AUX_OUT_BUF_FULL
Referenced by DisableMouseInt(), DosMouseIrq(), EnableMouseInt(), GeneratePS2Irq(), ReadMouseData(), and SendMouseCommand().
◆ PS2QueuePush()
Definition at line 486 of file ps2.c.
499 if (!
Port->QueueEmpty && (
Port->QueueStart ==
Port->QueueEnd))
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG _In_opt_ PVOID Data
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
static PS2_PORT Ports[PS2_PORTS]
BOOL WINAPI DECLSPEC_HOTPATCH ReleaseMutex(IN HANDLE hMutex)
VOID EnableHardwareTimer(PHARDWARE_TIMER Timer)
static PHARDWARE_TIMER IrqTimer
Referenced by KeyboardCommand(), KeyboardEventHandler(), MouseCommand(), MouseDispatchPacket(), and PS2WriteData().
◆ PS2SetDeviceCmdProc()