Lines 87-93
Link Here
|
87 |
static void |
87 |
static void |
88 |
parse_name_list(struct pci_access *a) |
88 |
parse_name_list(struct pci_access *a) |
89 |
{ |
89 |
{ |
90 |
byte *p = a->nl_list; |
90 |
byte *p = (byte *)a->nl_list; |
91 |
byte *q, *r; |
91 |
byte *q, *r; |
92 |
int lino = 0; |
92 |
int lino = 0; |
93 |
unsigned int id1=0, id2=0, id3=0, id4=0; |
93 |
unsigned int id1=0, id2=0, id3=0, id4=0; |
Lines 113-129
Link Here
|
113 |
{ |
113 |
{ |
114 |
if (q[0] == 'C' && q[1] == ' ') |
114 |
if (q[0] == 'C' && q[1] == ' ') |
115 |
{ |
115 |
{ |
116 |
if (strlen(q+2) < 3 || |
116 |
if (strlen((char *)q+2) < 3 || |
117 |
q[4] != ' ' || |
117 |
q[4] != ' ' || |
118 |
sscanf(q+2, "%x", &id1) != 1) |
118 |
sscanf((char *)q+2, "%x", &id1) != 1) |
119 |
goto parserr; |
119 |
goto parserr; |
120 |
cat = NL_CLASS; |
120 |
cat = NL_CLASS; |
121 |
} |
121 |
} |
122 |
else |
122 |
else |
123 |
{ |
123 |
{ |
124 |
if (strlen(q) < 5 || |
124 |
if (strlen((char *)q) < 5 || |
125 |
q[4] != ' ' || |
125 |
q[4] != ' ' || |
126 |
sscanf(q, "%x", &id1) != 1) |
126 |
sscanf((char *)q, "%x", &id1) != 1) |
127 |
goto parserr; |
127 |
goto parserr; |
128 |
cat = NL_VENDOR; |
128 |
cat = NL_VENDOR; |
129 |
} |
129 |
} |
Lines 136-142
Link Here
|
136 |
case NL_VENDOR: |
136 |
case NL_VENDOR: |
137 |
case NL_DEVICE: |
137 |
case NL_DEVICE: |
138 |
case NL_SUBSYSTEM: |
138 |
case NL_SUBSYSTEM: |
139 |
if (sscanf(q, "%x", &id2) != 1 || q[4] != ' ') |
139 |
if (sscanf((char *)q, "%x", &id2) != 1 || q[4] != ' ') |
140 |
goto parserr; |
140 |
goto parserr; |
141 |
q += 5; |
141 |
q += 5; |
142 |
cat = NL_DEVICE; |
142 |
cat = NL_DEVICE; |
Lines 145-151
Link Here
|
145 |
case NL_CLASS: |
145 |
case NL_CLASS: |
146 |
case NL_SUBCLASS: |
146 |
case NL_SUBCLASS: |
147 |
case NL_PROGIF: |
147 |
case NL_PROGIF: |
148 |
if (sscanf(q, "%x", &id2) != 1 || q[2] != ' ') |
148 |
if (sscanf((char *)q, "%x", &id2) != 1 || q[2] != ' ') |
149 |
goto parserr; |
149 |
goto parserr; |
150 |
q += 3; |
150 |
q += 3; |
151 |
cat = NL_SUBCLASS; |
151 |
cat = NL_SUBCLASS; |
Lines 159-165
Link Here
|
159 |
{ |
159 |
{ |
160 |
case NL_DEVICE: |
160 |
case NL_DEVICE: |
161 |
case NL_SUBSYSTEM: |
161 |
case NL_SUBSYSTEM: |
162 |
if (sscanf(q, "%x%x", &id3, &id4) != 2 || q[9] != ' ') |
162 |
if (sscanf((char *)q, "%x%x", &id3, &id4) != 2 || q[9] != ' ') |
163 |
goto parserr; |
163 |
goto parserr; |
164 |
q += 10; |
164 |
q += 10; |
165 |
cat = NL_SUBSYSTEM; |
165 |
cat = NL_SUBSYSTEM; |
Lines 167-173
Link Here
|
167 |
case NL_CLASS: |
167 |
case NL_CLASS: |
168 |
case NL_SUBCLASS: |
168 |
case NL_SUBCLASS: |
169 |
case NL_PROGIF: |
169 |
case NL_PROGIF: |
170 |
if (sscanf(q, "%x", &id3) != 1 || q[2] != ' ') |
170 |
if (sscanf((char *)q, "%x", &id3) != 1 || q[2] != ' ') |
171 |
goto parserr; |
171 |
goto parserr; |
172 |
q += 3; |
172 |
q += 3; |
173 |
cat = NL_PROGIF; |
173 |
cat = NL_PROGIF; |
Lines 245-257
Link Here
|
245 |
{ |
245 |
{ |
246 |
case PCI_LOOKUP_VENDOR: |
246 |
case PCI_LOOKUP_VENDOR: |
247 |
if (n = nl_lookup(a, num, NL_VENDOR, arg1, 0, 0, 0)) |
247 |
if (n = nl_lookup(a, num, NL_VENDOR, arg1, 0, 0, 0)) |
248 |
return n->name; |
248 |
return (char *)n->name; |
249 |
else |
249 |
else |
250 |
res = snprintf(buf, size, "%04x", arg1); |
250 |
res = snprintf(buf, size, "%04x", arg1); |
251 |
break; |
251 |
break; |
252 |
case PCI_LOOKUP_DEVICE: |
252 |
case PCI_LOOKUP_DEVICE: |
253 |
if (n = nl_lookup(a, num, NL_DEVICE, arg1, arg2, 0, 0)) |
253 |
if (n = nl_lookup(a, num, NL_DEVICE, arg1, arg2, 0, 0)) |
254 |
return n->name; |
254 |
return (char *)n->name; |
255 |
else |
255 |
else |
256 |
res = snprintf(buf, size, "%04x", arg2); |
256 |
res = snprintf(buf, size, "%04x", arg2); |
257 |
break; |
257 |
break; |
Lines 273-287
Link Here
|
273 |
break; |
273 |
break; |
274 |
case PCI_LOOKUP_VENDOR | PCI_LOOKUP_SUBSYSTEM: |
274 |
case PCI_LOOKUP_VENDOR | PCI_LOOKUP_SUBSYSTEM: |
275 |
if (n = nl_lookup(a, num, NL_VENDOR, arg3, 0, 0, 0)) |
275 |
if (n = nl_lookup(a, num, NL_VENDOR, arg3, 0, 0, 0)) |
276 |
return n->name; |
276 |
return (char *)n->name; |
277 |
else |
277 |
else |
278 |
res = snprintf(buf, size, "%04x", arg2); |
278 |
res = snprintf(buf, size, "%04x", arg2); |
279 |
break; |
279 |
break; |
280 |
case PCI_LOOKUP_DEVICE | PCI_LOOKUP_SUBSYSTEM: |
280 |
case PCI_LOOKUP_DEVICE | PCI_LOOKUP_SUBSYSTEM: |
281 |
if (n = nl_lookup(a, num, NL_SUBSYSTEM, arg1, arg2, arg3, arg4)) |
281 |
if (n = nl_lookup(a, num, NL_SUBSYSTEM, arg1, arg2, arg3, arg4)) |
282 |
return n->name; |
282 |
return (char *)n->name; |
283 |
else if (arg1 == arg3 && arg2 == arg4 && (n = nl_lookup(a, num, NL_DEVICE, arg1, arg2, 0, 0))) |
283 |
else if (arg1 == arg3 && arg2 == arg4 && (n = nl_lookup(a, num, NL_DEVICE, arg1, arg2, 0, 0))) |
284 |
return n->name; |
284 |
return (char *)n->name; |
285 |
else |
285 |
else |
286 |
res = snprintf(buf, size, "%04x", arg4); |
286 |
res = snprintf(buf, size, "%04x", arg4); |
287 |
break; |
287 |
break; |
Lines 306-312
Link Here
|
306 |
break; |
306 |
break; |
307 |
case PCI_LOOKUP_CLASS: |
307 |
case PCI_LOOKUP_CLASS: |
308 |
if (n = nl_lookup(a, num, NL_SUBCLASS, arg1 >> 8, arg1 & 0xff, 0, 0)) |
308 |
if (n = nl_lookup(a, num, NL_SUBCLASS, arg1 >> 8, arg1 & 0xff, 0, 0)) |
309 |
return n->name; |
309 |
return (char *)n->name; |
310 |
else if (n = nl_lookup(a, num, NL_CLASS, arg1, 0, 0, 0)) |
310 |
else if (n = nl_lookup(a, num, NL_CLASS, arg1, 0, 0, 0)) |
311 |
res = snprintf(buf, size, "%s [%04x]", n->name, arg1); |
311 |
res = snprintf(buf, size, "%s [%04x]", n->name, arg1); |
312 |
else |
312 |
else |
Lines 314-320
Link Here
|
314 |
break; |
314 |
break; |
315 |
case PCI_LOOKUP_PROGIF: |
315 |
case PCI_LOOKUP_PROGIF: |
316 |
if (n = nl_lookup(a, num, NL_PROGIF, arg1 >> 8, arg1 & 0xff, arg2, 0)) |
316 |
if (n = nl_lookup(a, num, NL_PROGIF, arg1 >> 8, arg1 & 0xff, arg2, 0)) |
317 |
return n->name; |
317 |
return (char *)n->name; |
318 |
if (arg1 == 0x0101) |
318 |
if (arg1 == 0x0101) |
319 |
{ |
319 |
{ |
320 |
/* IDE controllers have complex prog-if semantics */ |
320 |
/* IDE controllers have complex prog-if semantics */ |