IOHibernateInternal.h [plain text]
#include <stdint.h>
#ifdef __cplusplus
enum { kIOHibernateAESKeySize = 128 };
struct IOHibernateVars {
hibernate_page_list_t * page_list;
hibernate_page_list_t * page_list_wired;
hibernate_page_list_t * page_list_pal;
class IOBufferMemoryDescriptor * ioBuffer;
class IOBufferMemoryDescriptor * srcBuffer;
class IOBufferMemoryDescriptor * handoffBuffer;
class IOMemoryDescriptor * previewBuffer;
OSData * previewData;
OSObject * saveBootDevice;
struct IOPolledFileIOVars * fileVars;
uint64_t fileMinSize;
uint64_t fileMaxSize;
vm_offset_t videoMapping;
vm_size_t videoAllocSize;
vm_size_t videoMapSize;
uint8_t * consoleMapping;
uint8_t haveFastBoot;
uint8_t saveBootAudioVolume;
uint8_t hwEncrypt;
uint8_t wiredCryptKey[kIOHibernateAESKeySize / 8];
uint8_t cryptKey[kIOHibernateAESKeySize / 8];
size_t volumeCryptKeySize;
uint8_t volumeCryptKey[64];
};
typedef struct IOHibernateVars IOHibernateVars;
#endif
enum{
kIOHibernateTagSignature = 0x53000000,
kIOHibernateTagLength = 0x00001fff,
};
#ifdef __cplusplus
extern "C"
#endif
uint32_t
hibernate_sum_page(uint8_t *buf, uint32_t ppnum);
extern vm_offset_t segHIBB;
extern unsigned long segSizeHIB;
extern vm_offset_t segDATAB;
extern unsigned long segSizeDATA;
extern ppnum_t gIOHibernateHandoffPages[];
extern uint32_t gIOHibernateHandoffPageCount;