106 lines
2.6 KiB
C
106 lines
2.6 KiB
C
/*
|
|
* Copyright (c) 1995 FirePower Systems, Inc.
|
|
* DO NOT DISTRIBUTE without permission
|
|
*
|
|
* $RCSfile: fpnvram.h $
|
|
* $Revision: 1.4 $
|
|
* $Date: 1996/01/11 07:07:03 $
|
|
* $Locker: $
|
|
*/
|
|
#ifndef _PREPNVRM_H
|
|
#define _PREPNVRM_H
|
|
//
|
|
// This header describes the NVRAM definition for PREP
|
|
//
|
|
typedef struct _SECURITY {
|
|
ULONG BootErrCnt; // Count of boot password errors
|
|
ULONG ConfigErrCnt; // Count of config password errors
|
|
ULONG BootErrorDT[2]; // Date&Time from RTC of last error in pw
|
|
ULONG ConfigErrorDT[2]; // Date&Time from RTC of last error in pw
|
|
ULONG BootCorrectDT[2]; // Date&Time from RTC of last correct pw
|
|
ULONG ConfigCorrectDT[2]; // Date&Time from RTC of last correct pw
|
|
ULONG BootSetDT[2]; // Date&Time from RTC of last set of pw
|
|
ULONG ConfigSetDT[2]; // Date&Time from RTC of last set of pw
|
|
UCHAR Serial[16]; // Box serial Number
|
|
} SECURITY;
|
|
|
|
typedef enum _OS_ID {
|
|
Unknown = 0,
|
|
Firmware = 1,
|
|
AIX = 2,
|
|
NT = 3,
|
|
MKOS2 = 4,
|
|
MKAIX = 5,
|
|
Taligent = 6,
|
|
Solaris = 7,
|
|
MK = 12
|
|
} OS_ID;
|
|
|
|
typedef struct _ERROR_LOG {
|
|
UCHAR ErrorLogEntry[40];
|
|
} ERROR_LOG;
|
|
|
|
typedef enum _NVRAM_BOOT_STATUS {
|
|
BootStarted = 0x001,
|
|
BootFinished = 0x002,
|
|
RestartStarted = 0x004,
|
|
RestartFinished = 0x008,
|
|
PowerFailStarted = 0x010,
|
|
PowerFailFinished = 0x020,
|
|
ProcessorReady = 0x040,
|
|
ProcessorRunning = 0x080,
|
|
ProcessorStart = 0x100
|
|
} NVRAM_BOOT_STATUS;
|
|
|
|
typedef struct _NVRAM_RESTART_BLOCK {
|
|
USHORT Version;
|
|
USHORT Revision;
|
|
ULONG ResumeReserved[2];
|
|
volatile ULONG BootStatus;
|
|
ULONG CheckSum;
|
|
void * RestartAddress;
|
|
void * SaveAreaAddr;
|
|
ULONG SaveAreaLength;
|
|
} NVRAM_RESTART_BLOCK;
|
|
|
|
typedef enum _OSAREA_USAGE {
|
|
Empty = 0,
|
|
Used = 1
|
|
} OSAREA_USAGE;
|
|
|
|
typedef enum _PM_MODE {
|
|
Suspend = 0x80,
|
|
Normal = 0x00
|
|
} PMMode;
|
|
|
|
typedef struct _HEADER {
|
|
USHORT Size; // NVRAM size in K
|
|
UCHAR Version; // Structure map different
|
|
UCHAR Revision; // Structure map same - may be new values in old fields
|
|
USHORT Crc1;
|
|
USHORT Crc2;
|
|
UCHAR LastOS; // OS_ID
|
|
UCHAR Endian; // B if big endian, L if little endian
|
|
UCHAR OSAreaUsage;
|
|
UCHAR PMMode; // Power Management shutdown mode
|
|
NVRAM_RESTART_BLOCK Restart;
|
|
SECURITY Security;
|
|
ERROR_LOG ErrorLog[2];
|
|
|
|
PVOID GEAddress;
|
|
ULONG GELength;
|
|
ULONG GELastWriteDT[2]; // Date&Time from RTC of last change to Global
|
|
|
|
PVOID ConfigAddress;
|
|
ULONG ConfigLength;
|
|
ULONG ConfigLastWriteDT[2]; // Date&Time from RTC of last change to Config
|
|
ULONG ConfigCount; // Count of entries in Configuration
|
|
|
|
PVOID OSAreaAddress;
|
|
ULONG OSAreaLength;
|
|
ULONG OSAreaLastWriteDT[2]; // Date&Time from RTC of last change to Var
|
|
|
|
} HEADER, *PHEADER;
|
|
|
|
#endif
|