support.h revision e7b4ff9317fc4e551cf974684eaa88697de5a28
1e7b4ff9317fc4e551cf974684eaa88697de5a28srs#include <stdint.h> 2e7b4ff9317fc4e551cf974684eaa88697de5a28srs#include <unistd.h> 3e7b4ff9317fc4e551cf974684eaa88697de5a28srs#include <stdlib.h> 4e7b4ff9317fc4e551cf974684eaa88697de5a28srs 5e7b4ff9317fc4e551cf974684eaa88697de5a28srs#ifdef __APPLE__ 6e7b4ff9317fc4e551cf974684eaa88697de5a28srs// Darwin (Mac OS) only: disk IOCTLs are different, and there is no lseek64 7e7b4ff9317fc4e551cf974684eaa88697de5a28srs#include <sys/disk.h> 8e7b4ff9317fc4e551cf974684eaa88697de5a28srs#define lseek64 lseek 9e7b4ff9317fc4e551cf974684eaa88697de5a28srs#else 10e7b4ff9317fc4e551cf974684eaa88697de5a28srs 11e7b4ff9317fc4e551cf974684eaa88697de5a28srs// Linux only.... 12e7b4ff9317fc4e551cf974684eaa88697de5a28srs#include <linux/fs.h> 13e7b4ff9317fc4e551cf974684eaa88697de5a28srs#endif 14e7b4ff9317fc4e551cf974684eaa88697de5a28srs 15e7b4ff9317fc4e551cf974684eaa88697de5a28srs#include <string> 16e7b4ff9317fc4e551cf974684eaa88697de5a28srs 17e7b4ff9317fc4e551cf974684eaa88697de5a28srs#ifndef __GPTSUPPORT 18e7b4ff9317fc4e551cf974684eaa88697de5a28srs#define __GPTSUPPORT 19e7b4ff9317fc4e551cf974684eaa88697de5a28srs 20e7b4ff9317fc4e551cf974684eaa88697de5a28srs// Set this as a default 21e7b4ff9317fc4e551cf974684eaa88697de5a28srs#define SECTOR_SIZE UINT32_C(512) 22e7b4ff9317fc4e551cf974684eaa88697de5a28srs 23e7b4ff9317fc4e551cf974684eaa88697de5a28srsusing namespace std; 24e7b4ff9317fc4e551cf974684eaa88697de5a28srs 25e7b4ff9317fc4e551cf974684eaa88697de5a28srs// a GUID 26e7b4ff9317fc4e551cf974684eaa88697de5a28srsstruct GUIDData { 27e7b4ff9317fc4e551cf974684eaa88697de5a28srs uint64_t data1; 28e7b4ff9317fc4e551cf974684eaa88697de5a28srs uint64_t data2; 29e7b4ff9317fc4e551cf974684eaa88697de5a28srs}; // struct GUIDData 30e7b4ff9317fc4e551cf974684eaa88697de5a28srs 31e7b4ff9317fc4e551cf974684eaa88697de5a28srsint GetNumber(int low, int high, int def, const char prompt[]); 32e7b4ff9317fc4e551cf974684eaa88697de5a28srschar GetYN(void); 33e7b4ff9317fc4e551cf974684eaa88697de5a28srsuint64_t GetLastSector(uint64_t low, uint64_t high, char prompt[]); 34e7b4ff9317fc4e551cf974684eaa88697de5a28srschar* BytesToSI(uint64_t size, char theValue[]); 35e7b4ff9317fc4e551cf974684eaa88697de5a28srsint GetBlockSize(int fd); 36e7b4ff9317fc4e551cf974684eaa88697de5a28srschar* GUIDToStr(struct GUIDData theGUID, char* theString); 37e7b4ff9317fc4e551cf974684eaa88697de5a28srsGUIDData GetGUID(void); 38e7b4ff9317fc4e551cf974684eaa88697de5a28srsuint64_t PowerOf2(int value); 39e7b4ff9317fc4e551cf974684eaa88697de5a28srs 40e7b4ff9317fc4e551cf974684eaa88697de5a28srsuint64_t disksize(int fd, int* err); 41e7b4ff9317fc4e551cf974684eaa88697de5a28srs 42e7b4ff9317fc4e551cf974684eaa88697de5a28srs#endif 43