1
0
Files
irix-657m-src/eoe/cmd/mediad/Partition.H
2022-09-29 17:59:04 +03:00

61 lines
1.2 KiB
C++

#ifndef Partition_included
#define Partition_included
#include <sys/types.h>
#include "Enumerable.H"
#include "PartitionAddress.H"
class Device;
class Partition : private Enumerable {
typedef __uint64_t u64;
public:
static Partition *create(const PartitionAddress&,
Device *,
unsigned int secsize,
u64 sec0,
u64 nsec,
const char *fmtname);
~Partition();
const PartitionAddress& address() const { return _address; }
Device *device() const { return _device; }
unsigned int sector_size() const { return _secsize; }
u64 start_sector() const { return _sec0; }
u64 n_sectors() const { return _nsec; }
const char *format_name() const { return _fmtname; }
// Partition enumeration
ENUMERATION_METHODS(Partition, partitions);
private:
// Instance Variables
PartitionAddress _address;
Device *_device;
unsigned int _secsize;
u64 _sec0;
u64 _nsec;
char *_fmtname;
// Class Variable
static Enumerable::Set partitions;
Partition(const PartitionAddress&,
Device *,
unsigned int secsize,
u64 sec0,
u64 nsec,
const char *_fmtname);
};
#endif /* !Partition_included */