Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
gptfdisk/parttypes.h
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
67 lines (55 sloc)
1.89 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* This program is copyright (c) 2009-2013 by Roderick W. Smith. It is distributed | |
under the terms of the GNU GPL version 2, as detailed in the COPYING file. */ | |
#include <stdint.h> | |
#include <stdlib.h> | |
#ifdef USE_UTF16 | |
#include <unicode/ustream.h> | |
#else | |
#define UnicodeString string | |
#endif | |
#include <string> | |
#include "support.h" | |
#include "guid.h" | |
#ifndef __PARTITION_TYPES | |
#define __PARTITION_TYPES | |
using namespace std; | |
// A partition type | |
struct AType { | |
// I'm using a custom 16-bit extension of the original MBR 8-bit | |
// type codes, so as to permit disambiguation and use of new | |
// codes required by GPT | |
uint16_t MBRType; | |
GUIDData GUIDType; | |
string name; | |
int display; // 1 to show to users as available type, 0 not to | |
AType* next; | |
}; // struct AType | |
class PartType : public GUIDData { | |
protected: | |
static int numInstances; | |
static AType* allTypes; // Linked list holding all the data | |
static AType* lastType; // Pointer to last entry in the list | |
void AddAllTypes(void); | |
public: | |
PartType(void); | |
PartType(const PartType & orig); | |
PartType(const GUIDData & orig); | |
~PartType(void); | |
// Set up type information | |
int AddType(uint16_t mbrType, const char * guidData, const char * name, int toDisplay = 1); | |
// New assignment operators.... | |
PartType & operator=(const string & orig); | |
PartType & operator=(const char * orig); | |
// Assignment operators based on base class.... | |
GUIDData & operator=(const GUIDData & orig) {return GUIDData::operator=(orig);} | |
// New data assignment | |
PartType & operator=(uint16_t ID); // Use MBR type code times 0x0100 to assign GUID | |
// Retrieve transformed GUID data based on type code matches | |
string TypeName(void) const; | |
UnicodeString UTypeName(void) const; | |
uint16_t GetHexType() const; | |
// Information relating to all type data | |
void ShowAllTypes(int maxLines = 21) const; | |
int Valid(uint16_t code) const; | |
}; | |
#endif |