diff options
Diffstat (limited to 'kcontrol/info/info_svr4.cpp')
-rw-r--r-- | kcontrol/info/info_svr4.cpp | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/kcontrol/info/info_svr4.cpp b/kcontrol/info/info_svr4.cpp new file mode 100644 index 000000000..2509aa062 --- /dev/null +++ b/kcontrol/info/info_svr4.cpp @@ -0,0 +1,132 @@ +/* + info_svr4.cpp + + UNIX System V Release 4 specific Information about the Hardware. + Appropriate for SCO OpenServer and UnixWare. + Written 20-Feb-99 by Ronald Joe Record (rr@sco.com) + Initially based on info_sgi.cpp +*/ + +#define INFO_CPU_AVAILABLE +#define INFO_IRQ_AVAILABLE +#define INFO_DMA_AVAILABLE +#define INFO_PCI_AVAILABLE +#define INFO_IOPORTS_AVAILABLE +#define INFO_SOUND_AVAILABLE +#define INFO_DEVICES_AVAILABLE +#define INFO_SCSI_AVAILABLE +#define INFO_PARTITIONS_AVAILABLE +#define INFO_XSERVER_AVAILABLE + +#define INFO_DEV_SNDSTAT "/dev/sndstat" + +#include <sys/systeminfo.h> + +/* all following functions should return true, when the Information + was filled into the lBox-Widget. + returning false indicates, that information was not available. +*/ + +bool GetInfo_ReadfromFile( QListView *lBox, char *Name, char splitchar ) +{ + QString str; + char buf[512]; + + QFile *file = new QFile(Name); + QListViewItem* olditem = 0; + + if(!file->open(IO_ReadOnly)) { + delete file; + return false; + } + + while (file->readLine(buf,sizeof(buf)-1) > 0) { + if (strlen(buf)) { + char *p=buf; + if (splitchar!=0) /* remove leading spaces between ':' and the following text */ + while (*p) { + if (*p==splitchar) { + *p++ = ' '; + while (*p==' ') ++p; + *(--p) = splitchar; + ++p; + } + else ++p; + } + + QString s1 = QString::fromLocal8Bit(buf); + QString s2 = s1.mid(s1.find(splitchar)+1); + + s1.truncate(s1.find(splitchar)); + if(!(s1.isEmpty() || s2.isEmpty())) + olditem = new QListViewItem(lBox, olditem, s1, s2); + } + } + file->close(); + + delete file; + return true; +} + +bool GetInfo_CPU( QListView *lBox ) +{ + char buf[256]; + + sysinfo(SI_ARCHITECTURE, buf, sizeof(buf)); + new QListViewItem(lBox, QString::fromLocal8Bit(buf)); + return true; +} + + +bool GetInfo_IRQ( QListView * ) +{ + return false; +} + +bool GetInfo_DMA( QListView * ) +{ + return false; +} + +bool GetInfo_PCI( QListView *lBox ) +{ + char buf[256]; + + sysinfo(SI_BUSTYPES, buf, sizeof(buf)); + new QListViewItem(lBox, QString::fromLocal8Bit(buf)); + return true; +} + +bool GetInfo_IO_Ports( QListView * ) +{ + return false; +} + +bool GetInfo_Sound( QListView *lBox ) +{ + if ( GetInfo_ReadfromFile( lBox, INFO_DEV_SNDSTAT, 0 )) + return true; + else + return false; +} + +bool GetInfo_Devices( QListView * ) +{ + return false; +} + +bool GetInfo_SCSI( QListView * ) +{ + return false; +} + +bool GetInfo_Partitions( QListView * ) +{ + return false; +} + +bool GetInfo_XServer_and_Video( QListView *lBox ) +{ + return GetInfo_XServer_Generic( lBox ); +} + |