git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
Fixing bugs exposed by scan-build
[tpg/acess2.git]
/
Kernel
/
drv
/
pci.c
diff --git
a/Kernel/drv/pci.c
b/Kernel/drv/pci.c
index
c176f47
..
7234296
100644
(file)
--- a/
Kernel/drv/pci.c
+++ b/
Kernel/drv/pci.c
@@
-17,13
+17,8
@@
typedef struct sPCIDevice
{
\r
Uint16 bus, slot, fcn;
\r
Uint16 vendor, device;
\r
- union {
\r
- struct {
\r
- Uint8 class, subclass;
\r
- };
\r
- Uint16 oc;
\r
- };
\r
- Uint8 revision, progif;
\r
+ Uint32 class; // Class:Subclass:ProgIf
\r
+ Uint8 revision;
\r
Uint32 ConfigCache[256/4];
\r
char Name[8];
\r
tVFS_Node Node;
\r
@@
-143,7
+138,7
@@
int PCI_ScanBus(int BusID, int bFill)
if(!PCI_int_EnumDevice(BusID, dev, fcn, &devInfo))
\r
continue;
\r
\r
- if(devInfo.
oc
== PCI_OC_PCIBRIDGE)
\r
+ if(devInfo.
class
== PCI_OC_PCIBRIDGE)
\r
{
\r
#if LIST_DEVICES
\r
if( !bFill )
\r
@@
-158,8
+153,8
@@
int PCI_ScanBus(int BusID, int bFill)
{
\r
#if LIST_DEVICES
\r
if( !bFill )
\r
- Log_Log("PCI", "Device %i,%i:%i %0
4
x => 0x%04x:0x%04x",
\r
- BusID, dev, fcn, devInfo.
oc
, devInfo.vendor, devInfo.device);
\r
+ Log_Log("PCI", "Device %i,%i:%i %0
6
x => 0x%04x:0x%04x",
\r
+ BusID, dev, fcn, devInfo.
class
, devInfo.vendor, devInfo.device);
\r
#endif
\r
}
\r
\r
@@
-288,7
+283,7
@@
tPCIDev PCI_GetDevice(Uint16 vendor, Uint16 device, int idx)
* \param mask Mask for class comparison
\r
* \param prev ID of previous device (-1 for no previous)
\r
*/
\r
-tPCIDev PCI_GetDeviceByClass(Uint
16 class, Uint16
mask, tPCIDev prev)
\r
+tPCIDev PCI_GetDeviceByClass(Uint
32 class, Uint32
mask, tPCIDev prev)
\r
{
\r
int i;
\r
// Check if prev is negative (meaning get first)
\r
@@
-297,30
+292,29
@@
tPCIDev PCI_GetDeviceByClass(Uint16 class, Uint16 mask, tPCIDev prev)
\r
for( ; i < giPCI_DeviceCount; i++ )
\r
{
\r
- if((gPCI_Devices[i].
oc
& mask) == class)
\r
+ if((gPCI_Devices[i].
class
& mask) == class)
\r
return i;
\r
}
\r
return -1;
\r
}
\r
\r
-int PCI_GetDeviceInfo(tPCIDev ID, Uint16 *Vendor, Uint16 *Device, Uint
16
*Class)
\r
+int PCI_GetDeviceInfo(tPCIDev ID, Uint16 *Vendor, Uint16 *Device, Uint
32
*Class)
\r
{
\r
tPCIDevice *dev = &gPCI_Devices[ID];
\r
if(ID < 0 || ID >= giPCI_DeviceCount) return 1;
\r
\r
if(Vendor) *Vendor = dev->vendor;
\r
if(Device) *Device = dev->device;
\r
- if(Class) *Class = dev->
oc
;
\r
+ if(Class) *Class = dev->
class
;
\r
return 0;
\r
}
\r
\r
-int PCI_GetDeviceVersion(tPCIDev ID, Uint8 *Revision
, Uint8 *ProgIF
)
\r
+int PCI_GetDeviceVersion(tPCIDev ID, Uint8 *Revision)
\r
{
\r
tPCIDevice *dev = &gPCI_Devices[ID];
\r
if(ID < 0 || ID >= giPCI_DeviceCount) return 1;
\r
\r
if(Revision) *Revision = dev->revision;
\r
- if(ProgIF) *ProgIF = dev->progif;
\r
return 0;
\r
}
\r
\r
@@
-453,13
+447,13
@@
int PCI_int_EnumDevice(Uint16 bus, Uint16 slot, Uint16 fcn, tPCIDevice *info)
info->vendor = vendor_dev & 0xFFFF;
\r
info->device = vendor_dev >> 16;
\r
tmp = info->ConfigCache[2];
\r
- info->revision = tmp & 0xFF
FF
;
\r
- info->
oc = tmp >> 16
;
\r
+ info->revision = tmp & 0xFF;
\r
+ info->
class = tmp >> 8
;
\r
\r
// #if LIST_DEVICES
\r
// Log("BAR0 0x%08x BAR1 0x%08x BAR2 0x%08x", info->ConfigCache[4], info->ConfigCache[5], info->ConfigCache[6]);
\r
// Log("BAR3 0x%08x BAR4 0x%08x BAR5 0x%08x", info->ConfigCache[7], info->ConfigCache[8], info->ConfigCache[9]);
\r
-// Log("Class: 0x%0
4x", info->oc
);
\r
+// Log("Class: 0x%0
6x", info->class
);
\r
// #endif
\r
\r
// Make node name
\r
UCC
git Repository :: git.ucc.asn.au