Files
haiku-beta6/headers/private/kernel/disk_device_manager/KFileSystem.h
T

74 lines
1.9 KiB
C++
Raw Normal View History

2007-07-27 16:32:47 +00:00
/*
* Copyright 2003-2011, Haiku, Inc. All Rights Reserved.
2007-07-27 16:32:47 +00:00
* Distributed under the terms of the MIT License.
*
* Authors:
* Ingo Weinhold <[email protected]>
*
* KFileSystem implements the KDiskSystem interface for file systems.
*/
#ifndef _K_FILE_DISK_DEVICE_SYSTEM_H
#define _K_FILE_DISK_DEVICE_SYSTEM_H
#include "KDiskSystem.h"
struct file_system_module_info;
2003-06-22 23:03:58 +00:00
namespace BPrivate {
namespace DiskDevice {
2007-07-27 16:32:47 +00:00
//! \brief Wrapper for the C interface of a filesystem add-on.
2003-06-10 22:36:53 +00:00
class KFileSystem : public KDiskSystem {
public:
KFileSystem(const char* name);
virtual ~KFileSystem();
virtual status_t Init();
2003-06-22 23:03:58 +00:00
// Scanning
virtual float Identify(KPartition* partition, void** cookie);
virtual status_t Scan(KPartition* partition, void* cookie);
virtual void FreeIdentifyCookie(KPartition* partition,
void* cookie);
virtual void FreeContentCookie(KPartition* partition);
// Writing
virtual status_t Defragment(KPartition* partition,
disk_job_id job);
virtual status_t Repair(KPartition* partition, bool checkOnly,
disk_job_id job);
virtual status_t Resize(KPartition* partition, off_t size,
disk_job_id job);
virtual status_t Move(KPartition* partition, off_t offset,
disk_job_id job);
virtual status_t SetContentName(KPartition* partition,
const char* name, disk_job_id job);
virtual status_t SetContentParameters(KPartition* partition,
const char* parameters, disk_job_id job);
virtual status_t Initialize(KPartition* partition,
const char* name, const char* parameters,
disk_job_id job);
virtual status_t Uninitialize(KPartition* partition,
disk_job_id job);
2003-06-10 22:36:53 +00:00
protected:
virtual status_t LoadModule();
virtual void UnloadModule();
2003-06-22 23:03:58 +00:00
private:
file_system_module_info* fModule;
};
} // namespace DiskDevice
} // namespace BPrivate
using BPrivate::DiskDevice::KFileSystem;
#endif // _K_FILE_DISK_DEVICE_SYSTEM_H