home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_disks / 200-299 / ff236.lzh / DiskHandler / support.c < prev    next >
C/C++ Source or Header  |  1989-08-09  |  1KB  |  46 lines

  1. /***********************************************************************
  2. *
  3. *    Support Function -- Extended IO Request plus DosPacket
  4. *
  5. ***********************************************************************/
  6.  
  7. #include "handler.h"
  8.  
  9. struct IOExtPacket *CreateExtPkt(ioReplyPort,size)
  10.     struct MsgPort *ioReplyPort;
  11.     LONG size;
  12. {
  13.     struct IOExtPacket  *ioExtPkt;
  14.  
  15.     if (ioReplyPort == 0)
  16.     return ((struct IODosPkt   *) 0);
  17.  
  18.     ioExtPkt = (struct IOExtPacket *)AllocMem (size, MEMF_CLEAR | MEMF_PUBLIC);
  19.  
  20.     if (ioExtPkt == 0)
  21.     return ((struct IOExtPacket   *) 0);
  22.  
  23.     ioExtPkt -> io_req.io_Message.mn_Node.ln_Type = NT_MESSAGE;
  24.     ioExtPkt -> io_req.io_Message.mn_Node.ln_Pri = 0;
  25.     ioExtPkt -> io_req.io_Message.mn_ReplyPort = ioReplyPort;
  26.     ioExtPkt -> io_req.io_Message.mn_Node.ln_Name =
  27.               (char *)&(ioExtPkt -> io_pkt);
  28.   
  29.     ioExtPkt -> io_pkt.dp_Link = &(ioExtPkt ->io_req.io_Message);  
  30.     ioExtPkt -> io_pkt.dp_Port = ioReplyPort;
  31.  
  32.     return (ioExtPkt);
  33. }
  34.  
  35. void DeleteExtPkt(ioExtPkt,size)
  36.     struct IOExtPacket  *ioExtPkt;
  37.     LONG size;
  38. {
  39.     ioExtPkt -> io_req.io_Message.mn_Node.ln_Type = 0xff;
  40.     ioExtPkt -> io_req.io_Device = (struct Device *) -1;
  41.     ioExtPkt -> io_req.io_Unit = (struct Unit *) -1;
  42.  
  43.     FreeMem ((char *)ioExtPkt, size);
  44. }
  45.  
  46.