retire ce(4) driver

Sync serial (e.g. T1/T1/G.703) interfaces are obsolete, this driver
includes obfuscated source, and has reported potential security issues.

Differential Revision:	https://reviews.freebsd.org/D33467
This commit is contained in:
Ed Maste 2020-02-02 13:27:37 -05:00
parent 20dfe27b2d
commit 76f6751844
15 changed files with 0 additions and 8718 deletions

View File

@ -1,7 +1,6 @@
# $FreeBSD$
MAN= apm.4 \
ce.4 \
cp.4 \
CPU_ELAN.4 \
glxiic.4 \

View File

@ -1,97 +0,0 @@
.\" Copyright (c) 2006 Roman Kurakin <rik@FreeBSD.org>
.\" 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 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 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.
.\"
.\" $FreeBSD$
.\"
.Dd December 13, 2022
.Dt CE 4 i386
.Os
.Sh NAME
.Nm ce
.Nd "driver for synchronous Cronyx Tau-PCI/32 WAN adapters"
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following line in your
kernel configuration file:
.Bd -ragged -offset indent
.Cd "device ce"
.Ed
.Pp
Alternatively, to load the driver as a
module at boot time, place the following line in
.Xr loader.conf 5 :
.Bd -literal -offset indent
if_ce_load="YES"
.Ed
.Sh DEPRECATION NOTICE
The
.Nm
driver is not present in
.Fx 14.0
and later.
.Sh DESCRIPTION
The
.Nm
driver creates a
.Xr netgraph 4
node for each device found.
The node is usually paired with
.Xr ng_async 4 ,
.Xr ng_cisco 4 ,
.Xr ng_frame_relay 4
or with
.Xr ng_ppp 4
under control of net/mpd5 port.
.Pp
Refer to
.Xr sconfig 8
for information about the
.Nm
adapter configuration.
.Sh HARDWARE
The
.Nm
driver supports the following models of Tau-PCI/32 WAN adapters:
.Pp
.Bl -tag -width 20n -compact
.It Cronyx Tau-PCI/32
two fractional/unframed E1 interfaces,
with 32 HDLC channels shared between them with total adapter throughput
2048 kbps.
.It Cronyx Tau-PCI/32-Lite
single fractional/unframed E1 interface,
with 32 HDLC channels.
.El
.Sh SEE ALSO
.Xr cp 4 ,
.Xr netgraph 4 ,
.Xr sconfig 8
.Sh HISTORY
The
.Nm
driver was added in
.Fx 6.2 ,
.Fx 5.5
and
.Fx 4.11 .

View File

@ -14,7 +14,6 @@ nodevice runfw
nodevice sf
nodevice ti
nodevice txp
nodevice ce
nodevice cp
nodevice ipwfw
nodevice iwifw

View File

@ -30,10 +30,6 @@ dev/agp/agp_intel.c optional agp
dev/agp/agp_nvidia.c optional agp
dev/agp/agp_sis.c optional agp
dev/agp/agp_via.c optional agp
dev/ce/ceddk.c optional ce
dev/ce/if_ce.c optional ce
dev/ce/tau32-ddk.c optional ce \
compile-with "${NORMAL_C} ${NO_WCONSTANT_CONVERSION} ${NO_WMISLEADING_INDENTATION} ${NO_WUNUSED_BUT_SET_VARIABLE}"
dev/glxiic/glxiic.c optional glxiic
dev/glxsb/glxsb.c optional glxsb
dev/glxsb/glxsb_hash.c optional glxsb

File diff suppressed because it is too large Load Diff

View File

