summaryrefslogtreecommitdiffstats
path: root/private/ntos/boot/veneer/vrheader.h
diff options
context:
space:
mode:
authorAdam <you@example.com>2020-05-17 05:51:50 +0200
committerAdam <you@example.com>2020-05-17 05:51:50 +0200
commite611b132f9b8abe35b362e5870b74bce94a1e58e (patch)
treea5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/ntos/boot/veneer/vrheader.h
downloadNT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip
Diffstat (limited to 'private/ntos/boot/veneer/vrheader.h')
-rw-r--r--private/ntos/boot/veneer/vrheader.h325
1 files changed, 325 insertions, 0 deletions
diff --git a/private/ntos/boot/veneer/vrheader.h b/private/ntos/boot/veneer/vrheader.h
new file mode 100644
index 000000000..8f757bb1e
--- /dev/null
+++ b/private/ntos/boot/veneer/vrheader.h
@@ -0,0 +1,325 @@
+/*
+ * Copyright (c) 1995 FirePower Systems, Inc.
+ *
+ * $RCSfile: vrheader.h $
+ * $Revision: 1.10 $
+ * $Date: 1996/01/11 08:03:25 $
+ * $Locker: $
+ *
+ */
+
+/*
+ * From nt/public/sdk/inc/ntdef.h
+ */
+
+//
+// Physical address.
+//
+
+typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS;
+
+//
+// Cardinal Data Types [0 - 2**N-2)
+//
+
+typedef char CCHAR; // winnt
+typedef short CSHORT;
+typedef ULONG CLONG;
+
+typedef CCHAR *PCCHAR;
+typedef CSHORT *PCSHORT;
+typedef CLONG *PCLONG;
+
+
+
+/*
+ * From nt/public/sdk/inc/ntconfig.h
+ */
+
+//
+// Defines the Type in the RESOURCE_DESCRIPTOR
+//
+
+typedef enum _CM_RESOURCE_TYPE {
+ CmResourceTypeNull = 0, // Reserved
+ CmResourceTypePort,
+ CmResourceTypeInterrupt,
+ CmResourceTypeMemory,
+ CmResourceTypeDma,
+ CmResourceTypeDeviceSpecific,
+ CmResourceTypeMaximum
+} CM_RESOURCE_TYPE;
+
+//
+// Defines the ShareDisposition in the RESOURCE_DESCRIPTOR
+//
+
+typedef enum _CM_SHARE_DISPOSITION {
+ CmResourceShareUndetermined = 0, // Reserved
+ CmResourceShareDeviceExclusive,
+ CmResourceShareDriverExclusive,
+ CmResourceShareShared
+} CM_SHARE_DISPOSITION;
+
+//
+// Define the bit masks for Flags when type is CmResourceTypeInterrupt
+//
+
+#define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE 0
+#define CM_RESOURCE_INTERRUPT_LATCHED 1
+
+//
+// Define the bit masks for Flags when type is CmResourceTypeInterrupt
+//
+
+#define CM_RESOURCE_MEMORY_READ_WRITE 0
+#define CM_RESOURCE_MEMORY_READ_ONLY 1
+#define CM_RESOURCE_MEMORY_WRITE_ONLY 2
+
+//
+// Define the bit masks for Flags when type is CmResourceTypePort
+//
+
+#define CM_RESOURCE_PORT_MEMORY 0
+#define CM_RESOURCE_PORT_IO 1
+
+
+//
+// This structure defines one type of resource used by a driver.
+//
+// There can only be *1* DeviceSpecificData block. It must be located at
+// the end of all resource descriptors in a full descriptor block.
+//
+
+//
+// BUGBUG Make sure alignment is made properly by compiler; otherwise move
+// flags back to the top of the structure (common to all members of the
+// union).
+//
+
+#pragma pack(4)
+typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR {
+ UCHAR Type;
+ UCHAR ShareDisposition;
+ USHORT Flags;
+ union {
+
+ //
+ // Range of port numbers, inclusive. These are physical, bus
+ // relative. The value should be the same as the one passed to
+ // HalTranslateBusAddress().
+ //
+
+ struct {
+ PHYSICAL_ADDRESS Start;
+ ULONG Length;
+ } Port;
+
+ //
+ // IRQL and vector. Should be same values as were passed to
+ // HalGetInterruptVector().
+ //
+
+ struct {
+ ULONG Level;
+ ULONG Vector;
+ ULONG Affinity;
+ } Interrupt;
+
+ //
+ // Range of memory addresses, inclusive. These are physical, bus
+ // relative. The value should be the same as the one passed to
+ // HalTranslateBusAddress().
+ //
+
+ struct {
+ PHYSICAL_ADDRESS Start; // 64 bit physical addresses.
+ ULONG Length;
+ } Memory;
+
+ //
+ // Physical DMA channel.
+ //
+
+ struct {
+ ULONG Channel;
+ ULONG Port;
+ ULONG Reserved1;
+ } Dma;
+
+ //
+ // Device Specific information defined by the driver.
+ // The DataSize field indicates the size of the data in bytes. The
+ // data is located immediately after the DeviceSpecificData field in
+ // the structure.
+ //
+
+ struct {
+ ULONG DataSize;
+ ULONG Reserved1;
+ ULONG Reserved2;
+ } DeviceSpecificData;
+ } u;
+} CM_PARTIAL_RESOURCE_DESCRIPTOR, *PCM_PARTIAL_RESOURCE_DESCRIPTOR;
+#pragma pack()
+
+//
+// A Partial Resource List is what can be found in the ARC firmware
+// or will be generated by ntdetect.com.
+// The configuration manager will transform this structure into a Full
+// resource descriptor when it is about to store it in the regsitry.
+//
+// Note: There must a be a convention to the order of fields of same type,
+// (defined on a device by device basis) so that the fields can make sense
+// to a driver (i.e. when multiple memory ranges are necessary).
+//
+
+typedef struct _CM_PARTIAL_RESOURCE_LIST {
+ USHORT Version;
+ USHORT Revision;
+ ULONG Count;
+ CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1];
+} CM_PARTIAL_RESOURCE_LIST, *PCM_PARTIAL_RESOURCE_LIST;
+
+//
+// Define the structures used to interpret configuration data of
+// \\Registry\machine\hardware\description tree.
+// Basically, these structures are used to interpret component
+// sepcific data.
+//
+
+//
+// Define DEVICE_FLAGS
+//
+
+typedef struct _DEVICE_FLAGS {
+ ULONG Failed : 1;
+ ULONG ReadOnly : 1;
+ ULONG Removable : 1;
+ ULONG ConsoleIn : 1;
+ ULONG ConsoleOut : 1;
+ ULONG Input : 1;
+ ULONG Output : 1;
+} DEVICE_FLAGS, *PDEVICE_FLAGS;
+
+//
+// Define Component Information structure
+//
+
+typedef struct _CM_COMPONENT_INFORMATION {
+ DEVICE_FLAGS Flags;
+ ULONG Version;
+ ULONG Key;
+ ULONG AffinityMask;
+} CM_COMPONENT_INFORMATION, *PCM_COMPONENT_INFORMATION;
+
+
+/*
+ * From nt/public/sdk/inc/ntppc.h
+ */
+
+#define KSEG0_BASE 0x00000000 /* ? 0x800000000 */
+
+
+/*
+ * From nt/private/ntos/inc/nthal.h
+ */
+
+//
+// Time conversion routines
+//
+
+typedef struct _TIME_FIELDS {
+ CSHORT Year; // range [1601...]
+ CSHORT Month; // range [1..12]
+ CSHORT Day; // range [1..31]
+ CSHORT Hour; // range [0..23]
+ CSHORT Minute; // range [0..59]
+ CSHORT Second; // range [0..59]
+ CSHORT Milliseconds;// range [0..999]
+ CSHORT Weekday; // range [0..6] == [Sunday..Saturday]
+} TIME_FIELDS;
+typedef TIME_FIELDS *PTIME_FIELDS;
+
+//
+// PowerPC page size = 4 KB
+//
+
+#define PAGE_SIZE (ULONG)0x1000
+
+//
+// Define the number of trailing zeroes in a page aligned virtual address.
+// This is used as the shift count when shifting virtual addresses to
+// virtual page numbers.
+//
+
+#define PAGE_SHIFT 12L
+
+//
+// The device data record for the Floppy peripheral.
+//
+
+typedef struct _CM_FLOPPY_DEVICE_DATA {
+ USHORT Version;
+ USHORT Revision;
+ CHAR Size[8];
+ ULONG MaxDensity;
+ ULONG MountDensity;
+ //
+ // New data fields for version >= 2.0
+ //
+ UCHAR StepRateHeadUnloadTime;
+ UCHAR HeadLoadTime;
+ UCHAR MotorOffTime;
+ UCHAR SectorLengthCode;
+ UCHAR SectorPerTrack;
+ UCHAR ReadWriteGapLength;
+ UCHAR DataTransferLength;
+ UCHAR FormatGapLength;
+ UCHAR FormatFillCharacter;
+ UCHAR HeadSettleTime;
+ UCHAR MotorSettleTime;
+ UCHAR MaximumTrackValue;
+ UCHAR DataTransferRate;
+} CM_FLOPPY_DEVICE_DATA, *PCM_FLOPPY_DEVICE_DATA;
+
+//
+// The device data record for the serial controller.
+//
+
+typedef struct _CM_SERIAL_DEVICE_DATA {
+ USHORT Version;
+ USHORT Revision;
+ ULONG BaudClock;
+} CM_SERIAL_DEVICE_DATA, *PCM_SERIAL_DEVICE_DATA;
+
+/*
+********************************************************************************
+**
+** The following is derived from fparch.h in the nthals\halfire\ppc
+** directory
+**
+**
+**
+********************************************************************************
+*/
+//
+// These names are not sacrosanct, and should be revised upon input from Susan,
+// Jim, and anyone else interested.
+//
+enum scope_use {
+ ENG,
+ MFG,
+ TEST,
+ CUST
+ };
+
+enum rel_state {
+ GENERAL,
+ OFFICIAL,
+ TESTING,
+ CONTROLLED,
+ LAB
+ };
+
+