Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[linux-2.6] / include / linux / mISDNdsp.h
1 #ifndef __mISDNdsp_H__
2 #define __mISDNdsp_H__
3
4 struct mISDN_dsp_element_arg {
5         char    *name;
6         char    *def;
7         char    *desc;
8 };
9
10 struct mISDN_dsp_element {
11         char    *name;
12         void    *(*new)(const char *arg);
13         void    (*free)(void *p);
14         void    (*process_tx)(void *p, unsigned char *data, int len);
15         void    (*process_rx)(void *p, unsigned char *data, int len);
16         int     num_args;
17         struct mISDN_dsp_element_arg
18                 *args;
19 };
20
21 extern int  mISDN_dsp_element_register(struct mISDN_dsp_element *elem);
22 extern void mISDN_dsp_element_unregister(struct mISDN_dsp_element *elem);
23
24 struct dsp_features {
25         int     hfc_id; /* unique id to identify the chip (or -1) */
26         int     hfc_dtmf; /* set if HFCmulti card supports dtmf */
27         int     hfc_loops; /* set if card supports tone loops */
28         int     hfc_echocanhw; /* set if card supports echocancelation*/
29         int     pcm_id; /* unique id to identify the pcm bus (or -1) */
30         int     pcm_slots; /* number of slots on the pcm bus */
31         int     pcm_banks; /* number of IO banks of pcm bus */
32         int     unclocked; /* data is not clocked (has jitter/loss) */
33         int     unordered; /* data is unordered (packets have index) */
34 };
35
36 #endif
37