|
|
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.