150ee11fe383255db8e5c3307319d470015616f27Bob Beers#ifndef _INC_LIBSBEW_H_
250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define _INC_LIBSBEW_H_
350ee11fe383255db8e5c3307319d470015616f27Bob Beers
450ee11fe383255db8e5c3307319d470015616f27Bob Beers/*-----------------------------------------------------------------------------
550ee11fe383255db8e5c3307319d470015616f27Bob Beers * libsbew.h - common library elements, charge across mulitple boards
650ee11fe383255db8e5c3307319d470015616f27Bob Beers *
750ee11fe383255db8e5c3307319d470015616f27Bob Beers *   This file contains common Ioctl structures and contents definitions.
850ee11fe383255db8e5c3307319d470015616f27Bob Beers *
950ee11fe383255db8e5c3307319d470015616f27Bob Beers * Copyright (C) 2004-2005  SBE, Inc.
1050ee11fe383255db8e5c3307319d470015616f27Bob Beers *
1150ee11fe383255db8e5c3307319d470015616f27Bob Beers *   This program is free software; you can redistribute it and/or modify
1250ee11fe383255db8e5c3307319d470015616f27Bob Beers *   it under the terms of the GNU General Public License as published by
1350ee11fe383255db8e5c3307319d470015616f27Bob Beers *   the Free Software Foundation; either version 2 of the License, or
1450ee11fe383255db8e5c3307319d470015616f27Bob Beers *   (at your option) any later version.
1550ee11fe383255db8e5c3307319d470015616f27Bob Beers *
1650ee11fe383255db8e5c3307319d470015616f27Bob Beers *   This program is distributed in the hope that it will be useful,
1750ee11fe383255db8e5c3307319d470015616f27Bob Beers *   but WITHOUT ANY WARRANTY; without even the implied warranty of
1850ee11fe383255db8e5c3307319d470015616f27Bob Beers *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1950ee11fe383255db8e5c3307319d470015616f27Bob Beers *   GNU General Public License for more details.
2050ee11fe383255db8e5c3307319d470015616f27Bob Beers *
2150ee11fe383255db8e5c3307319d470015616f27Bob Beers * For further information, contact via email: support@sbei.com
2250ee11fe383255db8e5c3307319d470015616f27Bob Beers * SBE, Inc.  San Ramon, California  U.S.A.
2350ee11fe383255db8e5c3307319d470015616f27Bob Beers *-----------------------------------------------------------------------------
2450ee11fe383255db8e5c3307319d470015616f27Bob Beers */
2550ee11fe383255db8e5c3307319d470015616f27Bob Beers
2650ee11fe383255db8e5c3307319d470015616f27Bob Beers/********************************/
2750ee11fe383255db8e5c3307319d470015616f27Bob Beers/**  set driver logging level  **/
2850ee11fe383255db8e5c3307319d470015616f27Bob Beers/********************************/
2950ee11fe383255db8e5c3307319d470015616f27Bob Beers
3050ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_set_loglevel() - SBE_IOC_SET_LOGLEVEL */
3150ee11fe383255db8e5c3307319d470015616f27Bob Beers
3250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_NONE          0
3350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_ERROR         1
3450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_SBEBUG3       3     /* hidden, for development/debug usage */
3550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_LSCHANGE      5     /* line state change logging */
3650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_LSIMMEDIATE   6     /* line state change logging w/o hysterisis */
3750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_WARN          8
3850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_MONITOR      10
3950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_SBEBUG12     12     /* hidden, for development/debug usage */
4050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_MONITOR2     14     /* hidden, for development/debug usage */
4150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_DEBUG        16
4250ee11fe383255db8e5c3307319d470015616f27Bob Beers
4350ee11fe383255db8e5c3307319d470015616f27Bob Beers    /* TEMPORARY DEFINES *//* RLD DEBUG */
4450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define c4_LOG_NONE      LOG_NONE
4550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define c4_LOG_ERROR     LOG_ERROR
4650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define c4_LOG_WARN      LOG_WARN
4750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define c4_LOG_sTrace    LOG_MONITOR    /* do some trace logging into
4850ee11fe383255db8e5c3307319d470015616f27Bob Beers                                         * functions */
4950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define c4_LOG_DEBUG     LOG_DEBUG
5050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define c4_LOG_MAX       LOG_DEBUG
5150ee11fe383255db8e5c3307319d470015616f27Bob Beers
5250ee11fe383255db8e5c3307319d470015616f27Bob Beers
5350ee11fe383255db8e5c3307319d470015616f27Bob Beers
5450ee11fe383255db8e5c3307319d470015616f27Bob Beers/******************************/
5550ee11fe383255db8e5c3307319d470015616f27Bob Beers/**  get driver information  **/
5650ee11fe383255db8e5c3307319d470015616f27Bob Beers/******************************/
5750ee11fe383255db8e5c3307319d470015616f27Bob Beers
5850ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_get_drvinfo() - SBE_IOC_GET_DRVINFO */
5950ee11fe383255db8e5c3307319d470015616f27Bob Beers
6050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define REL_STRLEN   80
6150ee11fe383255db8e5c3307319d470015616f27Bob Beers    struct sbe_drv_info
6250ee11fe383255db8e5c3307319d470015616f27Bob Beers    {
6350ee11fe383255db8e5c3307319d470015616f27Bob Beers        int         rel_strlen;
6450ee11fe383255db8e5c3307319d470015616f27Bob Beers        char        release[REL_STRLEN];
6550ee11fe383255db8e5c3307319d470015616f27Bob Beers    };
6650ee11fe383255db8e5c3307319d470015616f27Bob Beers
6750ee11fe383255db8e5c3307319d470015616f27Bob Beers
6850ee11fe383255db8e5c3307319d470015616f27Bob Beers/*****************************/
6950ee11fe383255db8e5c3307319d470015616f27Bob Beers/**  get board information  **/
7050ee11fe383255db8e5c3307319d470015616f27Bob Beers/*****************************/
7150ee11fe383255db8e5c3307319d470015616f27Bob Beers
7250ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_get_brdinfo() - SBE_IOC_GET_BRDINFO */
7350ee11fe383255db8e5c3307319d470015616f27Bob Beers
7450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CHNM_STRLEN   16
7550ee11fe383255db8e5c3307319d470015616f27Bob Beers    struct sbe_brd_info
7650ee11fe383255db8e5c3307319d470015616f27Bob Beers    {
7750ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int32_t brd_id;       /* SBE's unique PCI VENDOR/DEVID */
7850ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int32_t   brd_sn;
7950ee11fe383255db8e5c3307319d470015616f27Bob Beers        int         brd_chan_cnt;       /* number of channels being used */
8050ee11fe383255db8e5c3307319d470015616f27Bob Beers        int         brd_port_cnt;       /* number of ports being used */
8150ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned char brdno;    /* our board number */
8250ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned char brd_pci_speed;    /* PCI speed, 33/66Mhz */
8350ee11fe383255db8e5c3307319d470015616f27Bob Beers                    u_int8_t brd_mac_addr[6];
8450ee11fe383255db8e5c3307319d470015616f27Bob Beers        char        first_iname[CHNM_STRLEN];   /* first assigned channel's
8550ee11fe383255db8e5c3307319d470015616f27Bob Beers                                                 * interface name */
8650ee11fe383255db8e5c3307319d470015616f27Bob Beers        char        last_iname[CHNM_STRLEN];    /* last assigned channel's
8750ee11fe383255db8e5c3307319d470015616f27Bob Beers                                                 * interface name */
8850ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    brd_hdw_id; /* on/board unique hdw ID */
8950ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    reserved8[3];       /* alignment preservation */
9050ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int32_t   reserved32[3];      /* size preservation */
9150ee11fe383255db8e5c3307319d470015616f27Bob Beers    };
9250ee11fe383255db8e5c3307319d470015616f27Bob Beers
9350ee11fe383255db8e5c3307319d470015616f27Bob Beers/* These IDs are sometimes available thru pci_ids.h, but not currently. */
9450ee11fe383255db8e5c3307319d470015616f27Bob Beers
9550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_VENDOR_ID_SBE              0x1176
9650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPMC_C4T1E1    0x0701   /* BID 0x0X, BTYP 0x0X */
9750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPTMC_C4T1E1   0x0702   /* BID 0x41 */
9850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANADAPT_HC4T1E1 0x0703   /* BID 0x44 */
9950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPTMC_256T3_T1 0x0704   /* BID 0x42 (T1 Version) */
10050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPCI_C4T1E1    0x0705   /* BID 0x1X, BTYP 0x0X */
10150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPMC_C1T3      0x0706   /* BID 0x45 */
10250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPCI_C2T1E1    0x0707   /* BID 0x1X, BTYP 0x2X */
10350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPCI_C1T1E1    0x0708   /* BID 0x1X, BTYP 0x1X */
10450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPMC_C2T1E1    0x0709   /* BID 0x0X, BTYP 0x2X */
10550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPMC_C1T1E1    0x070A   /* BID 0x0X, BTYP 0x1X */
10650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPTMC_256T3_E1 0x070B   /* BID 0x46 (E1 Version) */
10750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPTMC_C24TE1   0x070C   /* BID 0x47 */
10850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPMC_C4T1E1_L  0x070D   /* BID 0x2X, BTYPE 0x0X w/FP
10950ee11fe383255db8e5c3307319d470015616f27Bob Beers                                                 * LEDs */
11050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPMC_C2T1E1_L  0x070E   /* BID 0x2X, BTYPE 0x2X w/FP
11150ee11fe383255db8e5c3307319d470015616f27Bob Beers                                                 * LEDs */
11250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPMC_C1T1E1_L  0x070F   /* BID 0x2X, BTYPE 0x1X w/FP
11350ee11fe383255db8e5c3307319d470015616f27Bob Beers                                                 * LEDs */
11450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPMC_2SSI      0x0801
11550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPCI_4SSI      0x0802
11650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPMC_2T3E3     0x0900   /* BID 0x43 */
11750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define SBE_BOARD_ID(v,id)           ((v<<16) | id)
11850ee11fe383255db8e5c3307319d470015616f27Bob Beers
11950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define BINFO_PCI_SPEED_unk     0
12050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define BINFO_PCI_SPEED_33      1
12150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define BINFO_PCI_SPEED_66      2
12250ee11fe383255db8e5c3307319d470015616f27Bob Beers
12350ee11fe383255db8e5c3307319d470015616f27Bob Beers/***************************/
12450ee11fe383255db8e5c3307319d470015616f27Bob Beers/**  obtain interface ID  **/
12550ee11fe383255db8e5c3307319d470015616f27Bob Beers/***************************/
12650ee11fe383255db8e5c3307319d470015616f27Bob Beers
12750ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_get_iid() - SBE_IOC_IID_GET */
12850ee11fe383255db8e5c3307319d470015616f27Bob Beers
12950ee11fe383255db8e5c3307319d470015616f27Bob Beers    struct sbe_iid_info
13050ee11fe383255db8e5c3307319d470015616f27Bob Beers    {
13150ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int32_t   channum;    /* channel requested */
13250ee11fe383255db8e5c3307319d470015616f27Bob Beers        char        iname[CHNM_STRLEN]; /* channel's interface name */
13350ee11fe383255db8e5c3307319d470015616f27Bob Beers    };
13450ee11fe383255db8e5c3307319d470015616f27Bob Beers
13550ee11fe383255db8e5c3307319d470015616f27Bob Beers/**************************************/
13650ee11fe383255db8e5c3307319d470015616f27Bob Beers/**  get board address information  **/
13750ee11fe383255db8e5c3307319d470015616f27Bob Beers/**************************************/
13850ee11fe383255db8e5c3307319d470015616f27Bob Beers
13950ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_get_brdaddr() - SBE_IOC_BRDADDR_GET */
14050ee11fe383255db8e5c3307319d470015616f27Bob Beers
14150ee11fe383255db8e5c3307319d470015616f27Bob Beers    struct sbe_brd_addr
14250ee11fe383255db8e5c3307319d470015616f27Bob Beers    {
14350ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned char func;     /* select PCI address space function */
14450ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned char brdno;    /* returns brdno requested */
14550ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned char irq;
14650ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned char size;     /* returns size of address */
14750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define BRDADDR_SIZE_64  1
14850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define BRDADDR_SIZE_32  2
14950ee11fe383255db8e5c3307319d470015616f27Bob Beers        int         reserved1;  /* mod64 align, reserved for future use */
15050ee11fe383255db8e5c3307319d470015616f27Bob Beers
15150ee11fe383255db8e5c3307319d470015616f27Bob Beers        union
15250ee11fe383255db8e5c3307319d470015616f27Bob Beers        {
15350ee11fe383255db8e5c3307319d470015616f27Bob Beers            unsigned long virt64;       /* virtual/mapped address */
15450ee11fe383255db8e5c3307319d470015616f27Bob Beers            u_int32_t   virt32[2];
15550ee11fe383255db8e5c3307319d470015616f27Bob Beers        }           v;
15650ee11fe383255db8e5c3307319d470015616f27Bob Beers        union
15750ee11fe383255db8e5c3307319d470015616f27Bob Beers        {
15850ee11fe383255db8e5c3307319d470015616f27Bob Beers            unsigned long phys64;       /* physical bus address */
15950ee11fe383255db8e5c3307319d470015616f27Bob Beers            u_int32_t   phys32[2];
16050ee11fe383255db8e5c3307319d470015616f27Bob Beers        }           p;
16150ee11fe383255db8e5c3307319d470015616f27Bob Beers        int         reserved2[4];       /* reserved for future use */
16250ee11fe383255db8e5c3307319d470015616f27Bob Beers    };
16350ee11fe383255db8e5c3307319d470015616f27Bob Beers
16450ee11fe383255db8e5c3307319d470015616f27Bob Beers/**********************************/
16550ee11fe383255db8e5c3307319d470015616f27Bob Beers/**  read/write board registers  **/
16650ee11fe383255db8e5c3307319d470015616f27Bob Beers/**********************************/
16750ee11fe383255db8e5c3307319d470015616f27Bob Beers
16850ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_read_vec() - SBE_IOC_READ_VEC */
16950ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_write_vec() - SBE_IOC_WRITE_VEC */
17050ee11fe383255db8e5c3307319d470015616f27Bob Beers
17150ee11fe383255db8e5c3307319d470015616f27Bob Beers    struct sbecom_wrt_vec
17250ee11fe383255db8e5c3307319d470015616f27Bob Beers    {
17350ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int32_t   reg;
17450ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int32_t   data;
17550ee11fe383255db8e5c3307319d470015616f27Bob Beers    };
17650ee11fe383255db8e5c3307319d470015616f27Bob Beers
17750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define C1T3_CHIP_MSCC_32        0x01000000
17850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define C1T3_CHIP_TECT3_8        0x02000000
17950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define C1T3_CHIP_CPLD_8         0x03000000
18050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define C1T3_CHIP_EEPROM_8       0x04000000
18150ee11fe383255db8e5c3307319d470015616f27Bob Beers
18250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define W256T3_CHIP_MUSYCC_32    0x02000000
18350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define W256T3_CHIP_TEMUX_8      0x10000000
18450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define W256T3_CHIP_T8110_8      0x20000000
18550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define W256T3_CHIP_T8110_32     0x22000000
18650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define W256T3_CHIP_CPLD_8       0x30000000
18750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define W256T3_CHIP_EEPROM_8     0x40000000
18850ee11fe383255db8e5c3307319d470015616f27Bob Beers
18950ee11fe383255db8e5c3307319d470015616f27Bob Beers
19050ee11fe383255db8e5c3307319d470015616f27Bob Beers/**********************************/
19150ee11fe383255db8e5c3307319d470015616f27Bob Beers/**  read write port parameters  **/
19250ee11fe383255db8e5c3307319d470015616f27Bob Beers/**********************************/
19350ee11fe383255db8e5c3307319d470015616f27Bob Beers
19450ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_getset_port_param() - SBE_IOC_PORT_GET */
19550ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_set_port_param() - SBE_IOC_PORT_SET */
19650ee11fe383255db8e5c3307319d470015616f27Bob Beers
19750ee11fe383255db8e5c3307319d470015616f27Bob Beers/* NOTE: this structure supports hardware which supports individual per/port control */
19850ee11fe383255db8e5c3307319d470015616f27Bob Beers
19950ee11fe383255db8e5c3307319d470015616f27Bob Beersstruct sbecom_port_param
20050ee11fe383255db8e5c3307319d470015616f27Bob Beers{
20150ee11fe383255db8e5c3307319d470015616f27Bob Beers    u_int8_t    portnum;
20250ee11fe383255db8e5c3307319d470015616f27Bob Beers    u_int8_t    port_mode;           /* variations of T1 or E1 mode */
20350ee11fe383255db8e5c3307319d470015616f27Bob Beers    u_int8_t    portStatus;
20450ee11fe383255db8e5c3307319d470015616f27Bob Beers    u_int8_t    portP;          /* more port parameters (clock source - 0x80;
20550ee11fe383255db8e5c3307319d470015616f27Bob Beers                                 * and LBO - 0xf; */
20650ee11fe383255db8e5c3307319d470015616f27Bob Beers                                /* bits 0x70 are reserved for future use ) */
20750ee11fe383255db8e5c3307319d470015616f27Bob Beers#ifdef SBE_PMCC4_ENABLE
20850ee11fe383255db8e5c3307319d470015616f27Bob Beers	u_int32_t   hypersize;  /* RLD DEBUG - add this in until I learn how to make this entry obsolete */
20950ee11fe383255db8e5c3307319d470015616f27Bob Beers#endif
21050ee11fe383255db8e5c3307319d470015616f27Bob Beers    int         reserved[3-1];    /* reserved for future use */
21150ee11fe383255db8e5c3307319d470015616f27Bob Beers    int    _res[4];
21250ee11fe383255db8e5c3307319d470015616f27Bob Beers};
21350ee11fe383255db8e5c3307319d470015616f27Bob Beers
21450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CLK_PORT_MASK      0x80     /* Loop timing */
21550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CLK_PORT_INTERNAL  0x80     /* Loop timing */
21650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CLK_PORT_EXTERNAL  0x00     /* Loop timing */
21750ee11fe383255db8e5c3307319d470015616f27Bob Beers
21850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_MASK      0x0F
21950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_unk       0     /* <not defined> */
22050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_LH0       1     /* T1 Long Haul (default) */
22150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_LH7_5     2     /* T1 Long Haul */
22250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_LH15      3     /* T1 Long Haul */
22350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_LH22_5    4     /* T1 Long Haul */
22450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_SH110     5     /* T1 Short Haul */
22550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_SH220     6     /* T1 Short Haul */
22650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_SH330     7     /* T1 Short Haul */
22750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_SH440     8     /* T1 Short Haul */
22850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_SH550     9     /* T1 Short Haul */
22950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_SH660     10    /* T1 Short Haul */
23050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_E75       11    /* E1 75 Ohm */
23150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_E120      12    /* E1 120 Ohm (default) */
23250ee11fe383255db8e5c3307319d470015616f27Bob Beers
23350ee11fe383255db8e5c3307319d470015616f27Bob Beers
23450ee11fe383255db8e5c3307319d470015616f27Bob Beers/*************************************/
23550ee11fe383255db8e5c3307319d470015616f27Bob Beers/**  read write channel parameters  **/
23650ee11fe383255db8e5c3307319d470015616f27Bob Beers/*************************************/
23750ee11fe383255db8e5c3307319d470015616f27Bob Beers
23850ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_getset_chan_param() - SBE_IOC_CHAN_GET */
23950ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_set_chan_param() - SBE_IOC_CHAN_SET */
24050ee11fe383255db8e5c3307319d470015616f27Bob Beers
24150ee11fe383255db8e5c3307319d470015616f27Bob Beers/* NOTE: this structure supports hardware which supports individual per/channel control */
24250ee11fe383255db8e5c3307319d470015616f27Bob Beers
24350ee11fe383255db8e5c3307319d470015616f27Bob Beers    struct sbecom_chan_param
24450ee11fe383255db8e5c3307319d470015616f27Bob Beers    {
24550ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int32_t   channum;    /* 0: */
24650ee11fe383255db8e5c3307319d470015616f27Bob Beers#ifdef SBE_PMCC4_ENABLE
24750ee11fe383255db8e5c3307319d470015616f27Bob Beers	u_int32_t   card;  /* RLD DEBUG - add this in until I learn how to make this entry obsolete */
24850ee11fe383255db8e5c3307319d470015616f27Bob Beers	u_int32_t   port;  /* RLD DEBUG - add this in until I learn how to make this entry obsolete */
24950ee11fe383255db8e5c3307319d470015616f27Bob Beers	u_int8_t bitmask[32];
25050ee11fe383255db8e5c3307319d470015616f27Bob Beers#endif
25150ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int32_t   intr_mask;  /* 4: interrupt mask, specify ored
25250ee11fe383255db8e5c3307319d470015616f27Bob Beers                                 * (SS7_)INTR_* to disable */
25350ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    status;     /* 8: channel transceiver status (TX_ENABLED,
25450ee11fe383255db8e5c3307319d470015616f27Bob Beers                                 * RX_ENABLED) */
25550ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    chan_mode;  /* 9: protocol mode */
25650ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    idlecode;   /* A: idle code, in (FLAG_7E, FLAG_FF,
25750ee11fe383255db8e5c3307319d470015616f27Bob Beers                                 * FLAG_00) */
25850ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    pad_fill_count;     /* B: pad fill count (1-127), 0 - pad
25950ee11fe383255db8e5c3307319d470015616f27Bob Beers                                         * fill disabled */
26050ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    data_inv;   /* C: channel data inversion selection */
26150ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    mode_56k;   /* D: 56kbps mode */
26250ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    reserved[2 + 8];    /* E: */
26350ee11fe383255db8e5c3307319d470015616f27Bob Beers    };
26450ee11fe383255db8e5c3307319d470015616f27Bob Beers
26550ee11fe383255db8e5c3307319d470015616f27Bob Beers/* SS7 interrupt signals <intr_mask> */
26650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define SS7_INTR_SFILT      0x00000020
26750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define SS7_INTR_SDEC       0x00000040
26850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define SS7_INTR_SINC       0x00000080
26950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define SS7_INTR_SUERR      0x00000100
27050ee11fe383255db8e5c3307319d470015616f27Bob Beers/* Other interrupts that can be masked */
27150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define INTR_BUFF           0x00000002
27250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define INTR_EOM            0x00000004
27350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define INTR_MSG            0x00000008
27450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define INTR_IDLE           0x00000010
27550ee11fe383255db8e5c3307319d470015616f27Bob Beers
27650ee11fe383255db8e5c3307319d470015616f27Bob Beers/* transceiver status flags <status> */
27750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define TX_ENABLED          0x01
27850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define RX_ENABLED          0x02
27950ee11fe383255db8e5c3307319d470015616f27Bob Beers
28050ee11fe383255db8e5c3307319d470015616f27Bob Beers/* Protocol modes <mode> */
28150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_PROTO_TRANS         0
28250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_PROTO_SS7           1
28350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_PROTO_HDLC_FCS16    2
28450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_PROTO_HDLC_FCS32    3
28550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_PROTO_ISLP_MODE     4
28650ee11fe383255db8e5c3307319d470015616f27Bob Beers
28750ee11fe383255db8e5c3307319d470015616f27Bob Beers/* Possible idle code assignments <idlecode> */
28850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_FLAG_7E      0
28950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_FLAG_FF      1
29050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_FLAG_00      2
29150ee11fe383255db8e5c3307319d470015616f27Bob Beers
29250ee11fe383255db8e5c3307319d470015616f27Bob Beers/* data inversion selection <data_inv> */
29350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_DINV_NONE    0x00
29450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_DINV_RX      0x01
29550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_DINV_TX      0x02
29650ee11fe383255db8e5c3307319d470015616f27Bob Beers
29750ee11fe383255db8e5c3307319d470015616f27Bob Beers
29842b2aa86c6670347a2a07e6d7af0e0ecc8fdbff9Justin P. Mattock/* Possible resettable chipsets/functions */
29950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define RESET_DEV_TEMUX     1
30050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define RESET_DEV_TECT3     RESET_DEV_TEMUX
30150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define RESET_DEV_PLL       2
30250ee11fe383255db8e5c3307319d470015616f27Bob Beers
30350ee11fe383255db8e5c3307319d470015616f27Bob Beers
30450ee11fe383255db8e5c3307319d470015616f27Bob Beers/*********************************************/
30550ee11fe383255db8e5c3307319d470015616f27Bob Beers/**  read reset channel thruput statistics  **/
30650ee11fe383255db8e5c3307319d470015616f27Bob Beers/*********************************************/
30750ee11fe383255db8e5c3307319d470015616f27Bob Beers
30850ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_get_chan_stats() - SBE_IOC_CHAN_GET_STAT */
30950ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_del_chan_stats() - SBE_IOC_CHAN_DEL_STAT */
31050ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_get_card_chan_stats() - SBE_IOC_CARD_CHAN_STAT */
31150ee11fe383255db8e5c3307319d470015616f27Bob Beers
31250ee11fe383255db8e5c3307319d470015616f27Bob Beers    struct sbecom_chan_stats
31350ee11fe383255db8e5c3307319d470015616f27Bob Beers    {
31450ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned long rx_packets;       /* total packets received       */
31550ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned long tx_packets;       /* total packets transmitted    */
31650ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned long rx_bytes; /* total bytes received         */
31750ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned long tx_bytes; /* total bytes transmitted      */
31850ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned long rx_errors;/* bad packets received         */
31950ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned long tx_errors;/* packet transmit problems     */
32050ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned long rx_dropped;       /* no space in linux buffers    */
32150ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned long tx_dropped;       /* no space available in linux  */
32250ee11fe383255db8e5c3307319d470015616f27Bob Beers
32350ee11fe383255db8e5c3307319d470015616f27Bob Beers        /* detailed rx_errors: */
32450ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned long rx_length_errors;
32550ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned long rx_over_errors;   /* receiver ring buff overflow  */
32650ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned long rx_crc_errors;    /* recved pkt with crc error    */
32750ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned long rx_frame_errors;  /* recv'd frame alignment error */
32850ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned long rx_fifo_errors;   /* recv'r fifo overrun          */
32950ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned long rx_missed_errors; /* receiver missed packet       */
33050ee11fe383255db8e5c3307319d470015616f27Bob Beers
33150ee11fe383255db8e5c3307319d470015616f27Bob Beers        /* detailed tx_errors */
33250ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned long tx_aborted_errors;
33350ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned long tx_fifo_errors;
33450ee11fe383255db8e5c3307319d470015616f27Bob Beers        unsigned long tx_pending;
33550ee11fe383255db8e5c3307319d470015616f27Bob Beers    };
33650ee11fe383255db8e5c3307319d470015616f27Bob Beers
33750ee11fe383255db8e5c3307319d470015616f27Bob Beers
33850ee11fe383255db8e5c3307319d470015616f27Bob Beers/****************************************/
33950ee11fe383255db8e5c3307319d470015616f27Bob Beers/**  read write card level parameters  **/
34050ee11fe383255db8e5c3307319d470015616f27Bob Beers/****************************************/
34150ee11fe383255db8e5c3307319d470015616f27Bob Beers
34250ee11fe383255db8e5c3307319d470015616f27Bob Beers /* NOTE: this structure supports hardware which supports per/card control */
34350ee11fe383255db8e5c3307319d470015616f27Bob Beers
34450ee11fe383255db8e5c3307319d470015616f27Bob Beers    struct sbecom_card_param
34550ee11fe383255db8e5c3307319d470015616f27Bob Beers    {
34650ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    framing_type;       /* 0: CBP or M13 */
34750ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    loopback;   /* 1: one of LOOPBACK_* */
34850ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    line_build_out;     /* 2: boolean */
34950ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    receive_eq; /* 3: boolean */
35050ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    transmit_ones;      /* 4: boolean */
35150ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    clock;      /* 5: 0 - internal, i>0 - external (recovered
35250ee11fe383255db8e5c3307319d470015616f27Bob Beers                                 * from framer i) */
35350ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    h110enable; /* 6: */
35450ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    disable_leds;       /* 7: */
35550ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    reserved1;  /* 8: available - old 256t3 hypersized, but
35650ee11fe383255db8e5c3307319d470015616f27Bob Beers                                 * never used */
35750ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    rear_io;    /* 9: rear I/O off/on */
35850ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    disable_tx; /* A: disable TX off/on */
35950ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    mute_los;   /* B: mute LOS off/on */
36050ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    los_threshold;      /* C: LOS threshold norm/low
36150ee11fe383255db8e5c3307319d470015616f27Bob Beers                                         * (default: norm) */
36250ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    ds1_mode;   /* D: DS1 mode T1/E1 (default: T1) */
36350ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    ds3_unchan; /* E: DS3 unchannelized mode off/on */
36450ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    reserved[1 + 16];   /* reserved for expansion - must be
36550ee11fe383255db8e5c3307319d470015616f27Bob Beers                                         * ZERO filled */
36650ee11fe383255db8e5c3307319d470015616f27Bob Beers    };
36750ee11fe383255db8e5c3307319d470015616f27Bob Beers
36850ee11fe383255db8e5c3307319d470015616f27Bob Beers/* framing types <framing_type> */
36950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define FRAMING_M13                0
37050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define FRAMING_CBP                1
37150ee11fe383255db8e5c3307319d470015616f27Bob Beers
37250ee11fe383255db8e5c3307319d470015616f27Bob Beers/* card level loopback options <loopback> */
37350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CARD_LOOPBACK_NONE     0x00
37450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CARD_LOOPBACK_DIAG     0x01
37550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CARD_LOOPBACK_LINE     0x02
37650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CARD_LOOPBACK_PAYLOAD  0x03
37750ee11fe383255db8e5c3307319d470015616f27Bob Beers
37850ee11fe383255db8e5c3307319d470015616f27Bob Beers/* line level loopback options <loopback> */
37950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LIU_LOOPBACK_NONE      0x00
38050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LIU_LOOPBACK_ANALOG    0x10
38150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LIU_LOOPBACK_DIGITAL   0x11
38250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LIU_LOOPBACK_REMOTE    0x12
38350ee11fe383255db8e5c3307319d470015616f27Bob Beers
38450ee11fe383255db8e5c3307319d470015616f27Bob Beers/* card level clock options <clock> */
38550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CLK_INTERNAL           0x00
38650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CLK_EXTERNAL           0x01
38750ee11fe383255db8e5c3307319d470015616f27Bob Beers
38850ee11fe383255db8e5c3307319d470015616f27Bob Beers/* legacy 256T3 loopback values */
38950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOOPBACK_NONE              0
39050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOOPBACK_LIU_ANALOG        1
39150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOOPBACK_LIU_DIGITAL       2
39250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOOPBACK_FRAMER_DS3        3
39350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOOPBACK_FRAMER_T1         4
39450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOOPBACK_LIU_REMOTE        5
39550ee11fe383255db8e5c3307319d470015616f27Bob Beers
39650ee11fe383255db8e5c3307319d470015616f27Bob Beers/* DS1 mode <ds1_mode> */
39750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_DS1_MODE_MASK          0x0f
39850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_DS1_MODE_T1            0x00
39950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_DS1_MODE_E1            0x01
40050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_DS1_MODE_CHANGE        0x80
40150ee11fe383255db8e5c3307319d470015616f27Bob Beers
40250ee11fe383255db8e5c3307319d470015616f27Bob Beers/* DS3 unchannelized values <ds1_unchan> */
40350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_DS3_UNCHAN_MASK        0x01
40450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_DS3_UNCHAN_OFF         0x00
40550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_DS3_UNCHAN_ON          0x01
40650ee11fe383255db8e5c3307319d470015616f27Bob Beers
40750ee11fe383255db8e5c3307319d470015616f27Bob Beers
40850ee11fe383255db8e5c3307319d470015616f27Bob Beers/************************************/
40950ee11fe383255db8e5c3307319d470015616f27Bob Beers/**  read write framer parameters  **/
41050ee11fe383255db8e5c3307319d470015616f27Bob Beers/************************************/
41150ee11fe383255db8e5c3307319d470015616f27Bob Beers
41250ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_get_framer() - SBE_IOC_FRAMER_GET */
41350ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_set_framer() - SBE_IOC_FRAMER_SET */
41450ee11fe383255db8e5c3307319d470015616f27Bob Beers
41550ee11fe383255db8e5c3307319d470015616f27Bob Beers    struct sbecom_framer_param
41650ee11fe383255db8e5c3307319d470015616f27Bob Beers    {
41750ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    framer_num;
41850ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    frame_type; /* SF, ESF, E1PLAIN, E1CAS, E1CRC, E1CRC+CAS */
41950ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    loopback_type;      /* DIGITAL, LINE, PAYLOAD */
42050ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    auto_alarms;/* auto alarms */
42150ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int8_t    reserved[12];       /* reserved for expansion - must be
42250ee11fe383255db8e5c3307319d470015616f27Bob Beers                                         * ZERO filled */
42350ee11fe383255db8e5c3307319d470015616f27Bob Beers    };
42450ee11fe383255db8e5c3307319d470015616f27Bob Beers
42550ee11fe383255db8e5c3307319d470015616f27Bob Beers/* frame types <frame_type> */
42650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_NONE             0
42750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_SF               1    /* T1 B8ZS */
42850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_ESF              2    /* T1 B8ZS */
42950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_E1PLAIN          3    /* HDB3 w/o CAS,CRC */
43050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_E1CAS            4    /* HDB3 */
43150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_E1CRC            5    /* HDB3 */
43250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_E1CRC_CAS        6    /* HDB3 */
43350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_SF_AMI           7    /* T1 AMI */
43450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_ESF_AMI          8    /* T1 AMI */
43550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_E1PLAIN_AMI      9    /* E1 AMI w/o CAS,CRC */
43650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_E1CAS_AMI       10    /* E1 AMI */
43750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_E1CRC_AMI       11    /* E1 AMI */
43850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_E1CRC_CAS_AMI   12    /* E1 AMI */
43950ee11fe383255db8e5c3307319d470015616f27Bob Beers
44050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define IS_FRAME_ANY_T1(field) \
44150ee11fe383255db8e5c3307319d470015616f27Bob Beers                    (((field) == CFG_FRAME_NONE) || \
44250ee11fe383255db8e5c3307319d470015616f27Bob Beers                     ((field) == CFG_FRAME_SF)   || \
44350ee11fe383255db8e5c3307319d470015616f27Bob Beers                     ((field) == CFG_FRAME_ESF)  || \
44450ee11fe383255db8e5c3307319d470015616f27Bob Beers                     ((field) == CFG_FRAME_SF_AMI) || \
44550ee11fe383255db8e5c3307319d470015616f27Bob Beers                     ((field) == CFG_FRAME_ESF_AMI))
44650ee11fe383255db8e5c3307319d470015616f27Bob Beers
44750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define IS_FRAME_ANY_T1ESF(field) \
44850ee11fe383255db8e5c3307319d470015616f27Bob Beers                    (((field) == CFG_FRAME_ESF) || \
44950ee11fe383255db8e5c3307319d470015616f27Bob Beers                     ((field) == CFG_FRAME_ESF_AMI))
45050ee11fe383255db8e5c3307319d470015616f27Bob Beers
45150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define IS_FRAME_ANY_E1(field) \
45250ee11fe383255db8e5c3307319d470015616f27Bob Beers                    (((field) == CFG_FRAME_E1PLAIN) || \
45350ee11fe383255db8e5c3307319d470015616f27Bob Beers                     ((field) == CFG_FRAME_E1CAS)   || \
45450ee11fe383255db8e5c3307319d470015616f27Bob Beers                     ((field) == CFG_FRAME_E1CRC)   || \
45550ee11fe383255db8e5c3307319d470015616f27Bob Beers                     ((field) == CFG_FRAME_E1CRC_CAS) || \
45650ee11fe383255db8e5c3307319d470015616f27Bob Beers                     ((field) == CFG_FRAME_E1PLAIN_AMI) || \
45750ee11fe383255db8e5c3307319d470015616f27Bob Beers                     ((field) == CFG_FRAME_E1CAS_AMI) || \
45850ee11fe383255db8e5c3307319d470015616f27Bob Beers                     ((field) == CFG_FRAME_E1CRC_AMI) || \
45950ee11fe383255db8e5c3307319d470015616f27Bob Beers                     ((field) == CFG_FRAME_E1CRC_CAS_AMI))
46050ee11fe383255db8e5c3307319d470015616f27Bob Beers
46150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define IS_FRAME_ANY_AMI(field) \
46250ee11fe383255db8e5c3307319d470015616f27Bob Beers                    (((field) == CFG_FRAME_SF_AMI) || \
46350ee11fe383255db8e5c3307319d470015616f27Bob Beers                     ((field) == CFG_FRAME_ESF_AMI) || \
46450ee11fe383255db8e5c3307319d470015616f27Bob Beers                     ((field) == CFG_FRAME_E1PLAIN_AMI) || \
46550ee11fe383255db8e5c3307319d470015616f27Bob Beers                     ((field) == CFG_FRAME_E1CAS_AMI) || \
46650ee11fe383255db8e5c3307319d470015616f27Bob Beers                     ((field) == CFG_FRAME_E1CRC_AMI) || \
46750ee11fe383255db8e5c3307319d470015616f27Bob Beers                     ((field) == CFG_FRAME_E1CRC_CAS_AMI))
46850ee11fe383255db8e5c3307319d470015616f27Bob Beers
46950ee11fe383255db8e5c3307319d470015616f27Bob Beers/* frame level loopback options <loopback_type> */
47050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRMR_LOOPBACK_NONE     0
47150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRMR_LOOPBACK_DIAG     1
47250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRMR_LOOPBACK_LINE     2
47350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRMR_LOOPBACK_PAYLOAD  3
47450ee11fe383255db8e5c3307319d470015616f27Bob Beers
47550ee11fe383255db8e5c3307319d470015616f27Bob Beers
47650ee11fe383255db8e5c3307319d470015616f27Bob Beers/****************************************/
47750ee11fe383255db8e5c3307319d470015616f27Bob Beers/**  read reset card error statistics  **/
47850ee11fe383255db8e5c3307319d470015616f27Bob Beers/****************************************/
47950ee11fe383255db8e5c3307319d470015616f27Bob Beers
48050ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_get_card_stats() - SBE_IOC_CARD_GET_STAT */
48150ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_del_card_stats() - SBE_IOC_CARD_DEL_STAT */
48250ee11fe383255db8e5c3307319d470015616f27Bob Beers
48350ee11fe383255db8e5c3307319d470015616f27Bob Beers    struct temux_card_stats
48450ee11fe383255db8e5c3307319d470015616f27Bob Beers    {
48550ee11fe383255db8e5c3307319d470015616f27Bob Beers        struct temux_stats
48650ee11fe383255db8e5c3307319d470015616f27Bob Beers        {
48750ee11fe383255db8e5c3307319d470015616f27Bob Beers            /* TEMUX DS3 PMON counters */
48850ee11fe383255db8e5c3307319d470015616f27Bob Beers            u_int32_t   lcv;
48950ee11fe383255db8e5c3307319d470015616f27Bob Beers            u_int32_t   err_framing;
49050ee11fe383255db8e5c3307319d470015616f27Bob Beers            u_int32_t   febe;
49150ee11fe383255db8e5c3307319d470015616f27Bob Beers            u_int32_t   err_cpbit;
49250ee11fe383255db8e5c3307319d470015616f27Bob Beers            u_int32_t   err_parity;
49350ee11fe383255db8e5c3307319d470015616f27Bob Beers            /* TEMUX DS3 FRMR status */
49450ee11fe383255db8e5c3307319d470015616f27Bob Beers            u_int8_t    los;
49550ee11fe383255db8e5c3307319d470015616f27Bob Beers            u_int8_t    oof;
49650ee11fe383255db8e5c3307319d470015616f27Bob Beers            u_int8_t    red;
49750ee11fe383255db8e5c3307319d470015616f27Bob Beers            u_int8_t    yellow;
49850ee11fe383255db8e5c3307319d470015616f27Bob Beers            u_int8_t    idle;
49950ee11fe383255db8e5c3307319d470015616f27Bob Beers            u_int8_t    ais;
50050ee11fe383255db8e5c3307319d470015616f27Bob Beers            u_int8_t    cbit;
50150ee11fe383255db8e5c3307319d470015616f27Bob Beers            /* TEMUX DS3 FEAC receiver */
50250ee11fe383255db8e5c3307319d470015616f27Bob Beers            u_int8_t    feac;
50350ee11fe383255db8e5c3307319d470015616f27Bob Beers            u_int8_t    feac_last;
50450ee11fe383255db8e5c3307319d470015616f27Bob Beers        }           t;
50550ee11fe383255db8e5c3307319d470015616f27Bob Beers        u_int32_t   tx_pending; /* total */
50650ee11fe383255db8e5c3307319d470015616f27Bob Beers    };
50750ee11fe383255db8e5c3307319d470015616f27Bob Beers
50850ee11fe383255db8e5c3307319d470015616f27Bob Beers/**************************************************************/
50950ee11fe383255db8e5c3307319d470015616f27Bob Beers
51050ee11fe383255db8e5c3307319d470015616f27Bob Beers    struct wancfg
51150ee11fe383255db8e5c3307319d470015616f27Bob Beers    {
51250ee11fe383255db8e5c3307319d470015616f27Bob Beers        int         cs, ds;
51350ee11fe383255db8e5c3307319d470015616f27Bob Beers        char       *p;
51450ee11fe383255db8e5c3307319d470015616f27Bob Beers    };
51550ee11fe383255db8e5c3307319d470015616f27Bob Beers    typedef struct wancfg wcfg_t;
51650ee11fe383255db8e5c3307319d470015616f27Bob Beers
51750ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern wcfg_t *wancfg_init (char *, char *);
51850ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_card_blink (wcfg_t *, int);
51950ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_ctl (wcfg_t *, int, void *, int, void *, int);
52050ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_del_card_stats (wcfg_t *);
52150ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_del_chan_stats (wcfg_t *, int);
52250ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_enable_ports (wcfg_t *, int);
52350ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_free (wcfg_t *);
52450ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_get_brdaddr (wcfg_t *, struct sbe_brd_addr *);
52550ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_get_brdinfo (wcfg_t *, struct sbe_brd_info *);
52650ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_get_card (wcfg_t *, struct sbecom_card_param *);
52750ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_get_card_chan_stats (wcfg_t *, struct sbecom_chan_stats *);
52850ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_get_card_sn (wcfg_t *);
52950ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_get_card_stats (wcfg_t *, struct temux_card_stats *);
53050ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_get_chan (wcfg_t *, int, struct sbecom_chan_param *);
53150ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_get_chan_stats (wcfg_t *, int, struct sbecom_chan_stats *);
53250ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_get_drvinfo (wcfg_t *, int, struct sbe_drv_info *);
53350ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_get_framer (wcfg_t *, int, struct sbecom_framer_param *);
53450ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_get_iid (wcfg_t *, int, struct sbe_iid_info *);
53550ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_get_sn (wcfg_t *, unsigned int *);
53650ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_read (wcfg_t *, int, struct sbecom_wrt_vec *);
53750ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_reset_device (wcfg_t *, int);
53850ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_set_card (wcfg_t *, struct sbecom_card_param *);
53950ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_set_chan (wcfg_t *, int, struct sbecom_chan_param *);
54050ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_set_framer (wcfg_t *, int, struct sbecom_framer_param *);
54150ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_set_loglevel (wcfg_t *, uint);
54250ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_write (wcfg_t *, int, struct sbecom_wrt_vec *);
54350ee11fe383255db8e5c3307319d470015616f27Bob Beers
54450ee11fe383255db8e5c3307319d470015616f27Bob Beers#ifdef NOT_YET_COMMON
54550ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_get_tsioc (wcfg_t *, struct wanc1t3_ts_hdr *, struct wanc1t3_ts_param *);
54650ee11fe383255db8e5c3307319d470015616f27Bob Beers    extern int  wancfg_set_tsioc (wcfg_t *, struct wanc1t3_ts_param *);
54750ee11fe383255db8e5c3307319d470015616f27Bob Beers#endif
54850ee11fe383255db8e5c3307319d470015616f27Bob Beers
54950ee11fe383255db8e5c3307319d470015616f27Bob Beers#endif                          /*** _INC_LIBSBEW_H_ ***/
550