xref: /haiku/headers/private/storage/PartitioningInfo.h (revision fb82e723f26c2446c09de4019e446200ee70ad4a)
15b3f1d0cSTyler Dauwalder //----------------------------------------------------------------------
25b3f1d0cSTyler Dauwalder //  This software is part of the OpenBeOS distribution and is covered
35b3f1d0cSTyler Dauwalder //  by the OpenBeOS license.
45b3f1d0cSTyler Dauwalder //---------------------------------------------------------------------
55b3f1d0cSTyler Dauwalder 
65b3f1d0cSTyler Dauwalder #ifndef _PARTITIONING_INFO_H
75b3f1d0cSTyler Dauwalder #define _PARTITIONING_INFO_H
85b3f1d0cSTyler Dauwalder 
9*fb82e723SIngo Weinhold #include <DiskDeviceDefs.h>
10*fb82e723SIngo Weinhold 
11*fb82e723SIngo Weinhold struct partitionable_space_data;
125b3f1d0cSTyler Dauwalder 
135b3f1d0cSTyler Dauwalder class BPartitioningInfo {
145b3f1d0cSTyler Dauwalder public:
15*fb82e723SIngo Weinhold 	BPartitioningInfo();
16*fb82e723SIngo Weinhold 	virtual ~BPartitioningInfo();
17*fb82e723SIngo Weinhold 
18*fb82e723SIngo Weinhold 	void Unset();
19*fb82e723SIngo Weinhold 
20*fb82e723SIngo Weinhold 	partition_id PartitionID() const;
21*fb82e723SIngo Weinhold 
22bef8916eSIngo Weinhold 	status_t GetPartitionableSpaceAt(int32 index, off_t *offset,
23bef8916eSIngo Weinhold 									 off_t *size) const;
24bef8916eSIngo Weinhold 	int32 CountPartitionableSpaces() const;
255b3f1d0cSTyler Dauwalder 
265b3f1d0cSTyler Dauwalder private:
27*fb82e723SIngo Weinhold 	status_t _SetTo(partition_id partition);
28*fb82e723SIngo Weinhold 
29*fb82e723SIngo Weinhold 	friend class BPartition;
30*fb82e723SIngo Weinhold 
31*fb82e723SIngo Weinhold 	partition_id				fPartitionID;
32*fb82e723SIngo Weinhold 	partitionable_space_data	*fSpaces;
33bef8916eSIngo Weinhold 	int32						fCount;
345b3f1d0cSTyler Dauwalder };
355b3f1d0cSTyler Dauwalder 
365b3f1d0cSTyler Dauwalder #endif	// _PARTITIONING_INFO_H
37