aboutsummaryrefslogtreecommitdiffstats
ModeNameSize
-rw-r--r--.gitignore462logstatsplainblame
-rw-r--r--COPYING18693logstatsplainblame
-rw-r--r--CREDITS89514logstatsplainblame
d---------Documentation7646logstatsplain
-rw-r--r--Kbuild1273logstatsplainblame
-rw-r--r--MAINTAINERS71864logstatsplainblame
-rw-r--r--Makefile47190logstatsplainblame
-rw-r--r--README16538logstatsplainblame
-rw-r--r--REPORTING-BUGS3065logstatsplainblame
d---------arch758logstatsplain
d---------block508logstatsplain
d---------crypto1259logstatsplain
d---------drivers1948logstatsplain
d---------fs4180logstatsplain
d---------include1338logstatsplain
d---------init428logstatsplain
d---------ipc351logstatsplain
d---------kernel2977logstatsplain
d---------lib3040logstatsplain
d---------mm1740logstatsplain
d---------net1348logstatsplain
d---------scripts1775logstatsplain
d---------security398logstatsplain
d---------sound655logstatsplain
d---------usr196logstatsplain
> 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546























































                                                                               


































































































































































































































                                                                                                    








                          
                                   














                              
                                       










                                

































































































































































































































                                                                             
/* $Id: isdnif.h,v 1.43.2.2 2004/01/12 23:08:35 keil Exp $
 *
 * Linux ISDN subsystem
 * Definition of the interface between the subsystem and its low-level drivers.
 *
 * Copyright 1994,95,96 by Fritz Elfert (fritz@isdn4linux.de)
 * Copyright 1995,96    Thinking Objects Software GmbH Wuerzburg
 * 
 * This software may be used and distributed according to the terms
 * of the GNU General Public License, incorporated herein by reference.
 *
 */

#ifndef __ISDNIF_H__
#define __ISDNIF_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_HDLC_56K 12   /* HDLC 56k                          */
#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_FCLASS2	2	/* Fax Group 2/3 CLASS 2 */
#define ISDN_PROTO_L3_FCLASS1	3	/* Fax Group 2/3 CLASS 1 */
#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 dependent    */
/* 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.                    */   
/*********************************************************************/

/*****************/
/* NI1 commands */ 
/*****************/
#define NI1_CMD_INVOKE       ((0x00 << 8) | ISDN_PTYPE_NI1)   /* invoke a supplementary service */
#define NI1_CMD_INVOKE_ABORT ((0x01 << 8) | ISDN_PTYPE_NI1)   /* abort a invoke cmd */

/*******************************/
/* NI1 Status callback values */
/*******************************/
#define NI1_STAT_INVOKE_RES  ((0x80 << 8) | ISDN_PTYPE_NI1)   /* Result for invocation */
#define NI1_STAT_INVOKE_ERR  ((0x81 << 8) | ISDN_PTYPE_NI1)   /* Error Return for invocation */
#define NI1_STAT_INVOKE_BRD  ((0x82 << 8) | ISDN_PTYPE_NI1)   /* Deliver invoke broadcast info */

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   */
  } isdn_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                    */