/*
 * EMLOG: the EMbedded-device LOGger
 *
 * Jeremy Elson
 * USC/ISI
 *
 * $Id: emlog.h,v 1.2 2001/03/01 09:24:52 jelson Exp $
 */

#define EMLOG_MAJOR_NUMBER   241
#define EMLOG_MAX_SIZE       128 /* max size in kilobytes of a buffer */


/************************ Private Definitions *****************************/

struct emlog_info {
  unsigned long i_ino;


#if defined(DECLARE_WAIT_QUEUE_HEAD)
  wait_queue_head_t read_q;
#else
  struct wait_queue *my_wait_queue;
#endif
  
  int refcount;
  int read_point, write_point;
  int size;
  char *data;
  struct emlog_info *next;
};

#define EMLOG_EMPTY(einfo) (((einfo)->read_point) == ((einfo)->write_point))
#define EMLOG_SIZE(einfo) ( (einfo)->write_point >= (einfo)->read_point ? \
         (einfo)->write_point - (einfo)->read_point : \
         (einfo)->size - (einfo)->read_point + (einfo)->write_point)
			
#define EMLOG_REFCOUNT(einfo) ((einfo)->refcount)
#define EMLOG_READQ(einfo) (&((einfo)->read_q))

