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


   NAME
	DeviceTuple -- Decode a device tuple

   SYNOPSIS
	return=DeviceTuple( tuple_data, storage)
		   	    a0		a1

	ULONG DeviceTuple( UBYTE *, struct DeviceTData *);

   FUNCTION
	Extracts SIZE, TYPE, and SPEED from a device tuple (generally
	obtained with CopyTuple()).

   INPUTS
	tuple_data - Pointer to a CISTPL_DEVICE tuple (generally obtained
	with CopyTuple()).

	storage - Pointer to a DeviceTData structure in which results
	are to be stored.

	struct	DeviceTData {
		ULONG	dtd_DTsize;		/* Size of card (bytes)	*/
		ULONG	dtd_DTspeed;		/* Speed in nanoseconds	*/
		UBYTE	dtd_DTtype;		/* Type of card		*/
		UBYTE	dtd_DTflags;		/* Other flags		*/
	};


   RETURN
	SIZE (same as dtd_DTsize) if the Device Tuple could be decoded.
	FALSE (0) if the tuple is believed to be invalid.  The tuple is
	considered to be invalid if:

		The tuple link value is 0.

		The device type/speed byte is $00, or $FF.

		The device type is DTYPE_EXTEND, which is undefined
		as of this writing.

		The extended speed byte is a value which is
		undefined as of this writing.

		The extended speed byte is extended again which is
		undefined as of this writing.

		The device Size byte is $FF.

   NOTES
	Some cards may not have a size specified in the device
	tuple.  An example would be an I/O card.  The size would be
	returned as one (1) in this case.

	You should not call this function with a partial CISTPL_DEVICE
	tuple, or the return values may be junk.

   SEE ALSO
	CopyTuple(), resources/card.h, resources/card.i