87 lines
2.6 KiB
C++
87 lines
2.6 KiB
C++
/*
|
|||
|
|
* Copyright 2003-2007, Haiku, Inc. All Rights Reserved.
|
||
|
|
* Distributed under the terms of the MIT License.
|
||
|
|
*
|
||
|
|
* Authors:
|
||
|
|
* Ingo Weinhold <[email protected]>
|
||
|
|
*/
|
||
#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 {
|
||
|
|
|
||
/**
|
|||
|
|
* \brief Wrapper for the C interface of a partitioning system add-on.
|
||
|
|
*
|
||
|
|
* See \ref ddm_modules.h for better description of the interface.
|
||
|
|
*/
|
||
class KPartitioningSystem : public KDiskSystem {
|
|||
|
|
public:
|
||
KPartitioningSystem(const char *name);
|
|||
|
|
virtual ~KPartitioningSystem();
|
||
|
|
|
||
virtual status_t Init();
|
|||
|
|
|
||
// 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 FreeCookie(KPartition *partition);
|
||
|
|
virtual void FreeContentCookie(KPartition *partition);
|
||
|
|
|
||
|
|
// Writing
|
||
|
|
|
||
#if 0
|
|||
virtual status_t Repair(KPartition *partition, bool checkOnly,
|
|||
|
|
KDiskDeviceJob *job);
|
||
|
|
virtual status_t Resize(KPartition *partition, off_t size,
|
||
|
|
KDiskDeviceJob *job);
|
||
|
|
virtual status_t ResizeChild(KPartition *child, off_t size,
|
||
|
|
KDiskDeviceJob *job);
|
||
|
|
virtual status_t Move(KPartition *partition, off_t offset,
|
||
|
|
KDiskDeviceJob *job);
|
||
|
|
virtual status_t MoveChild(KPartition *child, off_t offset,
|
||
|
|
KDiskDeviceJob *job);
|
||
virtual status_t SetName(KPartition *partition, char *name,
|
|||
|
|
KDiskDeviceJob *job);
|
||
|
|
virtual status_t SetContentName(KPartition *partition, char *name,
|
||
|
|
KDiskDeviceJob *job);
|
||
|
|
virtual status_t SetType(KPartition *partition, char *type,
|
||
|
|
KDiskDeviceJob *job);
|
||
virtual status_t SetParameters(KPartition *partition,
|
|||
|
|
const char *parameters,
|
||
|
|
KDiskDeviceJob *job);
|
||
|
|
virtual status_t SetContentParameters(KPartition *partition,
|
||
|
|
const char *parameters,
|
||
|
|
KDiskDeviceJob *job);
|
||
virtual status_t CreateChild(KPartition *partition, off_t offset,
|
|||
off_t size, const char *type,
|
|||
|
|
const char *parameters, KDiskDeviceJob *job,
|
||
KPartition **child = NULL,
|
|||
|
|
partition_id childID = -1);
|
||
|
|
virtual status_t DeleteChild(KPartition *child, KDiskDeviceJob *job);
|
||
virtual status_t Initialize(KPartition *partition, const char *name,
|
|||
|
|
const char *parameters, KDiskDeviceJob *job);
|
||
#endif // 0
|
|||
|
|||
|
|
protected:
|
||
|
|
virtual status_t LoadModule();
|
||
|
|
virtual void UnloadModule();
|
||
|
|
|
||
|
|
private:
|
||
|
|
partition_module_info *fModule;
|
||
};
|
|||
|
|
|
||
|
|
} // namespace DiskDevice
|
||
|
|
} // namespace BPrivate
|
||
|
|
|
||
|
|
using BPrivate::DiskDevice::KPartitioningSystem;
|
||
|
|
|
||
|
|
#endif // _K_PARTITIONING_DISK_DEVICE_SYSTEM_H
|