107 lines
2.2 KiB
C
107 lines
2.2 KiB
C
/*++
|
|
|
|
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_
|