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

The trackdisk device lets you add a software interrupt handler that will
be Cause()'ed when a disk insert or remove occurs.   Within the handler,
you may only call the status commands that can use IOF_QUICK.

You add a software interrupt handler by passing an IOExtTD to the device
with a pointer to an Interrupt structure set in io_Data, the length of the
structure set in io_Length and TD_ADDCHANGEINT set in io_Command.

   DiskIO->iotd_Req.io_Length = sizeof(struct Interrupt)
   DiskIO->iotd_Req.io_Data   = (APTR)Disk_Interrupt;
   DiskIO->iotd_Req.io_Command = TD_ADDCHANGEINT;
   SendIO((struct IORequest *)DiskIO);

   Going, going, gone.
   -------------------
   This command does not return when executed. It holds onto the
   IORequest until the TD_REMCHANGEINT command is executed with that
   same IORequest.  Hence, you must use SendIO() with this command.