@ -1,202 +0,0 @@
/*
* Middle-level code for Cronyx Tau32-PCI adapters.
*
* Copyright (C) 2004 Cronyx Engineering
* Copyright (C) 2004 Roman Kurakin <rik@FreeBSD.org>
*
* This software is distributed with NO WARRANTIES, not even the implied
* warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* Authors grant any other persons or organisations a permission to use,
* modify and redistribute this software in source and binary forms,
* as long as this message is kept with the software, all derivative
* works or modified versions.
*
* $Cronyx: ceddk.h,v 1.2.6.1 2005/11/09 13:01:39 rik Exp $
* $FreeBSD$
*/
#define TAU32_UserContext_Add void *sys;
#define TAU32_UserRequest_Add void *sys; TAU32_UserRequest *next;
#include <dev/ce/tau32-ddk.h>
#define NCHAN TAU32_CHANNELS
#ifndef NBRD
# define NBRD 6
#endif
#if NBRD != 6
# error "NBRD != 6"
#endif
#define BUFSZ 1664
typedef struct _ce_buf_item_t {
TAU32_UserRequest req;
unsigned char buf [BUFSZ+4];
unsigned long phys;
} ce_buf_item_t;
typedef struct _ce_buf_t {
ce_buf_item_t tx_item[TAU32_IO_QUEUE];
ce_buf_item_t rx_item[TAU32_IO_QUEUE];
} ce_buf_t;
typedef struct {
unsigned long bpv; /* bipolar violations */
unsigned long fse; /* frame sync errors */
unsigned long crce; /* CRC errors */
unsigned long rcrce; /* remote CRC errors (E-bit) */
unsigned long uas; /* unavailable seconds */
unsigned long les; /* line errored seconds */
unsigned long es; /* errored seconds */
unsigned long bes; /* bursty errored seconds */
unsigned long ses; /* severely errored seconds */
unsigned long oofs; /* out of frame seconds */
unsigned long css; /* controlled slip seconds */
unsigned long dm; /* degraded minutes */
} ce_gstat_t;
typedef struct _ce_chan_t {
unsigned char num;
unsigned char type;
#define T_NONE 0 /* no channel */
#define T_E1 3 /* E1 */
#define T_DATA 6 /* no physical interface */
struct _ce_board_t *board;
unsigned char dtr;
unsigned char rts;
ce_buf_item_t *tx_item;
ce_buf_item_t *rx_item;
TAU32_UserRequest *rx_queue;
TAU32_UserRequest *tx_queue;
unsigned char debug;
unsigned char debug_shadow;
void (*transmit) (struct _ce_chan_t*, void*, int);
void (*receive) (struct _ce_chan_t*, unsigned char*, int);
void (*error) (struct _ce_chan_t*, int);
#define CE_FRAME 1
#define CE_CRC 2
#define CE_UNDERRUN 3
#define CE_OVERRUN 4
#define CE_OVERFLOW 5
int tx_pending;
int rx_pending;
unsigned long rintr;
unsigned long tintr;
ulong64 ibytes;
ulong64 obytes;
unsigned long ipkts;
unsigned long opkts;
unsigned long underrun;
unsigned long overrun;
unsigned long frame;
unsigned long crc;
unsigned short status; /* E1/G.703 line status bit mask */
#define ESTS_NOALARM 0x0001 /* no alarm present */
#define ESTS_FARLOF 0x0002 /* receiving far loss of framing */
#define ESTS_AIS 0x0008 /* receiving all ones */
#define ESTS_LOF 0x0020 /* loss of framing */
#define ESTS_LOS 0x0040 /* loss of signal */
#define ESTS_AIS16 0x0100 /* receiving all ones in timeslot 16 */
#define ESTS_FARLOMF 0x0200 /* receiving alarm in timeslot 16 */
#define ESTS_LOMF 0x0400 /* loss of multiframe sync */
#define ESTS_TSTREQ 0x0800 /* test code detected */
#define ESTS_TSTERR 0x1000 /* test error */
unsigned long totsec; /* total seconds elapsed */
unsigned long cursec; /* current seconds elapsed */
unsigned long degsec; /* degraded seconds */
unsigned long degerr; /* errors during degraded seconds */
ce_gstat_t currnt; /* current 15-min interval data */
ce_gstat_t total; /* total statistics data */
ce_gstat_t interval [48]; /* 12 hour period data */
unsigned int acc_status;
unsigned long config;
unsigned long baud;
unsigned long ts;
unsigned long ts_mask;
unsigned char dir;
unsigned char lloop;
unsigned char rloop;
unsigned char higain;
unsigned char phony;
unsigned char scrambler;
unsigned char unfram;
unsigned char monitor;
unsigned char crc4;
unsigned char use16;
unsigned char gsyn; /* G.703 clock mode */
#define GSYN_INT 0 /* internal transmit clock source */
#define GSYN_RCV 1 /* transmit clock source = receive */
#define GSYN_RCV0 2 /* tclk = rclk from channel 0 */
#define GSYN_RCV1 3 /* ...from channel 1 */
unsigned long mtu;
void *sys;
} ce_chan_t;
#define CONFREQSZ 128
typedef struct _ce_conf_req {
TAU32_UserRequest req[CONFREQSZ+10];
TAU32_UserRequest *queue;
int pending;
} ce_conf_req;
typedef struct _ce_board_t {
TAU32_UserContext ddk;
ce_chan_t chan[NCHAN];
int num;
int mux;
#define TAU32_BASE_NAME "Tau-PCI-32"
#define TAU32_LITE_NAME "Tau-PCI-32/Lite"
#define TAU32_ADPCM_NAME "Tau-PCI-32/ADPCM"
#define TAU32_UNKNOWN_NAME "Unknown Tau-PCI-32"
char name [32];
ce_conf_req cr;
TAU32_CrossMatrix dxc;
unsigned long pmask;
void *sys;
} ce_board_t;
void ce_set_dtr (ce_chan_t *c, int on);
void ce_set_rts (ce_chan_t *c, int on);
int ce_get_cd (ce_chan_t *c);
int ce_get_cts (ce_chan_t *c);
int ce_get_dsr (ce_chan_t *c);
int ce_transmit_space (ce_chan_t *c);
int ce_send_packet (ce_chan_t *c, unsigned char *buf, int len, void *tag);
void ce_start_chan (ce_chan_t *c, int tx, int rx, ce_buf_t *cb, unsigned long phys);
void ce_stop_chan (ce_chan_t *c);
void ce_register_transmit (ce_chan_t *c, void (*func) (ce_chan_t*, void*, int));
void ce_register_receive (ce_chan_t *c, void (*func) (ce_chan_t*,
unsigned char*, int));
void ce_register_error (ce_chan_t *c, void (*func) (ce_chan_t*, int));
void TAU32_CALLBACK_TYPE
ce_error_callback(TAU32_UserContext *pContext, int Item,
unsigned NotifyBits);
void TAU32_CALLBACK_TYPE
ce_status_callback(TAU32_UserContext *pContext, int Item,
unsigned NotifyBits);
void ce_set_baud (ce_chan_t *c, unsigned long baud);
void ce_set_lloop (ce_chan_t *c, unsigned char on);
void ce_set_rloop (ce_chan_t *c, unsigned char on);
void ce_set_higain (ce_chan_t *c, unsigned char on);
void ce_set_unfram (ce_chan_t *c, unsigned char on);
void ce_set_ts (ce_chan_t *c, unsigned long ts);
void ce_set_phony (ce_chan_t *c, unsigned char on);
void ce_set_scrambler (ce_chan_t *c, unsigned char on);
void ce_set_monitor (ce_chan_t *c, unsigned char on);
void ce_set_use16 (ce_chan_t *c, unsigned char on);
void ce_set_crc4 (ce_chan_t *c, unsigned char on);
void ce_set_gsyn (ce_chan_t *c, int syn);
#define CABLE_TP 11
int ce_get_cable (ce_chan_t *c);
void ce_set_dir (ce_chan_t *c, int dir);
void ce_e1_timer (ce_chan_t *c);
void ce_init_board (ce_board_t *b);

