#ifndef __DISKARBITRATION_H
#define __DISKARBITRATION_H
#include <DiskArbitration/DiskArbitrationPublicAPI.h>
#include <DiskArbitration/DiskArbitrationTypes.h>
#include <mach/mach.h>
#if __cplusplus
extern "C" {
#endif
typedef int (*DiskArbCallback_DiskAppearedWithMountpoint_t) (
DiskArbDiskIdentifier diskIdentifier,
unsigned flags,
DiskArbMountpoint mountpoint);
void DiskArbRegisterCallback_DiskAppearedWithMountpoint(DiskArbCallback_DiskAppearedWithMountpoint_t callback);
typedef int (*DiskArbCallback_DiskAppearedWithoutMountpoint_t) (
DiskArbDiskIdentifier diskIdentifier,
unsigned flags);
void DiskArbRegisterCallback_DiskAppearedWithoutMountpoint(DiskArbCallback_DiskAppearedWithoutMountpoint_t callback);
typedef int (*DiskArbCallback_DiskAppeared_t) (
DiskArbDiskIdentifier diskIdentifier,
unsigned flags,
DiskArbMountpoint mountpoint,
DiskArbIOContent ioContent);
void DiskArbRegisterCallback_DiskAppeared(DiskArbCallback_DiskAppeared_t callback);
void DiskArbRegisterCallback_DiskAppeared2(DiskArbCallback_DiskAppeared2_t callback);
typedef int (*DiskArbCallback_UnmountNotification_t) (
DiskArbDiskIdentifier diskIdentifier,
int pastOrFuture,
int willEject);
void DiskArbRegisterCallback_UnmountNotification(DiskArbCallback_UnmountNotification_t callback);
void DiskArbRegisterCallback_UnmountPreNotification(DiskArbCallback_UnmountPreNotification_t callback);
void DiskArbRegisterCallback_UnmountPostNotification(DiskArbCallback_UnmountPostNotification_t callback);
void DiskArbRegisterCallback_EjectPreNotification(DiskArbCallback_EjectPreNotification_t callback);
void DiskArbRegisterCallback_EjectPostNotification(DiskArbCallback_EjectPostNotification_t callback);
void DiskArbRegisterCallback_ClientDisconnectedNotification(DiskArbCallback_ClientDisconnectedNotification_t callback);
typedef void (*DiskArbCallback_BlueBoxBootVolumeUpdated_t) (
int seqno);
void DiskArbRegisterCallback_BlueBoxBootVolumeUpdated(DiskArbCallback_BlueBoxBootVolumeUpdated_t callback);
void DiskArbRegisterCallback_DiskChangedNotification(DiskArbCallback_DiskChangedNotification_t callback);
void DiskArbRegisterCallback_DiskWillBeCheckedNotification(DiskArbCallback_DiskWillBeCheckedNotification_t callback);
void DiskArbRegisterCallback_CallFailedNotification(DiskArbCallback_CallFailedNotification_t callback);
void DiskArbRegisterCallback_CallSucceededNotification(DiskArbCallback_CallSucceededNotification_t callback);
void DiskArbRegisterCallback_NotificationComplete(DiskArbCallback_NotificationComplete_t callback);
typedef void (*DiskArbCallback_UnknownFileSystemNotification_t) (DiskArbDiskIdentifier diskIdentifier,
char *fsType,
char *deviceType,
int isWritable,
int isRemovable,
int isWhole);
void DiskArbRegisterCallback_UnknownFileSystemNotification(DiskArbCallback_UnknownFileSystemNotification_t callback);
boolean_t DiskArbHandleMsg(
mach_msg_header_t * InHeadP,
mach_msg_header_t * OutHeadP);
kern_return_t DiskArbRegister(
mach_port_t server,
mach_port_t client,
unsigned flags);
kern_return_t DiskArbRegisterWithPID(
mach_port_t server,
mach_port_t client,
unsigned flags);
kern_return_t DiskArbDeregister(
mach_port_t server,
mach_port_t client);
kern_return_t DiskArbDiskAppearedWithMountpointPing(
mach_port_t server,
DiskArbDiskIdentifier diskIdentifier,
unsigned flags,
DiskArbMountpoint mountpoint);
kern_return_t DiskArbDiskDisappearedPing(
mach_port_t server,
DiskArbDiskIdentifier diskIdentifier,
unsigned flags);
kern_return_t DiskArbRequestMount(
mach_port_t server,
DiskArbDiskIdentifier diskIdentifier);
kern_return_t DiskArbRequestMountAndOwn(
mach_port_t server,
DiskArbDiskIdentifier diskIdentifier);
kern_return_t DiskArbRefresh(
mach_port_t server);
kern_return_t DiskArbRegister_auto(
mach_port_t client,
unsigned flags);
kern_return_t DiskArbDeregister_auto(
mach_port_t client);
kern_return_t DiskArbRegisterWithPID_auto(
mach_port_t client,
unsigned flags);
kern_return_t DiskArbUpdateClientWithPID_auto(
unsigned flags);
kern_return_t DiskArbDeregisterWithPID_auto(
mach_port_t client);
kern_return_t DiskArbMarkPIDNew_auto(
mach_port_t client,
unsigned flags);
kern_return_t DiskArbDiskAppearedWithMountpointPing_auto(
DiskArbDiskIdentifier diskIdentifier,
unsigned flags,
DiskArbMountpoint mountpoint);
kern_return_t DiskArbDiskDisappearedPing_auto(
DiskArbDiskIdentifier diskIdentifier,
unsigned flags);
kern_return_t DiskArbRequestMount_auto(
DiskArbDiskIdentifier diskIdentifier);
kern_return_t DiskArbRequestMountAndOwn_auto(
DiskArbDiskIdentifier diskIdentifier);
kern_return_t DiskArbRefresh_auto();
kern_return_t DiskArbStart(mach_port_t * portPtr);
kern_return_t DiskArbInit(void);
kern_return_t DiskArbUnmountRequest_async_auto(
DiskArbDiskIdentifier diskIdentifier,
unsigned flags);
kern_return_t DiskArbUnmountPreNotifyAck_async_auto(
DiskArbDiskIdentifier diskIdentifier,
int errorCode);
kern_return_t DiskArbEjectRequest_async_auto(
DiskArbDiskIdentifier diskIdentifier,
unsigned flags);
kern_return_t DiskArbEjectPreNotifyAck_async_auto(
DiskArbDiskIdentifier diskIdentifier,
int errorCode);
kern_return_t DiskArbUnmountAndEjectRequest_async_auto(
DiskArbDiskIdentifier diskIdentifier,
unsigned flags);
kern_return_t DiskArbMsgLoop(void);
kern_return_t DiskArbMsgLoopWithTimeout(mach_msg_timeout_t timeout);
kern_return_t DiskArbSetBlueBoxBootVolume_async_auto(
int pid,
int seqno);
kern_return_t DiskArbRequestDiskChange_auto(
DiskArbDiskIdentifier diskIdentifier,
DiskArbGenericString mountPoint,
int flags);
kern_return_t DiskArbSetCurrentUser_auto(int user);
kern_return_t DiskArbVSDBAdoptVolume_auto(DiskArbDiskIdentifier diskIdentifier);
kern_return_t DiskArbVSDBDisownVolume_auto(DiskArbDiskIdentifier diskIdentifier);
int DiskArbVSDBGetVolumeStatus_auto(DiskArbDiskIdentifier diskIdentifier);
kern_return_t DiskArbSetVolumeEncoding_auto(DiskArbDiskIdentifier diskIdentifier, int VolumeEncoding);
int DiskArbGetVolumeEncoding_auto(DiskArbDiskIdentifier diskIdentifier);
void DiskArbNoOp();
kern_return_t DiskArbClientHandlesUninitializedDisks_auto(
int flag);
void SetSecure(void);
#if __cplusplus
}
#endif
#endif