ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

pcbios.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.