diff options
Diffstat (limited to 'drivers/char/rio/cmdpkt.h')
-rw-r--r-- | drivers/char/rio/cmdpkt.h | 213 |
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 | */ |
57 | struct BootSequence | 57 | struct 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 | ||
66 | struct SamTop | 65 | struct SamTop { |
67 | { | 66 | BYTE Unit; |
68 | BYTE Unit; | 67 | BYTE Link; |
69 | BYTE Link; | ||
70 | }; | 68 | }; |
71 | 69 | ||
72 | struct CmdHdr | 70 | struct 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 | ||
84 | struct PktCmd | 80 | struct 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 | ||
129 | struct PktCmd_M | 117 | struct 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 |