117750c77SIngo Weinhold // KFileDiskDevice.h 217750c77SIngo Weinhold 317750c77SIngo Weinhold #ifndef _K_FILE_DISK_DEVICE_H 417750c77SIngo Weinhold #define _K_FILE_DISK_DEVICE_H 517750c77SIngo Weinhold 617750c77SIngo Weinhold #include <OS.h> 717750c77SIngo Weinhold 817750c77SIngo Weinhold #include "KDiskDevice.h" 917750c77SIngo Weinhold 1017750c77SIngo Weinhold namespace BPrivate { 1117750c77SIngo Weinhold namespace DiskDevice { 1217750c77SIngo Weinhold 1392221d24SIngo Weinhold class KPath; 1492221d24SIngo Weinhold 1517750c77SIngo Weinhold class KFileDiskDevice : public KDiskDevice { 1617750c77SIngo Weinhold public: 1717750c77SIngo Weinhold KFileDiskDevice(partition_id id = -1); 1817750c77SIngo Weinhold virtual ~KFileDiskDevice(); 1917750c77SIngo Weinhold 2017750c77SIngo Weinhold status_t SetTo(const char *filePath, const char *devicePath = NULL); 2117750c77SIngo Weinhold void Unset(); 2217750c77SIngo Weinhold virtual status_t InitCheck() const; 2317750c77SIngo Weinhold // TODO: probably superfluous 2417750c77SIngo Weinhold 2517750c77SIngo Weinhold const char *FilePath() const; 2617750c77SIngo Weinhold 2717750c77SIngo Weinhold // virtual void Dump(bool deep = true, int32 level = 0); 2817750c77SIngo Weinhold 29*c06238cbSIngo Weinhold protected: 30*c06238cbSIngo Weinhold virtual status_t GetMediaStatus(status_t *mediaStatus); 31*c06238cbSIngo Weinhold virtual status_t GetGeometry(device_geometry *geometry); 32*c06238cbSIngo Weinhold 33b23394f9SIngo Weinhold private: 3492221d24SIngo Weinhold static status_t _GetDirectoryPath(partition_id id, KPath *path); 3592221d24SIngo Weinhold 36b23394f9SIngo Weinhold static status_t _RegisterDevice(const char *file, const char *device); 37b23394f9SIngo Weinhold static status_t _UnregisterDevice(const char *device); 3817750c77SIngo Weinhold 3917750c77SIngo Weinhold private: 4017750c77SIngo Weinhold char *fFilePath; 4117750c77SIngo Weinhold }; 4217750c77SIngo Weinhold 4317750c77SIngo Weinhold } // namespace DiskDevice 4417750c77SIngo Weinhold } // namespace BPrivate 4517750c77SIngo Weinhold 4617750c77SIngo Weinhold using BPrivate::DiskDevice::KFileDiskDevice; 4717750c77SIngo Weinhold 4817750c77SIngo Weinhold #endif // _K_FILE_DISK_DEVICE_H 49