aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/rio/cmdpkt.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/rio/cmdpkt.h')
-rw-r--r--drivers/char/rio/cmdpkt.h213
1 files changed, 95 insertions, 118 deletions
diff --git a/drivers/char/rio/cmdpkt.h b/drivers/char/rio/cmdpkt.h
index 46befd354f20..77cee8df68ef 100644
--- a/drivers/char/rio/cmdpkt.h
+++ b/drivers/char/rio/cmdpkt.h
@@ -54,135 +54,112 @@ static char *_cmdpkt_h_sccs_ = "@(#)cmdpkt.h 1.2";
54** This structure overlays a PktCmd->CmdData structure, and so starts 54** This structure overlays a PktCmd->CmdData structure, and so starts
55** at Data[2] in the actual pkt! 55** at Data[2] in the actual pkt!
56*/ 56*/
57struct BootSequence 57struct BootSequence {
58{ 58 WORD NumPackets;
59 WORD NumPackets; 59 WORD LoadBase;
60 WORD LoadBase; 60 WORD CodeSize;
61 WORD CodeSize;
62}; 61};
63 62
64#define BOOT_SEQUENCE_LEN 8 63#define BOOT_SEQUENCE_LEN 8
65 64
66struct SamTop 65struct SamTop {
67{ 66 BYTE Unit;
68 BYTE Unit; 67 BYTE Link;
69 BYTE Link;
70}; 68};
71 69
72struct CmdHdr 70struct CmdHdr {
73{ 71 BYTE PcCommand;
74 BYTE PcCommand; 72 union {
75 union 73 BYTE PcPhbNum;
76 { 74 BYTE PcLinkNum;
77 BYTE PcPhbNum; 75 BYTE PcIDNum;
78 BYTE PcLinkNum; 76 } U0;
79 BYTE PcIDNum;
80 } U0;
81}; 77};
82 78
83 79
84struct PktCmd 80struct PktCmd {
85{ 81 union {
86 union 82 struct {
87 { 83 struct CmdHdr CmdHdr;
88 struct 84 struct BootSequence PcBootSequence;
89 { 85 } S1;
90 struct CmdHdr CmdHdr; 86 struct {
91 struct BootSequence PcBootSequence; 87 WORD PcSequence;
92 } S1; 88 BYTE PcBootData[RTA_BOOT_DATA_SIZE];
93 struct 89 } S2;
94 { 90 struct {
95 WORD PcSequence; 91 WORD __crud__;
96 BYTE PcBootData[RTA_BOOT_DATA_SIZE]; 92 BYTE PcUniqNum[4]; /* this is really a uint. */
97 } S2; 93 BYTE PcModuleTypes; /* what modules are fitted */
98 struct 94 } S3;
99 { 95 struct {
100 WORD __crud__; 96 struct CmdHdr CmdHdr;
101 BYTE PcUniqNum[4]; /* this is really a uint. */ 97 BYTE __undefined__;
102 BYTE PcModuleTypes; /* what modules are fitted */ 98 BYTE PcModemStatus;
103 } S3; 99 BYTE PcPortStatus;
104 struct 100 BYTE PcSubCommand; /* commands like mem or register dump */
105 { 101 WORD PcSubAddr; /* Address for command */
106 struct CmdHdr CmdHdr; 102 BYTE PcSubData[64]; /* Date area for command */
107 BYTE __undefined__; 103 } S4;
108 BYTE PcModemStatus; 104 struct {
109 BYTE PcPortStatus; 105 struct CmdHdr CmdHdr;
110 BYTE PcSubCommand; /* commands like mem or register dump */ 106 BYTE PcCommandText[1];
111 WORD PcSubAddr; /* Address for command */ 107 BYTE __crud__[20];
112 BYTE PcSubData[64]; /* Date area for command */ 108 BYTE PcIDNum2; /* It had to go somewhere! */
113 } S4; 109 } S5;
114 struct 110 struct {
115 { 111 struct CmdHdr CmdHdr;
116 struct CmdHdr CmdHdr; 112 struct SamTop Topology[LINKS_PER_UNIT];
117 BYTE PcCommandText[1]; 113 } S6;
118 BYTE __crud__[20]; 114 } U1;
119 BYTE PcIDNum2; /* It had to go somewhere! */
120 } S5;
121 struct
122 {
123 struct CmdHdr CmdHdr;
124 struct SamTop Topology[LINKS_PER_UNIT];
125 } S6;
126 } U1;
127}; 115};
128 116
129struct PktCmd_M 117struct PktCmd_M {
130{ 118 union {
131 union 119 struct {
132 { 120 struct {
133 struct 121 uchar PcCommand;
134 { 122 union {
135 struct 123 uchar PcPhbNum;
136 { 124 uchar PcLinkNum;
137 uchar PcCommand; 125 uchar PcIDNum;
138 union 126 } U0;
139 { 127 } CmdHdr;
140 uchar PcPhbNum; 128 struct {
141 uchar PcLinkNum; 129 ushort NumPackets;
142 uchar PcIDNum; 130 ushort LoadBase;
143 } U0; 131 ushort CodeSize;
144 } CmdHdr; 132 } PcBootSequence;
145 struct 133 } S1;
146 { 134 struct {
147 ushort NumPackets; 135 ushort PcSequence;
148 ushort LoadBase; 136 uchar PcBootData[RTA_BOOT_DATA_SIZE];
149 ushort CodeSize; 137 } S2;
150 } PcBootSequence; 138 struct {
151 } S1; 139 ushort __crud__;
152 struct 140 uchar PcUniqNum[4]; /* this is really a uint. */
153 { 141 uchar PcModuleTypes; /* what modules are fitted */
154 ushort PcSequence; 142 } S3;
155 uchar PcBootData[RTA_BOOT_DATA_SIZE]; 143 struct {
156 } S2; 144 ushort __cmd_hdr__;
157 struct 145 uchar __undefined__;
158 { 146 uchar PcModemStatus;
159 ushort __crud__; 147 uchar PcPortStatus;
160 uchar PcUniqNum[4]; /* this is really a uint. */ 148 uchar PcSubCommand;
161 uchar PcModuleTypes; /* what modules are fitted */ 149 ushort PcSubAddr;
162 } S3; 150 uchar PcSubData[64];
163 struct 151 } S4;
164 { 152 struct {
165 ushort __cmd_hdr__; 153 ushort __cmd_hdr__;
166 uchar __undefined__; 154 uchar PcCommandText[1];
167 uchar PcModemStatus; 155 uchar __crud__[20];
168 uchar PcPortStatus; 156 uchar PcIDNum2; /* Tacked on end */
169 uchar PcSubCommand; 157 } S5;
170 ushort PcSubAddr; 158 struct {
171 uchar PcSubData[64]; 159 ushort __cmd_hdr__;
172 } S4; 160 struct Top Topology[LINKS_PER_UNIT];
173 struct 161 } S6;
174 { 162 } U1;
175 ushort __cmd_hdr__;
176 uchar PcCommandText[1];
177 uchar __crud__[20];
178 uchar PcIDNum2; /* Tacked on end */
179 } S5;
180 struct
181 {
182 ushort __cmd_hdr__;
183 struct Top Topology[LINKS_PER_UNIT];
184 } S6;
185 } U1;
186}; 163};
187 164
188#define Command U1.S1.CmdHdr.PcCommand 165#define Command U1.S1.CmdHdr.PcCommand