Source Code (Use browser search to find items of interest.)
Class Index
ksysctrl'PCCardDevice (./kdeadmin/ksysctrl/ksysctrl/pccarddevice.h:32)
class PCCardDevice : public Device
{
public:
PCCardDevice(QString ident, int socket);
~PCCardDevice() {}
virtual bustype busType() const { return BusPCI; }
virtual QString deviceClassName();
virtual QString deviceName();
virtual devstate deviceState();
virtual QString vendorName();
private:
QString _ident;
int _function;
int _socket;
QString _vendorname;
QString _devicename;
uint _bus, _slot, _func;
uint _vendorid, _deviceid;
devstate _devicestate;
void lookupData();
};
ksysctrl'PCCardDevice::PCCardDevice() (./kdeadmin/ksysctrl/ksysctrl/pccarddevice.cpp:54)
PCCardDevice::PCCardDevice(QString ident, int socket)
: Device(Device::BaseClassPCCard, ident)
{
_ident = ident;
_function = -1;
_socket = socket;
_vendorname = i18n("Unknown vendor");
_devicename = i18n("Unknown device");
lookupData();
}
ksysctrl'PCCardDevice::deviceClassName() (./kdeadmin/ksysctrl/ksysctrl/pccarddevice.cpp:68)
QString PCCardDevice::deviceClassName()
{
switch (_function)
{
case -1: return QString().setNum(_socket);
case 0: return QString(i18n("Multifunction card"));
case 1: return QString(i18n("Memory card"));
case 2: return QString(i18n("Serial/Modem card"));
case 3: return QString(i18n("Parallel card"));
case 4: return QString(i18n("Fixed disk"));
case 5: return QString(i18n("Video card"));
case 6: return QString(i18n("Network adapter"));
case 7: return QString(i18n("AIMS card"));
case 8: return QString(i18n("SCSI adapter"));
default:
return QString(i18n("unknown card type"));
}
};
ksysctrl'PCCardDevice::deviceName() (./kdeadmin/ksysctrl/ksysctrl/pccarddevice.cpp:88)
QString PCCardDevice::deviceName()
{
if (_function == -1)
return QString(i18n("Empty socket"));
return _devicename;
}
Device::devstate PCCardDevice::deviceState()
{
QString state = runCardCtl("status", _socket);
if (state.find(" no card") >= 0)
return DeviceStateEmpty;
if (state.find("card present"))
return DeviceStateReady;
return DeviceStateUnknown;
}
ksysctrl'PCCardDevice::vendorName() (./kdeadmin/ksysctrl/ksysctrl/pccarddevice.cpp:108)
QString PCCardDevice::vendorName()
{
return _vendorname;
}
/*
* Private methods
******************/
ksysctrl'PCCardDevice::lookupData() (./kdeadmin/ksysctrl/ksysctrl/pccarddevice.cpp:118)
void PCCardDevice::lookupData()
{
bool ok;
int pos, pos2;
unsigned long value, value2;
// parse the ident information
if ((pos = _ident.find(" function:")) >= 0)
{
_function = _ident.mid(pos+12,2).stripWhiteSpace().toInt(&ok);
if (!ok)
_function = 999;
}
if ((pos = _ident.find(" product info:")) >= 0)
{
pos = _ident.find("\"");
pos2 = _ident.find("\"", pos+1);
if (pos2 > pos)
{
_vendorname = _ident.mid(pos+1,pos2-pos-1);
pos = _ident.find("\"", pos2+1);
pos2 = _ident.find("\"", pos+1);
if (pos2 > pos)
_devicename = _ident.mid(pos+1,pos2-pos-1);
}
}
// get the configuration information
QString config = runCardCtl("config", _socket);
// parse config information
if (config.find("not configured") < 0)
{
// interrupt
if ((pos = config.find(" IRQ ")) >= 0)
{
value = config.mid(pos+6,2).stripWhiteSpace().toULong(&ok);
if (ok)
addResource(new Interrupt(value));
}
// io ports
pos = 0;
while ((pos = config.find(" I/O window", pos)) >= 0)
{
if ((pos2 = config.find(": ", pos)) >= 0)
{
pos = pos2+2;
QString tmp = config.mid(pos, 10);
value = strtol(tmp.data(), NULL, 16);
if ((pos2 = config.find(" to ", pos)) >= 0)
{
pos = pos2+4;
QString tmp = config.mid(pos, 10);
value2 = strtol(tmp.data(), NULL, 16);
addResource(new IOAddress(value, value2-value+1));
}
}
}
}
}