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

arc.h
Go to the documentation of this file.
00001 #ifndef _ARC_
00002 #define _ARC_
00003 
00004 typedef ULONG ARC_STATUS;
00005 
00006 typedef enum _ARC_CODES
00007 {
00008     ESUCCESS,
00009     E2BIG,
00010     EACCES,
00011     EAGAIN,
00012     EBADF,
00013     EBUSY,
00014     EFAULT,
00015     EINVAL,
00016     EIO,
00017     EISDIR,
00018     EMFILE,
00019     EMLINK,
00020     ENAMETOOLONG,
00021     ENODEV,
00022     ENOENT,
00023     ENOEXEC,
00024     ENOMEM,
00025     ENOSPC,
00026     ENOTDIR,
00027     ENOTTY,
00028     ENXIO,
00029     EROFS,
00030     EMAXIMUM
00031 } ARC_CODES;
00032 
00033 typedef enum _SEEKMODE
00034 {
00035     SeekAbsolute,
00036     SeekRelative,
00037 } SEEKMODE;
00038 
00039 typedef enum _OPENMODE
00040 {
00041     OpenReadOnly,
00042     OpenWriteOnly,
00043     OpenReadWrite,
00044     CreateWriteOnly,
00045     CreateReadOnly,
00046     SupersedeWriteOnly,
00047     SupersedeReadOnly,
00048     SupersedeReadWrite,
00049     OpenDirectory,
00050     CreateDirectory,
00051 } OPENMODE;
00052 
00053 typedef enum _IDENTIFIER_FLAG
00054 {
00055     Failed = 0x01,
00056     ReadOnly = 0x02,
00057     Removable = 0x04,
00058     ConsoleIn = 0x08,
00059     ConsoleOut = 0x10,
00060     Input = 0x20,
00061     Output = 0x40
00062 } IDENTIFIER_FLAG;
00063 
00064 typedef enum _CONFIGURATION_CLASS
00065 {
00066     SystemClass,
00067     ProcessorClass,
00068     CacheClass,
00069     AdapterClass,
00070     ControllerClass,
00071     PeripheralClass,
00072     MemoryClass,
00073     MaximumClass
00074 } CONFIGURATION_CLASS;
00075 
00076 typedef enum _TYPE_OF_MEMORY
00077 {
00078     LoaderExceptionBlock,
00079     LoaderSystemBlock,
00080     LoaderFree,
00081     LoaderBad,
00082     LoaderLoadedProgram,
00083     LoaderFirmwareTemporary,
00084     LoaderFirmwarePermanent,
00085     LoaderOsloaderHeap,
00086     LoaderOsloaderStack,
00087     LoaderSystemCode,
00088     LoaderHalCode,
00089     LoaderBootDriver,
00090     LoaderConsoleInDriver,
00091     LoaderConsoleOutDriver,
00092     LoaderStartupDpcStack,
00093     LoaderStartupKernelStack,
00094     LoaderStartupPanicStack,
00095     LoaderStartupPcrPage,
00096     LoaderStartupPdrPage,
00097     LoaderRegistryData,
00098     LoaderMemoryData,
00099     LoaderNlsData,
00100     LoaderSpecialMemory,
00101     LoaderBBTMemory,
00102     LoaderReserve,
00103     LoaderXIPRom,
00104     LoaderHALCachedMemory,
00105     LoaderLargePageFiller,
00106     LoaderErrorLogMemory,
00107     LoaderMaximum
00108 } TYPE_OF_MEMORY;
00109 
00110 typedef enum _MEMORY_TYPE
00111 {
00112     MemoryExceptionBlock,
00113     MemorySystemBlock,
00114     MemoryFree,
00115     MemoryBad,
00116     MemoryLoadedProgram,
00117     MemoryFirmwareTemporary,
00118     MemoryFirmwarePermanent,
00119     MemoryFreeContiguous,
00120     MemorySpecialMemory,
00121     MemoryMaximum
00122 } MEMORY_TYPE;
00123 
00124 typedef struct _TIMEINFO
00125 {
00126     USHORT Year;
00127     USHORT Month;
00128     USHORT Day;
00129     USHORT Hour;
00130     USHORT Minute;
00131     USHORT Second;
00132 } TIMEINFO;
00133 
00134 typedef struct _MEMORY_DESCRIPTOR
00135 {
00136     MEMORY_TYPE MemoryType;
00137     PFN_NUMBER BasePage;
00138     PFN_NUMBER PageCount;
00139 } MEMORY_DESCRIPTOR, *PMEMORY_DESCRIPTOR;
00140 
00141 typedef struct _MEMORY_ALLOCATION_DESCRIPTOR
00142 {
00143     LIST_ENTRY ListEntry;
00144     TYPE_OF_MEMORY MemoryType;
00145     PFN_NUMBER BasePage;
00146     PFN_NUMBER PageCount;
00147 } MEMORY_ALLOCATION_DESCRIPTOR, *PMEMORY_ALLOCATION_DESCRIPTOR;
00148 
00149 typedef struct _BOOT_DRIVER_LIST_ENTRY
00150 {
00151     LIST_ENTRY Link;
00152     UNICODE_STRING FilePath;
00153     UNICODE_STRING RegistryPath;
00154     struct _LDR_DATA_TABLE_ENTRY *LdrEntry;
00155 } BOOT_DRIVER_LIST_ENTRY, *PBOOT_DRIVER_LIST_ENTRY;
00156 
00157 typedef struct _ARC_DISK_SIGNATURE
00158 {
00159     LIST_ENTRY ListEntry;
00160     ULONG Signature;
00161     PCHAR ArcName;
00162     ULONG CheckSum;
00163     BOOLEAN ValidPartitionTable;
00164     BOOLEAN xInt13;
00165     BOOLEAN IsGpt;
00166     BOOLEAN Reserved;
00167     CHAR GptSignature[16];
00168 } ARC_DISK_SIGNATURE, *PARC_DISK_SIGNATURE;
00169 
00170 typedef struct _CONFIGURATION_COMPONENT
00171 {
00172     CONFIGURATION_CLASS Class;
00173     CONFIGURATION_TYPE Type;
00174     IDENTIFIER_FLAG Flags;
00175     USHORT Version;
00176     USHORT Revision;
00177     ULONG Key;
00178     ULONG AffinityMask;
00179     ULONG ConfigurationDataLength;
00180     ULONG IdentifierLength;
00181     LPSTR Identifier;
00182 } CONFIGURATION_COMPONENT, *PCONFIGURATION_COMPONENT;
00183 
00184 typedef struct _CONFIGURATION_COMPONENT_DATA
00185 {
00186     struct _CONFIGURATION_COMPONENT_DATA *Parent;
00187     struct _CONFIGURATION_COMPONENT_DATA *Child;
00188     struct _CONFIGURATION_COMPONENT_DATA *Sibling;
00189     CONFIGURATION_COMPONENT ComponentEntry;
00190     PVOID ConfigurationData;
00191 } CONFIGURATION_COMPONENT_DATA, *PCONFIGURATION_COMPONENT_DATA;
00192 
00193 typedef struct _ARC_DISK_INFORMATION
00194 {
00195     LIST_ENTRY DiskSignatureListHead;
00196 } ARC_DISK_INFORMATION, *PARC_DISK_INFORMATION;
00197 
00198 typedef struct _MONITOR_CONFIGURATION_DATA
00199 {
00200     USHORT Version;
00201     USHORT Revision;
00202     USHORT HorizontalResolution;
00203     USHORT HorizontalDisplayTime;
00204     USHORT HorizontalBackPorch;
00205     USHORT HorizontalFrontPorch;
00206     USHORT HorizontalSync;
00207     USHORT VerticalResolution;
00208     USHORT VerticalBackPorch;
00209     USHORT VerticalFrontPorch;
00210     USHORT VerticalSync;
00211     USHORT HorizontalScreenSize;
00212     USHORT VerticalScreenSize;
00213 } MONITOR_CONFIGURATION_DATA, *PMONITOR_CONFIGURATION_DATA;
00214 
00215 typedef struct _FLOPPY_CONFIGURATION_DATA
00216 {
00217     USHORT Version;
00218     USHORT Revision;
00219     CHAR Size[8];
00220     ULONG MaxDensity;
00221     ULONG MountDensity;
00222 } FLOPPY_CONFIGURATION_DATA, *PFLOPPY_CONFIGURATION_DATA;
00223 
00224 //
00225 // SMBIOS Table Header (FIXME: maybe move to smbios.h?)
00226 //
00227 typedef struct _SMBIOS_TABLE_HEADER
00228 {
00229    CHAR Signature[4];
00230    UCHAR Checksum;
00231    UCHAR Length;
00232    UCHAR MajorVersion;
00233    UCHAR MinorVersion;
00234    USHORT MaximumStructureSize;
00235    UCHAR EntryPointRevision;
00236    UCHAR Reserved[5];
00237    CHAR Signature2[5];
00238    UCHAR IntermediateChecksum;
00239    USHORT StructureTableLength;
00240    ULONG StructureTableAddress;
00241    USHORT NumberStructures;
00242    UCHAR Revision;
00243 } SMBIOS_TABLE_HEADER, *PSMBIOS_TABLE_HEADER;
00244 
00245 //
00246 // NLS Data Block
00247 //
00248 typedef struct _NLS_DATA_BLOCK
00249 {
00250     PVOID AnsiCodePageData;
00251     PVOID OemCodePageData;
00252     PVOID UnicodeCodePageData;
00253 } NLS_DATA_BLOCK, *PNLS_DATA_BLOCK;
00254 
00255 //
00256 // ACPI Docking State
00257 //
00258 typedef struct _PROFILE_ACPI_DOCKING_STATE
00259 {
00260     USHORT DockingState;
00261     USHORT SerialLength;
00262     WCHAR SerialNumber[1];
00263 } PROFILE_ACPI_DOCKING_STATE, *PPROFILE_ACPI_DOCKING_STATE;
00264 
00265 //
00266 // Subsystem Specific Loader Blocks
00267 //
00268 typedef struct _PROFILE_PARAMETER_BLOCK
00269 {
00270     USHORT Status;
00271     USHORT Reserved;
00272     USHORT DockingState;
00273     USHORT Capabilities;
00274     ULONG DockID;
00275     ULONG SerialNumber;
00276 } PROFILE_PARAMETER_BLOCK, *PPROFILE_PARAMETER_BLOCK;
00277 
00278 typedef struct _HEADLESS_LOADER_BLOCK
00279 {
00280     UCHAR UsedBiosSettings;
00281     UCHAR DataBits;
00282     UCHAR StopBits;
00283     UCHAR Parity;
00284     ULONG BaudRate;
00285     ULONG PortNumber;
00286     PUCHAR PortAddress;
00287     USHORT PciDeviceId;
00288     USHORT PciVendorId;
00289     UCHAR PciBusNumber;
00290     UCHAR PciSlotNumber;
00291     UCHAR PciFunctionNumber;
00292     ULONG PciFlags;
00293     GUID SystemGUID;
00294     UCHAR IsMMIODevice;
00295     UCHAR TerminalType;
00296 } HEADLESS_LOADER_BLOCK, *PHEADLESS_LOADER_BLOCK;
00297 
00298 typedef struct _NETWORK_LOADER_BLOCK
00299 {
00300     PCHAR DHCPServerACK;
00301     ULONG DHCPServerACKLength;
00302     PCHAR BootServerReplyPacket;
00303     ULONG BootServerReplyPacketLength;
00304 } NETWORK_LOADER_BLOCK, *PNETWORK_LOADER_BLOCK;
00305 
00306 typedef struct _LOADER_PERFORMANCE_DATA
00307 {
00308     ULONGLONG StartTime;
00309     ULONGLONG EndTime;
00310 } LOADER_PERFORMANCE_DATA, *PLOADER_PERFORMANCE_DATA;
00311 
00312 //
00313 // Extended Loader Parameter Block
00314 //
00315 typedef struct _LOADER_PARAMETER_EXTENSION
00316 {
00317     ULONG Size;
00318     PROFILE_PARAMETER_BLOCK Profile;
00319     ULONG MajorVersion;
00320     ULONG MinorVersion;
00321     PVOID EmInfFileImage;
00322     ULONG EmInfFileSize;
00323     PVOID TriageDumpBlock;
00324     //
00325     // NT 5.1
00326     //
00327     ULONG LoaderPagesSpanned;
00328     PHEADLESS_LOADER_BLOCK HeadlessLoaderBlock;
00329     PSMBIOS_TABLE_HEADER SMBiosEPSHeader;
00330     PVOID DrvDBImage;
00331     ULONG DrvDBSize;
00332     PNETWORK_LOADER_BLOCK NetworkLoaderBlock;
00333     //
00334     // NT 5.2+
00335     //
00336     PCHAR HalpIRQLToTPR;
00337     PCHAR HalpVectorToIRQL;
00338     LIST_ENTRY FirmwareDescriptorListHead;
00339     PVOID AcpiTable;
00340     ULONG AcpiTableSize;
00341     //
00342     // NT 5.2 SP1+
00343     //
00344     ULONG BootViaWinload:1;
00345     ULONG BootViaEFI:1;
00346     ULONG Reserved:30;
00347     LOADER_PERFORMANCE_DATA LoaderPerformanceData;
00348     LIST_ENTRY BootApplicationPersistentData;
00349     PVOID WmdTestResult;
00350     GUID BootIdentifier;
00351     //
00352     // NT 6
00353     //
00354     ULONG ResumePages;
00355     PVOID DumpHeader;
00356 } LOADER_PARAMETER_EXTENSION, *PLOADER_PARAMETER_EXTENSION;
00357 
00358 //
00359 // Architecture specific Loader Parameter Blocks
00360 //
00361 typedef struct _IA64_LOADER_BLOCK
00362 {
00363     ULONG PlaceHolder;
00364 } IA64_LOADER_BLOCK, *PIA64_LOADER_BLOCK;
00365 
00366 typedef struct _ALPHA_LOADER_BLOCK
00367 {
00368     ULONG PlaceHolder;
00369 } ALPHA_LOADER_BLOCK, *PALPHA_LOADER_BLOCK;
00370 
00371 typedef struct _I386_LOADER_BLOCK
00372 {
00373     PVOID CommonDataArea;
00374     ULONG MachineType;
00375     ULONG VirtualBias;
00376 } I386_LOADER_BLOCK, *PI386_LOADER_BLOCK;
00377 
00378 typedef struct _PPC_LOADER_BLOCK
00379 {
00380     PVOID BootInfo;
00381     ULONG MachineType;
00382 } PPC_LOADER_BLOCK, *PPPC_LOADER_BLOCK;
00383 
00384 typedef struct _ARM_LOADER_BLOCK
00385 {
00386 #ifdef _ARM_
00387     ULONG InterruptStack;
00388     ULONG FirstLevelDcacheSize;
00389     ULONG FirstLevelDcacheFillSize;
00390     ULONG FirstLevelIcacheSize;
00391     ULONG FirstLevelIcacheFillSize;
00392     ULONG GpBase;
00393     ULONG PanicStack;
00394     ULONG PcrPage;
00395     ULONG PdrPage;
00396     ULONG SecondLevelDcacheSize;
00397     ULONG SecondLevelDcacheFillSize;
00398     ULONG SecondLevelIcacheSize;
00399     ULONG SecondLevelIcacheFillSize;
00400     ULONG PcrPage2;
00401 #else
00402     ULONG PlaceHolder;
00403 #endif
00404 } ARM_LOADER_BLOCK, *PARM_LOADER_BLOCK;
00405 
00406 //
00407 // Firmware information block (NT6+)
00408 //
00409 
00410 typedef struct _VIRTUAL_EFI_RUNTIME_SERVICES
00411 {
00412     ULONG_PTR GetTime;
00413     ULONG_PTR SetTime;
00414     ULONG_PTR GetWakeupTime;
00415     ULONG_PTR SetWakeupTime;
00416     ULONG_PTR SetVirtualAddressMap;
00417     ULONG_PTR ConvertPointer;
00418     ULONG_PTR GetVariable;
00419     ULONG_PTR GetNextVariableName;
00420     ULONG_PTR SetVariable;
00421     ULONG_PTR GetNextHighMonotonicCount;
00422     ULONG_PTR ResetSystem;
00423     ULONG_PTR UpdateCapsule;
00424     ULONG_PTR QueryCapsuleCapabilities;
00425     ULONG_PTR QueryVariableInfo;
00426 } VIRTUAL_EFI_RUNTIME_SERVICES, *PVIRTUAL_EFI_RUNTIME_SERVICES;
00427 
00428 typedef struct _EFI_FIRMWARE_INFORMATION
00429 {
00430     ULONG FirmwareVersion;
00431     PVIRTUAL_EFI_RUNTIME_SERVICES VirtualEfiRuntimeServices;
00432     ULONG SetVirtualAddressMapStatus;
00433     ULONG MissedMappingsCount;
00434 } EFI_FIRMWARE_INFORMATION, *PEFI_FIRMWARE_INFORMATION;
00435 
00436 typedef struct _PCAT_FIRMWARE_INFORMATION
00437 {
00438     ULONG PlaceHolder;
00439 } PCAT_FIRMWARE_INFORMATION, *PPCAT_FIRMWARE_INFORMATION;
00440 
00441 typedef struct _FIRMWARE_INFORMATION_LOADER_BLOCK
00442 {
00443     ULONG FirmwareTypeEfi:1;
00444     ULONG Reserved:31;
00445     union
00446     {
00447         EFI_FIRMWARE_INFORMATION EfiInformation;
00448         PCAT_FIRMWARE_INFORMATION PcatInformation;
00449     } u;
00450 } FIRMWARE_INFORMATION_LOADER_BLOCK, *PFIRMWARE_INFORMATION_LOADER_BLOCK;
00451 
00452 //
00453 // Loader Parameter Block
00454 //
00455 typedef struct _LOADER_PARAMETER_BLOCK
00456 {
00457     LIST_ENTRY LoadOrderListHead;
00458     LIST_ENTRY MemoryDescriptorListHead;
00459     LIST_ENTRY BootDriverListHead;
00460     ULONG_PTR KernelStack;
00461     ULONG_PTR Prcb;
00462     ULONG_PTR Process;
00463     ULONG_PTR Thread;
00464     ULONG RegistryLength;
00465     PVOID RegistryBase;
00466     PCONFIGURATION_COMPONENT_DATA ConfigurationRoot;
00467     LPSTR ArcBootDeviceName;
00468     LPSTR ArcHalDeviceName;
00469     LPSTR NtBootPathName;
00470     LPSTR NtHalPathName;
00471     LPSTR LoadOptions;
00472     PNLS_DATA_BLOCK NlsData;
00473     PARC_DISK_INFORMATION ArcDiskInformation;
00474     PVOID OemFontFile;
00475     struct _SETUP_LOADER_BLOCK *SetupLdrBlock;
00476     PLOADER_PARAMETER_EXTENSION Extension;
00477     union
00478     {
00479         I386_LOADER_BLOCK I386;
00480         ALPHA_LOADER_BLOCK Alpha;
00481         IA64_LOADER_BLOCK IA64;
00482         PPC_LOADER_BLOCK PowerPC;
00483         ARM_LOADER_BLOCK Arm;
00484     } u;
00485     FIRMWARE_INFORMATION_LOADER_BLOCK FirmwareInformation;
00486 } LOADER_PARAMETER_BLOCK, *PLOADER_PARAMETER_BLOCK;
00487 
00488 typedef int CONFIGTYPE;
00489 typedef struct tagFILEINFORMATION
00490 {
00491     LARGE_INTEGER StartingAddress;
00492     LARGE_INTEGER EndingAddress;
00493     LARGE_INTEGER CurrentAddress;
00494     CONFIGTYPE Type;
00495     ULONG FileNameLength;
00496     UCHAR Attributes;
00497     CHAR Filename[32];
00498 } FILEINFORMATION;
00499 
00500 typedef LONG (*ARC_CLOSE)(ULONG FileId);
00501 typedef LONG (*ARC_GET_FILE_INFORMATION)(ULONG FileId, FILEINFORMATION* Information);
00502 typedef LONG (*ARC_OPEN)(CHAR* Path, OPENMODE OpenMode, ULONG* FileId);
00503 typedef LONG (*ARC_READ)(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count);
00504 typedef LONG (*ARC_SEEK)(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode);
00505 #endif

Generated on Sat May 26 2012 04:22:15 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.