author | llornkcor <llornkcor> | 2002-06-29 13:20:37 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-06-29 13:20:37 (UTC) |
commit | 881940465ce6bf9572a46e1aab850ec8e510c54b (patch) (side-by-side diff) | |
tree | 2d896e808d728a241d1c7b2e65a9671650644586 | |
parent | 83c99614bf6d64601c6845f8dc9458d6c7aa410c (diff) | |
download | opie-881940465ce6bf9572a46e1aab850ec8e510c54b.zip opie-881940465ce6bf9572a46e1aab850ec8e510c54b.tar.gz opie-881940465ce6bf9572a46e1aab850ec8e510c54b.tar.bz2 |
added z ramfs
-rw-r--r-- | library/storage.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/library/storage.cpp b/library/storage.cpp index 8346e82..d6a91cf 100644 --- a/library/storage.cpp +++ b/library/storage.cpp @@ -87,108 +87,110 @@ void StorageInfo::cardMessage( const QCString& msg, const QByteArray& ) update(); } // cause of the lack of a d pointer we need // to store informations in a config file :( void StorageInfo::update() { //qDebug("StorageInfo::updating"); #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) struct mntent *me; FILE *mntfp = setmntent( "/etc/mtab", "r" ); QStringList curdisks; QStringList curopts; QStringList curfs; bool rebuild = FALSE; int n=0; if ( mntfp ) { while ( (me = getmntent( mntfp )) != 0 ) { QString fs = me->mnt_fsname; if ( fs.left(7)=="/dev/hd" || fs.left(7)=="/dev/sd" || fs.left(8)=="/dev/mtd" || fs.left(9) == "/dev/mmcd" || fs.left(8)=="/dev/ram") { n++; curdisks.append(fs); curopts.append( me->mnt_opts ); //qDebug("-->fs %s opts %s", fs.latin1(), me->mnt_opts ); curfs.append( me->mnt_dir ); bool found = FALSE; for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) { if ( (*i)->disk() == fs ) { found = TRUE; break; } } if ( !found ) rebuild = TRUE; } } endmntent( mntfp ); } if ( rebuild || n != (int)mFileSystems.count() ) { mFileSystems.clear(); QStringList::ConstIterator it=curdisks.begin(); QStringList::ConstIterator fsit=curfs.begin(); QStringList::ConstIterator optsIt=curopts.begin(); for (; it!=curdisks.end(); ++it, ++fsit, ++optsIt) { QString opts = *optsIt; QString disk = *it; QString humanname; bool removable = FALSE; if ( isCF(disk) ) { humanname = tr("CF Card"); removable = TRUE; } else if ( disk == "/dev/hda1" ) { humanname = tr("Hard Disk"); } else if ( disk.left(9) == "/dev/mmcd" ) { humanname = tr("SD Card"); removable = TRUE; } else if ( disk.left(7) == "/dev/hd" ) humanname = tr("Hard Disk") + " " + humanname.mid(7); else if ( disk.left(7) == "/dev/sd" ) humanname = tr("SCSI Hard Disk") + " " + humanname.mid(7); + else if ( disk.left(15) == "/dev/mtdblock6/" ) //openzaurus ramfs + humanname = tr("Ram FS") + " " + humanname.mid(15); else if ( disk == "/dev/mtdblock1" || humanname == "/dev/mtdblock/1" ) humanname = tr("Internal Storage"); else if ( disk.left(14) == "/dev/mtdblock/" ) humanname = tr("Internal Storage") + " " + humanname.mid(14); else if ( disk.left(13) == "/dev/mtdblock" ) humanname = tr("Internal Storage") + " " + humanname.mid(13); else if ( disk.left(5) == "tmpfs" ) //ipaqs /mnt/ramfs humanname = tr("Ram FS") + " " + humanname.mid(5); FileSystem *fs = new FileSystem( disk, *fsit, humanname, removable, opts ); mFileSystems.append( fs ); } emit disksChanged(); } else { // just update them for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) i.current()->update(); } #endif } //--------------------------------------------------------------------------- FileSystem::FileSystem( const QString &disk, const QString &path, const QString &name, bool rem, const QString &o ) : fsdisk( disk ), fspath( path ), humanname( name ), blkSize(512), totalBlks(0), availBlks(0), removable( rem ), opts( o ) { update(); } void FileSystem::update() { #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) struct statfs fs; if ( !statfs( fspath.latin1(), &fs ) ) { blkSize = fs.f_bsize; totalBlks = fs.f_blocks; availBlks = fs.f_bavail; } else { blkSize = 0; totalBlks = 0; availBlks = 0; } #endif } |