Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/drivers/isdn/mISDN/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  l1oip.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * see notice in l1oip.c
 */


/* debugging */
#define DEBUG_L1OIP_INIT 0x00010000
#define DEBUG_L1OIP_SOCKET 0x00020000
#define DEBUG_L1OIP_MGR  0x00040000
#define DEBUG_L1OIP_MSG  0x00080000

/* enable to disorder received bchannels by sequence 2143658798... */
/*
  #define REORDER_DEBUG
*/


/* frames */
#define L1OIP_MAX_LEN  2048  /* max packet size form l2 */
#define L1OIP_MAX_PERFRAME 1400  /* max data size in one frame */


/* timers */
#define L1OIP_KEEPALIVE  15
#define L1OIP_TIMEOUT  65


/* socket */
#define L1OIP_DEFAULTPORT 931


/* channel structure */
struct l1oip_chan {
 struct dchannel  *dch;
 struct bchannel  *bch;
 u32   tx_counter; /* counts xmit bytes/packets */
 u32   rx_counter; /* counts recv bytes/packets */
 u32   codecstate; /* used by codec to save data */
#ifdef REORDER_DEBUG
 int   disorder_flag;
 struct sk_buff  *disorder_skb;
 u32   disorder_cnt;
#endif
};


/* card structure */
struct l1oip {
 struct list_head        list;

 /* card */
 int   registered; /* if registered with mISDN */
 char   name[MISDN_MAX_IDLEN];
 int   idx;  /* card index */
 int   pri;  /* 1=pri, 0=bri */
 int   d_idx;  /* current dchannel number */
 int   b_num;  /* number of bchannels */
 u32   id;  /* id of connection */
 int   ondemand; /* if transmis. is on demand */
 int   bundle;  /* bundle channels in one frm */
 int   codec;  /* codec to use for transmis. */
 int   limit;  /* limit number of bchannels */
 bool   shutdown; /* if card is released */

 /* timer */
 struct timer_list keep_tl;
 struct timer_list timeout_tl;
 int   timeout_on;
 struct work_struct workq;

 /* socket */
 struct socket  *socket; /* if set, socket is created */
 struct completion socket_complete;/* completion of sock thread */
 struct task_struct *socket_thread;
 spinlock_t  socket_lock; /* access sock outside thread */
 u32   remoteip; /* if all set, ip is assigned */
 u16   localport; /* must always be set */
 u16   remoteport; /* must always be set */
 struct sockaddr_in sin_local; /* local socket name */
 struct sockaddr_in sin_remote; /* remote socket name */
 struct msghdr  sendmsg; /* ip message to send */
 struct kvec  sendiov; /* iov for message */

 /* frame */
 struct l1oip_chan chan[128]; /* channel instances */
};

extern int l1oip_law_to_4bit(u8 *data, int len, u8 *result, u32 *state);
extern int l1oip_4bit_to_law(u8 *data, int len, u8 *result);
extern int l1oip_alaw_to_ulaw(u8 *data, int len, u8 *result);
extern int l1oip_ulaw_to_alaw(u8 *data, int len, u8 *result);
extern void l1oip_4bit_free(void);
extern int l1oip_4bit_alloc(int ulaw);

Messung V0.5
C=92 H=93 G=92

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.