Files
neutrino/src/system/fsmounter.h
mrcolor bc5bd4154e our current experimental Neutrino branch
git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@27 e54a6e83-5905-42d5-8d5c-058d10e6a962
2009-12-08 11:05:11 +00:00

111 lines
2.7 KiB
C++

/*
Neutrino-GUI - DBoxII-Project
FS Mount/Umount by Zwen
Homepage: http://dbox.cyberphoria.org/
Kommentar:
Diese GUI wurde von Grund auf neu programmiert und sollte nun vom
Aufbau und auch den Ausbaumoeglichkeiten gut aussehen. Neutrino basiert
auf der Client-Server Idee, diese GUI ist also von der direkten DBox-
Steuerung getrennt. Diese wird dann von Daemons uebernommen.
License: GPL
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __neutrino_fs_mounter__
#define __neutrino_fs_mounter__
#include <system/settings.h>
#include <vector>
class CFSMounter
{
// protected
public:
enum FS_Support
{
FS_UNSUPPORTED = 0,
FS_READY = 1,
FS_NEEDS_MODULES = 2,
FS_UNPROBED = 3
};
public:
enum FSType
{
NFS = 0,
CIFS = 1,
LUFS = 2
};
enum MountRes
{
MRES_FS_NOT_SUPPORTED = 0,
MRES_FS_ALREADY_MOUNTED = 1,
MRES_TIMEOUT = 2,
MRES_UNKNOWN = 3,
MRES_OK = 4
};
enum UMountRes
{
UMRES_ERR = 0,
UMRES_OK = 1
};
struct MountInfo
{
std::string device;
std::string mountPoint;
std::string type;
};
typedef std::vector<CFSMounter::MountInfo> MountInfos;
private:
/*
FS_Support m_nfs_sup;
FS_Support m_cifs_sup;
FS_Support m_lufs_sup;
*/
public:
CFSMounter();
static bool isMounted(const char * const local_dir);
static CFSMounter::MountRes mount(const char * const ip, const char * const dir, const char * const local_dir,
const FSType fstype, const char * const username, const char * const password,
char * options1, char * options2);
static bool automount();
static CFSMounter::UMountRes umount(const char * const dir = NULL);
static void getMountedFS(MountInfos& fs);
static FS_Support fsSupported(const FSType fs, const bool keep_modules = false);
};
bool in_proc_filesystems(const char * const fsname);
bool insert_modules(const CFSMounter::FSType fstype);
bool remove_modules(const CFSMounter::FSType fstype);
extern bool nfs_mounted_once; /* needed by update.cpp to prevent removal of modules after flashing a new cramfs, since rmmod (busybox) might no longer be available */
#endif