rem: KPrintF("IO Request 0x%08lx is finished\n",ioreq);
context: static void RemPlayers( struct List *list, struct AHIDevUnit *iounit,    struct AHIBase *AHIBase){  struct AHIRequest *ioreq, *node;  KPrintF("RemPlayers()\n");  node = (struct AHIRequest *) list->lh_Head;  while(node->ahir_Std.io_Message.mn_Node.ln_Succ)  {    KPrintF("Processing node 0x%08lx\n", node);    ioreq = node;    node = (struct AHIRequest *) node->ahir_Std.io_Message.mn_Node.ln_Succ;    if(ioreq->ahir_Std.io_Command == AHICMD_WRITTEN)    {      Remove((struct Node *) ioreq);      if(ioreq->ahir_Link)      {        KPrintF("Moving linked child to the list on channel %ld\n", ioreq->ahir_Channel);        // Move the attached one to the list        Remove((struct Node *) ioreq->ahir_Link);        ioreq->ahir_Link->ahir_Channel = ioreq->ahir_Channel;        Enqueue(list, (struct Node *) ioreq->ahir_Link);        // We have to go through the whole procedure again, in case        // the child is finished, too.        node = (struct AHIRequest *) list->lh_Head;      }      KPrintF("IO Request 0x%08lx is finished\n",ioreq);      ioreq->ahir_Std.io_Error = AHIE_OK;      ioreq->ahir_Std.io_Command = CMD_WRITE;      ioreq->ahir_Std.io_Actual = ioreq->ahir_Std.io_Length                                * AHI_SampleFrameSize(ioreq->ahir_Type);      TermIO(ioreq, AHIBase);    }  }}