1e7b4ff9317fc4e551cf974684eaa88697de5a28srs/* mbr.h -- MBR data structure definitions, types, and functions */ 2e7b4ff9317fc4e551cf974684eaa88697de5a28srs 3e3ee733ff8690af7568dac665bc20ecf869dea1dRoderick W. Smith/* This program is copyright (c) 2009-2013 by Roderick W. Smith. It is distributed 4221e08768de7fe42ba533ca22baf671420569c07srs under the terms of the GNU GPL version 2, as detailed in the COPYING file. */ 5221e08768de7fe42ba533ca22baf671420569c07srs 6e7b4ff9317fc4e551cf974684eaa88697de5a28srs#include <stdint.h> 7e7b4ff9317fc4e551cf974684eaa88697de5a28srs#include <sys/types.h> 8221e08768de7fe42ba533ca22baf671420569c07srs#include "gptpart.h" 964cbd171067eb34054741bfcd73f0b91d727a371srs//#include "partnotes.h" 10546a9c7c369df465021feecb20f6a8f81b6df6bcsrs#include "diskio.h" 1164cbd171067eb34054741bfcd73f0b91d727a371srs#include "basicmbr.h" 12e7b4ff9317fc4e551cf974684eaa88697de5a28srs 13e7b4ff9317fc4e551cf974684eaa88697de5a28srs#ifndef __MBRSTRUCTS 14e7b4ff9317fc4e551cf974684eaa88697de5a28srs#define __MBRSTRUCTS 15e7b4ff9317fc4e551cf974684eaa88697de5a28srs 16e7b4ff9317fc4e551cf974684eaa88697de5a28srsusing namespace std; 17e7b4ff9317fc4e551cf974684eaa88697de5a28srs 18e7b4ff9317fc4e551cf974684eaa88697de5a28srs/**************************************** 19e7b4ff9317fc4e551cf974684eaa88697de5a28srs * * 20e7b4ff9317fc4e551cf974684eaa88697de5a28srs * MBRData class and related structures * 21e7b4ff9317fc4e551cf974684eaa88697de5a28srs * * 22e7b4ff9317fc4e551cf974684eaa88697de5a28srs ****************************************/ 23e7b4ff9317fc4e551cf974684eaa88697de5a28srs 24e7b4ff9317fc4e551cf974684eaa88697de5a28srs// Full data in tweaked MBR format 2564cbd171067eb34054741bfcd73f0b91d727a371srsclass MBRData : public BasicMBRData { 26e7b4ff9317fc4e551cf974684eaa88697de5a28srsprotected: 27e7b4ff9317fc4e551cf974684eaa88697de5a28srspublic: 2864cbd171067eb34054741bfcd73f0b91d727a371srs MBRData(void) {} 2964cbd171067eb34054741bfcd73f0b91d727a371srs MBRData(string deviceFilename) : BasicMBRData(deviceFilename) {} 30bf8950cad0285ee6ab8a896e8d0a30c5fb62c7afsrs MBRData & operator=(const BasicMBRData & orig); 31978041ca613dcb881763b36cf53639d924e52a56srs 32978041ca613dcb881763b36cf53639d924e52a56srs // Functions to create, delete, or change partitions 33978041ca613dcb881763b36cf53639d924e52a56srs // Pass EmptyMBR 1 to clear the boot loader code, 0 to leave it intact 34978041ca613dcb881763b36cf53639d924e52a56srs void MakeProtectiveMBR(int clearBoot = 0); 35e4ac11ebee0ad586a538f49b9c0e32ad19cae665srs void OptimizeEESize(void); 3664cbd171067eb34054741bfcd73f0b91d727a371srs int DeleteByLocation(uint64_t start64, uint64_t length64); 37e7b4ff9317fc4e551cf974684eaa88697de5a28srs 38e7b4ff9317fc4e551cf974684eaa88697de5a28srs // Functions to extract data on specific partitions.... 39221e08768de7fe42ba533ca22baf671420569c07srs GPTPart AsGPT(int i); 40e7b4ff9317fc4e551cf974684eaa88697de5a28srs}; // struct MBRData 41e7b4ff9317fc4e551cf974684eaa88697de5a28srs 42e7b4ff9317fc4e551cf974684eaa88697de5a28srs#endif 43