File diff suppressed because it is too large Load Diff

View File

@ -1,89 +0,0 @@
/*-
* Cronyx DDK: platform dependent definitions.
*
* Copyright (C) 1998-1999 Cronyx Engineering
* Author: Alexander Kvitchenko, <aak@cronyx.ru>
*
* Copyright (C) 2001-2003 Cronyx Engineering.
* Author: Roman Kurakin, <rik@cronyx.ru>
*
* This software is distributed with NO WARRANTIES, not even the implied
* warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* Authors grant any other persons or organisations permission to use
* or modify this software as long as this message is kept with the software,
* all derivative works or modified versions.
*
* Cronyx Id: machdep.h,v 1.3.4.3 2003/11/27 14:21:58 rik Exp $
* $FreeBSD$
*/
/*
* DOS (Borland Turbo C++ 1.0)
*/
#if defined (MSDOS) || defined (__MSDOS__)
# include <dos.h>
# include <string.h>
# define inb(port) inportb(port)
# define inw(port) inport(port)
# define outb(port,b) outportb(port,b)
# define outw(port,w) outport(port,w)
# define GETTICKS() biostime(0,0L)
#else
/*
* Windows NT
*/
#ifdef NDIS_MINIPORT_DRIVER
# include <string.h>
# define inb(port) inp((unsigned short)(port))
# define inw(port) inpw((unsigned short)(port))
# define outb(port,b) outp((unsigned short)(port),b)
# define outw(port,w) outpw((unsigned short)(port),(unsigned short)(w))
#pragma warning (disable: 4761)
#pragma warning (disable: 4242)
#pragma warning (disable: 4244)
#define ulong64 unsigned __int64
#else
/*
* Linux
*/
#ifdef __linux__
# undef REALLY_SLOW_IO
# include <asm/io.h> /* should swap outb() arguments */
# include <linux/string.h>
# include <linux/delay.h>
static inline void __ddk_outb (unsigned port, unsigned char byte)
{ outb (byte, port); }
static inline void __ddk_outw (unsigned port, unsigned short word)
{ outw (word, port); }
# undef outb
# undef outw
# define outb(port,val) __ddk_outb(port, val)
# define outw(port,val) __ddk_outw(port, val)
# define GETTICKS() (jiffies * 200 / 11 / HZ)
#else
/*
* FreeBSD and BSD/OS
*/
#ifdef __FreeBSD__
# include <sys/param.h>
# include <machine/cpufunc.h>
# include <sys/libkern.h>
# include <sys/systm.h>
# define port_t int
#endif
#endif
#endif
#endif
#ifndef inline
# define inline __inline__
#endif
#ifndef ulong64
#define ulong64 unsigned long long
#endif

View File

@ -1,27 +0,0 @@
/*
* Defines for Cronyx Tau32-PCI adapter driver.
*
* Copyright (C) 2004 Cronyx Engineering.
* Copyright (C) 2004 Kurakin Roman, <rik@FreeBSD.org>
*
* This software is distributed with NO WARRANTIES, not even the implied
* warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* Authors grant any other persons or organisations a permission to use,
* modify and redistribute this software in source and binary forms,
* as long as this message is kept with the software, all derivative
* works or modified versions.
*
* $Cronyx: ng_ce.h,v 1.2 2005/04/23 20:11:57 rik Exp $
* $FreeBSD$
*/
#ifndef _CE_NETGRAPH_H_
#define _CE_NETGRAPH_H_
#define NG_CE_NODE_TYPE "ce"
#define NGM_CE_COOKIE 1083172653
#define NG_CE_HOOK_RAW "rawdata"
#define NG_CE_HOOK_DEBUG "debug"
#endif /* _CE_NETGRAPH_H_ */

File diff suppressed because it is too large Load Diff

View File

