Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenx86common.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
1.7.6.1
|