Disk Device Protocols
=====================

disk device job scheduled message

target:		Registered job update BMessengers
message:	B_DISK_DEVICE_JOB_SCHEDULED
			"job_id": B_INT32_TYPE
reply:      none (asynchronous message)

message fields:
- job_id: Unique job identifier

-----------------------------------------------------------------------

disk device job initiated message

target:		Registered job update BMessengers
message:	B_DISK_DEVICE_JOB_INITIATED
			"job_id": B_INT32_TYPE
reply:      none (asynchronous message)

message fields:
- job_id: Unique job identifier

-----------------------------------------------------------------------

disk device job canceled message

target:		Registered job update BMessengers
message:	B_DISK_DEVICE_JOB_CANCELED
			"job_id": B_INT32_TYPE
reply:      none (asynchronous message)

message fields:
- job_id: Unique job identifier

-----------------------------------------------------------------------

disk device job finished message

target:		Registered job update BMessengers
message:	B_DISK_DEVICE_JOB_FINISHED
			"job_id": B_INT32_TYPE
			"succeeded": B_BOOL_TYPE
			[ "info": B_STRING_TYPE ]
reply:      none (asynchronous message)

message fields:
- job_id: Unique job identifier
- info: Optional description of success or failure

notes:
A separate job finished message is needed, as rounding error in
the computation of job progress may result in multiple
B_DISK_DEVICE_JOB_UPDATE messages with "progress" fields of 100.

-----------------------------------------------------------------------

disk device job simple progress update message

target:		Registered job simple progress update BMessengers
message:	B_DISK_DEVICE_JOB_SIMPLE_PROGRESS
			"job_id": B_INT32_TYPE
			"progress": B_UINT8_TYPE
			"info": B_STRING_TYPE
reply:      none (asynchronous message)

message fields:
- job_id: Unique job identifier
- progress: Percent of job completed (0 to 100)
- info: Description of current action being taken, i.e.
        "allocating inodes", "writing superblock", etc.

-----------------------------------------------------------------------

disk device job extra progress update message

target:		Registered job extra progress update BMessengers
message:	B_DISK_DEVICE_JOB_EXTRA_PROGRESS
			"job_id": B_INT32_TYPE
			"info": B_STRING_TYPE
reply:      none (asynchronous message)

message fields:
- job_id: Unique job identifier
- info: Extended progress info string, i.e. "block 123: found
        invalid inode; fixing"

-----------------------------------------------------------------------