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