⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isdnif.h

📁 基于组件方式开发操作系统的OSKIT源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* $Id: isdnif.h,v 1.29 1999/07/31 13:00:02 armin Exp $ * * Linux ISDN subsystem * * Definition of the interface between the subsystem and its low-level drivers. * * Copyright 1994,95,96 by Fritz Elfert (fritz@wuemaus.franken.de) * Copyright 1995,96    Thinking Objects Software GmbH Wuerzburg *  * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  * * $Log: isdnif.h,v $ * Revision 1.29  1999/07/31 13:00:02  armin * Added tty fax capabilities. * * Revision 1.28  1999/07/13 20:57:48  werner * added callback ISDN_STAT_DISCH for limiting b-channel resources. * * Revision 1.27  1999/07/11 17:07:39  armin * Added tty modem register S23. * Added new layer 2 and 3 protocols for Fax and DSP functions. * * Revision 1.26  1999/07/01 08:35:44  keil * compatibility to 2.3 * * Revision 1.25  1998/06/17 19:51:55  he * merged with 2.1.10[34] (cosmetics and udelay() -> mdelay()) * brute force fix to avoid Ugh's in isdn_tty_write() * cleaned up some dead code * * Revision 1.24  1998/03/19 13:18:57  keil * Start of a CAPI like interface for supplementary Service * first service: SUSPEND * * Revision 1.23  1998/02/20 17:36:52  fritz * Added L2-protocols for V.110, changed FEATURE-Flag-constants. * * Revision 1.22  1998/01/31 22:14:12  keil * changes for 2.1.82 * * Revision 1.21  1997/10/09 21:28:13  fritz * New HL<->LL interface: *   New BSENT callback with nr. of bytes included. *   Sending without ACK. *   New L1 error status (not yet in use). *   Cleaned up obsolete structures. * Implemented Cisco-SLARP. * Changed local net-interface data to be dynamically allocated. * Removed old 2.0 compatibility stuff. * * Revision 1.20  1997/05/27 15:18:06  fritz * Added changes for recent 2.1.x kernels: *   changed return type of isdn_close *   queue_task_* -> queue_task *   clear/set_bit -> test_and_... where apropriate. *   changed type of hard_header_cache parameter. * * Revision 1.19  1997/03/25 23:13:56  keil * NI-1 US protocol * * Revision 1.18  1997/03/04 22:09:18  calle * Change macros copy_from_user and copy_to_user in inline function. * These are now correct replacements of the functions for 2.1.xx * * Revision 1.17  1997/02/10 21:12:53  fritz * More setup-interface changes. * * Revision 1.16  1997/02/10 19:42:57  fritz * New interface for reporting incoming calls. * * Revision 1.15  1997/02/09 00:18:42  keil * leased line support * * Revision 1.14  1997/02/03 23:43:00  fritz * Misc changes for Kernel 2.1.X compatibility. * * Revision 1.13  1996/11/13 02:39:59  fritz * More compatibility changes. * * Revision 1.12  1996/11/06 17:38:48  keil * more changes for 2.1.X * * Revision 1.11  1996/10/23 11:59:42  fritz * More compatibility changes. * * Revision 1.10  1996/10/22 23:14:19  fritz * Changes for compatibility to 2.0.X and 2.1.X kernels. * * Revision 1.9  1996/06/06 21:24:24  fritz * Started adding support for suspend/resume. * * Revision 1.8  1996/05/18 01:45:37  fritz * More spelling corrections. * * Revision 1.7  1996/05/18 01:37:19  fritz * Added spelling corrections and some minor changes * to stay in sync with kernel. * * Revision 1.6  1996/05/17 03:59:28  fritz * Marked rcvcallb and writebuf obsolete. * * Revision 1.5  1996/05/01 11:43:54  fritz * Removed STANDALONE * * Revision 1.4  1996/05/01 11:38:40  fritz * Added ISDN_FEATURE_L2_TRANS * * Revision 1.3  1996/04/29 22:57:54  fritz * Added driverId and channel parameters to * writecmd() and readstat(). * Added constant for voice-support. * * Revision 1.2  1996/04/20 17:02:40  fritz * Changes to support skbuffs for Lowlevel-Drivers. * Misc. typos * * Revision 1.1  1996/01/09 05:50:51  fritz * Initial revision * */#ifndef isdnif_h#define isdnif_h#include <linux/isdn_compat.h>/* * Values for general protocol-selection */#define ISDN_PTYPE_UNKNOWN   0   /* Protocol undefined   */#define ISDN_PTYPE_1TR6      1   /* german 1TR6-protocol */#define ISDN_PTYPE_EURO      2   /* EDSS1-protocol       */#define ISDN_PTYPE_LEASED    3   /* for leased lines     */#define ISDN_PTYPE_NI1       4   /* US NI-1 protocol     */#define ISDN_PTYPE_MAX       7   /* Max. 8 Protocols     *//* * Values for Layer-2-protocol-selection */#define ISDN_PROTO_L2_X75I   0   /* X75/LAPB with I-Frames            */#define ISDN_PROTO_L2_X75UI  1   /* X75/LAPB with UI-Frames           */#define ISDN_PROTO_L2_X75BUI 2   /* X75/LAPB with UI-Frames           */#define ISDN_PROTO_L2_HDLC   3   /* HDLC                              */#define ISDN_PROTO_L2_TRANS  4   /* Transparent (Voice)               */#define ISDN_PROTO_L2_X25DTE 5   /* X25/LAPB DTE mode                 */#define ISDN_PROTO_L2_X25DCE 6   /* X25/LAPB DCE mode                 */#define ISDN_PROTO_L2_V11096 7   /* V.110 bitrate adaption 9600 Baud  */#define ISDN_PROTO_L2_V11019 8   /* V.110 bitrate adaption 19200 Baud */#define ISDN_PROTO_L2_V11038 9   /* V.110 bitrate adaption 38400 Baud */#define ISDN_PROTO_L2_MODEM  10  /* Analog Modem on Board */#define ISDN_PROTO_L2_FAX    11  /* Fax Group 2/3         */#define ISDN_PROTO_L2_MAX    15  /* Max. 16 Protocols                 *//* * Values for Layer-3-protocol-selection */#define ISDN_PROTO_L3_TRANS  0   /* Transparent                 */#define ISDN_PROTO_L3_TRANSDSP 1   /* Transparent with DSP    */#define ISDN_PROTO_L3_FAX    2   /* Fax Group 2/3             */#define ISDN_PROTO_L3_MAX    7   /* Max. 8 Protocols            */#ifdef __KERNEL__#include <linux/skbuff.h>/***************************************************************************//* Extensions made by Werner Cornelius (werner@ikt.de)                     *//*                                                                         */ /* The proceed command holds a incoming call in a state to leave processes *//* enough time to check whether ist should be accepted.                    *//* The PROT_IO Command extends the interface to make protocol dependant    *//* features available (call diversion, call waiting...).                   *//*                                                                         */ /* The PROT_IO Command is executed with the desired driver id and the arg  *//* parameter coded as follows:                                             *//* The lower 8 bits of arg contain the desired protocol from ISDN_PTYPE    *//* definitions. The upper 24 bits represent the protocol specific cmd/stat.*//* Any additional data is protocol and command specific.                   *//* This mechanism also applies to the statcallb callback STAT_PROT.        */    /*                                                                         *//* This suggested extension permits an easy expansion of protocol specific *//* handling. Extensions may be added at any time without changing the HL   *//* driver code and not getting conflicts without certifications.           *//* The well known CAPI 2.0 interface handles such extensions in a similar  *//* way. Perhaps a protocol specific module may be added and separately     *//* loaded and linked to the basic isdn module for handling.                */                    /***************************************************************************//*****************//* DSS1 commands */ /*****************/#define DSS1_CMD_INVOKE       ((0x00 << 8) | ISDN_PTYPE_EURO)   /* invoke a supplementary service */#define DSS1_CMD_INVOKE_ABORT ((0x01 << 8) | ISDN_PTYPE_EURO)   /* abort a invoke cmd *//*******************************//* DSS1 Status callback values *//*******************************/#define DSS1_STAT_INVOKE_RES  ((0x80 << 8) | ISDN_PTYPE_EURO)   /* Result for invocation */#define DSS1_STAT_INVOKE_ERR  ((0x81 << 8) | ISDN_PTYPE_EURO)   /* Error Return for invocation */#define DSS1_STAT_INVOKE_BRD  ((0x82 << 8) | ISDN_PTYPE_EURO)   /* Deliver invoke broadcast info *//*********************************************************************//* structures for DSS1 commands and callback                         *//*                                                                   *//* An action is invoked by sending a DSS1_CMD_INVOKE. The ll_id, proc*//* timeout, datalen and data fields must be set before calling.      *//*                                                                   *//* The return value is a positive hl_id value also delivered in the  *//* hl_id field. A value of zero signals no more left hl_id capacitys.*//* A negative return value signals errors in LL. So if the return    *//* value is <= 0 no action in LL will be taken -> request ignored    *//*                                                                   *//* The timeout field must be filled with a positive value specifying *//* the amount of time the INVOKED process waits for a reaction from  *//* the network.                                                      *//* If a response (either error or result) is received during this    *//* intervall, a reporting callback is initiated and the process will *//* be deleted, the hl identifier will be freed.                      *//* If no response is received during the specified intervall, a error*//* callback is initiated with timeout set to -1 and a datalen set    *//* to 0.                                                             *//* If timeout is set to a value <= 0 during INVOCATION the process is*//* immediately deleted after sending the data. No callback occurs !  *//*                                                                   *//* A currently waiting process may be aborted with INVOKE_ABORT. No  *//* callback will occur when a process has been aborted.              *//*                                                                   *//* Broadcast invoke frames from the network are reported via the     *//* STAT_INVOKE_BRD callback. The ll_id is set to 0, the other fields *//* are supplied by the network and not by the HL.                    */   /*********************************************************************/typedef struct  { ulong ll_id; /* ID supplied by LL when executing    */		 /* a command and returned by HL for    */                 /* INVOKE_RES and INVOKE_ERR           */    int hl_id;   /* ID supplied by HL when called       */                 /* for executing a cmd and delivered   */                 /* for results and errors              */                 /* must be supplied by LL when aborting*/      int proc;    /* invoke procedure used by CMD_INVOKE */                 /* returned by callback and broadcast  */     int timeout; /* timeout for INVOKE CMD in ms        */                 /* -1  in stat callback when timed out */                 /* error value when error callback     */    int datalen; /* length of cmd or stat data          */    u_char *data;/* pointer to data delivered or send   */  } dss1_cmd_stat;/* * Commands from linklevel to lowlevel * */#define ISDN_CMD_IOCTL    0       /* Perform ioctl                         */#define ISDN_CMD_DIAL     1       /* Dial out                              */#define ISDN_CMD_ACCEPTD  2       /* Accept an incoming call on D-Chan.    */#define ISDN_CMD_ACCEPTB  3       /* Request B-Channel connect.            */#define ISDN_CMD_HANGUP   4       /* Hangup                                */#define ISDN_CMD_CLREAZ   5       /* Clear EAZ(s) of channel               */#define ISDN_CMD_SETEAZ   6       /* Set EAZ(s) of channel                 */#define ISDN_CMD_GETEAZ   7       /* Get EAZ(s) of channel                 */#define ISDN_CMD_SETSIL   8       /* Set Service-Indicator-List of channel */#define ISDN_CMD_GETSIL   9       /* Get Service-Indicator-List of channel */#define ISDN_CMD_SETL2   10       /* Set B-Chan. Layer2-Parameter          */#define ISDN_CMD_GETL2   11       /* Get B-Chan. Layer2-Parameter          */#define ISDN_CMD_SETL3   12       /* Set B-Chan. Layer3-Parameter          */#define ISDN_CMD_GETL3   13       /* Get B-Chan. Layer3-Parameter          */#define ISDN_CMD_LOCK    14       /* Signal usage by upper levels          */#define ISDN_CMD_UNLOCK  15       /* Release usage-lock                    */#define ISDN_CMD_SUSPEND 16       /* Suspend connection                    */#define ISDN_CMD_RESUME  17       /* Resume connection                     */#define ISDN_CMD_PROCEED 18       /* Proceed with call establishment       */#define ISDN_CMD_ALERT   19       /* Alert after Proceeding                */#define ISDN_CMD_REDIR   20       /* Redir a incoming call                 */#define ISDN_CMD_PROT_IO 21       /* Protocol specific commands            */#define CAPI_PUT_MESSAGE 22       /* CAPI message send down or up          */#define ISDN_CMD_FAXCMD  23       /* FAX commands to HL-driver             */#define ISDN_CMD_AUDIO   24       /* DSP, DTMF, ... settings               *//* * Status-Values delivered from lowlevel to linklevel via * statcallb(). * */#define ISDN_STAT_STAVAIL 256    /* Raw status-data available             */#define ISDN_STAT_ICALL   257    /* Incoming call detected                */#define ISDN_STAT_RUN     258    /* Signal protocol-code is running       */#define ISDN_STAT_STOP    259    /* Signal halt of protocol-code          */#define ISDN_STAT_DCONN   260    /* Signal D-Channel connect              */#define ISDN_STAT_BCONN   261    /* Signal B-Channel connect              */#define ISDN_STAT_DHUP    262    /* Signal D-Channel disconnect           */#define ISDN_STAT_BHUP    263    /* Signal B-Channel disconnect           */#define ISDN_STAT_CINF    264    /* Charge-Info                           */#define ISDN_STAT_LOAD    265    /* Signal new lowlevel-driver is loaded  */#define ISDN_STAT_UNLOAD  266    /* Signal unload of lowlevel-driver      */#define ISDN_STAT_BSENT   267    /* Signal packet sent                    */#define ISDN_STAT_NODCH   268    /* Signal no D-Channel                   */#define ISDN_STAT_ADDCH   269    /* Add more Channels                     */#define ISDN_STAT_CAUSE   270    /* Cause-Message                         */#define ISDN_STAT_ICALLW  271    /* Incoming call without B-chan waiting  */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -