1/* mbr.h -- MBR data structure definitions, types, and functions */
2
3/* This program is copyright (c) 2009-2013 by Roderick W. Smith. It is distributed
4  under the terms of the GNU GPL version 2, as detailed in the COPYING file. */
5
6#include <stdint.h>
7#include <sys/types.h>
8#include "gptpart.h"
9//#include "partnotes.h"
10#include "diskio.h"
11#include "basicmbr.h"
12
13#ifndef __MBRSTRUCTS
14#define __MBRSTRUCTS
15
16using namespace std;
17
18/****************************************
19 *                                      *
20 * MBRData class and related structures *
21 *                                      *
22 ****************************************/
23
24// Full data in tweaked MBR format
25class MBRData : public BasicMBRData {
26protected:
27public:
28   MBRData(void) {}
29   MBRData(string deviceFilename) : BasicMBRData(deviceFilename) {}
30   MBRData & operator=(const BasicMBRData & orig);
31
32   // Functions to create, delete, or change partitions
33   // Pass EmptyMBR 1 to clear the boot loader code, 0 to leave it intact
34   void MakeProtectiveMBR(int clearBoot = 0);
35   void OptimizeEESize(void);
36   int DeleteByLocation(uint64_t start64, uint64_t length64);
37
38   // Functions to extract data on specific partitions....
39   GPTPart AsGPT(int i);
40}; // struct MBRData
41
42#endif
43