summaryrefslogtreecommitdiffstats
path: root/private/ntos/nthals/halalpha/environ.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/nthals/halalpha/environ.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/nthals/halalpha/environ.h')
-rw-r--r--private/ntos/nthals/halalpha/environ.h167
1 files changed, 167 insertions, 0 deletions
diff --git a/private/ntos/nthals/halalpha/environ.h b/private/ntos/nthals/halalpha/environ.h
new file mode 100644
index 000000000..8a1abc91c
--- /dev/null
+++ b/private/ntos/nthals/halalpha/environ.h
@@ -0,0 +1,167 @@
+/*++
+
+Copyright (c) 1992, 1993 Digital Equipment Corporation
+
+Module Name:
+
+ environ.h
+
+Abstract:
+
+ This module contains definitions for environment variable support
+ under the HAL. (Parts taken from J. Derosa's FWP.H)
+
+Author:
+
+ Jeff McLeman (DEC) 17-Sep-1992
+
+Revision History:
+
+--*/
+
+
+
+//
+// Define the private configuration packet structure, which contains a
+// configuration component as well as pointers to the component's parent,
+// peer, child, and configuration data.
+//
+
+typedef struct _CONFIGURATION_PACKET {
+ CONFIGURATION_COMPONENT Component;
+ struct _CONFIGURATION_PACKET *Parent;
+ struct _CONFIGURATION_PACKET *Peer;
+ struct _CONFIGURATION_PACKET *Child;
+ PVOID ConfigurationData;
+} CONFIGURATION_PACKET, *PCONFIGURATION_PACKET;
+
+//
+// The compressed configuration packet structure used to store configuration
+// data in NVRAM.
+//
+
+typedef struct _COMPRESSED_CONFIGURATION_PACKET {
+ UCHAR Parent;
+ UCHAR Class;
+ UCHAR Type;
+ UCHAR Flags;
+ ULONG Key;
+ UCHAR Version;
+ UCHAR Revision;
+ USHORT ConfigurationDataLength;
+ USHORT Identifier;
+ USHORT ConfigurationData;
+} COMPRESSED_CONFIGURATION_PACKET, *PCOMPRESSED_CONFIGURATION_PACKET;
+
+//
+// Defines for Identifier index.
+//
+
+#define NO_CONFIGURATION_IDENTIFIER 0xFFFF
+
+#ifdef EISA_PLATFORM
+//
+// Defines for the non-volatile configuration tables.
+//
+
+#define NV_NUMBER_OF_ENTRIES 40
+#define NV_LENGTH_OF_IDENTIFIER (1024 - (NV_NUMBER_OF_ENTRIES * 16) - 8)
+#define NV_LENGTH_OF_DATA (2048 -16)
+#define LENGTH_OF_ENVIRONMENT 1024
+#define LENGTH_OF_EISA_DATA 2044
+
+#define MAXIMUM_ENVIRONMENT_VALUE 256
+#define MAX_NUMBER_OF_ENVIRONMENT_VARIABLES 40
+
+//
+// The non-volatile configuration table structure.
+//
+
+typedef struct _NV_CONFIGURATION {
+ COMPRESSED_CONFIGURATION_PACKET Packet[NV_NUMBER_OF_ENTRIES]; // 0 to 640-4
+ UCHAR Identifier[NV_LENGTH_OF_IDENTIFIER]; // 640 to (1K - 8 - 4)
+ ULONG Monitor; // 1K-8
+ ULONG Floppy; // 1K-4
+ ULONG Floppy2; // 1K
+ ULONG KeyboardType; // 1K+4
+ UCHAR Data[NV_LENGTH_OF_DATA]; // Unused space 1K+8 to 3K-8-4
+ UCHAR Checksum1[4]; // Data checksum 3K-8
+ UCHAR Environment[LENGTH_OF_ENVIRONMENT]; // Env Variables 3K-4 to 4K-4-4
+ UCHAR Checksum2[4]; // Env checksum 4K-4
+ UCHAR EisaData[LENGTH_OF_EISA_DATA]; // Eisa Data (4K to 6K-4)
+ UCHAR Checksum3[4]; // EisaData checksum
+} NV_CONFIGURATION, *PNV_CONFIGURATION;
+
+//
+// Defines for the volatile configuration tables.
+// smd - Increased the number of entries, length of Identifier and length
+// of data.
+//
+
+#define NUMBER_OF_ENTRIES 200
+#define LENGTH_OF_IDENTIFIER (3*1024)
+#define LENGTH_OF_DATA 2048
+
+//
+// The volatile configuration table structure.
+//
+
+typedef struct _CONFIGURATION {
+ CONFIGURATION_PACKET Packet[NUMBER_OF_ENTRIES];
+ UCHAR Identifier[LENGTH_OF_IDENTIFIER];
+ UCHAR Data[LENGTH_OF_DATA];
+ UCHAR EisaData[LENGTH_OF_EISA_DATA];
+} CONFIGURATION, *PCONFIGURATION;
+
+#else // EISA_PLATFORM
+
+//
+// Defines for the Non-Volatile configuration tables.
+//
+// SMD - We have reduced the size of the NVRAM from 6K to 3K
+// If needed we could take a few bytes from ENVIRONMENT
+// since there is tons of empty space there.
+//
+
+#define LENGTH_OF_ENVIRONMENT ((3*1024) - 16 - 4)
+
+#define MAXIMUM_ENVIRONMENT_VALUE 256
+#define MAXIMUM_NUMBER_OF_ENVIRONMENT_VARIABLES 28
+#define MAX_NUMBER_OF_ENVIRONMENT_VARIABLES 28
+//
+// The non-volatile configuration table structure.
+//
+
+typedef struct _NV_CONFIGURATION {
+ ULONG Monitor; //0
+ ULONG Floppy; //4
+ ULONG Floppy2; //8
+ ULONG KeyboardType; //12
+ UCHAR Environment[LENGTH_OF_ENVIRONMENT]; //16 to (3K-4)
+ UCHAR Checksum[4];
+} NV_CONFIGURATION, *PNV_CONFIGURATION;
+
+//
+// Defines for the Volatile configuration tables.
+//
+
+#define NUMBER_OF_ENTRIES 40
+#define LENGTH_OF_IDENTIFIER (1024 - (NUMBER_OF_ENTRIES * 16))
+#define LENGTH_OF_DATA 2048
+
+//
+// The volatile configuration table structure.
+//
+
+typedef struct _CONFIGURATION {
+ CONFIGURATION_PACKET Packet[NUMBER_OF_ENTRIES];
+ UCHAR Identifier[LENGTH_OF_IDENTIFIER];
+ UCHAR Data[LENGTH_OF_DATA];
+} CONFIGURATION, *PCONFIGURATION;
+
+#endif // EISA_PLATFORM
+
+//
+// The value of HalpCMOSRamBase must be set at initialization:
+//
+#define NVRAM_CONFIGURATION HalpCMOSRamBase