subsystem ServerToClient 0; #include import "DiskArbitrationTypes.h"; /* -- TYPES */ /* Beware: these definitions must be kept synchronized with DiskArbitrationTypes.h */ type DiskArbDiskIdentifier = c_string[*:1024]; type DiskArbMountpoint = c_string[*:1024]; type DiskArbIOContent = c_string[*:1024]; type DiskArbDeviceTreePath = c_string[*:1024]; type DiskArbGenericString = c_string[*:1024]; type double = struct[2] of integer_t; /* -- Messages sent by the DiskArbitration Server to the Client */ /* Should be obsoleted */ simpleroutine DiskArbDiskAppearedWithoutMountpoint_rpc( dest: mach_port_t; in diskIdentifier: DiskArbDiskIdentifier; in flags: unsigned); /* Will remain */ simpleroutine DiskArbDiskAppearedWithMountpoint_rpc( dest: mach_port_t; in diskIdentifier: DiskArbDiskIdentifier; in flags: unsigned; in mountpoint: DiskArbMountpoint); /* Will remain */ simpleroutine DiskArbDiskAppeared_rpc( dest: mach_port_t; in diskIdentifier: DiskArbDiskIdentifier; in flags: unsigned; in mountpoint: DiskArbMountpoint; in ioContent: DiskArbIOContent); simpleroutine DiskArbDiskAppeared2_rpc( dest: mach_port_t; in diskIdentifier: DiskArbDiskIdentifier; in flags: unsigned; in mountpoint: DiskArbMountpoint; in ioContent: DiskArbIOContent; in deviceTreePath: DiskArbDeviceTreePath; in sequenceNumber: unsigned); simpleroutine DiskArbDiskAppearedComplete_rpc( dest: mach_port_t; in diskIdentifier: DiskArbDiskIdentifier; in flags: unsigned; in mountpoint: DiskArbMountpoint; in ioContent: DiskArbIOContent; in deviceTreePath: DiskArbDeviceTreePath; in sequenceNumber: unsigned; in timeAppeared: double; in fsType: DiskArbGenericString; in fsName: DiskArbGenericString); /* -- Async unmount + eject */ simpleroutine DiskArbUnmountPreNotify_async_rpc( dest: mach_port_t; in diskIdentifier: DiskArbDiskIdentifier; in flags: unsigned); /* ejected? forced? */ simpleroutine DiskArbUnmountPostNotify_async_rpc( dest: mach_port_t; in diskIdentifier: DiskArbDiskIdentifier; in errorCode: int; /* did it succeed? was it ejected? */ in dissenter: int); /* the pid of the process that said no */ simpleroutine DiskArbEjectPreNotify_async_rpc( dest: mach_port_t; in diskIdentifier: DiskArbDiskIdentifier; in flags: unsigned); /* ejected? forced? */ simpleroutine DiskArbEjectPostNotify_async_rpc( dest: mach_port_t; in diskIdentifier: DiskArbDiskIdentifier; in errorCode: int; /* did it succeed? was it ejected? */ in dissenter: int); /* the pid of the process that said no */ /* -- Client Disconnected */ simpleroutine DiskArbClientDisconnected_rpc(dest: mach_port_t); /* -- Blue Box boot volume */ /* Sends -1 if the seqno has not been set. */ simpleroutine DiskArbBlueBoxBootVolumeUpdated_async_rpc( dest: mach_port_t; in seqno: int); /* -- Disk Information Changed */ simpleroutine DiskArbDiskChanged_rpc( dest: mach_port_t; in diskIdentifier: DiskArbDiskIdentifier; in newMountpoint: DiskArbMountpoint; in newVolumeName: DiskArbMountpoint; in flags: unsigned; in success: int); simpleroutine DiskArbPreviousCallFailed_rpc( dest: mach_port_t; in diskIdentifier: DiskArbDiskIdentifier; in failedCallType: int; in err: int); simpleroutine DiskArbPreviousCallSucceeded_rpc( dest: mach_port_t; in diskIdentifier: DiskArbDiskIdentifier; in succeededCallType: int); simpleroutine DiskArbDiskWillBeChecked_rpc( dest: mach_port_t; in diskIdentifier: DiskArbDiskIdentifier; in flags: unsigned; in ioContent: DiskArbIOContent); /* -- "That's all for now" message -- Sent out when adm has completed send any of the async calls or appeared calls -- "for now" */ simpleroutine DiskArbNotificationComplete_rpc( dest: mach_port_t; in notificationType: int); /* -- Registration complete message */ simpleroutine DiskArbRegistrationComplete_rpc( dest: mach_port_t); /* -- Image/Device Arbitration -- */ simpleroutine DiskArbWillClientRelinquish_rpc ( dest: mach_port_t; in diskIdentifier: DiskArbDiskIdentifier; in toClientPid: int); simpleroutine DiskArbDeviceReservationStatus_rpc ( dest: mach_port_t; in diskIdentifier: DiskArbDiskIdentifier; in status: int; in pid: int); /* -- Uninitialized Disk/Unrecognized Disk Arbitration -- */ simpleroutine DiskArbWillClientHandleUnrecognizedDisk_rpc ( dest: mach_port_t; in diskIdentifier: DiskArbDiskIdentifier; in diskType: int; in fsType: DiskArbGenericString; in deviceType: DiskArbGenericString; in isWritable: int; in isRemovable: int; in isWhole: int); /* -- Recognized Disk Notifications (should the disk mount at all?) -- */ simpleroutine DiskArbDiskApprovalPre_rpc ( dest: mach_port_t; in diskIdentifier: DiskArbDiskIdentifier; in volName: DiskArbMountpoint; in ioContent: DiskArbGenericString; in deviceTreePath: DiskArbGenericString; in flags: unsigned; in isWritable: int; in isRemovable: int; in isWhole: int; in fsType: DiskArbGenericString); /* 0 for no, 1 for yes, 2 for yes, but needs authentication */ /* -- Unknown filesystem inserted ... */ simpleroutine DiskArbUnknownFileSystemInserted_rpc( dest: mach_port_t; in diskIdentifier: DiskArbDiskIdentifier; in fsType: DiskArbGenericString; in deviceType: DiskArbGenericString; in isWritable: int; in isRemovable: int; in isWhole: int);