@ -1,516 +0,0 @@
/*
* DDK (Driver Development Kit) for Cronyx Tau32-PCI adapter.
*
* Copyright (C) 2003-2006 Cronyx Engineering, http://www.cronyx.ru
* All rights reserved.
*
* Author: Leo Yuriev <ly@cronyx.ru>, http://leo.yuriev.ru
*
* $Cronyx: tau32-ddk.h,v 1.2 2006/02/01 09:14:40 ly Exp $
* $Rik: tau32-ddk.h,v 1.7 2006/02/28 22:33:29 rik Exp $
* $FreeBSD$
*/
#if defined(__GNUC__) || defined(__TURBOC__)
# ifndef __int8
# define __int8 char
# endif
# ifndef __int16
# define __int16 short
# endif
# ifndef __int32
# define __int32 long
# endif
# ifndef __int64
# define __int64 long long
# endif
#endif
#if !defined(BOOLEAN) && !defined(_NTDDK_)
# define BOOLEAN int
#endif
#if defined(__GNUC__) && !defined(__stdcall)
# define __stdcall __attribute__((stdcall))
#endif
#if defined(__GNUC__) && !defined(__cdecl)
# define __cdecl __attribute__((cdecl))
#endif
#ifndef TAU32_CALLBACK_TYPE
# if defined(__WINDOWS__) || defined(_MSC_VER) || defined(WIN32) || defined(WIN64)
# define TAU32_CALLBACK_TYPE __stdcall
# else
# define TAU32_CALLBACK_TYPE __cdecl
# endif
#endif
#ifndef TAU32_CALL_TYPE
# if defined(__WINDOWS__) || defined(_MSC_VER) || defined(WIN32) || defined(WIN64)
# define TAU32_CALL_TYPE __stdcall
# else
# define TAU32_CALL_TYPE __cdecl
# endif
#endif
#ifndef PCI_PHYSICAL_ADDRESS
# ifdef PCI64
# error PCI64 currently is not supported
# else
# define PCI_PHYSICAL_ADDRESS unsigned __int32
# endif
#endif
#define TAU32_PCI_VENDOR_ID 0x110A
#define TAU32_PCI_DEVICE_ID 0x2101
#define TAU32_PCI_IO_BAR1_SIZE 0x0100
#define TAU32_PCI_RESET_ADDRESS 0x004C
#define TAU32_PCI_RESET_ON 0xF00F0000ul /*0xFFFFFFFFul */
#define TAU32_PCI_RESET_OFF 0
#define TAU32_PCI_RESET_LENGTH 4
/* TAU32_MODELS */
#define TAU32_ERROR (-1)
#define TAU32_UNKNOWN 0
#define TAU32_BASE 1
#define TAU32_LITE 2
#define TAU32_ADPCM 3
/* TAU32_INIT_ERRORS */
#define TAU32_IE_OK 0x0000u
#define TAU32_IE_FIRMWARE 0x0001u
#define TAU32_IE_MODEL 0x0002u
#define TAU32_IE_E1_A 0x0004u
#define TAU32_IE_E1_B 0x0008u
#define TAU32_IE_INTERNAL_BUS 0x0010u
#define TAU32_IE_HDLC 0x0020u
#define TAU32_IE_ADPCM 0x0040u
#define TAU32_IE_CLOCK 0x0080u
#define TAU32_IE_DXC 0x0100u
#define TAU32_IE_XIRQ 0x0200u
/* TAU32_INTERFACES */
#define TAU32_E1_ALL (-1)
#define TAU32_E1_A 0
#define TAU32_E1_B 1
/* TAU32_LIMITS */
#define TAU32_CHANNELS 32
#define TAU32_TIMESLOTS 32
#define TAU32_MAX_INTERFACES 2
#define TAU32_MTU 8184
#define TAU32_FLAT_MTU 4096
#define TAU32_IO_QUEUE 4
#define TAU32_IO_QUEUE_BYTES 128
#define TAU32_MAX_REQUESTS 512
#define TAU32_MAX_BUFFERS 256
#define TAU32_FIFO_SIZE 256
/* TAU32_REQUEST_COMMANDS */
#define TAU32_Tx_Start 0x0001u
#define TAU32_Tx_Stop 0x0002u
/*#define TAU32_Tx_Flush 0x0004u // yet not implemented */
#define TAU32_Tx_Data 0x0008u
#define TAU32_Rx_Start 0x0010u
#define TAU32_Rx_Stop 0x0020u
#define TAU32_Rx_Data 0x0080u
#define TAU32_Configure_Channel 0x0100u
#define TAU32_Timeslots_Complete 0x0200u
#define TAU32_Timeslots_Map 0x0400u
#define TAU32_Timeslots_Channel 0x0800u
#define TAU32_ConfigureDigitalLoop 0x1000u
#define TAU32_Configure_Commit 0x2000u
#define TAU32_Tx_FrameEnd 0x4000u
#define TAU32_Tx_NoCrc 0x8000u
#define TAU32_Configure_E1 0x0040u
/* TAU32_ERRORS */
#define TAU32_NOERROR 0x000000ul
#define TAU32_SUCCESSFUL 0x000000ul
#define TAU32_ERROR_ALLOCATION 0x000001ul /* not enough tx/rx descriptors */
#define TAU32_ERROR_BUS 0x000002ul /* PEB could not access to host memory by PCI bus for load/store information */
#define TAU32_ERROR_FAIL 0x000004ul /* PEB action request failed */
#define TAU32_ERROR_TIMEOUT 0x000008ul /* PEB action request timeout */
#define TAU32_ERROR_CANCELLED 0x000010ul
#define TAU32_ERROR_TX_UNDERFLOW 0x000020ul /* transmission underflow */
#define TAU32_ERROR_TX_PROTOCOL 0x000040ul /* reserved */
#define TAU32_ERROR_RX_OVERFLOW 0x000080ul
#define TAU32_ERROR_RX_ABORT 0x000100ul
#define TAU32_ERROR_RX_CRC 0x000200ul
#define TAU32_ERROR_RX_SHORT 0x000400ul
#define TAU32_ERROR_RX_SYNC 0x000800ul
#define TAU32_ERROR_RX_FRAME 0x001000ul
#define TAU32_ERROR_RX_LONG 0x002000ul
#define TAU32_ERROR_RX_SPLIT 0x004000ul /* frame has splitted between two requests due rx-gap allocation */
#define TAU32_ERROR_RX_UNFIT 0x008000ul /* frame can't be fit into request buffer */
#define TAU32_ERROR_TSP 0x010000ul
#define TAU32_ERROR_RSP 0x020000ul
#define TAU32_ERROR_INT_OVER_TX 0x040000ul
#define TAU32_ERROR_INT_OVER_RX 0x080000ul
#define TAU32_ERROR_INT_STORM 0x100000ul
#define TAU32_ERROR_INT_E1LOST 0x200000ul
#define TAU32_WARN_TX_JUMP 0x400000ul
#define TAU32_WARN_RX_JUMP 0x800000ul
/* TAU32_CHANNEL_MODES */
#define TAU32_HDLC 0
#define TAU32_V110_x30 1
#define TAU32_TMA 2
#define TAU32_TMB 3
#define TAU32_TMR 4
/* TAU32_SYNC_MODES */
#define TAU32_SYNC_INTERNAL 0
#define TAU32_SYNC_RCV_A 1
#define TAU32_SYNC_RCV_B 2
#define TAU32_SYNC_LYGEN 3
#define TAU32_LYGEN_RESET 0
/* TAU32_CHANNEL_CONFIG_BITS */
#define TAU32_channel_mode_mask 0x0000000Ful
#define TAU32_data_inversion 0x00000010ul
#define TAU32_fr_rx_splitcheck 0x00000020ul
#define TAU32_fr_rx_fitcheck 0x00000040ul
#define TAU32_fr_tx_auto 0x00000080ul
#define TAU32_hdlc_crc32 0x00000100ul
#define TAU32_hdlc_adjustment 0x00000200ul
#define TAU32_hdlc_interframe_fill 0x00000400ul
#define TAU32_hdlc_nocrc 0x00000800ul
#define TAU32_tma_flag_filtering 0x00001000ul
#define TAU32_tma_nopack 0x00002000ul
#define TAU32_tma_flags_mask 0x00FF0000ul
#define TAU32_tma_flags_shift 16u
#define TAU32_v110_x30_tr_mask 0x03000000ul
#define TAU32_v110_x30_tr_shift 24u
typedef struct tag_TAU32_TimeslotAssignment
{
unsigned __int8 TxChannel, RxChannel;
unsigned __int8 TxFillmask, RxFillmask;
} TAU32_TimeslotAssignment;
#define TAU32_CROSS_WIDTH 96
#define TAU32_CROSS_OFF 127
typedef unsigned __int8 TAU32_CrossMatrix[TAU32_CROSS_WIDTH];
/* TAU32_INTERFACE_CONFIG_BITS */
#define TAU32_LineOff (0ul << 0)
#define TAU32_LineLoopInt (1ul << 0)
#define TAU32_LineLoopExt (2ul << 0)
#define TAU32_LineNormal (3ul << 0)
#define TAU32_LineAIS (4ul << 0)
#define TAU32_line_mode_mask 0x0000000Ful
#define TAU32_unframed_64 (0ul << 4)
#define TAU32_unframed_128 (1ul << 4)
#define TAU32_unframed_256 (2ul << 4)
#define TAU32_unframed_512 (3ul << 4)
#define TAU32_unframed_1024 (4ul << 4)
#define TAU32_unframed_2048 (5ul << 4)
#define TAU32_unframed TAU32_unframed_2048
#define TAU32_framed_no_cas (6ul << 4)
#define TAU32_framed_cas_set (7ul << 4)
#define TAU32_framed_cas_pass (8ul << 4)
#define TAU32_framed_cas_cross (9ul << 4)
#define TAU32_framing_mode_mask 0x000000F0ul
#define TAU32_monitor 0x00000100ul
#define TAU32_higain 0x00000200ul
#define TAU32_sa_bypass 0x00000400ul
#define TAU32_si_bypass 0x00000800ul
#define TAU32_cas_fe 0x00001000ul
#define TAU32_ais_on_loss 0x00002000ul
#define TAU32_cas_all_ones 0x00004000ul
#define TAU32_cas_io 0x00008000ul
#define TAU32_fas_io 0x00010000ul
#define TAU32_fas8_io 0x00020000ul
#define TAU32_auto_ais 0x00040000ul
#define TAU32_not_auto_ra 0x00080000ul
#define TAU32_not_auto_dmra 0x00100000ul
#define TAU32_ra 0x00200000ul
#define TAU32_dmra 0x00400000ul
#define TAU32_scrambler 0x00800000ul
#define TAU32_tx_ami 0x01000000ul
#define TAU32_rx_ami 0x02000000ul
#define TAU32_ja_tx 0x04000000ul
#define TAU32_crc4_mf_tx 0x08000000ul
#define TAU32_crc4_mf_rx 0x10000000ul
#define TAU32_crc4_mf (TAU32_crc4_mf_rx | TAU32_crc4_mf_tx)
/* TAU32_SA_CROSS_VALUES */
#define TAU32_SaDisable 0u
#define TAU32_SaSystem 1u
#define TAU32_SaIntA 2u
#define TAU32_SaIntB 3u
#define TAU32_SaAllZeros 4u
typedef struct tag_TAU32_SaCross
{
unsigned __int8 InterfaceA, InterfaceB;
unsigned __int8 SystemEnableTs0;
} TAU32_SaCross;
/* TAU32_INTERFACE_STATUS_BITS */
#define TAU32_RCL 0x0001u /* receive carrier lost */
#define TAU32_RLOS 0x0002u /* receive sync lost */
#define TAU32_RUA1 0x0004u /* received unframed all ones */
#define TAU32_RRA 0x0008u /* receive remote alarm */
#define TAU32_RSA1 0x0010u /* receive signaling all ones */
#define TAU32_RSA0 0x0020u /* receive signaling all zeros */
#define TAU32_RDMA 0x0040u /* receive distant multiframe alarm */
#define TAU32_LOTC 0x0080u /* transmit clock lost */
#define TAU32_RSLIP 0x0100u /* receiver slip event */
#define TAU32_TSLIP 0x0200u /* transmitter slip event */
#define TAU32_RFAS 0x0400u /* receiver lost and searching for FAS */
#define TAU32_RCRC4 0x0800u /* receiver lost and searching for CRC4 MF */
#define TAU32_RCAS 0x1000u /* received lost and searching for CAS MF */
#define TAU32_JITTER 0x2000u /* jitter attenuator limit */
#define TAU32_RCRC4LONG 0x4000u /* G.706 400ms limit of searching for CRC4 */
#define TAU32_E1OFF 0x8000u /* E1 line power-off */
#define TAU32_LOS TAU32_RLOS
#define TAU32_AIS TAU32_RUA1
#define TAU32_LOF TAU32_RFAS
#define TAU32_AIS16 TAU32_RSA1
#define TAU32_LOFM TAU32_RCAS
#define TAU32_FLOFM TAU32_RDMA
/* TAU32_STATUS */
#define TAU32_FRLOFM 0x0001u /* CAS framer searching for CAS MF */
#define TAU32_CMWAITING 0x0002u /* Connection memory swap waiting */
#define TAU32_CMPENDING 0x0004u /* Connection memory swap pending */
#define TAU32_LED 0x0008u /* Led status (on/off) */
typedef struct tag_TAU32_Controller TAU32_Controller;
typedef struct tag_TAU32_UserRequest TAU32_UserRequest;
typedef struct tag_TAU32_UserContext TAU32_UserContext;
typedef union tag_TAU32_tsc TAU32_tsc;
typedef struct tag_TAU32_FlatIoContext TAU32_FlatIoContext;
typedef void(TAU32_CALLBACK_TYPE *TAU32_RequestCallback)(TAU32_UserContext *pContext, TAU32_UserRequest *pUserRequest);
typedef void(TAU32_CALLBACK_TYPE *TAU32_NotifyCallback)(TAU32_UserContext *pContext, int Item, unsigned NotifyBits);
typedef void(TAU32_CALLBACK_TYPE *TAU32_FifoTrigger)(TAU32_UserContext *pContext, int Interface, unsigned FifoId, unsigned Level);
typedef void(TAU32_CALLBACK_TYPE *TAU32_FlatIoCallback)(TAU32_UserContext *pContext, TAU32_FlatIoContext *pFlatIoContext);
union tag_TAU32_tsc
{
unsigned __int32 osc, sync;
};
struct tag_TAU32_FlatIoContext
{
void *pInternal;
PCI_PHYSICAL_ADDRESS PhysicalBufferAddress;
unsigned Channel, ItemsCount, EachItemBufferSize;
unsigned Received, ActualOffset, Errors;
#if defined(_NTDDK_)
KDPC CallbackDpc;
void SetupCallback(PKDEFERRED_ROUTINE DeferredCallbackRoutine, void* pContext)
{
CallbackDpc.DeferredRoutine = DeferredCallbackRoutine;
CallbackDpc.DeferredContext = pContext;
}
void SetupCallback(TAU32_FlatIoCallback pCallback)
{
CallbackDpc.DeferredRoutine = (PKDEFERRED_ROUTINE) pCallback;
CallbackDpc.DeferredContext = 0;
}
#else
TAU32_FlatIoCallback pCallback;
#endif
};
/* TAU32_FIFO_ID */
#define TAU32_FifoId_CasRx 0u
#define TAU32_FifoId_CasTx 1u
#define TAU32_FifoId_FasRx 2u
#define TAU32_FifoId_FasTx 3u
#define TAU32_FifoId_Max 4u
typedef struct tag_TAU32_E1_State
{
unsigned __int32 TickCounter;
unsigned __int32 RxViolations;
unsigned __int32 Crc4Errors;
unsigned __int32 FarEndBlockErrors;
unsigned __int32 FasErrors;
unsigned __int32 TransmitSlips;
unsigned __int32 ReceiveSlips;
unsigned __int32 Status;
unsigned __int32 FifoSlip[TAU32_FifoId_Max];
} TAU32_E1_State;
struct tag_TAU32_UserContext
{
/* fields provided by user for TAU32_Initiaize() */
TAU32_Controller *pControllerObject;
PCI_PHYSICAL_ADDRESS ControllerObjectPhysicalAddress;
void *PciBar1VirtualAddress;
TAU32_NotifyCallback pErrorNotifyCallback;
TAU32_NotifyCallback pStatusNotifyCallback;
#if defined(_NTDDK_)
PKINTERRUPT InterruptObject;
#endif
/* TODO: remove from release */
#define TAU32_CUSTOM_FIRMWARE
#ifdef TAU32_CUSTOM_FIRMWARE
void *pCustomFirmware;
unsigned CustomFirmwareSize;
#endif
/* fields filled by TAU32_Initiaize() */
int Model;
int Interfaces;
unsigned InitErrors;
unsigned __int32 DeadBits;
/* fields managed by DDK */
unsigned AdapterStatus;
unsigned CasIoLofCount;
unsigned E1IntLostCount;
unsigned CableTypeJumpers;
TAU32_E1_State InterfacesInfo[TAU32_MAX_INTERFACES];
/* fields which are't used by DDK, but nice for user */
#ifdef TAU32_UserContext_Add
TAU32_UserContext_Add
#endif
};
struct tag_TAU32_UserRequest
{
/* required fields */
void *pInternal; /* internal */
unsigned Command; /* in */
#if defined(_NTDDK_)
KDPC CallbackDpc;
void SetupCallback(PKDEFERRED_ROUTINE DeferredCallbackRoutine, void* pContext)
{
CallbackDpc.DeferredRoutine = DeferredCallbackRoutine;
CallbackDpc.DeferredContext = pContext;
}
void SetupCallback(TAU32_RequestCallback pCallback)
{
CallbackDpc.DeferredRoutine = (PKDEFERRED_ROUTINE) pCallback;
CallbackDpc.DeferredContext = 0;
}
#else
TAU32_RequestCallback pCallback; /* in */
#endif
unsigned __int32 ErrorCode; /* out */
union
{
unsigned ChannelNumber; /* just common field */
struct
{
unsigned Channel; /* in */
unsigned __int32 Config; /* in */
unsigned __int32 AssignedTsMask; /* build channel from timeslots which is selected by mask */
} ChannelConfig;
struct
{
int Interface;
unsigned __int32 Config; /* in */
unsigned __int32 UnframedTsMask;
} InterfaceConfig;
struct
{
unsigned Channel; /* in */
PCI_PHYSICAL_ADDRESS PhysicalDataAddress; /* in */
unsigned DataLength; /* in */
unsigned Transmitted; /* out */
} Tx;
struct
{
unsigned Channel; /* in */
PCI_PHYSICAL_ADDRESS PhysicalDataAddress; /* in */
unsigned BufferLength; /* in */
unsigned Received; /* out */
BOOLEAN FrameEnd; /* out */
} Rx;
BOOLEAN DigitalLoop; /* in, loop by PEB */
union
{
TAU32_TimeslotAssignment Complete[TAU32_TIMESLOTS];
unsigned __int32 Map[TAU32_CHANNELS];
} TimeslotsAssignment;
} Io;
/* fields which are't used by DDK, but nice for user */
#ifdef TAU32_UserRequest_Add
TAU32_UserRequest_Add
#endif
};
#define TAU32_IS_REQUEST_RUNNING(pUserRequest) ((pUserRequest)->pInternal != NULL)
#define TAU32_IS_REQUEST_NOT_RUNNING(pUserRequest) ((pUserRequest)->pInternal == NULL)
#ifndef TAU32_DDK_DLL
# if defined(_NTDDK_)
# ifdef TAU32_DDK_IMP
# define TAU32_DDK_DLL __declspec(dllexport)
# else
# define TAU32_DDK_DLL __declspec(dllimport)
# endif
# else
# define TAU32_DDK_DLL
# endif
#endif
#ifdef __cplusplus
extern "C"
{
#endif
void TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_BeforeReset(TAU32_UserContext *pUserContext);
BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_Initialize(TAU32_UserContext *pUserContext, BOOLEAN CronyxDiag);
void TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_DestructiveHalt(TAU32_Controller *pControllerObject, BOOLEAN CancelRequests);
BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_IsInterruptPending(TAU32_Controller *pControllerObject);
BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_HandleInterrupt(TAU32_Controller *pControllerObject);
extern unsigned const TAU32_ControllerObjectSize;
/* LY: ×ÓĹ ĆŐÎËĂÉÉ ÎÉÖĹ, ÍĎÇŐÔ ŇĹĹÎÔĹŇÁÂĹĚŘÎĎ ×ŮÚŮ×ÁÔŘÓŃ ÉÚ callback-Ď× */
void TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_EnableInterrupts(TAU32_Controller *pControllerObject);
void TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_DisableInterrupts(TAU32_Controller *pControllerObject);
BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_SubmitRequest(TAU32_Controller *pControllerObject, TAU32_UserRequest *pRequest);
BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_CancelRequest(TAU32_Controller *pControllerObject, TAU32_UserRequest *pRequest, BOOLEAN BreakIfRunning);
void TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_LedBlink(TAU32_Controller *pControllerObject);
void TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_LedSet(TAU32_Controller *pControllerObject, BOOLEAN On);
BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_SetCasIo(TAU32_Controller *pControllerObject, BOOLEAN Enabled);
unsigned __int64 TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_ProbeGeneratorFrequency(unsigned __int64 Frequency);
unsigned __int64 TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_SetGeneratorFrequency(TAU32_Controller *pControllerObject, unsigned __int64 Frequency);
BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_SetSyncMode(TAU32_Controller *pControllerObject, unsigned Mode);
BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_SetCrossMatrix(TAU32_Controller *pControllerObject, unsigned __int8 *pCrossMatrix, unsigned __int32 ReverseMask);
BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_SetIdleCodes(TAU32_Controller *pControllerObject, unsigned __int8 *pIdleCodes);
BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_UpdateIdleCodes(TAU32_Controller *pControllerObject, int Interface, unsigned __int32 TimeslotMask, unsigned __int8 IdleCode);
BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_SetSaCross(TAU32_Controller *pControllerObject, TAU32_SaCross SaCross);
int TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_FifoPutCasAppend(TAU32_Controller *pControllerObject, int Interface, unsigned __int8 *pBuffer, unsigned Length);
int TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_FifoPutCasAhead(TAU32_Controller *pControllerObject, int Interface, unsigned __int8 *pBuffer, unsigned Length);
int TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_FifoGetCas(TAU32_Controller *pControllerObject, int Interface, unsigned __int8 *pBuffer, unsigned Length);
int TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_FifoPutFasAppend(TAU32_Controller *pControllerObject, int Interface, unsigned __int8 *pBuffer, unsigned Length);
int TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_FifoPutFasAhead(TAU32_Controller *pControllerObject, int Interface, unsigned __int8 *pBuffer, unsigned Length);
int TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_FifoGetFas(TAU32_Controller *pControllerObject, int Interface, unsigned __int8 *pBuffer, unsigned Length);
BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_SetFifoTrigger(TAU32_Controller *pControllerObject, int Interface, unsigned FifoId, unsigned Level, TAU32_FifoTrigger Trigger);
void TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_ReadTsc(TAU32_Controller *pControllerObject, TAU32_tsc *pResult);
/* for Cronyx Engineering use only !!! */
#define TAU32_CRONYX_P 0
#define TAU32_CRONYX_PS 1
#define TAU32_CRONYX_PA 2
#define TAU32_CRONYX_PB 3
#define TAU32_CRONYX_I 4
#define TAU32_CRONYX_O 5
#define TAU32_CRONYX_U 6
#define TAU32_CRONYX_R 7
#define TAU32_CRONYX_W 8
#define TAU32_CRONYX_RW 9
#define TAU32_CRONYX_WR 10
#define TAU32_CRONYX_S 11
#define TAU32_CRONYX_G 12
unsigned __int32 TAU32_CALL_TYPE TAU32_Diag(TAU32_Controller *pControllerObject, unsigned Operation, unsigned __int32 Data);
#ifdef __cplusplus
}
#endif

