I4B header files were repo-copied from sys/i386/include/ to

sys/i4b/include/ so they will be available to all architectures
once I4B compiles on those.

Approved by:	re (kensmith)
This commit is contained in:
Bjoern A. Zeeb 2007-07-06 07:23:39 +00:00
parent ec8fa4cfd9
commit 5b919cdc47
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=171273
6 changed files with 0 additions and 1433 deletions

View file

@ -1,148 +0,0 @@
/*-
* Copyright (c) 1997, 2002 Hellmuth Michaelis. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*---------------------------------------------------------------------------
*
* i4b_cause.h - causes and cause handling for i4b
* -----------------------------------------------
*
* $FreeBSD$
*
* last edit-date: [Sun Mar 17 10:08:21 2002]
*
*---------------------------------------------------------------------------*/
#ifndef _I4B_CAUSE_H_
#define _I4B_CAUSE_H_
/*---------------------------------------------------------------------------*
* ISDN4BSD internal causes specification
*---------------------------------------------------------------------------*/
#define CAUSE_VAL 0x000000ff /* cause value */
#define CAUSE_TYPE 0x0000ff00 /* cause type */
#define CAUSET_Q850 0 /* value coded according to Q.850 */
#define CAUSET_I4B 1 /* i4b protocol independent causes*/
#define GET_CAUSE_VAL(cause) ((cause) & 0xff)
#define SET_CAUSE_VAL(dest, val) ((dest) = ((dest & 0xffffff00) | \
(val & 0x000000ff)))
#define GET_CAUSE_TYPE(cause) (((cause) >> 8) & 0xff)
#define SET_CAUSE_TYPE(dest, type) ((dest) = ((dest & 0xffff00ff) | \
((type << 8) & 0x0000ff00)))
#define SET_CAUSE_TV(dest, type, val) ((dest) = ((val & 0x000000ff) | \
((type << 8) & 0x0000ff00)))
/* CAUSET_I4B - protocol independent cause values */
#define CAUSE_I4B_NORMAL 0 /* normal call clearing */
#define CAUSE_I4B_BUSY 1 /* user busy */
#define CAUSE_I4B_NOCHAN 2 /* circuit/channel not available*/
#define CAUSE_I4B_INCOMP 3 /* incompatible source/dest */
#define CAUSE_I4B_REJECT 4 /* call rejected */
#define CAUSE_I4B_OOO 5 /* destination out of order */
#define CAUSE_I4B_TMPFAIL 6 /* temporary failure */
#define CAUSE_I4B_L1ERROR 7 /* L1 error / persistent deact */
#define CAUSE_I4B_LLDIAL 8 /* no dialout on leased line */
#define CAUSE_I4B_MAX 9
/* NOTE: update isdnd/pcause.c when adding causes !!!!! */
/* NOTE: update layer3/i4b_q931.c when adding causes !!!!! */
/* CAUSET_Q850 - causes defined in Q.850 */
#define CAUSE_Q850_SHUTDN 0x00 /* normal D-channel shutdown */
#define CAUSE_Q850_NUNALLC 0x01 /* Unallocated (unassigned) number */
#define CAUSE_Q850_NRTTN 0x02 /* No route to specified transit network */
#define CAUSE_Q850_NRTDST 0x03 /* No route to destination */
#define CAUSE_Q850_SSINFTN 0x04 /* Send special information tone */
#define CAUSE_Q850_MDIALTP 0x05 /* Misdialled trunk prefix */
#define CAUSE_Q850_CHUNACC 0x06 /* Channel unacceptable */
#define CAUSE_Q850_CALLAWD 0x07 /* Call awarded and being delivered in an established channel */
#define CAUSE_Q850_PREEMPT 0x08 /* Preemption */
#define CAUSE_Q850_PREECRR 0x09 /* Preemption - circuit reserved for reuse */
#define CAUSE_Q850_NCCLR 0x10 /* Normal call clearing */
#define CAUSE_Q850_USRBSY 0x11 /* User busy */
#define CAUSE_Q850_NOUSRRSP 0x12 /* No user responding */
#define CAUSE_Q850_NOANSWR 0x13 /* No answer from user (user alerted) */
#define CAUSE_Q850_SUBSABS 0x14 /* Subscriber absent */
#define CAUSE_Q850_CALLREJ 0x15 /* Call rejected */
#define CAUSE_Q850_NUCHNG 0x16 /* Number changed */
#define CAUSE_Q850_NONSELUC 0x1A /* Non-selected user clearing */
#define CAUSE_Q850_DSTOOORDR 0x1B /* Destination out of order */
#define CAUSE_Q850_INVNUFMT 0x1C /* Invalid number format */
#define CAUSE_Q850_FACREJ 0x1D /* Facility rejected */
#define CAUSE_Q850_STENQRSP 0x1E /* Response to STATUS ENQUIRY */
#define CAUSE_Q850_NORMUNSP 0x1F /* Normal, unspecified */
#define CAUSE_Q850_NOCAVAIL 0x22 /* No circuit / channel available */
#define CAUSE_Q850_NETOOORDR 0x26 /* Network out of order */
#define CAUSE_Q850_PFMCDOOSERV 0x27 /* Permanent frame mode connection out of service */
#define CAUSE_Q850_PFMCOPER 0x28 /* Permanent frame mode connection operational */
#define CAUSE_Q850_TMPFAIL 0x29 /* Temporary failure */
#define CAUSE_Q850_SWEQCONG 0x2A /* Switching equipment congestion */
#define CAUSE_Q850_ACCINFDIS 0x2B /* Access information discarded */
#define CAUSE_Q850_REQCNOTAV 0x2C /* Requested circuit/channel not available */
#define CAUSE_Q850_PRECALBLK 0x2E /* Precedence call blocked */
#define CAUSE_Q850_RESUNAVAIL 0x2F /* Resources unavailable, unspecified */
#define CAUSE_Q850_QOSUNAVAIL 0x31 /* Quality of service unavailable */
#define CAUSE_Q850_REQSERVNS 0x32 /* Requested facility not subscribed */
#define CAUSE_Q850_OCBARRCUG 0x35 /* Outgoing calls barred within CUG */
#define CAUSE_Q850_ICBARRCUG 0x36 /* Incoming calls barred within CUG */
#define CAUSE_Q850_BCAPNAUTH 0x39 /* Bearer capability not authorized */
#define CAUSE_Q850_BCAPNAVAIL 0x3A /* Bearer capability not presently available */
#define CAUSE_Q850_INCSTOACISC 0x3E /* Inconsistenciy in designated outgoing access information and subscriber class */
#define CAUSE_Q850_SOONOTAVAIL 0x3F /* Service or option not available, unspecified */
#define CAUSE_Q850_BCAPNOTIMPL 0x41 /* Bearer capability not implemented */
#define CAUSE_Q850_CHTYPNIMPL 0x42 /* Channel type not implemented */
#define CAUSE_Q850_REQFACNIMPL 0x45 /* Requested facility not implemented */
#define CAUSE_Q850_ORDINBCAVL 0x46 /* Only restricted digital information bearer capability is available */
#define CAUSE_Q850_SOONOTIMPL 0x4F /* Service or option not implemented, unspecified */
#define CAUSE_Q850_INVCLRFVAL 0x51 /* Invalid call reference value */
#define CAUSE_Q850_IDCHDNOEX 0x52 /* Identified channel does not exist */
#define CAUSE_Q850_SUSCAEXIN 0x53 /* A suspended call exists, but this call identity does not */
#define CAUSE_Q850_CLIDINUSE 0x54 /* Call identity in use */
#define CAUSE_Q850_NOCLSUSP 0x55 /* No call suspended */
#define CAUSE_Q850_CLIDCLRD 0x56 /* Call having the requested call identity has been cleared */
#define CAUSE_Q850_UNOTMEMCUG 0x57 /* User not member of CUG */
#define CAUSE_Q850_INCDEST 0x58 /* Incompatible destination */
#define CAUSE_Q850_NONEXCUG 0x5A /* Non-existent CUG */
#define CAUSE_Q850_INVNTWSEL 0x5B /* Invalid transit network selection */
#define CAUSE_Q850_INVMSG 0x5F /* Invalid message, unspecified */
#define CAUSE_Q850_MIEMISS 0x60 /* Mandatory information element is missing */
#define CAUSE_Q850_MSGTNI 0x61 /* Message type non-existent or not implemented */
#define CAUSE_Q850_MSGNCMPT 0x62 /* Message not compatible with call state or message type non-existent or not implemented */
#define CAUSE_Q850_IENENI 0x63 /* Information element/parameter non-existent or not implemented */
#define CAUSE_Q850_INVIEC 0x64 /* Invalid information element contents */
#define CAUSE_Q850_MSGNCWCS 0x65 /* Message not compatible with call state */
#define CAUSE_Q850_RECOTIMEXP 0x66 /* Recovery on timer expiry */
#define CAUSE_Q850_PARMNENIPO 0x67 /* Parameter non-existent or not implemented, passed on */
#define CAUSE_Q850_MSGUNRDPRM 0x6E /* Message with unrecognized parameter, discarded */
#define CAUSE_Q850_PROTERR 0x6F /* Protocol error, unspecified */
#define CAUSE_Q850_INTWRKU 0x7F /* Interworking, unspecified */
#define CAUSE_Q850_MAX 128
#endif /* _I4B_CAUSE_H_ */

