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

x86common.h
Go to the documentation of this file.
00001 
00002 #ifndef HEX
00003 #define HEX(y) 0x##y
00004 #endif
00005 
00006 /* Memory layout */
00007 //#ifdef _M_AMD64
00008 #define PML4_ADDRESS        HEX(1000) /* One page PML4 page table */
00009 #define PDP_ADDRESS         HEX(2000) /* One page PDP page table */
00010 #define PD_ADDRESS          HEX(3000) /* One page PD page table */
00011 //#endif
00012 #define STACK16ADDR         HEX(6F00) /* The 16-bit stack top will be at 0000:6F00 */
00013 #define BSS_START           HEX(6F00)
00014 #define FREELDR_BASE        HEX(F800)
00015 #define FREELDR_PE_BASE    HEX(10000)
00016 #define FILESYSBUFFER      HEX(80000) /* Buffer to store file system data (e.g. cluster buffer for FAT) */
00017 #define DISKREADBUFFER     HEX(90000) /* Buffer to store data read in from the disk via the BIOS */
00018 #define STACK32ADDR        HEX(98000) /* The 32-bit stack top will be at 9000:8000, or 0xA8000 */
00019 #define STACK64ADDR        HEX(98000) /* The 64-bit stack top will be at 98000 */
00020 #define BIOSCALLBUFFER     HEX(98000) /* Buffer to store temporary data for any Int386() call */
00021 #define DISKREADBUFFER_SIZE 512
00022 
00023 #define BIOSCALLBUFSEGMENT (BIOSCALLBUFFER/16) /* Buffer to store temporary data for any Int386() call */
00024 #define BIOSCALLBUFOFFSET   HEX(0000) /* Buffer to store temporary data for any Int386() call */
00025 #define BIOSCALLBUFSIZE     PAGE_SIZE /* max is sizeof(VESA_SVGA_INFO) = 512 */
00026 
00027 /* These addresses specify the realmode "BSS section" layout */
00028 #define BSS_RealModeEntry        (BSS_START +  0)
00029 #define BSS_CallbackReturn       (BSS_START +  4)
00030 #define BSS_RegisterSet          (BSS_START +  8) /* size = 40 */
00031 #define BSS_IntVector            (BSS_START + 52)
00032 #define BSS_PxeEntryPoint        (BSS_START + 56)
00033 #define BSS_PxeBufferSegment     (BSS_START + 60)
00034 #define BSS_PxeBufferOffset      (BSS_START + 64)
00035 #define BSS_PxeFunction          (BSS_START + 68)
00036 #define BSS_PxeResult            (BSS_START + 72)
00037 #define BSS_PnpBiosEntryPoint    (BSS_START + 76)
00038 #define BSS_PnpBiosDataSegment   (BSS_START + 80)
00039 #define BSS_PnpBiosBufferSegment (BSS_START + 84)
00040 #define BSS_PnpBiosBufferOffset  (BSS_START + 88)
00041 #define BSS_PnpNodeSize          (BSS_START + 92)
00042 #define BSS_PnpNodeCount         (BSS_START + 96)
00043 #define BSS_PnpNodeNumber        (BSS_START + 100)
00044 #define BSS_PnpResult            (BSS_START + 104)
00045 #define BSS_BootDrive            (BSS_START + 108) // 1 byte
00046 #define BSS_BootPartition        (BSS_START + 109) // 1 byte
00047 
00048 
00049 /* Realmode function IDs */
00050 #define FNID_Int386 0
00051 #define FNID_SoftReboot 1
00052 #define FNID_ChainLoadBiosBootSectorCode 2
00053 #define FNID_PxeCallApi 3
00054 #define FNID_PnpBiosGetDeviceNodeCount 4
00055 #define FNID_PnpBiosGetDeviceNode 5
00056 #define FNID_BootLinuxKernel 6
00057 
00058 /* Flag Masks */
00059 #define CR0_PE_SET  HEX(00000001)   /* OR this value with CR0 to enable pmode */
00060 #define CR0_PE_CLR  HEX(FFFFFFFE)   /* AND this value with CR0 to disable pmode */
00061 
00062 /* Defines needed for switching between real and protected mode */
00063 //#ifdef _M_IX86
00064 #define NULL_DESC   HEX(00) /* NULL descriptor */
00065 #define PMODE_CS    HEX(08) /* PMode code selector, base 0 limit 4g */
00066 #define PMODE_DS    HEX(10) /* PMode data selector, base 0 limit 4g */
00067 #define RMODE_CS    HEX(18) /* RMode code selector, base 0 limit 64k */
00068 #define RMODE_DS    HEX(20) /* RMode data selector, base 0 limit 64k */
00069 //#else
00070 /* Long mode selectors */
00071 #define LMODE_CS HEX(10)
00072 #define LMODE_DS HEX(18)
00073 #define CMODE_CS HEX(30)
00074 //#endif
00075 
00076 /* Makes "x" a global variable or label */
00077 #define EXTERN(x)   .global x; x:

Generated on Sun May 27 2012 04:19:13 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.