Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
1.7 KiB

4 years ago
  1. /*++ BUILD Version: 0011 // Increment this if a change has global effects
  2. Copyright (c) 1994 Microsoft Corporation
  3. Module Name:
  4. x86bios.h
  5. Abstract:
  6. This header file defines the interfaces to the x86 bios emulator.
  7. Author:
  8. David N. Cutler (davec) 23-Jun-1994
  9. Revision History:
  10. --*/
  11. #ifndef _X86BIOS_
  12. #define _X86BIOS_
  13. #if !defined(_X86_)
  14. //
  15. // Define x86 bios emulator status codes.
  16. //
  17. typedef enum _X86BIOS_STATUS {
  18. x86BiosSuccess, // X86 Emulator successfully executed adapter initialization or INT call.
  19. x86BiosNoVideoBios, // Adapter can not be initialized because a BIOS signature was not found.
  20. x86BiosInvalidChecksum, // Bad checksum for Video BIOS.
  21. x86BiosInvalidInstruction, // X86 Emulator attempted to execute an invalid instruction.
  22. x86BiosHaltInstruction, // X86 Emulator attempted to execute a HALT instruction.
  23. x86BiosWaitInstruction, // X86 emulator attempted to execute a WAIT instruction.
  24. x86BiosTrapFlagAsserted, // Trap flag became set. An INT 1 handler does not exist.
  25. x86BiosDivideByZero // DIV or IDIV instruction attempted to divide by zero.
  26. } X86BIOS_STATUS;
  27. //
  28. // Define x86 bios emulator context structure.
  29. //
  30. typedef struct _X86BIOS_CONTEXT {
  31. ULONG Eax;
  32. ULONG Ebx;
  33. ULONG Ecx;
  34. ULONG Edx;
  35. ULONG Esi;
  36. ULONG Edi;
  37. ULONG Ebp;
  38. } X86BIOS_CONTEXT, *PX86BIOS_CONTEXT;
  39. X86BIOS_STATUS
  40. X86BiosInitializeAdapter(
  41. ULONG Address
  42. );
  43. X86BIOS_STATUS
  44. X86BiosExecuteInt(
  45. USHORT Type,
  46. PX86BIOS_CONTEXT Arguments
  47. );
  48. VOID
  49. X86BiosInitialize(
  50. ULONG IsaIoVirtualBase,
  51. ULONG IsaMemoryVirtualBase
  52. );
  53. #endif
  54. #endif // _x86BIOS_