patch-2.2.19 linux/drivers/isdn/eicon/divas.h
Next file: linux/drivers/isdn/eicon/dsp_defs.h
Previous file: linux/drivers/isdn/eicon/divalog.h
Back to the patch index
Back to the overall index
- Lines: 230
- Date:
Sun Mar 25 11:37:32 2001
- Orig file:
v2.2.18/drivers/isdn/eicon/divas.h
- Orig date:
Wed Dec 31 19:00:00 1969
diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.18/drivers/isdn/eicon/divas.h linux/drivers/isdn/eicon/divas.h
@@ -0,0 +1,229 @@
+
+/*
+ *
+ * Copyright (C) Eicon Technology Corporation, 2000.
+ *
+ * Eicon File Revision : 1.5
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+
+/* External Diva Server driver include file */
+
+#if !defined(DIVAS_H)
+#define DIVAS_H
+
+#include "sys.h"
+
+
+/* IOCTL commands */
+
+#define DIA_IOCTL_INIT (0)
+#define DIA_IOCTL_LOAD (1)
+#define DIA_IOCTL_CONFIG (2)
+#define DIA_IOCTL_START (3)
+#define DIA_IOCTL_GET_NUM (4)
+#define DIA_IOCTL_GET_LIST (5)
+#define DIA_IOCTL_LOG (6)
+#define DIA_IOCTL_DETECT (7)
+#define DIA_IOCTL_SPACE (8)
+#define DIA_IOCTL_GET_MEM (9)
+#define DIA_IOCTL_FLAVOUR (10)
+#define DIA_IOCTL_XLOG_REQ (11)
+
+/* Error codes */
+
+#define XLOG_ERR_CARD_NUM (13)
+#define XLOG_ERR_DONE (14)
+#define XLOG_ERR_CMD (15)
+#define XLOG_ERR_TIMEOUT (16)
+#define XLOG_ERR_CARD_STATE (17)
+#define XLOG_ERR_UNKNOWN (18)
+#define XLOG_OK (0)
+
+/* Adapter states */
+
+#define DIA_UNKNOWN (0)
+#define DIA_RESET (1)
+#define DIA_LOADED (2)
+#define DIA_CONFIGURED (3)
+#define DIA_RUNNING (4)
+
+/* Stucture for getting card specific information from active cad driver */
+
+typedef struct
+{
+ int card_type;
+ int card_slot;
+ int state;
+} dia_card_list_t;
+
+/* use following to select which logging to have active */
+
+#define DIVAS_LOG_DEBUG (1 << 0)
+#define DIVAS_LOG_XLOG (1 << 1)
+#define DIVAS_LOG_IDI (1 << 2)
+#define DIVAS_LOG_CAPI (1 << 3)
+
+/* stucture for DIA_IOCTL_LOG to get information from adapter */
+
+typedef struct
+{
+ int card_id;
+ int log_types; /* bit mask of log types: use DIVAS_LOG_XXX */
+} dia_log_t;
+
+/* list of cards supported by this driver */
+
+#define DIA_CARD_TYPE_DIVA_SERVER (0) /* Diva Server PRI */
+#define DIA_CARD_TYPE_DIVA_SERVER_B (1) /* Diva Server BRI */
+#define DIA_CARD_TYPE_DIVA_SERVER_Q (2) /* Diva Server 4-BRI */
+
+/* bus types */
+
+#define DIA_BUS_TYPE_ISA (0)
+#define DIA_BUS_TYPE_ISA_PNP (1)
+#define DIA_BUS_TYPE_PCI (2)
+#define DIA_BUS_TYPE_MCA (3)
+
+/* types of memory used (index for memory array below) */
+
+#define DIVAS_RAM_MEMORY 0
+#define DIVAS_REG_MEMORY 1
+#define DIVAS_CFG_MEMORY 2
+#define DIVAS_SHARED_MEMORY 3
+#define DIVAS_CTL_MEMORY 4
+/*
+ * card config information
+ * passed as parameter to DIA_IOCTL_INIT ioctl to initialise new card
+ */
+
+typedef struct
+{
+ int card_id; /* unique id assigned to this card */
+ int card_type; /* use DIA_CARD_TYPE_xxx above */
+ int bus_type; /* use DIA_BUS_TYPE_xxx above */
+ int bus_num; /* bus number (instance number of bus type) */
+ int func_num; /* adapter function number (PCI register) */
+ int slot; /* slot number in bus */
+ unsigned char irq; /* IRQ number */
+ int reset_base; /* Reset register for I/O mapped cards */
+ int io_base; /* I/O base for I/O mapped cards */
+ void *memory[5]; /* memory base addresses for memory mapped cards */
+ char name[9]; /* name of adapter */
+ int serial; /* serial number */
+ unsigned char int_priority; /* Interrupt priority */
+} dia_card_t;
+
+/*
+ * protocol configuration information
+ * passed as parameter to DIA_IOCTL_CONFIG ioctl to configure card
+ */
+
+typedef struct
+{
+ int card_id; /* to identify particular card */
+ unsigned char tei;
+ unsigned char nt2;
+ unsigned char watchdog;
+ unsigned char permanent;
+ unsigned char x_interface;
+ unsigned char stable_l2;
+ unsigned char no_order_check;
+ unsigned char handset_type;
+ unsigned char sig_flags;
+ unsigned char low_channel;
+ unsigned char prot_version;
+ unsigned char crc4;
+ struct
+ {
+ unsigned char oad[32];
+ unsigned char osa[32];
+ unsigned char spid[32];
+ }terminal[2];
+} dia_config_t;
+
+/*
+ * code configuration
+ * passed as parameter to DIA_IOCTL_LOAD ioctl
+ * one of these ioctl per code file to load
+ */
+
+typedef struct
+{
+ int card_id; /* card to load */
+ enum
+ {
+ DIA_CPU_CODE, /* CPU code */
+ DIA_DSP_CODE, /* DSP code */
+ DIA_CONT_CODE, /* continuation of code */
+ DIA_TABLE_CODE, /* code table */
+ DIA_DLOAD_CNT, /* number of downloads*/
+ DIA_FPGA_CODE
+ } code_type; /* code for CPU or DSP ? */
+ int length; /* length of code */
+ unsigned char *code; /* pointer (in user-space) to code */
+} dia_load_t;
+
+/*
+ * start configuration
+ * passed as parameter to DIA_IOCTL_START ioctl
+ */
+
+typedef struct
+{
+ int card_id; /* card to start */
+} dia_start_t;
+
+/* used for retrieving memory from the card */
+
+typedef struct {
+ word card_id;
+ dword addr;
+ byte data[16 * 8];
+} mem_block_t;
+
+/* DIVA Server specific addresses */
+
+#define DIVAS_CPU_START_ADDR (0x0)
+#define ORG_MAX_PROTOCOL_CODE_SIZE 0x000A0000
+#define ORG_MAX_DSP_CODE_SIZE (0x000F0000 - ORG_MAX_PROTOCOL_CODE_SIZE)
+#define ORG_DSP_CODE_BASE (0xBF7F0000 - ORG_MAX_DSP_CODE_SIZE)
+#define DIVAS_DSP_START_ADDR (0xBF7A0000)
+#define DIVAS_SHARED_OFFSET (0x1000)
+#define MP_DSP_CODE_BASE 0xa03a0000
+#define MQ_PROTCODE_OFFSET 0x100000
+#define MQ_SM_OFFSET 0X0f0000
+
+#define V90D_MAX_PROTOCOL_CODE_SIZE 0x00090000
+#define V90D_MAX_DSP_CODE_SIZE (0x000F0000 - V90D_MAX_PROTOCOL_CODE_SIZE)
+#define V90D_DSP_CODE_BASE (0xBF7F0000 - V90D_MAX_DSP_CODE_SIZE)
+
+#define MQ_ORG_MAX_PROTOCOL_CODE_SIZE 0x000a0000 /* max 640K Protocol-Code */
+#define MQ_ORG_MAX_DSP_CODE_SIZE 0x00050000 /* max 320K DSP-Code */
+#define MQ_ORG_DSP_CODE_BASE (MQ_MAX_DSP_DOWNLOAD_ADDR \
+ - MQ_ORG_MAX_DSP_CODE_SIZE)
+#define MQ_V90D_MAX_PROTOCOL_CODE_SIZE 0x00090000 /* max 576K Protocol-Code */
+#define MQ_V90D_MAX_DSP_CODE_SIZE 0x00060000 /* max 384K DSP-Code if V.90D included */
+#define MQ_MAX_DSP_DOWNLOAD_ADDR 0xa03f0000
+#define MQ_V90D_DSP_CODE_BASE (MQ_MAX_DSP_DOWNLOAD_ADDR \
+ - MQ_V90D_MAX_DSP_CODE_SIZE)
+
+
+#define ALIGNMENT_MASK_MAESTRA 0xfffffffc
+
+#endif /* DIVAS_H */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)