import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / eccci / ccci_ringbuf.h
diff --git a/drivers/misc/mediatek/eccci/ccci_ringbuf.h b/drivers/misc/mediatek/eccci/ccci_ringbuf.h
new file mode 100644 (file)
index 0000000..c8126e1
--- /dev/null
@@ -0,0 +1,34 @@
+#ifndef __CCCI_RINGBUF_H__
+#define __CCCI_RINGBUF_H__
+#include "ccci_core.h"
+typedef enum
+{
+       CCCI_RINGBUF_OK = 0,
+    CCCI_RINGBUF_PARAM_ERR,
+       CCCI_RINGBUF_NOT_ENOUGH,
+       CCCI_RINGBUF_BAD_HEADER,
+       CCCI_RINGBUF_BAD_FOOTER,
+       CCCI_RINGBUF_NOT_COMPLETE,
+       CCCI_RINGBUF_EMPTY,
+} ccci_ringbuf_error;
+
+struct ccci_ringbuf
+{
+    struct
+    {
+        unsigned int read;
+        unsigned int write;
+        unsigned int length;
+    }    rx_control, tx_control;
+    unsigned char    buffer[0]; 
+};
+#define CCCI_RINGBUF_CTL_LEN (4+sizeof(struct ccci_ringbuf)+4)
+
+int ccci_ringbuf_readable(int md_id,struct ccci_ringbuf * ringbuf);
+int ccci_ringbuf_writeable(int md_id,struct ccci_ringbuf * ringbuf,unsigned int write_size);
+struct ccci_ringbuf * ccci_create_ringbuf(int md_id, unsigned char* buf,int buf_size,int rx_size, int tx_size);
+int ccci_ringbuf_read(int md_id,struct ccci_ringbuf * ringbuf, unsigned char *buf, int read_size);
+int ccci_ringbuf_write(int md_id,struct ccci_ringbuf *ringbuf, unsigned char *data, int data_len);
+void ccci_ringbuf_move_rpointer(int md_id,struct ccci_ringbuf * ringbuf,int read_size);
+void ccci_ringbuf_reset(int md_id,struct ccci_ringbuf * ringbuf,int dir);
+#endif //__CCCI_RINGBUF_H__