|
|
1.1 ! root 1: /*++ ! 2: ! 3: Copyright (c) 1992 Microsoft Corporation ! 4: ! 5: Module Name: ! 6: ! 7: 4mmdat.h ! 8: ! 9: Abstract: ! 10: ! 11: This file contains structures and defines that are used ! 12: specifically for the tape drivers. ! 13: ! 14: Author: ! 15: ! 16: Lori Brown (Maynard) ! 17: ! 18: Revision History: ! 19: ! 20: --*/ ! 21: ! 22: // ! 23: // Defines for Log Sense Pages ! 24: // ! 25: ! 26: #define LOGSENSEPAGE0 0x00 ! 27: #define LOGSENSEPAGE2 0x02 ! 28: #define LOGSENSEPAGE3 0x03 ! 29: #define LOGSENSEPAGE30 0x30 ! 30: #define LOGSENSEPAGE31 0x31 ! 31: ! 32: // ! 33: // Defined Log Sense Page Header ! 34: // ! 35: ! 36: typedef struct _LOG_SENSE_PAGE_HEADER { ! 37: ! 38: UCHAR PageCode : 6; ! 39: UCHAR Reserved1 : 2; ! 40: UCHAR Reserved2; ! 41: UCHAR Length[2]; // [0]=MSB ... [1]=LSB ! 42: ! 43: } LOG_SENSE_PAGE_HEADER, *PLOG_SENSE_PAGE_HEADER; ! 44: ! 45: ! 46: // ! 47: // Defined Log Sense Parameter Header ! 48: // ! 49: ! 50: typedef struct _LOG_SENSE_PARAMETER_HEADER { ! 51: ! 52: UCHAR ParameterCode[2]; // [0]=MSB ... [1]=LSB ! 53: UCHAR LPBit : 1; ! 54: UCHAR Reserved1 : 1; ! 55: UCHAR TMCBit : 2; ! 56: UCHAR ETCBit : 1; ! 57: UCHAR TSDBit : 1; ! 58: UCHAR DSBit : 1; ! 59: UCHAR DUBit : 1; ! 60: UCHAR ParameterLength; ! 61: ! 62: } LOG_SENSE_PARAMETER_HEADER, *PLOG_SENSE_PARAMETER_HEADER; ! 63: ! 64: ! 65: // ! 66: // Defined Log Page Information - statistical values, accounts ! 67: // for maximum parameter values that is returned for each page ! 68: // ! 69: ! 70: typedef struct _LOG_SENSE_PAGE_INFORMATION { ! 71: ! 72: union { ! 73: ! 74: struct { ! 75: UCHAR Page0; ! 76: UCHAR Page2; ! 77: UCHAR Page3; ! 78: UCHAR Page30; ! 79: UCHAR Page31; ! 80: } PageData ; ! 81: ! 82: struct { ! 83: LOG_SENSE_PARAMETER_HEADER Parm1; ! 84: UCHAR TotalRewrites[2]; ! 85: LOG_SENSE_PARAMETER_HEADER Parm2; ! 86: UCHAR TotalErrorCorrected[3]; ! 87: LOG_SENSE_PARAMETER_HEADER Parm3; ! 88: UCHAR NotApplicable[2]; // Always 0 ! 89: LOG_SENSE_PARAMETER_HEADER Parm4; ! 90: UCHAR TotalBytesProcessed[4]; ! 91: LOG_SENSE_PARAMETER_HEADER Parm5; ! 92: UCHAR TotalUnrecoverableErrors[2]; ! 93: LOG_SENSE_PARAMETER_HEADER Parm6; ! 94: UCHAR RewritesLastReadOp[2]; ! 95: } Page2 ; ! 96: ! 97: struct { ! 98: LOG_SENSE_PARAMETER_HEADER Parm1; ! 99: UCHAR TotalRereads[2]; ! 100: LOG_SENSE_PARAMETER_HEADER Parm2; ! 101: UCHAR TotalErrorCorrected[3]; ! 102: LOG_SENSE_PARAMETER_HEADER Parm3; ! 103: UCHAR TotalCorrectableECCC3[2]; ! 104: LOG_SENSE_PARAMETER_HEADER Parm4; ! 105: UCHAR TotalBytesProcessed[4]; ! 106: LOG_SENSE_PARAMETER_HEADER Parm5; ! 107: UCHAR TotalUnrecoverableErrors[2]; ! 108: LOG_SENSE_PARAMETER_HEADER Parm6; ! 109: UCHAR RereadsLastWriteOp[2]; ! 110: } Page3 ; ! 111: ! 112: struct { ! 113: LOG_SENSE_PARAMETER_HEADER Parm1; ! 114: UCHAR CurrentGroupsWritten[3]; ! 115: LOG_SENSE_PARAMETER_HEADER Parm2; ! 116: UCHAR CurrentRewrittenFrames[2]; ! 117: LOG_SENSE_PARAMETER_HEADER Parm3; ! 118: UCHAR CurrentGroupsRead[3]; ! 119: LOG_SENSE_PARAMETER_HEADER Parm4; ! 120: UCHAR CurrentECCC3Corrections[2]; ! 121: LOG_SENSE_PARAMETER_HEADER Parm5; ! 122: UCHAR PreviousGroupsWritten[3]; ! 123: LOG_SENSE_PARAMETER_HEADER Parm6; ! 124: UCHAR PreviousRewrittenFrames[2]; ! 125: LOG_SENSE_PARAMETER_HEADER Parm7; ! 126: UCHAR PreviousGroupsRead[3]; ! 127: LOG_SENSE_PARAMETER_HEADER Parm8; ! 128: UCHAR PreviousECCC3Corrections[2]; ! 129: LOG_SENSE_PARAMETER_HEADER Parm9; ! 130: UCHAR TotalGroupsWritten[4]; ! 131: LOG_SENSE_PARAMETER_HEADER Parm10; ! 132: UCHAR TotalRewritteFrames[3]; ! 133: LOG_SENSE_PARAMETER_HEADER Parm11; ! 134: UCHAR TotalGroupsRead[4]; ! 135: LOG_SENSE_PARAMETER_HEADER Parm12; ! 136: UCHAR TotalECCC3Corrections[3]; ! 137: LOG_SENSE_PARAMETER_HEADER Parm13; ! 138: UCHAR LoadCount[2]; ! 139: } Page30 ; ! 140: ! 141: struct { ! 142: LOG_SENSE_PARAMETER_HEADER Parm1; ! 143: UCHAR RemainingCapacityPart0[4]; ! 144: LOG_SENSE_PARAMETER_HEADER Parm2; ! 145: UCHAR RemainingCapacityPart1[4]; ! 146: LOG_SENSE_PARAMETER_HEADER Parm3; ! 147: UCHAR MaximumCapacityPart0[4]; ! 148: LOG_SENSE_PARAMETER_HEADER Parm4; ! 149: UCHAR MaximumCapacityPart1[4]; ! 150: } Page31 ; ! 151: ! 152: } LogSensePage; ! 153: ! 154: ! 155: } LOG_SENSE_PAGE_INFORMATION, *PLOG_SENSE_PAGE_INFORMATION; ! 156: ! 157: ! 158: ! 159: // ! 160: // Defined Log Sense Parameter Format - statistical values, accounts ! 161: // for maximum parameter values that is returned ! 162: // ! 163: ! 164: typedef struct _LOG_SENSE_PARAMETER_FORMAT { ! 165: ! 166: LOG_SENSE_PAGE_HEADER LogSenseHeader; ! 167: LOG_SENSE_PAGE_INFORMATION LogSensePageInfo; ! 168: ! 169: } LOG_SENSE_PARAMETER_FORMAT, *PLOG_SENSE_PARAMETER_FORMAT; ! 170: ! 171:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.