#ifndef _K_PARTITIONING_DISK_DEVICE_SYSTEM_H
#define _K_PARTITIONING_DISK_DEVICE_SYSTEM_H
#include "KDiskSystem.h"
struct partition_module_info;
namespace BPrivate {
namespace DiskDevice {
class KPartitioningSystem : public KDiskSystem {
public:
KPartitioningSystem(const char* name);
virtual ~KPartitioningSystem();
virtual status_t Init();
virtual float Identify(KPartition* partition, void** cookie);
virtual status_t Scan(KPartition* partition, void* cookie);
virtual void FreeIdentifyCookie(KPartition* partition,
void* cookie);
virtual void FreeCookie(KPartition* partition);
virtual void FreeContentCookie(KPartition* partition);
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 ResizeChild(KPartition* child, off_t size,
disk_job_id job);
virtual status_t Move(KPartition* partition, off_t offset,
disk_job_id job);
virtual status_t MoveChild(KPartition* child, off_t offset,
disk_job_id job);
virtual status_t SetName(KPartition* partition, const char* name,
disk_job_id job);
virtual status_t SetContentName(KPartition* partition,
const char* name, disk_job_id job);
virtual status_t SetType(KPartition* partition, const char* type,
disk_job_id job);
virtual status_t SetParameters(KPartition* partition,
const char* parameters, 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);
virtual status_t CreateChild(KPartition* partition, off_t offset,
off_t size, const char* type,
const char* name, const char* parameters,
disk_job_id job, KPartition** child = NULL,
partition_id childID = -1);
virtual status_t DeleteChild(KPartition* child, disk_job_id job);
protected:
virtual status_t LoadModule();
virtual void UnloadModule();
private:
partition_module_info* fModule;
};
}
}
using BPrivate::DiskDevice::KPartitioningSystem;
#endif