Windows2000/private/ntos/inc/jazznvr.h
2020-09-30 17:12:32 +02:00

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_