OSDN Git Service

ring.c inline化
[scilog/cpu2010.git] / ring.h
diff --git a/ring.h b/ring.h
index 6a80ed8..bdcf379 100644 (file)
--- a/ring.h
+++ b/ring.h
@@ -5,17 +5,26 @@
 
 #define RING_NUM    6
 
+extern unsigned char   r_write;
+extern unsigned char    r_read;
+extern unsigned char   r_num;
+
 #define ring_clear()    ring_read_set(ring_write_get(t))
 
 void ring_init(void);
+
 //読み出し位置
-unsigned char ring_read_get(void);
+#define ring_read_get() r_read
 void ring_read_set(unsigned char i);
 void ring_read_plus(void);
 
 // 書き込み位置
-unsigned char ring_write_get(void);
-void ring_write_plus(void);
+#define ring_write_get()    r_write
+inline extern void ring_write_plus(void)
+{
+    r_write++;
+    if (r_write >= r_num) r_write = 0;
+}
 
 unsigned char ring_num_get();
 unsigned char ring_is_full(void);