1 \ *****************************************************************************
2 \ * Copyright (c) 2004, 2008 IBM Corporation
3 \ * All rights reserved.
4 \ * This program and the accompanying materials
5 \ * are made available under the terms of the BSD License
6 \ * which accompanies this distribution, and is available at
7 \ * http://www.opensource.org/licenses/bsd-license.php
10 \ * IBM Corporation - initial implementation
11 \ ****************************************************************************/
13 : pci-class-name-00 ( addr -- str len )
14 pci-class@ 8 rshift FF and CASE
15 01 OF s" display" ENDOF
16 dup OF s" unknown-legacy-device" ENDOF
20 : pci-class-name-01 ( addr -- str len )
21 pci-class@ 8 rshift FF and CASE
30 dup OF s" mass-storage" ENDOF
34 : pci-class-name-02 ( addr -- str len )
35 pci-class@ 8 rshift FF and CASE
36 00 OF s" ethernet" ENDOF
37 01 OF s" token-ring" ENDOF
41 05 OF s" worldfip" ENDOF
43 dup OF s" network" ENDOF
47 : pci-class-name-03 ( addr -- str len )
48 pci-class@ FFFF and CASE
50 0001 OF s" 8514-compatible" ENDOF
52 0200 OF s" 3d-controller" ENDOF
53 dup OF s" display" ENDOF
57 : pci-class-name-04 ( addr -- str len )
58 pci-class@ 8 rshift FF and CASE
61 02 OF s" telephony" ENDOF
62 dup OF s" multimedia-device" ENDOF
66 : pci-class-name-05 ( addr -- str len )
67 pci-class@ 8 rshift FF and CASE
68 00 OF s" memory" ENDOF
70 dup OF s" memory-controller" ENDOF
74 : pci-class-name-06 ( addr -- str len )
75 pci-class@ 8 rshift FF and CASE
81 05 OF s" pcmcia" ENDOF
83 07 OF s" cardbus" ENDOF
84 08 OF s" raceway" ENDOF
85 09 OF s" semi-transparent-pci" ENDOF
86 0A OF s" infiniband" ENDOF
87 dup OF s" unkown-bridge" ENDOF
91 : pci-class-name-07 ( addr -- str len )
92 pci-class@ FFFF and CASE
93 0000 OF s" serial" ENDOF
94 0001 OF s" 16450-serial" ENDOF
95 0002 OF s" 16550-serial" ENDOF
96 0003 OF s" 16650-serial" ENDOF
97 0004 OF s" 16750-serial" ENDOF
98 0005 OF s" 16850-serial" ENDOF
99 0006 OF s" 16950-serial" ENDOF
100 0100 OF s" parallel" ENDOF
101 0101 OF s" bi-directional-parallel" ENDOF
102 0102 OF s" ecp-1.x-parallel" ENDOF
103 0103 OF s" ieee1284-controller" ENDOF
104 01FE OF s" ieee1284-device" ENDOF
105 0200 OF s" multiport-serial" ENDOF
106 0300 OF s" modem" ENDOF
107 0301 OF s" 16450-modem" ENDOF
108 0302 OF s" 16550-modem" ENDOF
109 0303 OF s" 16650-modem" ENDOF
110 0304 OF s" 16750-modem" ENDOF
111 0400 OF s" gpib" ENDOF
112 0500 OF s" smart-card" ENDOF
113 dup OF s" communication-controller" ENDOF
118 : pci-class-name-08 ( addr -- str len )
119 pci-class@ FFFF and CASE
120 0000 OF s" interrupt-controller" ENDOF
121 0001 OF s" isa-pic" ENDOF
122 0002 OF s" eisa-pic" ENDOF
123 0010 OF s" io-apic" ENDOF
124 0020 OF s" iox-apic" ENDOF
125 0100 OF s" dma-controller" ENDOF
126 0101 OF s" isa-dma" ENDOF
127 0102 OF s" eisa-dma" ENDOF
128 0200 OF s" timer" ENDOF
129 0201 OF s" isa-system-timer" ENDOF
130 0202 OF s" eisa-system-timer" ENDOF
131 0300 OF s" rtc" ENDOF
132 0301 OF s" isa-rtc" ENDOF
133 0400 OF s" hot-plug-controller" ENDOF
134 0500 OF s" sd-host-conrtoller" ENDOF
135 dup OF s" system-periphal" ENDOF
139 : pci-class-name-09 ( addr -- str len )
140 pci-class@ 8 rshift FF and CASE
141 00 OF s" keyboard" ENDOF
143 02 OF s" mouse" ENDOF
144 03 OF s" scanner" ENDOF
145 04 OF s" gameport" ENDOF
146 dup OF s" input-controller" ENDOF
150 : pci-class-name-0A ( addr -- str len )
151 pci-class@ 8 rshift FF and CASE
153 dup OF s" docking-station" ENDOF
157 : pci-class-name-0B ( addr -- str len )
158 pci-class@ 8 rshift FF and CASE
161 02 OF s" pentium" ENDOF
162 10 OF s" alpha" ENDOF
163 20 OF s" powerpc" ENDOF
165 40 OF s" co-processor" ENDOF
170 : pci-class-name-0C ( addr -- str len )
171 pci-class@ FFFF and CASE
172 0000 OF s" firewire" ENDOF
173 0100 OF s" access-bus" ENDOF
174 0200 OF s" ssa" ENDOF
175 0300 OF s" usb-uhci" ENDOF
176 0310 OF s" usb-ohci" ENDOF
177 0320 OF s" usb-ehci" ENDOF
178 0330 OF s" usb-xhci" ENDOF
179 0380 OF s" usb" ENDOF
180 03FE OF s" usb-device" ENDOF
181 0400 OF s" fibre-channel" ENDOF
182 0500 OF s" smb" ENDOF
183 0600 OF s" infiniband" ENDOF
184 0700 OF s" ipmi-smic" ENDOF
185 0701 OF s" ipmi-kbrd" ENDOF
186 0702 OF s" ipmi-bltr" ENDOF
187 0800 OF s" sercos" ENDOF
188 0900 OF s" canbus" ENDOF
189 dup OF s" serial-bus" ENDOF
193 : pci-class-name-0D ( addr -- str len )
194 pci-class@ 8 rshift FF and CASE
196 01 OF s" consumer-ir" ENDOF
197 10 OF s" rf-controller" ENDOF
198 11 OF s" bluetooth" ENDOF
199 12 OF s" broadband" ENDOF
200 20 OF s" enet-802.11a" ENDOF
201 21 OF s" enet-802.11b" ENDOF
202 dup OF s" wireless-controller" ENDOF
207 : pci-class-name-0E ( addr -- str len )
208 pci-class@ 8 rshift FF and CASE
209 dup OF s" intelligent-io" ENDOF
213 : pci-class-name-0F ( addr -- str len )
214 pci-class@ 8 rshift FF and CASE
215 01 OF s" satelite-tv" ENDOF
216 02 OF s" satelite-audio" ENDOF
217 03 OF s" satelite-voice" ENDOF
218 04 OF s" satelite-data" ENDOF
219 dup OF s" satelite-devoce" ENDOF
223 : pci-class-name-10 ( addr -- str len )
224 pci-class@ 8 rshift FF and CASE
225 00 OF s" network-encryption" ENDOF
226 01 OF s" entertainment-encryption" ENDOF
227 dup OF s" encryption" ENDOF
231 : pci-class-name-11 ( addr -- str len )
232 pci-class@ 8 rshift FF and CASE
234 01 OF s" counter" ENDOF
235 10 OF s" measurement" ENDOF
236 20 OF s" managment-card" ENDOF
237 dup OF s" data-processing-controller" ENDOF
241 \ create a string holding the predefined Class-Code-Names
242 : pci-class-name ( addr -- str len )
243 dup pci-class@ 10 rshift CASE
244 00 OF pci-class-name-00 ENDOF
245 01 OF pci-class-name-01 ENDOF
246 02 OF pci-class-name-02 ENDOF
247 03 OF pci-class-name-03 ENDOF
248 04 OF pci-class-name-04 ENDOF
249 05 OF pci-class-name-05 ENDOF
250 06 OF pci-class-name-06 ENDOF
251 07 OF pci-class-name-07 ENDOF
252 08 OF pci-class-name-08 ENDOF
253 09 OF pci-class-name-09 ENDOF
254 0A OF pci-class-name-0A ENDOF
255 0B OF pci-class-name-0B ENDOF
256 0C OF pci-class-name-0C ENDOF
257 0C OF pci-class-name-0D ENDOF
258 0C OF pci-class-name-0E ENDOF
259 0C OF pci-class-name-0F ENDOF
260 0C OF pci-class-name-10 ENDOF
261 0C OF pci-class-name-11 ENDOF
262 dup OF drop s" unknown" ENDOF