home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_disks / 200-299 / ff294.lzh / DNet / amiga / lib / dgetioctl.c < prev    next >
C/C++ Source or Header  |  1989-12-11  |  682b  |  35 lines

  1.  
  2. /*
  3.  *  DGetIoctl.C
  4.  */
  5.  
  6. #include "lib.h"
  7.  
  8. short
  9. DGetIoctl(_chan, pval, paux)
  10. void *_chan;
  11. short *pval;
  12. char *paux;
  13. {
  14.     CHANN *chan = (CHANN *)_chan;
  15.     IOSTD *ior;
  16.     short cmd = -1;
  17.  
  18.     if ((ior = (IOSTD *)GetHead(&chan->rdylist)) || (ior = (IOSTD *)GetHead(&chan->port.mp_MsgList))) {
  19.     if (ior->io_Command == DNCMD_IOCTL) {
  20.         CIOCTL *cio = (CIOCTL *)ior->io_Data;
  21.         cmd = cio->cmd;
  22.         *pval = (cio->valh << 8) | cio->vall;
  23.         *paux = cio->valaux;
  24.         Forbid();
  25.         Remove((NODE *)ior);
  26.         ReplyMsg((MSG *)ior);
  27.         Permit();
  28.     }
  29.     }
  30.     FixSignal(chan);
  31.     if (chan->eof)
  32.     SetSignal(1 << chan->port.mp_SigBit, 1 << chan->port.mp_SigBit);
  33.     return(cmd);
  34. }
  35.