diff options
author | tzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2007-12-18 14:31:07 +0000 |
---|---|---|
committer | tzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2007-12-18 14:31:07 +0000 |
commit | cfd61537b47387b0fb5c8228baad6cec16d8f6e6 (patch) | |
tree | 108deea65c09c7c273a9b981f8783efcd433eaea /xpp/xframe_queue.h | |
parent | 4391b4a6ee42bdfd8e097c5ee5485e9eb13f19a0 (diff) |
xpp r5151:
* xpd_pri: Basically ready.
* PCM synchronization changes:
- Each Astribank unit ticks independently. Each with its own PLL.
- HOST synchronization is gone. Loading of xpp will no longer cause
useless 250 ticks per second if you have no Astribank.
- Synchronization from the zaptel sync master requires setting
ZAPTEL as sync source (xpp_sync ZAPTEL).
* rx_tasklet is now a parameter of the module xpp, rather than of xpp_usb.
* New FPGA firmware: 5128 (1151) / 5122 (1141, 1131):
- Fixes synchronization issues.
- PRI module: E1 should now work.
* perl module and utilities:
- Modules no longer magically scan system on initialization.
- Scanning is by calling explicit methods.
- "Serial" has been renamed "Label". It is basically unique, but
should be modifieble.
- Some basic documentation of zaptel perl modules.
* Default sort order of zt_registration is back to SORT_CONNCTOR.
* zt_registration proc file now shows the number of span registered to
if registered. Try: grep . /proc/xpp/XBUS-*/XPD-*/zt_registration
* genzaptelconf: Allow using a custom command instead of
/etc/init.d/asterisk to start/stop asterisk.
* Fixed the typo "Slagish".
git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.2@3506 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'xpp/xframe_queue.h')
-rw-r--r-- | xpp/xframe_queue.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/xpp/xframe_queue.h b/xpp/xframe_queue.h new file mode 100644 index 0000000..5612d65 --- /dev/null +++ b/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_ */ |