https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f18958ffa2cfa4b8090ae3108e904c7ad8f322fd
commit f18958ffa2cfa4b8090ae3108e904c7ad8f322fd Author: Timo Kreuzer <timo.kreu...@reactos.org> AuthorDate: Sun Feb 11 16:43:51 2018 +0100 Commit: Timo Kreuzer <timo.kreu...@reactos.org> CommitDate: Thu Aug 15 14:13:54 2019 +0200 [NDK] Add BIOS call API for amd64 --- sdk/include/ndk/halfuncs.h | 47 ++++++++++++++++++++++++++++++++++++++++++++-- sdk/include/ndk/haltypes.h | 20 ++++++++++++++++++++ 2 files changed, 65 insertions(+), 2 deletions(-) diff --git a/sdk/include/ndk/halfuncs.h b/sdk/include/ndk/halfuncs.h index 03e869887a2..2086416f000 100644 --- a/sdk/include/ndk/halfuncs.h +++ b/sdk/include/ndk/halfuncs.h @@ -294,5 +294,48 @@ HalSetTimeIncrement( _In_ ULONG Increment ); -#endif -#endif + +// +// BIOS call API +// +#ifdef _M_AMD64 + +NTSTATUS +NTAPI +x86BiosAllocateBuffer( + _In_ ULONG *Size, + _In_ USHORT *Segment, + _In_ USHORT *Offset); + +NTSTATUS +NTAPI +x86BiosFreeBuffer( + _In_ USHORT Segment, + _In_ USHORT Offset); + +NTSTATUS +NTAPI +x86BiosReadMemory( + _In_ USHORT Segment, + _In_ USHORT Offset, + _Out_writes_bytes_(Size) PVOID Buffer, + _In_ ULONG Size); + +NTSTATUS +NTAPI +x86BiosWriteMemory( + _In_ USHORT Segment, + _In_ USHORT Offset, + _In_reads_bytes_(Size) PVOID Buffer, + _In_ ULONG Size); + +BOOLEAN +NTAPI +x86BiosCall( + _In_ ULONG InterruptNumber, + _Inout_ PX86_BIOS_REGISTERS Registers); + +#endif // _M_AMD64 + +#endif // NTOS_MODE_USER +#endif // _HALFUNCS_H diff --git a/sdk/include/ndk/haltypes.h b/sdk/include/ndk/haltypes.h index d27581b83fc..125158b4210 100644 --- a/sdk/include/ndk/haltypes.h +++ b/sdk/include/ndk/haltypes.h @@ -275,6 +275,26 @@ extern PUCHAR NTHALAPI KdComPortInUse; // #define HAL_IRQ_TRANSLATOR_VERSION 0x0 +// +// BIOS call structure +// +#ifdef _M_AMD64 + +typedef struct _X86_BIOS_REGISTERS +{ + ULONG Eax; + ULONG Ecx; + ULONG Edx; + ULONG Ebx; + ULONG Ebp; + ULONG Esi; + ULONG Edi; + USHORT SegDs; + USHORT SegEs; +} X86_BIOS_REGISTERS, *PX86_BIOS_REGISTERS; + +#endif // _M_AMD64 + #endif #endif