/************************************************/
/*                                              */
/* File        : rockmfifo_private.h            */
/* Description : ROCKM FIFO specific library    */
/*               private part                   */
/*                                              */
/* Author: Sfiligoi Igor                        */
/*                                              */
/* Created      : 16.06.1997                    */
/* Last modified: 01.07.1997                    */
/*                                              */
/************************************************/

#ifndef ROCKMFIFO_PRIVATE_H
#define ROCKMFIFO_PRIVATE_H

#include "rockmfifo.h"

/*********************************************************************/
/**************         cache routines             *******************/
/*********************************************************************/

	/* return the number of elements held in the cache */
unsigned int rockm_fifo_cache_get_nrels(ROCKM_FIFO_id fifo_id);


int rockm_fifo_cache_read(ROCKM_FIFO_id fifo_id,	/* IN : fifo id */
			  unsigned int  nrels,   	/* IN : nr. of elements to read */
			  unsigned int  *data); 	/* OUT: data from the cache, must be allocated by caller */

int rockm_fifo_cache_return(ROCKM_FIFO_id  fifo_id,	/* IN : fifo_id */
			    unsigned int  *data, 	/* IN : data to be returned to the cache */
			    unsigned int   nrels);	/* IN : nr. of elements of data to return */


	/* fill the cache with at least nrels elements */
	/* works best if the cache is empty */
int rockm_fifo_fillcache(ROCKM_FIFO_id fifo_id,	/* IN : fifo id */
		         unsigned int  nrels);	/* IN : fill the cache at least with the nr elements */
						/*      if more than ROCKM_FIFO_FIFO_SIZE, truncated to ROCKM_FIFO_FIFO_SIZE */ 


#endif /* ROCKMFIFO_PRIVATE_H */