2 * Copyright 2007, Ingo Weinhold, bonefish@users.sf.net.
3 * Distributed under the terms of the MIT License.
5 #ifndef _EXTENDED_PARTITION_ADD_ON_H
6 #define _EXTENDED_PARTITION_ADD_ON_H
8 #include <DiskSystemAddOn.h>
10 #include "PartitionMap.h"
13 class ExtendedPartitionAddOn
: public BDiskSystemAddOn
{
15 ExtendedPartitionAddOn();
16 virtual ~ExtendedPartitionAddOn();
18 virtual status_t
CreatePartitionHandle(
19 BMutablePartition
* partition
,
20 BPartitionHandle
** handle
);
22 virtual bool CanInitialize(
23 const BMutablePartition
* partition
);
24 virtual status_t
ValidateInitialize(
25 const BMutablePartition
* partition
,
26 BString
* name
, const char* parameters
);
27 virtual status_t
Initialize(BMutablePartition
* partition
,
28 const char* name
, const char* parameters
,
29 BPartitionHandle
** handle
);
33 class ExtendedPartitionHandle
: public BPartitionHandle
{
35 ExtendedPartitionHandle(
36 BMutablePartition
* partition
);
37 virtual ~ExtendedPartitionHandle();
41 virtual uint32
SupportedOperations(uint32 mask
);
42 virtual uint32
SupportedChildOperations(
43 const BMutablePartition
* child
,
46 virtual status_t
GetNextSupportedType(
47 const BMutablePartition
* child
,
48 int32
* cookie
, BString
* type
);
50 virtual status_t
GetPartitioningInfo(BPartitioningInfo
* info
);
52 virtual status_t
GetParameterEditor(
53 B_PARAMETER_EDITOR_TYPE type
,
54 BPartitionParameterEditor
** editor
);
55 virtual status_t
ValidateCreateChild(off_t
* offset
,
56 off_t
* size
, const char* type
,
57 BString
* name
, const char* parameters
);
58 virtual status_t
CreateChild(off_t offset
, off_t size
,
59 const char* type
, const char* name
,
60 const char* parameters
,
61 BMutablePartition
** child
);
62 virtual status_t
DeleteChild(BMutablePartition
* child
);
65 PrimaryPartition
* fPrimaryPartition
;
69 #endif // _EXTENDED_PARTITION_ADD_ON_H