#include "enums.h"
#include "structs.h"
#include <stdbool.h>
#include <sys/cdefs.h>
int modeInfo(BLContextPtr context, struct clarg actargs[klast]);
int modeDevice(BLContextPtr context, struct clarg actargs[klast]);
int modeFolder(BLContextPtr context, struct clarg actargs[klast]);
int modeFirmware(BLContextPtr context, struct clarg actargs[klast]);
int modeNetboot(BLContextPtr context, struct clarg actargs[klast]);
int modeUnbless(BLContextPtr context, struct clarg actargs[klast]);
int blesslog(void *context, int loglevel, const char *string);
int blesscontextprintf(BLContextPtr context, int loglevel, char const *fmt, ...) __printflike(3, 4);
void usage(void);
void usage_short(void);
void addPayload(const char *path);
int CopyManifests(BLContextPtr context, const char *destPath, const char *srcPath, const char *srcSystemPath);
int PersonalizeOSVolume(BLContextPtr context, const char *volumePath, const char *prFile, bool suppressACPrompt);
extern int setboot(BLContextPtr context, char *device, CFDataRef bootxData,
CFDataRef labelData);
extern int setefilegacypath(BLContextPtr context, const char * path, int bootNext,
const char *legacyHint, const char *optionalData);
int BlessPrebootVolume(BLContextPtr context, const char *rootBSD, const char *bootEFISourceLocation,
CFDataRef labelData, CFDataRef labelData2, struct clarg actargs[klast]);
int GetVolumeUUIDs(BLContextPtr context, const char *volBSD, CFStringRef *volUUID, CFStringRef *groupUUID);
int GetMountForSnapshot(BLContextPtr context, const char *snapshotName, const char *bsd, char *mountPoint, int mountPointLen);
int WriteLabelFile(BLContextPtr context, const char *path, CFDataRef labeldata, int doTypeCreator, int scale);
int GetSnapshotNameFromRootHash(BLContextPtr context, const char *rootHashPath, char *snapName, int nameLen);
int DeleteFileOrDirectory(const char *path);