/*
- * Copyright (C) 2006 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2007 Andre Noll <maan@systemlinux.org>
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * Licensed under the GPL v2. For licencing details see COPYING.
*/
-/** \file ringbuffer.c simple ringbuffer implementation */
+/** \file ringbuffer.c Simple ringbuffer implementation */
#include "para.h"
#include "ringbuffer.h"
#include "string.h"
/**
- * holds all information about one ring buffer
+ * Holds all information about one ring buffer
*
* It is intentionally not exported via ringbuffer.h. Think abstract.
*/
struct ringbuffer
{
-/**
- *
- *
- * the size of this ring buffer
-*/
-unsigned size;
-/**
- *
- *
- * the actual entries of the ringbuffer
-*/
-void **entries;
-/**
- *
- *
- * the next entry will be added at this position
- */
-int head;
-/**
- *
- * how many entries the ring buffer contains
-*/
-unsigned filled;
+ /** The size of this ring buffer. */
+ unsigned size;
+ /** The actual entries of the ringbuffer. */
+ void **entries;
+ /** The next entry will be added at this position. */
+ int head;
+ /** How many entries the ring buffer contains. */
+ unsigned filled;
};
/**
- * initialize a new ringbuffer
+ * Initialize a new ringbuffer.
*
- * @param size the number of entries the ringbuffer holds
+ * \param size The number of entries the ringbuffer holds.
*
* This function initializes a circular ring buffer which can hold up to \a
* size entries of arbitrary type. If performance is an issue, \a size should
* many ringbuffers may be initialized via this function. Each ringbuffer is
* identified by a 'cookie'.
*
- * Return value: A 'cookie' which identifies the ringbuffer just created and
+ * \return A 'cookie' which identifies the ringbuffer just created and
* which must be passed to ringbuffer_add() and ringbuffer_get().
*/
void *ringbuffer_new(unsigned size)
};
/**
- * add one entry to a ringbuffer
+ * Add one entry to a ringbuffer.
*
- * @param cookie the ringbuffer identifier
- * @param data the data to be inserted
+ * \param cookie The ringbuffer identifier.
+ * \param data The data to be inserted.
*
- * insert \a data into the ringbuffer associated with \a cookie. As soon as
+ * Insert \a data into the ringbuffer associated with \a cookie. As soon as
* the ringbuffer fills up, its oldest entry is disregarded and replaced by \a
* data.
*
}
/**
- * get one entry from a ringbuffer
+ * Get one entry from a ringbuffer.
*
- * @param cookie the ringbuffer identifier
- * @param num the number of the entry
+ * \param cookie The ringbuffer identifier.
+ * \param num The number of the entry.
*
* \return A pointer to data previously added, or NULL if entry number
* \a num is not available. \a num counts backwards from zero, i.e.
}
/**
- * get the number of entries in the ring buffer
+ * Get the number of entries in the ring buffer.
*
- * @param cookie the ringbuffer identifier
+ * \param cookie The ringbuffer identifier
*
* This function always succeeds and never returns a number greater than the
* size of the ring buffer.