www.pudn.com > streamrtp.rar > bufpool.h


/*-------------------------------------------------------------------------
 * buffpool.h
 *-------------------------------------------------------------------------
 */

#ifndef BUFPOOL_H
#define BUFPOOL_H

#include 
#include 

#define	BPMINB	2		/* Minimum buffer length	*/

struct	bufpool {		/* Description of a single pool	*/
  char *bp_base;		/* beginning of pool's memory	*/
  int	bp_size;		/* size of buffers in this pool	*/
  int	bp_total;		/* # buffers this pool		*/
  char	*bp_next;		/* pointer to next free buffer	*/
  sem_t	bp_sem;			/* semaphore that counts buffers*/
  pthread_mutex_t bp_mutex;
};

int bufpoolinit(struct bufpool *, int, int);
int *bufpoolgetbuf(struct bufpool *);
void bufpoolfreebuf(void *);
int bufpooldestroy(struct bufpool *);

#endif