123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- /*
- *
- 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
|