[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]


   NAME
	TD_FORMAT/ETD_FORMAT -- format a track on a disk.

   FUNCTION
	These commands are used to write data to a track that either
	has not yet been formatted or has had a hard error on a standard write
	command. TD_FORMAT completely ignores all data currently on a track and
	does not check for disk change before performing the command. The
	io_Data field must point to at least one track worth of data. The
	io_Offset field must be track aligned, and the io_Length field must be
	in units of track length (that is, NUMSEC*TD_SECTOR).

	The device will format the requested tracks, filling each sector with
	the contents of the buffer pointed to by io_Data. You
	should do a read pass to verify the data.

	If you have a hard write error during a normal write, you may find it
	possible to use the TD_FORMAT command to reformat the track as part of
	your error recovery process. ETD_FORMAT will write the sector label
	area if iotd_SecLabel is non-NULL.

   IO REQUEST INPUT
	io_Device	preset by the call to OpenDevice()
	io_Unit		preset by the call to OpenDevice()
	io_Command	TD_FORMAT or ETD_FORMAT
	io_Flags	0 or IOF_QUICK
	io_Data		points to a buffer containing the data to write to the
			track, must be at least as large as io_Length.
	io_Length	number of bytes to format, must be a multiple of
			(TD_SECTORS * NUMSEC).
	io_Offset	byte offset from the start of the disk for the track to
			format, must be a multiple of (TD_SECTORS * NUMSEC).
	iotd_Count	(ETD_FORMAT only) maximum allowable change counter
			value.
	iotd_SecLabel	(ETD_FORMAT only) NULL or sector label buffer pointer.
			If provided, the buffer must be a multiple of
			(TD_LABELSIZE * NUMSEC).

   IO REQUEST RESULT
	io_Error - 0 for success, or an error code as defined in
	           <devices/trackdisk.h>

   NOTES
	Under versions of Kickstart earlier than V36, the io_Data had to
	point to a buffer in chip memory. This restriction is no longer
	present as of Kickstart V36 and beyond.

   SEE ALSO
	CMD_WRITE, TD_RAWWRITE