1ec103c3cSStephan Aßmus /* 2ec103c3cSStephan Aßmus * Copyright 2002-2007 Haiku Inc. All rights reserved. 3ec103c3cSStephan Aßmus * Distributed under the terms of the MIT license. 4ec103c3cSStephan Aßmus */ 5ec103c3cSStephan Aßmus #ifndef SUPPORT_H 6ec103c3cSStephan Aßmus #define SUPPORT_H 7ec103c3cSStephan Aßmus 8ec103c3cSStephan Aßmus 9967d7204SStephan Aßmus #include <DiskDeviceDefs.h> 10967d7204SStephan Aßmus #include <HashMap.h> 11967d7204SStephan Aßmus #include <HashString.h> 12dc59ebe7SIngo Weinhold #include <Slider.h> 13dc59ebe7SIngo Weinhold #include <String.h> 1448d79657SStephan Aßmus #include "StringForSize.h" 15ec103c3cSStephan Aßmus 16ec103c3cSStephan Aßmus 17ec103c3cSStephan Aßmus class BPartition; 18ec103c3cSStephan Aßmus 19ec103c3cSStephan Aßmus 20ec103c3cSStephan Aßmus void dump_partition_info(const BPartition* partition); 21ec103c3cSStephan Aßmus 22967d7204SStephan Aßmus bool is_valid_partitionable_space(size_t size); 23967d7204SStephan Aßmus 24dc59ebe7SIngo Weinhold enum { 25dc59ebe7SIngo Weinhold GO_CANCELED = 0, 26dc59ebe7SIngo Weinhold GO_SUCCESS 27dc59ebe7SIngo Weinhold }; 28967d7204SStephan Aßmus 2929aec87eSIngo Weinhold 30eff35b90SIngo Weinhold static const uint32 kMegaByte = 0x100000; 3129aec87eSIngo Weinhold 32967d7204SStephan Aßmus class SpaceIDMap : public HashMap<HashString, partition_id> { 33967d7204SStephan Aßmus public: 34967d7204SStephan Aßmus SpaceIDMap(); 35967d7204SStephan Aßmus virtual ~SpaceIDMap(); 36967d7204SStephan Aßmus 37967d7204SStephan Aßmus partition_id SpaceIDFor(partition_id parentID, 38967d7204SStephan Aßmus off_t spaceOffset); 39967d7204SStephan Aßmus 40967d7204SStephan Aßmus private: 41967d7204SStephan Aßmus partition_id fNextSpaceID; 42967d7204SStephan Aßmus }; 43967d7204SStephan Aßmus 44dc59ebe7SIngo Weinhold class SizeSlider : public BSlider { 45dc59ebe7SIngo Weinhold public: 46dc59ebe7SIngo Weinhold SizeSlider(const char* name, const char* label, 47dc59ebe7SIngo Weinhold BMessage* message, int32 minValue, 48dc59ebe7SIngo Weinhold int32 maxValue); 49dc59ebe7SIngo Weinhold virtual ~SizeSlider(); 50dc59ebe7SIngo Weinhold 51dc59ebe7SIngo Weinhold virtual const char* UpdateText() const; 52eff35b90SIngo Weinhold int32 Size(); 53eff35b90SIngo Weinhold int32 Offset(); 54*42ea87d5SStephan Aßmus int32 MaxPartitionSize(); 55dc59ebe7SIngo Weinhold 56dc59ebe7SIngo Weinhold private: 57eff35b90SIngo Weinhold off_t fStartOffset; 58eff35b90SIngo Weinhold off_t fEndOffset; 59*42ea87d5SStephan Aßmus off_t fMaxPartitionSize; 607d24c647SStephan Aßmus mutable char fStatusLabel[64]; 61dc59ebe7SIngo Weinhold }; 62ec103c3cSStephan Aßmus 63ec103c3cSStephan Aßmus #endif // SUPPORT_H 64