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