/*********************************************************************** * * Support Function -- Extended IO Request plus DosPacket * ***********************************************************************/ #include "handler.h" struct IOExtPacket *CreateExtPkt(ioReplyPort,size) struct MsgPort *ioReplyPort; LONG size; { struct IOExtPacket *ioExtPkt; if (ioReplyPort == 0) return ((struct IODosPkt *) 0); ioExtPkt = (struct IOExtPacket *)AllocMem (size, MEMF_CLEAR | MEMF_PUBLIC); if (ioExtPkt == 0) return ((struct IOExtPacket *) 0); ioExtPkt -> io_req.io_Message.mn_Node.ln_Type = NT_MESSAGE; ioExtPkt -> io_req.io_Message.mn_Node.ln_Pri = 0; ioExtPkt -> io_req.io_Message.mn_ReplyPort = ioReplyPort; ioExtPkt -> io_req.io_Message.mn_Node.ln_Name = (char *)&(ioExtPkt -> io_pkt); ioExtPkt -> io_pkt.dp_Link = &(ioExtPkt ->io_req.io_Message); ioExtPkt -> io_pkt.dp_Port = ioReplyPort; return (ioExtPkt); } void DeleteExtPkt(ioExtPkt,size) struct IOExtPacket *ioExtPkt; LONG size; { ioExtPkt -> io_req.io_Message.mn_Node.ln_Type = 0xff; ioExtPkt -> io_req.io_Device = (struct Device *) -1; ioExtPkt -> io_req.io_Unit = (struct Unit *) -1; FreeMem ((char *)ioExtPkt, size); }