/*++ Copyright (c) 1991 Microsoft Corporation Module Name: jazznvr.h Abstract: This module contains definitions for the Jazz non-volatile ram structures. Author: David M. Robinson (davidro) 11-Nov-1991 Revision History: */ #ifndef _JAZZNVR_ #define _JAZZNVR_ // 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; USHORT Version; USHORT ConfigurationDataLength; USHORT Identifier; USHORT ConfigurationData; } COMPRESSED_CONFIGURATION_PACKET, *PCOMPRESSED_CONFIGURATION_PACKET; // Defines for Identifier index. #define NO_CONFIGURATION_IDENTIFIER 0xFFFF // Defines for the volatile and non-volatile configuration tables. #define NUMBER_OF_ENTRIES 32 #define LENGTH_OF_IDENTIFIER 504 #define LENGTH_OF_DATA 2048 #define LENGTH_OF_ENVIRONMENT 1024 #define MAXIMUM_ENVIRONMENT_VALUE 128 // 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; // The non-volatile configuration table structure. typedef struct _NV_CONFIGURATION { COMPRESSED_CONFIGURATION_PACKET Packet[NUMBER_OF_ENTRIES]; UCHAR Identifier[LENGTH_OF_IDENTIFIER]; UCHAR Data[LENGTH_OF_DATA]; UCHAR Checksum1[4]; UCHAR Environment[LENGTH_OF_ENVIRONMENT]; UCHAR Checksum2[4]; } NV_CONFIGURATION, *PNV_CONFIGURATION; // Non-volatile ram layout. #if defined(MIPS) #define NVRAM_CONFIGURATION NVRAM_VIRTUAL_BASE #define NVRAM_SYSTEM_ID NVRAM_VIRTUAL_BASE + 0x00002000 #endif #endif // _JAZZNVR_