1/*
2 * Copyright 2013, Axel D��rfler, axeld@pinc-software.de.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef GPT_PARTITION_HANDLE_H
6#define GPT_PARTITION_HANDLE_H
7
8
9#include <DiskSystemAddOn.h>
10
11#include "Header.h"
12
13
14class GPTPartitionHandle : public BPartitionHandle {
15public:
16								GPTPartitionHandle(
17									BMutablePartition* partition);
18	virtual						~GPTPartitionHandle();
19
20			status_t			Init();
21
22	virtual	uint32				SupportedOperations(uint32 mask);
23	virtual	uint32				SupportedChildOperations(
24									const BMutablePartition* child,
25									uint32 mask);
26
27	virtual	status_t			GetNextSupportedType(
28									const BMutablePartition* child,
29									int32* cookie, BString* type);
30
31	virtual	status_t			GetPartitioningInfo(BPartitioningInfo* info);
32
33	virtual	status_t			GetParameterEditor(
34									B_PARAMETER_EDITOR_TYPE type,
35									BPartitionParameterEditor** editor);
36	virtual	status_t			ValidateCreateChild(off_t* offset,
37									off_t* size, const char* type,
38									BString* name, const char* parameters);
39	virtual	status_t			CreateChild(off_t offset, off_t size,
40									const char* type, const char* name,
41									const char* parameters,
42									BMutablePartition** child);
43	virtual status_t			DeleteChild(BMutablePartition* child);
44
45private:
46			EFI::Header*		fHeader;
47};
48
49
50#endif	// GPT_PARTITION_HANDLE_H
51