issue #5566
[asterisk/asterisk.git] / channels / misdn / isdn_lib_intern.h
1 #ifndef ISDN_LIB_INTERN
2 #define ISDN_LIB_INTER
3
4
5 #include <mISDNlib.h>
6 #include <isdn_net.h>
7 #include <l3dss1.h>
8 #include <net_l3.h>
9
10 #include <pthread.h>
11
12 #include "isdn_lib.h"
13
14
15
16
17
18 #ifndef mISDNUSER_HEAD_SIZE
19
20 #ifdef MISDNUSER_JOLLY
21 #define mISDNUSER_HEAD_SIZE (sizeof(mISDNuser_head_t))
22 #else
23 #define mISDNUSER_HEAD_SIZE (sizeof(mISDN_head_t))
24 #endif
25 #endif
26
27
28 ibuffer_t *astbuf;
29 ibuffer_t *misdnbuf;
30
31
32 struct isdn_msg {
33         unsigned long misdn_msg;
34   
35         enum layer_e layer;
36         enum event_e event;
37   
38         void (*msg_parser)(struct isdn_msg *msgs, msg_t *msg, struct misdn_bchannel *bc, int nt);
39         msg_t *(*msg_builder)(struct isdn_msg *msgs, struct misdn_bchannel *bc, int nt);
40         void (*msg_printer)(struct isdn_msg *msgs);
41   
42         char *info;
43   
44 } ; 
45
46 /* for isdn_msg_parser.c */
47 msg_t *create_l3msg(int prim, int mt, int dinfo , int size, int nt);
48
49
50
51 struct misdn_stack {
52         /** is first element because &nst equals &mISDNlist **/
53         net_stack_t nst;
54         manager_t mgr;
55   
56         int d_stid;
57   
58         int b_num;
59   
60         int b_stids[MAX_BCHANS + 1];
61   
62         int ptp;
63         int lower_id;
64         int upper_id;
65   
66         int l2link;
67   
68         time_t l2establish;
69   
70         int l1link;
71         int midev;
72   
73         enum mode_e {NT_MODE, TE_MODE} mode;
74         
75         int pri;
76   
77
78         int procids[0x100+1];
79
80         msg_queue_t downqueue;
81         int busy;
82   
83         int port;
84         struct misdn_bchannel bc[MAX_BCHANS + 1];
85   
86         struct misdn_bchannel* bc_list; 
87   
88         int channels[MAX_BCHANS + 1];
89
90   
91         struct misdn_bchannel *holding; /* Queue which holds holded channels :) */
92   
93         struct misdn_stack *next;
94 }; 
95
96
97 struct misdn_stack* get_stack_by_bc(struct misdn_bchannel *bc);
98
99 #endif