View File

@ -1,89 +0,0 @@
/*-
* Cronyx DDK: platform dependent definitions.
*
* Copyright (C) 1998-1999 Cronyx Engineering
* Author: Alexander Kvitchenko, <aak@cronyx.ru>
*
* Copyright (C) 2001-2003 Cronyx Engineering.
* Author: Roman Kurakin, <rik@cronyx.ru>
*
* This software is distributed with NO WARRANTIES, not even the implied
* warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* Authors grant any other persons or organisations permission to use
* or modify this software as long as this message is kept with the software,
* all derivative works or modified versions.
*
* Cronyx Id: machdep.h,v 1.3.4.3 2003/11/27 14:21:58 rik Exp $
* $FreeBSD$
*/
/*
* DOS (Borland Turbo C++ 1.0)
*/
#if defined (MSDOS) || defined (__MSDOS__)
# include <dos.h>
# include <string.h>
# define inb(port) inportb(port)
# define inw(port) inport(port)
# define outb(port,b) outportb(port,b)
# define outw(port,w) outport(port,w)
# define GETTICKS() biostime(0,0L)
#else
/*
* Windows NT
*/
#ifdef NDIS_MINIPORT_DRIVER
# include <string.h>
# define inb(port) inp((unsigned short)(port))
# define inw(port) inpw((unsigned short)(port))
# define outb(port,b) outp((unsigned short)(port),b)
# define outw(port,w) outpw((unsigned short)(port),(unsigned short)(w))
#pragma warning (disable: 4761)
#pragma warning (disable: 4242)
#pragma warning (disable: 4244)
#define ulong64 unsigned __int64
#else
/*
* Linux
*/
#ifdef __linux__
# undef REALLY_SLOW_IO
# include <asm/io.h> /* should swap outb() arguments */
# include <linux/string.h>
# include <linux/delay.h>
static inline void __ddk_outb (unsigned port, unsigned char byte)
{ outb (byte, port); }
static inline void __ddk_outw (unsigned port, unsigned short word)
{ outw (word, port); }
# undef outb
# undef outw
# define outb(port,val) __ddk_outb(port, val)
# define outw(port,val) __ddk_outw(port, val)
# define GETTICKS() (jiffies * 200 / 11 / HZ)
#else
/*
* FreeBSD and BSD/OS
*/
#ifdef __FreeBSD__
# include <sys/param.h>
# include <machine/cpufunc.h>
# include <sys/libkern.h>
# include <sys/systm.h>
# define port_t int
#endif
#endif
#endif
#endif
#ifndef inline
# define inline __inline__
#endif
#ifndef ulong64
#define ulong64 unsigned long long
#endif

