1*232c150aSwdenk /* 2*232c150aSwdenk * (C) Copyright 2003 3*232c150aSwdenk * Gerry Hamel, geh@ti.com, Texas Instruments 4*232c150aSwdenk * 5*232c150aSwdenk * This program is free software; you can redistribute it and/or modify 6*232c150aSwdenk * it under the terms of the GNU General Public License as published by 7*232c150aSwdenk * the Free Software Foundation; either version 2 of the License, or 8*232c150aSwdenk * (at your option) any later version. 9*232c150aSwdenk * 10*232c150aSwdenk * This program is distributed in the hope that it will be useful, 11*232c150aSwdenk * but WITHOUT ANY WARRANTY; without even the implied warranty of 12*232c150aSwdenk * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13*232c150aSwdenk * GNU General Public License for more details. 14*232c150aSwdenk * 15*232c150aSwdenk * You should have received a copy of the GNU General Public License 16*232c150aSwdenk * along with this program; if not, write to the Free Software 17*232c150aSwdenk * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18*232c150aSwdenk * 19*232c150aSwdenk */ 20*232c150aSwdenk 21*232c150aSwdenk #ifndef __CIRCBUF_H__ 22*232c150aSwdenk #define __CIRCBUF_H__ 23*232c150aSwdenk 24*232c150aSwdenk typedef struct circbuf { 25*232c150aSwdenk unsigned int size; /* current number of bytes held */ 26*232c150aSwdenk unsigned int totalsize; /* number of bytes allocated */ 27*232c150aSwdenk 28*232c150aSwdenk char *top; /* pointer to current buffer start */ 29*232c150aSwdenk char *tail; /* pointer to space for next element */ 30*232c150aSwdenk 31*232c150aSwdenk char *data; /* all data */ 32*232c150aSwdenk char *end; /* end of data buffer */ 33*232c150aSwdenk } circbuf_t; 34*232c150aSwdenk 35*232c150aSwdenk int buf_init (circbuf_t * buf, unsigned int size); 36*232c150aSwdenk int buf_free (circbuf_t * buf); 37*232c150aSwdenk int buf_pop (circbuf_t * buf, char *dest, unsigned int len); 38*232c150aSwdenk int buf_push (circbuf_t * buf, const char *src, unsigned int len); 39*232c150aSwdenk 40*232c150aSwdenk #endif 41