bf3fe05dfb
This needs some more testing before it's on by default. If the card is otherwise functioning, these messages may be confusing to the user. If the card is not functioning, the driver can be reloaded with debug to check for this condition. Signed-off-by: Shaun Ruffell <sruffell@digium.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9205 a0bf4364-ded3-4de4-8d8a-66a801d63aff
36 lines
1010 B
C
36 lines
1010 B
C
#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;
|
|
bool disabled;
|
|
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, bool disabled);
|
|
void xframe_queue_clear(struct xframe_queue *q);
|
|
uint xframe_queue_count(struct xframe_queue *q);
|
|
|
|
#endif /* XFRAME_QUEUE_ */
|