diff options
Diffstat (limited to 'drivers/isdn/hardware/eicon/di.h')
-rw-r--r-- | drivers/isdn/hardware/eicon/di.h | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/drivers/isdn/hardware/eicon/di.h b/drivers/isdn/hardware/eicon/di.h new file mode 100644 index 000000000000..dcf37b10f5dc --- /dev/null +++ b/drivers/isdn/hardware/eicon/di.h @@ -0,0 +1,118 @@ + +/* + * + Copyright (c) Eicon Networks, 2002. + * + This source file is supplied for the use with + Eicon Networks range of DIVA Server Adapters. + * + Eicon File Revision : 2.1 + * + 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. + * + */ +/* + * some macros for detailed trace management + */ +#include "di_dbg.h" +/*****************************************************************************/ +#define XMOREC 0x1f +#define XMOREF 0x20 +#define XBUSY 0x40 +#define RMORE 0x80 +#define DIVA_MISC_FLAGS_REMOVE_PENDING 0x01 +#define DIVA_MISC_FLAGS_NO_RC_CANCELLING 0x02 +#define DIVA_MISC_FLAGS_RX_DMA 0x04 + /* structure for all information we have to keep on a per */ + /* adapater basis */ +typedef struct adapter_s ADAPTER; +struct adapter_s { + void * io; + byte IdTable[256]; + byte IdTypeTable[256]; + byte FlowControlIdTable[256]; + byte FlowControlSkipTable[256]; + byte ReadyInt; + byte RcExtensionSupported; + byte misc_flags_table[256]; + dword protocol_capabilities; + byte ( * ram_in)(ADAPTER * a, void * adr); + word ( * ram_inw)(ADAPTER * a, void * adr); + void (* ram_in_buffer)(ADAPTER * a, void * adr, void * P, word length); + void (* ram_look_ahead)(ADAPTER * a, PBUFFER * RBuffer, ENTITY * e); + void ( * ram_out)(ADAPTER * a, void * adr, byte data); + void ( * ram_outw)(ADAPTER * a, void * adr, word data); + void (* ram_out_buffer)(ADAPTER * a, void * adr, void * P, word length); + void ( * ram_inc)(ADAPTER * a, void * adr); +#if defined(DIVA_ISTREAM) + dword rx_stream[256]; + dword tx_stream[256]; + word tx_pos[256]; + word rx_pos[256]; + byte stream_buffer[2512]; + dword ( * ram_offset)(ADAPTER * a); + void ( * ram_out_dw) (ADAPTER *a, + void *addr, + const dword* data, + int dwords); + void ( * ram_in_dw) (ADAPTER *a, + void *addr, + dword* data, + int dwords); + void ( * istream_wakeup)(ADAPTER* a); +#else + byte stream_buffer[4]; +#endif +}; +/*------------------------------------------------------------------*/ +/* public functions of IDI common code */ +/*------------------------------------------------------------------*/ +void pr_out(ADAPTER * a); +byte pr_dpc(ADAPTER * a); +byte scom_test_int(ADAPTER * a); +void scom_clear_int(ADAPTER * a); +/*------------------------------------------------------------------*/ +/* OS specific functions used by IDI common code */ +/*------------------------------------------------------------------*/ +void free_entity(ADAPTER * a, byte e_no); +void assign_queue(ADAPTER * a, byte e_no, word ref); +byte get_assign(ADAPTER * a, word ref); +void req_queue(ADAPTER * a, byte e_no); +byte look_req(ADAPTER * a); +void next_req(ADAPTER * a); +ENTITY * entity_ptr(ADAPTER * a, byte e_no); +#if defined(DIVA_ISTREAM) +struct _diva_xdi_stream_interface; +void diva_xdi_provide_istream_info (ADAPTER* a, + struct _diva_xdi_stream_interface* pI); +void pr_stream (ADAPTER * a); +int diva_istream_write (void* context, + int Id, + void* data, + int length, + int final, + byte usr1, + byte usr2); +int diva_istream_read (void* context, + int Id, + void* data, + int max_length, + int* final, + byte* usr1, + byte* usr2); +#if defined(DIVA_IDI_RX_DMA) +#include "diva_dma.h" +#endif +#endif |