mirror of
https://github.com/HyperDbg/HyperDbg.git
synced 2026-07-10 01:29:59 +00:00
175 lines
2.2 KiB
C
175 lines
2.2 KiB
C
/*++
|
|
|
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
|
Module Name:
|
|
|
|
ioaccess.c
|
|
|
|
Abstract:
|
|
|
|
This module provides a function table consumed by the UART library.
|
|
|
|
--*/
|
|
|
|
#include <ntddk.h>
|
|
#include <uart.h>
|
|
|
|
#if defined(_X86_)
|
|
|
|
UCHAR
|
|
ReadPort8(
|
|
PUCHAR Port)
|
|
{
|
|
return READ_PORT_UCHAR(Port);
|
|
}
|
|
|
|
USHORT
|
|
ReadPort16(
|
|
PUSHORT Port)
|
|
{
|
|
return READ_PORT_USHORT(Port);
|
|
}
|
|
|
|
ULONG
|
|
ReadPort32(
|
|
PULONG Port)
|
|
{
|
|
return READ_PORT_ULONG(Port);
|
|
}
|
|
|
|
VOID
|
|
WritePort8(
|
|
PUCHAR Port,
|
|
const UCHAR Value)
|
|
{
|
|
WRITE_PORT_UCHAR(Port, Value);
|
|
}
|
|
|
|
VOID
|
|
WritePort16(
|
|
PUSHORT Port,
|
|
const USHORT Value)
|
|
{
|
|
WRITE_PORT_USHORT(Port, Value);
|
|
}
|
|
|
|
VOID
|
|
WritePort32(
|
|
PULONG Port,
|
|
const ULONG Value)
|
|
{
|
|
WRITE_PORT_ULONG(Port, Value);
|
|
}
|
|
|
|
UCHAR
|
|
ReadRegister8(
|
|
PUCHAR Register)
|
|
{
|
|
return READ_REGISTER_UCHAR(Register);
|
|
}
|
|
|
|
USHORT
|
|
ReadRegister16(
|
|
PUSHORT Register)
|
|
{
|
|
return READ_REGISTER_USHORT(Register);
|
|
}
|
|
|
|
ULONG
|
|
ReadRegister32(
|
|
PULONG Register)
|
|
{
|
|
return READ_REGISTER_ULONG(Register);
|
|
}
|
|
|
|
VOID
|
|
WriteRegister8(
|
|
PUCHAR Register,
|
|
const UCHAR Value)
|
|
{
|
|
WRITE_REGISTER_UCHAR(Register, Value);
|
|
}
|
|
|
|
VOID
|
|
WriteRegister16(
|
|
PUSHORT Register,
|
|
const USHORT Value)
|
|
{
|
|
WRITE_REGISTER_USHORT(Register, Value);
|
|
}
|
|
|
|
VOID
|
|
WriteRegister32(
|
|
PULONG Register,
|
|
const ULONG Value)
|
|
{
|
|
WRITE_REGISTER_ULONG(Register, Value);
|
|
}
|
|
|
|
#endif
|
|
|
|
UART_HARDWARE_ACCESS UartHardwareAccess = {
|
|
|
|
#if defined(_X86_)
|
|
|
|
ReadPort8,
|
|
WritePort8,
|
|
ReadPort16,
|
|
WritePort16,
|
|
ReadPort32,
|
|
WritePort32,
|
|
|
|
#elif defined(_AMD64_)
|
|
|
|
READ_PORT_UCHAR,
|
|
WRITE_PORT_UCHAR,
|
|
READ_PORT_USHORT,
|
|
WRITE_PORT_USHORT,
|
|
READ_PORT_ULONG,
|
|
WRITE_PORT_ULONG,
|
|
|
|
#else
|
|
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
|
|
#endif
|
|
|
|
#if defined(_X86_)
|
|
|
|
ReadRegister8,
|
|
WriteRegister8,
|
|
ReadRegister16,
|
|
WriteRegister16,
|
|
ReadRegister32,
|
|
WriteRegister32,
|
|
|
|
#else
|
|
|
|
READ_REGISTER_UCHAR,
|
|
WRITE_REGISTER_UCHAR,
|
|
READ_REGISTER_USHORT,
|
|
WRITE_REGISTER_USHORT,
|
|
READ_REGISTER_ULONG,
|
|
WRITE_REGISTER_ULONG,
|
|
|
|
#endif
|
|
|
|
#if defined(_WIN64)
|
|
|
|
READ_REGISTER_ULONG64,
|
|
WRITE_REGISTER_ULONG64
|
|
|
|
#else
|
|
|
|
NULL,
|
|
NULL
|
|
|
|
#endif
|
|
|
|
};
|