# 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]);
+ }
+}