| 
									
										
										
										
											2005-11-01 22:04:14 +00:00
										 |  |  | #ifndef ISDN_LIB_INTERN
 | 
					
						
							| 
									
										
										
										
											2005-12-09 11:01:18 +00:00
										 |  |  | #define ISDN_LIB_INTERN
 | 
					
						
							| 
									
										
										
										
											2005-11-01 22:04:14 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-12-09 11:01:18 +00:00
										 |  |  | #include <mISDNuser/mISDNlib.h>
 | 
					
						
							|  |  |  | #include <mISDNuser/isdn_net.h>
 | 
					
						
							|  |  |  | #include <mISDNuser/l3dss1.h>
 | 
					
						
							|  |  |  | #include <mISDNuser/net_l3.h>
 | 
					
						
							| 
									
										
										
										
											2005-11-01 22:04:14 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include <pthread.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "isdn_lib.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-08-15 16:49:26 +00:00
										 |  |  | #if !defined MISDNUSER_VERSION_CODE || (MISDNUSER_VERSION_CODE < MISDNUSER_VERSION(1, 0, 3))
 | 
					
						
							|  |  |  | #error "You need a newer version of mISDNuser ..."
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-12-09 11:01:18 +00:00
										 |  |  | #define QI_ELEMENT(a) a.off
 | 
					
						
							| 
									
										
										
										
											2005-11-01 22:04:14 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef mISDNUSER_HEAD_SIZE
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define mISDNUSER_HEAD_SIZE (sizeof(mISDNuser_head_t))
 | 
					
						
							| 
									
										
										
										
											2006-02-08 16:10:21 +00:00
										 |  |  | /*#define mISDNUSER_HEAD_SIZE (sizeof(mISDN_head_t))*/ | 
					
						
							| 
									
										
										
										
											2005-11-01 22:04:14 +00:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ibuffer_t *astbuf; | 
					
						
							|  |  |  | ibuffer_t *misdnbuf; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct isdn_msg { | 
					
						
							|  |  |  | 	unsigned long misdn_msg; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  | 	enum layer_e layer; | 
					
						
							|  |  |  | 	enum event_e event; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  | 	void (*msg_parser)(struct isdn_msg *msgs, msg_t *msg, struct misdn_bchannel *bc, int nt); | 
					
						
							|  |  |  | 	msg_t *(*msg_builder)(struct isdn_msg *msgs, struct misdn_bchannel *bc, int nt); | 
					
						
							|  |  |  | 	char *info; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  | } ;  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* for isdn_msg_parser.c */ | 
					
						
							|  |  |  | msg_t *create_l3msg(int prim, int mt, int dinfo , int size, int nt); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct misdn_stack { | 
					
						
							|  |  |  | 	/** is first element because &nst equals &mISDNlist **/ | 
					
						
							|  |  |  | 	net_stack_t nst; | 
					
						
							|  |  |  | 	manager_t mgr; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  | 	int d_stid; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  | 	int b_num; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  | 	int b_stids[MAX_BCHANS + 1]; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  | 	int ptp; | 
					
						
							| 
									
										
										
										
											2005-12-09 11:01:18 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-06-29 20:12:19 +00:00
										 |  |  | 	int l2upcnt; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-12-09 11:01:18 +00:00
										 |  |  | 	int l2_id; | 
					
						
							| 
									
										
										
										
											2005-11-01 22:04:14 +00:00
										 |  |  | 	int lower_id; | 
					
						
							|  |  |  | 	int upper_id; | 
					
						
							|  |  |  |    | 
					
						
							| 
									
										
										
										
											2006-08-03 16:38:00 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   	int blocked; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-11-01 22:04:14 +00:00
										 |  |  | 	int l2link; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  | 	time_t l2establish; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  | 	int l1link; | 
					
						
							|  |  |  | 	int midev; | 
					
						
							|  |  |  |    | 
					
						
							| 
									
										
										
										
											2005-12-09 11:01:18 +00:00
										 |  |  | 	int nt; | 
					
						
							| 
									
										
										
										
											2005-11-01 22:04:14 +00:00
										 |  |  | 	 | 
					
						
							|  |  |  | 	int pri; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	int procids[0x100+1]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	msg_queue_t downqueue; | 
					
						
							| 
									
										
										
										
											2006-04-29 22:56:00 +00:00
										 |  |  | 	msg_queue_t upqueue; | 
					
						
							| 
									
										
										
										
											2005-11-01 22:04:14 +00:00
										 |  |  | 	int busy; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  | 	int port; | 
					
						
							|  |  |  | 	struct misdn_bchannel bc[MAX_BCHANS + 1]; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  | 	struct misdn_bchannel* bc_list;  | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  | 	int channels[MAX_BCHANS + 1]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  | 	struct misdn_bchannel *holding; /* Queue which holds holded channels :) */ | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  | 	struct misdn_stack *next; | 
					
						
							|  |  |  | };  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct misdn_stack* get_stack_by_bc(struct misdn_bchannel *bc); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-08-21 02:11:39 +00:00
										 |  |  | int isdn_msg_get_index(struct isdn_msg msgs[], msg_t *frm, int nt); | 
					
						
							|  |  |  | enum event_e isdn_msg_get_event(struct isdn_msg msgs[], msg_t *frm, int nt); | 
					
						
							|  |  |  | int isdn_msg_parse_event(struct isdn_msg msgs[], msg_t *frm, struct misdn_bchannel *bc, int nt); | 
					
						
							|  |  |  | char * isdn_get_info(struct isdn_msg msgs[], enum event_e event, int nt); | 
					
						
							|  |  |  | msg_t * isdn_msg_build_event(struct isdn_msg msgs[], struct misdn_bchannel *bc, enum event_e event, int nt); | 
					
						
							|  |  |  | int isdn_msg_get_index_by_event(struct isdn_msg msgs[], enum event_e event, int nt); | 
					
						
							|  |  |  | char * isdn_msg_get_info(struct isdn_msg msgs[], msg_t *msg, int nt); | 
					
						
							| 
									
										
										
										
											2006-08-03 16:38:00 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-11-01 22:04:14 +00:00
										 |  |  | #endif
 |