#ifndef __RING_H
#define __RING_H
typedef struct ring_buffer ring_buffer;

struct ring_buffer {
  unsigned char *buf;
  int tail,bytes,len;
};

ring_buffer *new_ring_buffer(int len);
void delete_ring_buffer(ring_buffer *buf);
int ring_bytes_can_read(ring_buffer *buf);
int ring_bytes_can_write(ring_buffer *buf);
int ring_bytes_ready(ring_buffer *buf);
int ring_bytes_free(ring_buffer *buf);
int ring_rx(int h,ring_buffer *buf,int *err);
int ring_tx(int h,ring_buffer *buf);
int ring_read_byte(ring_buffer *ring,unsigned char *byte);
int ring_write_byte(ring_buffer *ring,unsigned char byte);
#endif
/*
  Author: Michael Schmidt (michael@embeddedARM.com)
 */
