home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_progs / prog_oth / empthand.lha / misc.c < prev    next >
C/C++ Source or Header  |  1992-06-26  |  1KB  |  55 lines

  1. /*
  2.     MISC.c
  3.     ------
  4.     DOS-Packet-Routinen
  5.     grob angelehnt an eine ältere Routinensammlung
  6.     von Phillip Lindsay
  7.  
  8.     Diese Version von Oliver Wagner, © Amiga-DOS
  9.  
  10. */
  11.  
  12. #include <proto/exec.h>
  13. #include <proto/dos.h>
  14.  
  15. /* Packet zurückgeben, mit entsprechenden Returncodes */
  16.  
  17. void returnpacket(struct DosPacket *packet, struct Process *p, long res1, long res2)
  18. {
  19.     struct Message *msg;
  20.     struct MsgPort *replyport;
  21.  
  22.     /* Return-Codes setzen */
  23.     packet->dp_Res1=res1;
  24.     packet->dp_Res2=res2;
  25.     /* ReplyPort holen */
  26.     replyport=packet->dp_Port;
  27.     /* Zeiger auf die Exec-Message des Packets */
  28.     msg=packet->dp_Link;
  29.     /* Packet-Port zurücksetzen */
  30.     packet->dp_Port=&p->pr_MsgPort;
  31.     /* Message und Packet verbinden */
  32.     msg->mn_Node.ln_Name=(char *)packet;
  33.     msg->mn_Node.ln_Succ=NULL;
  34.     msg->mn_Node.ln_Pred=NULL;
  35.     /* und Message abschicken */
  36.     PutMsg(replyport,msg);
  37. }
  38.  
  39.  
  40. struct DosPacket *getpacket(struct Process *p)
  41. {
  42.     struct MsgPort *port;
  43.     struct Message *msg;
  44.  
  45.     /* Port unseres Process */
  46.     port = &p->pr_MsgPort;
  47.     /* Auf Nachricht warten */
  48.     WaitPort(port);
  49.     /* Nachricht abholen */
  50.     msg = GetMsg(port);
  51.     /* Packet extrahieren und zurückgeben */
  52.     return((struct DosPacket *)msg->mn_Node.ln_Name);
  53. }
  54.  
  55.