# Makefile for GeekOS kernel, userspace, and tools
 # Copyright (c) 2004,2005 David H. Hovemeyer <daveho@cs.umd.edu>
-# $Revision: 1.67 $
+# $Revision: 1.68 $
 
 # This is free software.  You are permitted to use,
 # redistribute, and modify it as specified in the file "COPYING".
        serial.c  reboot.c \
         paging.c \
        debug.c vmm_stubs.c  vm.c  pci.c\
-       queue.c socket.c \
+       queue.c socket.c ring_buffer.c \
        main.c
 
 # Kernel object files built from C source files
 
 #include <geekos/ring_buffer.h>
 #include <geekos/malloc.h>
 #include <geekos/ktypes.h>
-
+#include <geekos/debug.h>
 
 
 void init_ring_buffer(struct ring_buffer * ring, uint_t size) {
 
 
 static inline uchar_t * get_read_ptr(struct ring_buffer * ring) {
-  return (uchar_t *)&(ring->buf + ring->start);
+  return (uchar_t *)(ring->buf + ring->start);
 }
 
 static inline uchar_t * get_write_ptr(struct ring_buffer * ring) {
-  return (uchar_t *)&(ring->buf + ring->end);
+  return (uchar_t *)(ring->buf + ring->end);
 }
 
 
 
   return write_len;
 }
+
+
+void print_ring_buffer(struct ring_buffer * ring) {
+  int ctr = 0;
+  
+  for (ctr = 0; ctr < ring->current_len; ctr++) {
+    int index = (ctr + ring->start) % ring->size;
+
+    PrintBoth("Entry %d (index=%d): %c\n", ctr, index, ring->buf[index]);
+  }
+}