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
 

Reply via email to