Source Code (Use browser search to find items of interest.)

Class Index

ksysctrl'DeviceScanner (./kdeadmin/ksysctrl/ksysctrl/devscanner.h:29)

class DeviceScanner
{
  public:
  
    DeviceScanner();
    virtual ~DeviceScanner() {}

    virtual Device  *firstDevice() = 0;
    virtual Device  *nextDevice()  = 0;
    
  protected:
  
    uint  ioRange(uint ioaddr);
};


ksysctrl'DeviceScanner::DeviceScanner() (./kdeadmin/ksysctrl/ksysctrl/devscanner.cpp:26)

DeviceScanner::DeviceScanner()
{

}


/*
 * Protected methods
 ********************/


ksysctrl'DeviceScanner::ioRange() (./kdeadmin/ksysctrl/ksysctrl/devscanner.cpp:36)

uint  DeviceScanner::ioRange(uint ioaddr)
{
  FILE  *fhd;
  uint  iostart, ioend;
  char  buffer[128];
  
  if ((fhd = fopen("/proc/ioports", "r")))
  {
    while (fgets(buffer, sizeof(buffer), fhd))
    {
      sscanf(buffer, "%04x", &iostart);
      
      if (iostart == ioaddr)
      {
        fclose(fhd);
	sscanf(buffer+5, "%04x", &ioend);
	
	return ioend-iostart+1;
      }
    }
    
    fclose(fhd);
  }
  
  return 1;
}