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