View file

@ -1,302 +0,0 @@
/*-
* Copyright (c) 1997, 2002 Hellmuth Michaelis. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*---------------------------------------------------------------------------
*
* i4b_debug.h - i4b debug header file
* -----------------------------------
*
* $FreeBSD$
*
* last edit-date: [Sun Mar 17 10:08:41 2002]
*
*---------------------------------------------------------------------------*/
#if !defined DO_I4B_DEBUG
# define DO_I4B_DEBUG 1 /* default = include debugging code */
#elif DO_I4B_DEBUG != 0
# undef DO_I4B_DEBUG
# define DO_I4B_DEBUG 1
#endif
#undef DO_I4B_MAXDEBUG /* default = disable ALL debug messages */
#if DO_I4B_DEBUG
extern unsigned int i4b_l1_debug;
extern unsigned int i4b_l2_debug;
extern unsigned int i4b_l3_debug;
extern unsigned int i4b_l4_debug;
#define NDBGL1(bits, fmt, args...) \
if(bits & i4b_l1_debug) \
{ printf("i4b-L1 %s: " fmt "\n", __func__ , ##args ); }
#define NDBGL2(bits, fmt, args...) \
if(bits & i4b_l2_debug) \
{ printf("i4b-L2 %s: " fmt "\n", __func__ , ##args ); }
#define NDBGL3(bits, fmt, args...) \
if(bits & i4b_l3_debug) \
{ printf("i4b-L3 %s: " fmt "\n", __func__ , ##args ); }
#define NDBGL4(bits, fmt, args...) \
if(bits & i4b_l4_debug) \
{ printf("i4b-L4 %s: " fmt "\n", __func__ , ##args ); }
#else /* !DO_I4B_DEBUG */
#define NDBGL1(bits, fmt, args...);
#define NDBGL2(bits, fmt, args...);
#define NDBGL3(bits, fmt, args...);
#define NDBGL4(bits, fmt, args...);
#endif /* DO_I4B_DEBUG */
/* Layer 1 */
#define L1_ERROR 0x000001 /* general error message*/
#define L1_PRIM 0x000002 /* interlayer primitives*/
#define L1_BCHAN 0x000004 /* B channel action */
#define L1_H_ERR 0x000008 /* HSCX errors */
#define L1_H_IRQ 0x000010 /* HSCX IRQ messages */
#define L1_I_ERR 0x000020 /* ISAC errors */
#define L1_I_MSG 0x000040 /* ISAC messages */
#define L1_I_SETUP 0x000080 /* ISAC setup messages */
#define L1_F_MSG 0x000100 /* FSM messages */
#define L1_F_ERR 0x000200 /* FSM error messages */
#define L1_T_MSG 0x000400 /* Timer messages */
#define L1_T_ERR 0x000800 /* Timer error messages */
#define L1_H_XFRERR 0x001000 /* HSCX data xfer error */
#define L1_I_CICO 0x002000 /* ISAC command in/out */
#define L1_S_MSG 0x004000 /* silent messages (soft-HDLC) */
#define L1_S_ERR 0x008000 /* error messages (soft-HDLC) */
#define L1_HFC_DBG 0x010000 /* HFC-S PCI messages */
#define L1_DEBUG_MAX 0x01ffef /* all messages on except IRQ! */
#define L1_DEBUG_ERR (L1_S_ERR | L1_H_ERR | L1_I_ERR | L1_F_ERR | L1_T_ERR | L1_ERROR)
#ifndef L1_DEBUG_DEFAULT
#ifdef DO_I4B_MAXDEBUG
#define L1_DEBUG_DEFAULT L1_DEBUG_MAX
#else
#define L1_DEBUG_DEFAULT L1_DEBUG_ERR
#endif
#endif
/* Layer 2 */
#define L2_ERROR 0x0001 /* general error message */
#define L2_PRIM 0x0002 /* interlayer primitives */
#define L2_U_MSG 0x0004 /* U frame messages */
#define L2_U_ERR 0x0008 /* U frame error messages */
#define L2_S_MSG 0x0010 /* S frame messages */
#define L2_S_ERR 0x0020 /* S frame error messages */
#define L2_I_MSG 0x0040 /* I frame messages */
#define L2_I_ERR 0x0080 /* I frame error messages */
#define L2_F_MSG 0x0100 /* FSM messages */
#define L2_F_ERR 0x0200 /* FSM error messages */
#define L2_T_MSG 0x0400 /* timer messages */
#define L2_T_ERR 0x0800 /* timer error messages */
#define L2_TEI_MSG 0x1000 /* TEI messages */
#define L2_TEI_ERR 0x2000 /* TEI error messages */
#define L2_DEBUG_MAX 0x3fff /* all messages on */
#define L2_DEBUG_ERR (L2_ERROR | L2_I_ERR | L2_F_ERR | L2_T_ERR | L2_S_ERR | L2_TEI_ERR | L2_U_ERR )
#ifndef L2_DEBUG_DEFAULT
#ifdef DO_I4B_MAXDEBUG
#define L2_DEBUG_DEFAULT L2_DEBUG_MAX
#else
#define L2_DEBUG_DEFAULT L2_DEBUG_ERR
#endif
#endif
/* Layer 3 */
#define L3_ERR 0x0001 /* general error message */
#define L3_MSG 0x0002 /* general message */
#define L3_F_MSG 0x0004 /* FSM messages */
#define L3_F_ERR 0x0008 /* FSM error messages */
#define L3_T_MSG 0x0010 /* timer messages */
#define L3_T_ERR 0x0020 /* timer error messages */
#define L3_P_MSG 0x0040 /* protocol messages */
#define L3_P_ERR 0x0080 /* protocol error messages */
#define L3_A_MSG 0x0100 /* AOC messages */
#define L3_A_ERR 0x0200 /* AOC error messages */
#define L3_PRIM 0x0400 /* messages exchanged */
#define L3_DEBUG_MAX 0x07ff /* all messages on */
#define L3_DEBUG_ERR (L3_ERR | L3_F_ERR | L3_T_ERR | L3_P_ERR | L3_A_ERR)
#ifndef L3_DEBUG_DEFAULT
#ifdef DO_I4B_MAXDEBUG
#define L3_DEBUG_DEFAULT L3_DEBUG_MAX
#else
#define L3_DEBUG_DEFAULT L3_DEBUG_ERR
#endif
#endif
/* Layer 4 */
#define L4_ERR 0x0001 /* general error message */
#define L4_MSG 0x0002 /* general message */
#define L4_TIMO 0x0004 /* b channel idle timeout msgs */
#define L4_DIALST 0x0008 /* network driver dial states */
#define L4_IPRDBG 0x0010 /* ipr driver debug messages */
#define L4_RBCHDBG 0x0020 /* rbch driver debug messages */
#define L4_ISPDBG 0x0040 /* isp driver debug messages */
#define L4_TELDBG 0x0080 /* tel driver debug messages */
#define L4_INGDBG 0x0100 /* ing driver debug messages */
#define L4_IAVCDBG 0x0200 /* AVM B1 driver debug messages */
#define L4_CAPIDBG 0x0400 /* CAPI driver debug messages */
#define L4_DEBUG_MAX 0x0fff /* all messages on */
#define L4_DEBUG_ERR L4_ERR
#ifndef L4_DEBUG_DEFAULT
#ifdef DO_I4B_MAXDEBUG
#define L4_DEBUG_DEFAULT L4_DEBUG_MAX
#else
#define L4_DEBUG_DEFAULT L4_DEBUG_ERR
#endif
#endif
/*---------------------------------------------------------------------------*
* ioctl via /dev/i4bctl:
* get/set current debug bits settings
*---------------------------------------------------------------------------*/
typedef struct {
unsigned int l1;
unsigned int l2;
unsigned int l3;
unsigned int l4;
} ctl_debug_t;
#define I4B_CTL_GET_DEBUG _IOR('C', 0, ctl_debug_t)
#define I4B_CTL_SET_DEBUG _IOW('C', 1, ctl_debug_t)
/*---------------------------------------------------------------------------*
* generic get chipset statistics
*---------------------------------------------------------------------------*/
/* for the ihfc-driver: structure for HFC-1/S/SP statistics */
typedef struct {
int txframes;
int rxframes;
int xdu;
int rdo;
int crc;
int rab;
} hfcstat_t;
/* for the isic-driver: structure for HSCX statistics */
typedef struct {
int unit; /* controller number */
int chan; /* channel number */
int vfr;
int rdo;
int crc;
int rab;
int xdu;
int rfo;
} hscxstat_t;
/* generic statistics structure */
struct chipstat {
int driver_type; /* type, L1DRVR_XXXX */
int driver_unit; /* the unit number */
int driver_bchannel; /* the B-channel */
union stats { /* union for all drivers */
hfcstat_t hfcstat; /* for ihfc driver, L1DRVR_IHFC */
hscxstat_t hscxstat; /* for isic driver, L1DRVR_ISIC */
} stats;
};
/* get statistics */
#define I4B_CTL_GET_CHIPSTAT _IOWR('C', 2, struct chipstat)
/* clear statistics */
#define I4B_CTL_CLR_CHIPSTAT _IOW('C', 3, struct chipstat)
/*---------------------------------------------------------------------------*
* get LAPD/Q.921 statistics
*---------------------------------------------------------------------------*/
typedef struct {
/* transmit */
u_long tx_i; /* I */
u_long tx_rr; /* RR */
u_long tx_rnr; /* RNR */
u_long tx_rej; /* REJ */
u_long tx_sabme; /* SABME*/
u_long tx_dm; /* DM */
u_long tx_disc; /* DISC */
u_long tx_ua; /* UA */
u_long tx_frmr; /* FRMR */
u_long tx_tei; /* TEI */
/* receive */
u_long rx_i; /* I */
u_long rx_rr; /* RR */
u_long rx_rnr; /* RNR */
u_long rx_rej; /* REJ */
u_long rx_sabme; /* SABME*/
u_long rx_tei; /* TEI */
u_long rx_ui; /* UI */
u_long rx_disc; /* DISC */
u_long rx_xid; /* XID */
u_long rx_dm; /* DM */
u_long rx_ua; /* UA */
u_long rx_frmr; /* FRMR */
/* errors */
u_long err_rx_len; /* incorrect length */
u_long err_rx_badf; /* bad frame type */
u_long err_rx_bads; /* bad s frame */
u_long err_rx_badu; /* bad u frame */
u_long err_rx_badui; /* bad ui frame */
} lapdstat_t;
typedef struct {
int unit;
lapdstat_t lapdstat;
} l2stat_t;
#define I4B_CTL_GET_LAPDSTAT _IOWR('C', 4, l2stat_t)
#define I4B_CTL_CLR_LAPDSTAT _IOW('C', 5, int)
/* EOF */

View file

@ -1,744 +0,0 @@
/*-
* Copyright (c) 1997, 2002 Hellmuth Michaelis. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*---------------------------------------------------------------------------
*
* i4b_ioctl.h - messages kernel <--> userland
* -------------------------------------------
*
* $FreeBSD$
*
* last edit-date: [Sun Aug 11 19:19:08 2002]
*
*---------------------------------------------------------------------------*/
#ifndef _I4B_IOCTL_H_
#define _I4B_IOCTL_H_
/*---------------------------------------------------------------------------*
* version and release number for isdn4bsd package
*---------------------------------------------------------------------------*/
#define VERSION 1 /* version number */
#define REL 4 /* release number */
#define STEP 1 /* release step */
/*---------------------------------------------------------------------------*
* date/time format in i4b log messages
* ------------------------------------
* Being year 2000 clean is not easy with the current state of the
* ANSI C library standard and it's implementation for some locales.
* You might like to use the "%c" format of "strftime" sometimes,
* but this breaks Y2K in some locales. Also the old standard logfile
* format "%d.%m.%y %H:%M:%S" is non compliant.
* NetBSD's current toolset warns about this problems, and we compile
* with -Werror, so this problems need to be resolved.
*---------------------------------------------------------------------------*/
#define I4B_TIME_FORMAT "%d.%m.%Y %H:%M:%S"
/*---------------------------------------------------------------------------*
* max number of controllers in system
*---------------------------------------------------------------------------*/
#define MAX_CONTROLLERS 8 /* max number of controllers */
/*---------------------------------------------------------------------------*
* ISDN D-channel protocols
*---------------------------------------------------------------------------*/
#define PROTOCOL_DSS1 0 /* default, Euro-ISDN/DSS1 */
#define PROTOCOL_D64S 1 /* 64k leased line, no protocol */
/*---------------------------------------------------------------------------*
* controller types
*---------------------------------------------------------------------------*/
#define CTRL_INVALID (-1) /* invalid, error */
#define CTRL_UNKNOWN 0 /* unknown controller type */
#define CTRL_PASSIVE 1 /* passive ISDN controller cards*/
#define CTRL_DAIC 2 /* Diehl active controller cards*/
#define CTRL_TINADD 3 /* Stollmann Tina-dd active card*/
#define CTRL_AVMB1 4 /* AVM B1 active card */
#define CTRL_CAPI 5 /* cards seen via the CAPI layer*/
#define CTRL_CAPIMGR 6 /* boards accessed through the CAPI manager */
#define CTRL_NUMTYPES 7 /* number of controller types */
/*---------------------------------------------------------------------------*
* CTRL_PASSIVE: driver types
*---------------------------------------------------------------------------*/
#define MAXL1UNITS 8 /* max number of units */
#define L1DRVR_ISIC 0 /* isic - driver */
#define L1DRVR_IWIC 1 /* iwic - driver */
#define L1DRVR_IFPI 2 /* ifpi - driver */
#define L1DRVR_IHFC 3 /* ihfc - driver */
#define L1DRVR_IFPNP 4 /* ifpnp - driver */
#define L1DRVR_ICCHP 5 /* icchp - driver */
#define L1DRVR_ITJC 6 /* itjc - driver */
#define L1DRVR_IFPI2 7 /* ifpi2 - driver */
/* MAXL1DRVR MUST be updated when more passive drivers are added !!! */
#define MAXL1DRVR (L1DRVR_IFPI2 + 1)
/*---------------------------------------------------------------------------*
* card types for CTRL_PASSIVE
*---------------------------------------------------------------------------*/
#define CARD_TYPEP_INVAL (-1) /* invalid, error */
#define CARD_TYPEP_UNK 0 /* unknown */
#define CARD_TYPEP_8 1 /* Teles, S0/8 */
#define CARD_TYPEP_16 2 /* Teles, S0/16 */
#define CARD_TYPEP_16_3 3 /* Teles, S0/16.3 */
#define CARD_TYPEP_AVMA1 4 /* AVM A1 or AVM Fritz!Card */
#define CARD_TYPEP_163P 5 /* Teles, S0/16.3 PnP */
#define CARD_TYPEP_CS0P 6 /* Creatix, S0 PnP */
#define CARD_TYPEP_USRTA 7 /* US Robotics ISDN TA internal */
#define CARD_TYPEP_DRNNGO 8 /* Dr. Neuhaus Niccy GO@ */
#define CARD_TYPEP_SWS 9 /* Sedlbauer Win Speed */
#define CARD_TYPEP_DYNALINK 10 /* Dynalink IS64PH */
#define CARD_TYPEP_BLMASTER 11 /* ISDN Blaster / ISDN Master */
#define CARD_TYPEP_PCFRITZ 12 /* AVM PCMCIA Fritz!Card */
#define CARD_TYPEP_ELSAQS1ISA 13 /* ELSA QuickStep 1000pro ISA */
#define CARD_TYPEP_ELSAQS1PCI 14 /* ELSA QuickStep 1000pro PCI */
#define CARD_TYPEP_SIEMENSITALK 15 /* Siemens I-Talk */
#define CARD_TYPEP_ELSAMLIMC 16 /* ELSA MicroLink ISDN/MC */
#define CARD_TYPEP_ELSAMLMCALL 17 /* ELSA MicroLink MCall */
#define CARD_TYPEP_ITKIX1 18 /* ITK ix1 micro */
#define CARD_TYPEP_AVMA1PCI 19 /* AVM FRITZ!CARD PCI */
#define CARD_TYPEP_PCC16 20 /* ELSA PCC-16 */
#define CARD_TYPEP_AVM_PNP 21 /* AVM FRITZ!CARD PnP */
#define CARD_TYPEP_SIE_ISURF2 22 /* Siemens I-Surf 2 PnP */
#define CARD_TYPEP_ASUSCOMIPAC 23 /* Asuscom ISDNlink 128 K PnP */
#define CARD_TYPEP_WINB6692 24 /* Winbond W6692 based */
#define CARD_TYPEP_16_3C 25 /* Teles S0/16.3c PnP (HFC-S/SP */
#define CARD_TYPEP_ACERP10 26 /* Acer ISDN P10 (HFC-S) */
#define CARD_TYPEP_TELEINT_NO_1 27 /* TELEINT ISDN SPEED No. 1 (HFC-1) */
#define CARD_TYPEP_CCD_HFCS_PCI 28 /* Cologne Chip HFC-S PCI based */
#define CARD_TYPEP_NETJET_S 29 /* Traverse NetJet-S (Tiger300) */
#define CARD_TYPEP_DIVA_ISA 30 /* Eicon DIVA ISA PnP 2.0 or 2.02 */
#define CARD_TYPEP_COMPAQ_M610 31 /* Compaq Microcom 610 */
#define CARD_TYPEP_AVMA1PCI_V2 32 /* AVM FRITZ!CARD PCI Ver. 2 */
/*
* in case you add support for more cards, please update:
*
* isdnd: controller.c, name_of_controller()
*
* and adjust CARD_TYPEP_MAX below.
*/
#define CARD_TYPEP_MAX 32 /* max type */
/*---------------------------------------------------------------------------*
* card types for CTRL_DAIC
*---------------------------------------------------------------------------*/
#define CARD_TYPEA_DAIC_UNK 0
#define CARD_TYPEA_DAIC_S 1
#define CARD_TYPEA_DAIC_SX 2
#define CARD_TYPEA_DAIC_SCOM 3
#define CARD_TYPEA_DAIC_QUAD 4
/*---------------------------------------------------------------------------*
* card types for CTRL_CAPI
*---------------------------------------------------------------------------*/
#define CARD_TYPEC_CAPI_UNK 0
#define CARD_TYPEC_AVM_T1_PCI 1
#define CARD_TYPEC_AVM_B1_PCI 2
#define CARD_TYPEC_AVM_B1_ISA 3
/*---------------------------------------------------------------------------*
* max length of some strings
*---------------------------------------------------------------------------*/
#define TELNO_MAX 41 /* max length of a telephone number (+ '\0') */
#define SUBADDR_MAX 21 /* max length of a subaddress (+ '\0') */
#define DISPLAY_MAX 91 /* max length of display information (+ '\0') */
#define DATETIME_MAX 21 /* max length of datetime information (+ '\0')*/
#define KEYPAD_MAX 35 /* max length of a keypad string (+ '\0') */
/*---------------------------------------------------------------------------*
* in case the src or dst telephone number is empty
*---------------------------------------------------------------------------*/
#define TELNO_EMPTY "NotAvailable"
/*---------------------------------------------------------------------------*
* B channel parameters
*---------------------------------------------------------------------------*/
#define BCH_MAX_DATALEN 2048 /* max length of a B channel frame */
/*---------------------------------------------------------------------------*
* userland driver types
* ---------------------
* a "driver" is defined here as a piece of software interfacing an
* ISDN B channel with a userland service, such as IP, Telephony etc.
*---------------------------------------------------------------------------*/
#define BDRV_RBCH 0 /* raw b-channel interface driver */
#define BDRV_TEL 1 /* telephone (speech) interface driver */
#define BDRV_IPR 2 /* IP over raw HDLC interface driver */
#define BDRV_ISPPP 3 /* sync Kernel PPP interface driver */
#define BDRV_IBC 4 /* BSD/OS point to point driver */
#define BDRV_ING 5 /* NetGraph ing driver */
/*---------------------------------------------------------------------------*
* B channel protocol
*---------------------------------------------------------------------------*/
#define BPROT_NONE 0 /* no protocol at all, raw data */
#define BPROT_RHDLC 1 /* raw HDLC: flag, data, crc, flag */
/*---------------------------------------------------------------------------*
* special bearer capability settings (i.e. Data over Voice)
*---------------------------------------------------------------------------*/
#define BCAP_NONE 0 /* no special bearer capability */
#define BCAP_DOV 1 /* Data over Voice */
/*---------------------------------------------------------------------------*
* causes data type
*---------------------------------------------------------------------------*/
typedef unsigned int cause_t; /* 32 bit unsigned int */
/*---------------------------------------------------------------------------*
* call descriptor id (cdid) definitions
*---------------------------------------------------------------------------*/
#define CDID_UNUSED 0 /* cdid is invalid and unused */
#define CDID_MAX 99999 /* highest valid cdid, wraparound to 1 */
/*---------------------------------------------------------------------------*
* The shorthold algorithm to use
*---------------------------------------------------------------------------*/
#define SHA_FIXU 0 /* timeout algorithm for fix unit charging */
#define SHA_VARU 1 /* timeout algorithm for variable unit charging */
/*---------------------------------------------------------------------------*
* The shorthold data struct
*---------------------------------------------------------------------------*/
typedef struct {
int shorthold_algorithm; /* shorthold algorithm to use */
int unitlen_time; /* length of a charging unit */
int idle_time; /* time without activity on b ch*/
int earlyhup_time; /* safety area at end of unit */
} msg_shorthold_t;
/****************************************************************************
outgoing call:
--------------
userland kernel
-------- ------
CDID_REQ ----------------->
<------------------ cdid
CONNECT_REQ -------------->
<------------------ PROCEEDING_IND (if connect req ok)
<------------------ CONNECT_ACTIVE_IND (if connection ok)
or
<------------------ DISCONNECT_IND (if connection failed)
incoming call:
--------------
userland kernel
-------- ------
<------------------ CONNECT_IND
CONNECT_RESP ------------->
<------------------ CONNECT_ACTIVE_IND (if accepted)
active disconnect:
------------------
userland kernel
-------- ------
DISCONNECT_REQ ------------>
<------------------ DISCONNECT_IND
passive disconnect:
-------------------
userland kernel
-------- ------
<------------------ DISCONNECT_IND
****************************************************************************/
/*===========================================================================*
*===========================================================================*
* "read" messages from kernel -> userland
*===========================================================================*
*===========================================================================*/
/*---------------------------------------------------------------------------*
* message header, included in every message
*---------------------------------------------------------------------------*/
typedef struct {
char type; /* message identifier */
#define MSG_CONNECT_IND 'a'
#define MSG_CONNECT_ACTIVE_IND 'b'
#define MSG_DISCONNECT_IND 'c'
#define MSG_DIALOUT_IND 'd'
#define MSG_IDLE_TIMEOUT_IND 'e'
#define MSG_ACCT_IND 'f'
#define MSG_CHARGING_IND 'g'
#define MSG_PROCEEDING_IND 'h'
#define MSG_ALERT_IND 'i'
#define MSG_DRVRDISC_REQ 'j'
#define MSG_L12STAT_IND 'k'
#define MSG_TEIASG_IND 'l'
#define MSG_PDEACT_IND 'm'
#define MSG_NEGCOMP_IND 'n'
#define MSG_IFSTATE_CHANGED_IND 'o'
#define MSG_DIALOUTNUMBER_IND 'p'
#define MSG_PACKET_IND 'q'
#define MSG_KEYPAD_IND 'r'
int cdid; /* call descriptor id */
} msg_hdr_t;
/*---------------------------------------------------------------------------*
* connect indication
* indicates incoming connection
*---------------------------------------------------------------------------*/
typedef struct {
msg_hdr_t header; /* common header */
int controller; /* controller number */
int channel; /* channel number */
#define CHAN_B1 0 /* this _must_ be 0, HSCX B1 is also 0 */
#define CHAN_B2 1 /* this _must_ be 1, HSCX B2 is also 1 */
#define CHAN_ANY (-1) /* outgoing, not possible for incoming */
#define CHAN_NO (-2) /* call waiting (CW) for incoming */
int bprot; /* b channel protocot, see BPROT_XXX */
int bcap; /* special bearer capability, see BCAP_XXX */
char dst_telno[TELNO_MAX]; /* destination telno */
char dst_subaddr[SUBADDR_MAX]; /* dest subaddr */
char src_telno[TELNO_MAX]; /* source telno */
char src_subaddr[SUBADDR_MAX]; /* src subaddr */
int dst_ton; /* dest. type of number */
int src_ton; /* src. type of number */
#define TON_OTHER 0 /* other type of number */
#define TON_INTERNAT 1 /* international number */
#define TON_NATIONAL 2 /* national number */
int scr_ind;/* screening indicator */
#define SCR_NONE 0 /* no screening indicator transmitted */
#define SCR_USR_NOSC 1 /* screening user provided, not screened*/
#define SCR_USR_PASS 2 /* screening user provided, verified & passed */
#define SCR_USR_FAIL 3 /* screening user provided, verified & failed */
#define SCR_NET 4 /* screening network provided */
int prs_ind;/* presentation indicator */
#define PRS_NONE 0 /* no presentation indicator transmitted*/
#define PRS_ALLOWED 1 /* presentation allowed */
#define PRS_RESTRICT 2 /* presentation restricted */
#define PRS_NNINTERW 3 /* number not available due to interworking */
#define PRS_RESERVED 4 /* reserved */
char display[DISPLAY_MAX]; /* content of display IE*/
} msg_connect_ind_t;
/*---------------------------------------------------------------------------*
* connect active indication
* indicates active connection
*---------------------------------------------------------------------------*/
typedef struct {
msg_hdr_t header; /* common header */
int controller; /* controller number actually used */
int channel; /* channel number actually used */
char datetime[DATETIME_MAX]; /* content of date/time IE */
} msg_connect_active_ind_t;
/*---------------------------------------------------------------------------*
* disconnect indication
* indicates a disconnect
*---------------------------------------------------------------------------*/
typedef struct {
msg_hdr_t header; /* common header */
cause_t cause; /* cause code */
} msg_disconnect_ind_t;
/*---------------------------------------------------------------------------*
* negotiation complete
* indicates an interface is completely up & running
*---------------------------------------------------------------------------*/
typedef struct {
msg_hdr_t header; /* common header */
} msg_negcomplete_ind_t;
/*---------------------------------------------------------------------------*
* interface changes internal state
* indicates an interface has somehow switched its FSM
*---------------------------------------------------------------------------*/
typedef struct {
msg_hdr_t header; /* common header */
int state; /* new interface state */
} msg_ifstatechg_ind_t;
/*---------------------------------------------------------------------------*
* initiate a call to a remote site
* i.e. the IP driver got a packet and wants a connection
*---------------------------------------------------------------------------*/
typedef struct {
msg_hdr_t header; /* common header */
int driver; /* driver type */
int driver_unit; /* driver unit number */
} msg_dialout_ind_t;
/*---------------------------------------------------------------------------*
* dial a number
*---------------------------------------------------------------------------*/
typedef struct {
msg_hdr_t header; /* common header */
int driver; /* driver type */
int driver_unit; /* driver unit number */
int cmdlen; /* length of string */
int subaddrlen; /* length of subaddr */
char cmd[TELNO_MAX]; /* the number to dial */
char subaddr[SUBADDR_MAX]; /* dest subaddr */
} msg_dialoutnumber_ind_t;
/*---------------------------------------------------------------------------*
* send keypad string
*---------------------------------------------------------------------------*/
typedef struct {
msg_hdr_t header; /* common header */
int driver; /* driver type */
int driver_unit; /* driver unit number */
int cmdlen; /* length of string */
char cmd[KEYPAD_MAX];/* keypad string */
} msg_keypad_ind_t;
/*---------------------------------------------------------------------------*
* idle timeout disconnect sent indication
* kernel has sent disconnect request because of b-ch idle
*---------------------------------------------------------------------------*/
typedef struct {
msg_hdr_t header; /* common header */
} msg_idle_timeout_ind_t;
/*---------------------------------------------------------------------------*
* accounting information from userland interface driver to daemon
*---------------------------------------------------------------------------*/
typedef struct {
msg_hdr_t header; /* common header */
int accttype; /* accounting type */
#define ACCT_DURING 0
#define ACCT_FINAL 1
int driver; /* driver type */
int driver_unit; /* driver unit number */
int ioutbytes; /* ISDN # of bytes sent */
int iinbytes; /* ISDN # of bytes received */
int outbps; /* bytes per sec out */
int inbps; /* bytes per sec in */
int outbytes; /* driver # of bytes sent */
int inbytes; /* driver # of bytes received */
} msg_accounting_ind_t;
/*---------------------------------------------------------------------------*
* charging information from isdn driver to daemon
*---------------------------------------------------------------------------*/
typedef struct {
msg_hdr_t header; /* common header */
int units; /* number of units */
int units_type; /* type of units info */
#define CHARGE_INVALID 0 /* invalid, unknown */
#define CHARGE_AOCD 1 /* advice of charge during call */
#define CHARGE_AOCE 2 /* advice of charge at end of call */
#define CHARGE_CALC 3 /* locally calculated from rates information */
} msg_charging_ind_t;
/*---------------------------------------------------------------------------*
* call proceeding indication
* indicates outgoing SETUP has been acknowleged
*---------------------------------------------------------------------------*/
typedef struct {
msg_hdr_t header; /* common header */
int controller; /* controller number actually used */
int channel; /* channel number actually used */
} msg_proceeding_ind_t;
/*---------------------------------------------------------------------------*
* alert indication
* indicates remote user side "rings"
*---------------------------------------------------------------------------*/
typedef struct {
msg_hdr_t header; /* common header */
} msg_alert_ind_t;
/*---------------------------------------------------------------------------*
* driver requests to disconnect line
*---------------------------------------------------------------------------*/
typedef struct {
msg_hdr_t header; /* common header */
int driver; /* driver type */
int driver_unit; /* driver unit number */
} msg_drvrdisc_req_t;
/*---------------------------------------------------------------------------*
* connect packet logging
*---------------------------------------------------------------------------*/
typedef struct {
msg_hdr_t header; /* common header */
int driver; /* driver type */
int driver_unit; /* driver unit number */
int direction; /* 0=in 1=out */
#define DIRECTION_IN 0 /* sending packet to remote */
#define DIRECTION_OUT 1 /* received packet from remote */
#define MAX_PACKET_LOG 40 /* space for IP and TCP header */
u_int8_t pktdata[MAX_PACKET_LOG];
} msg_packet_ind_t;
/*---------------------------------------------------------------------------*
* state of layer 1/2
*---------------------------------------------------------------------------*/
typedef struct {
msg_hdr_t header; /* common header */
int controller; /* controller unit */
int layer; /* layer number (1/2) */
#define LAYER_ONE 1
#define LAYER_TWO 2
int state; /* state info */
#define LAYER_IDLE 0
#define LAYER_ACTIVE 1
} msg_l12stat_ind_t;
/*---------------------------------------------------------------------------*
* TEI assignment messages
*---------------------------------------------------------------------------*/
typedef struct {
msg_hdr_t header; /* common header */
int controller; /* controller unit */
int tei; /* TEI or -1 if invalid */
} msg_teiasg_ind_t;
/*---------------------------------------------------------------------------*
* persistent deactivation state of stack
*---------------------------------------------------------------------------*/
typedef struct {
msg_hdr_t header; /* common header */
int controller; /* controller unit */
int numactive; /* number of active connections */
} msg_pdeact_ind_t;
/*===========================================================================*
*===========================================================================*
* "ioctl" messages from userland -> kernel
*===========================================================================*
*===========================================================================*/
/*---------------------------------------------------------------------------*
* request a unique cdid (to setup an outgoing call)
*---------------------------------------------------------------------------*/
typedef struct {
int cdid; /* call descriptor id */
} msg_cdid_req_t;
#define I4B_CDID_REQ _IOWR('4', 0, int)
/*---------------------------------------------------------------------------*
* connect request
* requests an outgoing connection
*---------------------------------------------------------------------------*/
typedef struct {
int cdid; /* call descriptor id */
int controller; /* controller to use */
int channel; /* channel to use */
int txdelay; /* tx delay after connect */
int bprot; /* b channel protocol */
int bcap; /* special bearer capability */
int driver; /* driver to route b channel data to */
int driver_unit; /* unit number for above driver */
msg_shorthold_t shorthold_data; /* the shorthold data */
int unitlen_method; /* how to calculate the unitlength */
#define ULEN_METHOD_STATIC 0 /* use unitlen_time value (see above) */
#define ULEN_METHOD_DYNAMIC 1 /* use AOCD */
char dst_telno[TELNO_MAX]; /* destination telephone no */
char dst_subaddr[SUBADDR_MAX]; /* dest subaddr */
char src_telno[TELNO_MAX]; /* source telephone number */
char src_subaddr[SUBADDR_MAX]; /* source subaddr */
char keypad[KEYPAD_MAX]; /* keypad string */
} msg_connect_req_t;
#define I4B_CONNECT_REQ _IOW('4', 1, msg_connect_req_t)
/*---------------------------------------------------------------------------*
* connect response
* this is the answer to an incoming connect indication
*---------------------------------------------------------------------------*/
typedef struct {
int cdid; /* call descriptor id */
int response; /* what to do with incoming call */
#define SETUP_RESP_DNTCRE 0 /* dont care, call is not for me */
#define SETUP_RESP_REJECT 1 /* reject call */
#define SETUP_RESP_ACCEPT 2 /* accept call */
cause_t cause; /* cause for case SETUP_RESP_REJECT */
/* the following are only used for SETUP_RESP_ACCEPT !! */
int txdelay; /* tx delay after connect */
int bprot; /* B chan protocol */
int bcap; /* special bearer capability */
int driver; /* driver to route b channel data to */
int driver_unit; /* unit number for above driver */
int max_idle_time; /* max time without activity on b ch */
} msg_connect_resp_t;
#define I4B_CONNECT_RESP _IOW('4', 2, msg_connect_resp_t)
/*---------------------------------------------------------------------------*
* disconnect request
* active disconnect request
*---------------------------------------------------------------------------*/
typedef struct {
int cdid; /* call descriptor id */
cause_t cause; /* protocol independent cause */
} msg_discon_req_t;
#define I4B_DISCONNECT_REQ _IOW('4', 3, msg_discon_req_t)
/*---------------------------------------------------------------------------*
* controller info request
*---------------------------------------------------------------------------*/
typedef struct {
int controller; /* controller number */
int ncontroller; /* number of controllers in system */
int ctrl_type; /* controller type passive/active */
int card_type; /* brand / version */
int tei; /* tei controller probably has */
int nbch; /* number of b channels provided */
} msg_ctrl_info_req_t;
#define I4B_CTRL_INFO_REQ _IOWR('4', 4, msg_ctrl_info_req_t)
/*---------------------------------------------------------------------------*
* dialout response
* status report to driver who requested a dialout
*---------------------------------------------------------------------------*/
typedef struct {
int driver; /* driver to route b channel data to */
int driver_unit; /* unit number for above driver */
int stat; /* state of dialout request */
#define DSTAT_NONE 0
#define DSTAT_TFAIL 1 /* transient failure */
#define DSTAT_PFAIL 2 /* permanent failure */
#define DSTAT_INONLY 3 /* no outgoing dials allowed */
cause_t cause; /* exact i4b cause */
} msg_dialout_resp_t;
#define I4B_DIALOUT_RESP _IOW('4', 5, msg_dialout_resp_t)
/*---------------------------------------------------------------------------*
* timeout value update
*---------------------------------------------------------------------------*/
typedef struct {
int cdid; /* call descriptor id */
msg_shorthold_t shorthold_data;
} msg_timeout_upd_t;
#define I4B_TIMEOUT_UPD _IOW('4', 6, msg_timeout_upd_t)
/*---------------------------------------------------------------------------*
* soft enable/disable
*---------------------------------------------------------------------------*/
typedef struct {
int driver; /* driver to route b channel data to */
int driver_unit; /* unit number for above driver */
int updown; /* what to do */
#define SOFT_ENA 0 /* enable interface */
#define SOFT_DIS 1 /* disable interface */
} msg_updown_ind_t;
#define I4B_UPDOWN_IND _IOW('4', 7, msg_updown_ind_t)
/*---------------------------------------------------------------------------*
* send alert request
*---------------------------------------------------------------------------*/
typedef struct {
int cdid; /* call descriptor id */
} msg_alert_req_t;
#define I4B_ALERT_REQ _IOW('4', 8, msg_alert_req_t)
/*---------------------------------------------------------------------------*
* request version and release info from kernel part
* (msg_vr_req_t is also used by tel & rbch drivers)
*---------------------------------------------------------------------------*/
typedef struct {
int version; /* version number */
int release; /* release number */
int step; /* release step number */
} msg_vr_req_t;
#define I4B_VR_REQ _IOR('4', 9, msg_vr_req_t)
/*---------------------------------------------------------------------------*
* set ISDN protocol used by a controller
*---------------------------------------------------------------------------*/
typedef struct {
int controller; /* controller number */
int protocol; /* ISDN D-channel protocol type */
} msg_prot_ind_t;
#define I4B_PROT_IND _IOW('4', 10, msg_prot_ind_t)
/*---------------------------------------------------------------------------*
* Protocol download to active cards
*---------------------------------------------------------------------------*/
struct isdn_dr_prot {
size_t bytecount; /* length of code */
u_int8_t *microcode; /* pointer to microcode */
};
struct isdn_download_request {
int controller; /* controller number */
int numprotos; /* number of protocols in 'protocols' */
struct isdn_dr_prot *protocols;
};
#define I4B_CTRL_DOWNLOAD _IOW('4', 100, struct isdn_download_request)
/*---------------------------------------------------------------------------*
* Generic diagnostic interface for active cards
*---------------------------------------------------------------------------*/
struct isdn_diagnostic_request {
int controller; /* controller number */
u_int32_t cmd; /* diagnostic command to execute */
size_t in_param_len; /* length of additional input parameter */
#define I4B_ACTIVE_DIAGNOSTIC_MAXPARAMLEN 65536
void *in_param; /* optional input parameter */
size_t out_param_len; /* available output space */
void *out_param; /* output data goes here */
};
#define I4B_ACTIVE_DIAGNOSTIC _IOW('4', 102, struct isdn_diagnostic_request)
#endif /* _I4B_IOCTL_H_ */

View file

@ -1,54 +0,0 @@
/*-
* Copyright (c) 1999, 2002 Hellmuth Michaelis. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*---------------------------------------------------------------------------
*
* i4b_rbch_ioctl.h raw B-channel driver interface ioctls
* ------------------------------------------------------
*
* $FreeBSD$
*
* last edit-date: [Sun Mar 17 10:10:25 2002]
*
*---------------------------------------------------------------------------*/
#ifndef _I4B_RBCH_IOCTL_H_
#define _I4B_RBCH_IOCTL_H_
/*---------------------------------------------------------------------------*
* instruct the rbch device to dial the given number
*---------------------------------------------------------------------------*/
typedef char telno_t[TELNO_MAX];
#define I4B_RBCH_DIALOUT _IOW('R', 1, telno_t)
/*---------------------------------------------------------------------------*
* request version and release info from kernel part
*---------------------------------------------------------------------------*/
#define I4B_RBCH_VR_REQ _IOR('R', 2, msg_vr_req_t)
#endif /* _I4B_RBCH_IOCTL_H_ */

View file

@ -1,94 +0,0 @@
/*-
* Copyright (c) 1997, 2002 Hellmuth Michaelis. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*---------------------------------------------------------------------------
*
* i4b_tel_ioctl.h telephony interface ioctls
* ------------------------------------------
*
* $FreeBSD$
*
* last edit-date: [Sun Mar 17 10:10:39 2002]
*
*---------------------------------------------------------------------------*/
#ifndef _I4B_TEL_IOCTL_H_
#define _I4B_TEL_IOCTL_H_
/*===========================================================================*
* /dev/i4btel<n> devices (audio data)
*===========================================================================*/
/* supported audio format conversions */
#define CVT_NONE 0 /* no A-law/u-law conversion */
#define CVT_ALAW2ULAW 1 /* ISDN line: A-law, user: u-law */
#define CVT_ULAW2ALAW 2 /* ISDN line: u-law, user: A-law */
/*---------------------------------------------------------------------------*
* get / set audio format
*---------------------------------------------------------------------------*/
#define I4B_TEL_GETAUDIOFMT _IOR('A', 0, int)
#define I4B_TEL_SETAUDIOFMT _IOW('A', 1, int)
#define I4B_TEL_EMPTYINPUTQUEUE _IOW('A', 2, int)
/*---------------------------------------------------------------------------*
* request version and release info from kernel part
*---------------------------------------------------------------------------*/
#define I4B_TEL_VR_REQ _IOR('A', 3, msg_vr_req_t)
/*---------------------------------------------------------------------------*
* send tones out of the tel interface
*---------------------------------------------------------------------------*/
#define I4B_TEL_MAXTONES 32
struct i4b_tel_tones {
int frequency[I4B_TEL_MAXTONES];
int duration[I4B_TEL_MAXTONES];
};
#define I4B_TEL_TONES _IOR('A', 4, struct i4b_tel_tones)
/*===========================================================================*
* /dev/i4bteld<n> devices (dialer interface)
*===========================================================================*/
/* dialer commands */
#define CMD_DIAL 'D' /* dial the following number string */
#define CMD_HUP 'H' /* hangup */
#define CMD_KEYP 'K' /* send keypad string */
/* dialer responses */
#define RSP_CONN '0' /* connect */
#define RSP_BUSY '1' /* busy */
#define RSP_HUP '2' /* hangup */
#define RSP_NOA '3' /* no answer */
#endif /* _I4B_TEL_IOCTL_H_ */

View file

@ -1,91 +0,0 @@
/*-
* Copyright (c) 1997, 2002 Hellmuth Michaelis. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*---------------------------------------------------------------------------
*
* i4b_trace.h - header file for trace data read device
* ----------------------------------------------------
*
* $FreeBSD$
*
* last edit-date: [Sun Mar 17 10:10:52 2002]
*
*---------------------------------------------------------------------------*/
#ifndef _I4B_TRACE_H_
#define _I4B_TRACE_H_
/*---------------------------------------------------------------------------*
* structure of the header at the beginning of every trace mbuf
*---------------------------------------------------------------------------*/
typedef struct {
int length; /* length of the following mbuf */
int unit; /* controller unit number */
int type; /* type of channel */
#define TRC_CH_I 0 /* Layer 1 INFO's */
#define TRC_CH_D 1 /* D channel */
#define TRC_CH_B1 2 /* B1 channel */
#define TRC_CH_B2 3 /* B2 channel */
int dir; /* direction */
#define FROM_TE 0 /* user -> network */
#define FROM_NT 1 /* network -> user */
int trunc; /* # of truncated bytes (frame > MCLBYTES) */
unsigned int count; /* frame count for this unit/type */
struct timeval time; /* timestamp for this frame */
} i4b_trace_hdr_t;
#define INFO0 0 /* layer 1 */
#define INFO1_8 1
#define INFO1_10 2
#define INFO2 3
#define INFO3 4
#define INFO4_8 5
#define INFO4_10 6
/*---------------------------------------------------------------------------*
* ioctl via /dev/i4btrc device(s):
* get/set current trace flag settings
*---------------------------------------------------------------------------*/
#define I4B_TRC_SET _IOW('T', 0, int) /* set trace settings */
#define TRACE_OFF 0x00 /* tracing off */
#define TRACE_I 0x01 /* trace L1 INFO's on */
#define TRACE_D_TX 0x02 /* trace D channel on */
#define TRACE_D_RX 0x04 /* trace D channel on */
#define TRACE_B_TX 0x08 /* trace B channel on */
#define TRACE_B_RX 0x10 /* trace B channel on */
typedef struct {
int rxunit; /* unit # for rx frames */
int rxflags; /* d and/or b channel */
int txunit; /* unit # for tx frames */
int txflags; /* d and/or b channel */
} i4b_trace_setupa_t;
#define I4B_TRC_SETA _IOW('T', 1, i4b_trace_setupa_t) /* set analyze mode */
#define I4B_TRC_RESETA _IOW('T', 2, int) /* reset analyze mode */
#endif /* _I4B_TRACE_H_ */