#ifndef __DISKARBITRATION_H
#define __DISKARBITRATION_H
#include <DiskArbitration/DiskArbitrationTypes.h>
#include <mach/mach.h>
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 );
typedef int ( * DiskArbCallback_DiskAppeared2_t )(
DiskArbDiskIdentifier diskIdentifier,
unsigned flags,
DiskArbMountpoint mountpoint,
DiskArbIOContent ioContent,
DiskArbDeviceTreePath deviceTreePath,
unsigned sequenceNumber );
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 );
typedef void ( * DiskArbCallback_UnmountPreNotification_t )(
DiskArbDiskIdentifier diskIdentifier,
unsigned flags );
void DiskArbRegisterCallback_UnmountPreNotification( DiskArbCallback_UnmountPreNotification_t callback );
typedef void ( * DiskArbCallback_UnmountPostNotification_t )(
DiskArbDiskIdentifier diskIdentifier,
int errorCode,
pid_t dissenter );
void DiskArbRegisterCallback_UnmountPostNotification( DiskArbCallback_UnmountPostNotification_t callback );
typedef void ( * DiskArbCallback_EjectPreNotification_t )(
DiskArbDiskIdentifier diskIdentifier,
unsigned flags );
void DiskArbRegisterCallback_EjectPreNotification( DiskArbCallback_EjectPreNotification_t callback );
typedef void ( * DiskArbCallback_EjectPostNotification_t )(
DiskArbDiskIdentifier diskIdentifier,
int errorCode,
pid_t dissenter );
void DiskArbRegisterCallback_EjectPostNotification( DiskArbCallback_EjectPostNotification_t callback );
typedef void ( * DiskArbCallback_ClientDisconnectedNotification_t )();
void DiskArbRegisterCallback_ClientDisconnectedNotification( DiskArbCallback_ClientDisconnectedNotification_t callback );
typedef void ( * DiskArbCallback_BlueBoxBootVolumeUpdated_t )(
int seqno );
void DiskArbRegisterCallback_BlueBoxBootVolumeUpdated( DiskArbCallback_BlueBoxBootVolumeUpdated_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 );
typedef void ( * DiskArbCallback_DiskChangedNotification_t )( DiskArbDiskIdentifier diskIdentifier,
char *newMountPoint,
char *newVolumeName,
int flags, int successFlags);
void DiskArbRegisterCallback_DiskChangedNotification( DiskArbCallback_DiskChangedNotification_t callback );
typedef void ( * DiskArbCallback_NotificationComplete_t )(int messageType);
void DiskArbRegisterCallback_NotificationComplete( DiskArbCallback_NotificationComplete_t callback );
typedef void ( * DiskArbCallback_Printer_FinalRequest_t )(int pid, int locationID);
void DiskArbRegisterCallback_Printer_FinalRequest( DiskArbCallback_Printer_FinalRequest_t callback );
typedef void ( * DiskArbCallback_Printer_FinalResponse_t )(int locationID, int answer);
void DiskArbRegisterCallback_Printer_FinalResponse( DiskArbCallback_Printer_FinalResponse_t callback );
typedef void ( * DiskArbCallback_Printer_FinalRelease_t )(int locationID);
void DiskArbRegisterCallback_Printer_FinalRelease( DiskArbCallback_Printer_FinalRelease_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 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);
kern_return_t DiskArbPrinter_Request_auto (
int locationID);
kern_return_t DiskArbPrinter_Response_auto (
int pid,
int locationID,
int answer);
kern_return_t DiskArbPrinter_Release_auto (
int locationID);
#endif