home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pp / pp-6.0 / Lib / qmgr / consblk.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-18  |  1.1 KB  |  60 lines

  1. /* consblk.c: ROS calling routines */
  2.  
  3. # ifndef lint
  4. static char Rcsid[] = "@(#)$Header: /xtel/pp/pp-beta/Lib/qmgr/RCS/consblk.c,v 6.0 1991/12/18 20:23:58 jpo Rel $";
  5. # endif
  6.  
  7. /*
  8.  * $Header: /xtel/pp/pp-beta/Lib/qmgr/RCS/consblk.c,v 6.0 1991/12/18 20:23:58 jpo Rel $
  9.  *
  10.  * $Log: consblk.c,v $
  11.  * Revision 6.0  1991/12/18  20:23:58  jpo
  12.  * Release 6.0
  13.  *
  14.  */
  15.  
  16. #include "util.h"
  17. #include "consblk.h"
  18.  
  19. static struct cons_opblk Heads, *Head;
  20. static int first_time_only;
  21.  
  22. struct cons_opblk *newcopblk (fd, id, fnx)
  23. int fd, id;
  24. IFP    fnx;
  25. {
  26.     struct cons_opblk *op;
  27.  
  28.     if (first_time_only == 0) {
  29.         first_time_only = 1;
  30.         Head = &Heads;
  31.         Head -> next = Head -> prev = Head;
  32.     }
  33.  
  34.     op = (struct cons_opblk *) smalloc (sizeof *op);
  35.     op -> fd = fd;
  36.     op -> id = id;
  37.     op -> fnx = fnx;
  38.     insque (op, Head -> prev);
  39.     return op;
  40. }
  41.  
  42. struct cons_opblk *find_copblk (fd, id)
  43. int fd, id;
  44. {
  45.     struct cons_opblk *op;
  46.  
  47.     for (op = Head -> next; op != Head; op = op -> next) {
  48.         if (op -> fd == fd && op -> id == id)
  49.             return op;
  50.     }
  51.     return NULL;
  52. }
  53.  
  54. void free_copblk (op)
  55. struct cons_opblk *op;
  56. {
  57.     remque (op);
  58.     free ((char *)op);
  59. }
  60.