home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume25 / ethertop / buffer.c next >
Encoding:
C/C++ Source or Header  |  1991-12-12  |  1.4 KB  |  64 lines

  1. /*
  2.  * Copyright (c) 1991 Regents of the University of California.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms are permitted
  6.  * provided that the above copyright notice and this paragraph are
  7.  * duplicated in all such forms and that any documentation,
  8.  * advertising materials, and other materials related to such
  9.  * distribution and use acknowledge that the software was developed
  10.  * by the University of California, Irvine.  The name of the
  11.  * University may not be used to endorse or promote products derived
  12.  * from this software without specific prior written permission.
  13.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  14.  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  15.  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  16.  */
  17. #include "buffer.h"
  18. #include <stdio.h>
  19.  
  20. void add_buffer(buf, entry)
  21. buffer *buf;
  22. void *entry;
  23. {
  24.   buf->p[buf->end]=entry;
  25.   buf->end++;
  26.   if (buf->end == buf->len)
  27.     {
  28.       fprintf(stderr,"reallocing buffer\n");
  29.       buf->len+=BUFLEN;
  30.       buf->p=(void **)realloc(buf->p,buf->len);
  31.     }
  32. }
  33.  
  34. void clear_buffer(buf)
  35. buffer *buf;
  36. {
  37. buf->end=0;
  38. }
  39.  
  40. void free_buffer(buf)
  41. buffer *buf;
  42. {
  43. unsigned int i;
  44. for (i=0; i<buf->end; i++)
  45.     free(buf->p[i]);
  46. buf->end=0;
  47. }
  48.  
  49.  
  50. buffer *init_buffer()
  51. {
  52.   buffer *buf;
  53.   
  54.   buf= (buffer *) malloc (sizeof(buffer));
  55.   buf->p=(void **) malloc(BUFLEN*sizeof(void *));
  56.   buf->end=0;
  57.   buf->len=BUFLEN;
  58.   return (buf);
  59. }
  60.  
  61.  
  62.  
  63.  
  64.