View File

@ -484,8 +484,6 @@ device cpufreq
# bxe: Broadcom NetXtreme II (BCM5771X/BCM578XX) PCIe 10Gb Ethernet
# adapters.
# ce: Cronyx Tau-PCI/32 sync single/dual port G.703/E1 serial adaptor
# with 32 HDLC subchannels, requires NETGRAPH
# igc: Intel I225 2.5G Ethernet adapter
# ipw: Intel PRO/Wireless 2100 IEEE 802.11 adapter
# iwi: Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11 adapters
@ -505,7 +503,6 @@ device cpufreq
# Order for ISA/EISA devices is important here
device bxe # Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE
device ce
envvar hint.cs.0.at="isa"
envvar hint.cs.0.port="0x300"
envvar hint.ed.0.at="isa"

View File

@ -82,7 +82,6 @@ SUBDIR= \
${_ccp} \
cd9660 \
cd9660_iconv \
${_ce} \
${_cfi} \
${_chromebook_platform} \
${_ciss} \
@ -812,9 +811,6 @@ _vmm= vmm
_3dfx= 3dfx
_3dfx_linux= 3dfx_linux
.if ${MK_SOURCELESS_HOST} != "no"
_ce= ce
.endif
.if ${MK_SOURCELESS_HOST} != "no"
_cp= cp
.endif
_glxiic= glxiic

View File

@ -1,13 +0,0 @@
# $Cronyx: sys.modules.ce.Makefile,v 1.2 2005/04/23 20:10:22 rik Exp $
# $FreeBSD$
.PATH: ${SRCTOP}/sys/dev/ce
KMOD = if_ce
SRCS = if_ce.c ceddk.c tau32-ddk.c
SRCS += device_if.h bus_if.h pci_if.h
.include <bsd.kmod.mk>
CWARNFLAGS.tau32-ddk.c+= ${NO_WCONSTANT_CONVERSION}
CWARNFLAGS.tau32-ddk.c+= ${NO_WMISLEADING_INDENTATION}
CWARNFLAGS.tau32-ddk.c+= ${NO_WUNUSED_BUT_SET_VARIABLE}