diff options
author | tzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2008-02-04 23:00:48 +0000 |
---|---|---|
committer | tzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2008-02-04 23:00:48 +0000 |
commit | 7e068801fbf82413ac0a5e63e586c268bd457434 (patch) | |
tree | 9b61e9a4e07167e0b7d347e4336245724befa29c /kernel/xpp/xframe_queue.h | |
parent | 29daeebad888269fa0ee2ca7e54e238c8498ca2d (diff) |
Move kernel stuff to under kernel/
(merged branch /zaptel/team/tzafrir/move )
Closes issue #7117.
git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.4@3793 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'kernel/xpp/xframe_queue.h')
-rw-r--r-- | kernel/xpp/xframe_queue.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/kernel/xpp/xframe_queue.h b/kernel/xpp/xframe_queue.h new file mode 100644 index 0000000..5612d65 --- /dev/null +++ b/kernel/xpp/xframe_queue.h @@ -0,0 +1,34 @@ +#ifndef XFRAME_QUEUE_H +#define XFRAME_QUEUE_H + +#include <linux/list.h> +#include <linux/spinlock.h> +#include "xdefs.h" + +#define XFRAME_QUEUE_MARGIN 10 + +struct xframe_queue { + struct list_head head; + unsigned int count; + unsigned int max_count; + unsigned int steady_state_count; + spinlock_t lock; + const char *name; + void *priv; + /* statistics */ + unsigned int worst_count; + unsigned int overflows; + unsigned long worst_lag_usec; /* since xframe creation */ +}; + +void xframe_queue_init(struct xframe_queue *q, + unsigned int steady_state_count, unsigned int max_count, + const char *name, void *priv); +__must_check bool xframe_enqueue(struct xframe_queue *q, xframe_t *xframe); +__must_check xframe_t *xframe_dequeue(struct xframe_queue *q); +void xframe_queue_clearstats(struct xframe_queue *q); +void xframe_queue_disable(struct xframe_queue *q); +void xframe_queue_clear(struct xframe_queue *q); +uint xframe_queue_count(struct xframe_queue *q); + +#endif /* XFRAME_QUEUE_ */ |