Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenpcbios.h
Go to the documentation of this file.
00001 #ifndef __ASM__ 00002 00003 typedef enum 00004 { 00005 BiosMemoryUsable=1, 00006 BiosMemoryReserved, 00007 BiosMemoryAcpiReclaim, 00008 BiosMemoryAcpiNvs 00009 } BIOS_MEMORY_TYPE; 00010 00011 typedef struct 00012 { 00013 ULONGLONG BaseAddress; 00014 ULONGLONG Length; 00015 ULONG Type; 00016 ULONG Reserved; 00017 } BIOS_MEMORY_MAP, *PBIOS_MEMORY_MAP; 00018 00019 /* FIXME: Should be moved to NDK, and respective ACPI header files */ 00020 typedef struct _ACPI_BIOS_DATA 00021 { 00022 PHYSICAL_ADDRESS RSDTAddress; 00023 ULONGLONG Count; 00024 BIOS_MEMORY_MAP MemoryMap[1]; /* Count of BIOS memory map entries */ 00025 } ACPI_BIOS_DATA, *PACPI_BIOS_DATA; 00026 00027 #include <pshpack1.h> 00028 typedef struct 00029 { 00030 unsigned long eax; 00031 unsigned long ebx; 00032 unsigned long ecx; 00033 unsigned long edx; 00034 00035 unsigned long esi; 00036 unsigned long edi; 00037 unsigned long ebp; 00038 00039 unsigned short ds; 00040 unsigned short es; 00041 unsigned short fs; 00042 unsigned short gs; 00043 00044 unsigned long eflags; 00045 00046 } DWORDREGS; 00047 00048 typedef struct 00049 { 00050 unsigned short ax, _upper_ax; 00051 unsigned short bx, _upper_bx; 00052 unsigned short cx, _upper_cx; 00053 unsigned short dx, _upper_dx; 00054 00055 unsigned short si, _upper_si; 00056 unsigned short di, _upper_di; 00057 unsigned short bp, _upper_bp; 00058 00059 unsigned short ds; 00060 unsigned short es; 00061 unsigned short fs; 00062 unsigned short gs; 00063 00064 unsigned short flags, _upper_flags; 00065 00066 } WORDREGS; 00067 00068 typedef struct 00069 { 00070 unsigned char al; 00071 unsigned char ah; 00072 unsigned short _upper_ax; 00073 unsigned char bl; 00074 unsigned char bh; 00075 unsigned short _upper_bx; 00076 unsigned char cl; 00077 unsigned char ch; 00078 unsigned short _upper_cx; 00079 unsigned char dl; 00080 unsigned char dh; 00081 unsigned short _upper_dx; 00082 00083 unsigned short si, _upper_si; 00084 unsigned short di, _upper_di; 00085 unsigned short bp, _upper_bp; 00086 00087 unsigned short ds; 00088 unsigned short es; 00089 unsigned short fs; 00090 unsigned short gs; 00091 00092 unsigned short flags, _upper_flags; 00093 00094 } BYTEREGS; 00095 00096 00097 typedef union 00098 { 00099 DWORDREGS x; 00100 DWORDREGS d; 00101 WORDREGS w; 00102 BYTEREGS b; 00103 } REGS; 00104 #include <poppack.h> 00105 00106 // Int386() 00107 // 00108 // Real mode interrupt vector interface 00109 // 00110 // (E)FLAGS can *only* be returned by this function, not set. 00111 // Make sure all memory pointers are in SEG:OFFS format and 00112 // not linear addresses, unless the interrupt handler 00113 // specifically handles linear addresses. 00114 int Int386(int ivec, REGS* in, REGS* out); 00115 00116 // This macro tests the Carry Flag 00117 // If CF is set then the call failed (usually) 00118 #define INT386_SUCCESS(regs) ((regs.x.eflags & EFLAGS_CF) == 0) 00119 00120 void EnableA20(void); 00121 VOID ChainLoadBiosBootSectorCode(VOID); // Implemented in boot.S 00122 VOID SoftReboot(VOID); // Implemented in boot.S 00123 VOID DetectHardware(VOID); // Implemented in hardware.c 00124 00125 #endif /* ! __ASM__ */ 00126 00127 /* Layout of the REGS structure */ 00128 #define REGS_EAX 0 00129 #define REGS_EBX 4 00130 #define REGS_ECX 8 00131 #define REGS_EDX 12 00132 #define REGS_ESI 16 00133 #define REGS_EDI 20 00134 #define REGS_EBP 24 00135 #define REGS_DS 28 00136 #define REGS_ES 30 00137 #define REGS_FS 32 00138 #define REGS_GS 34 00139 #define REGS_EFLAGS 36 00140 #define REGS_SIZE 40 00141 Generated on Fri May 25 2012 04:17:17 for ReactOS by
1.7.6.1
|