⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 io.h

📁 linux-2.6.15.6
💻 H
字号:
/* *  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. * */#ifndef __DIVA_XDI_COMMON_IO_H_INC__ /* { */#define __DIVA_XDI_COMMON_IO_H_INC__/* maximum = 16 adapters */#define DI_MAX_LINKS    MAX_ADAPTER#define ISDN_MAX_NUM_LEN 60/* --------------------------------------------------------------------------  structure for quadro card management (obsolete for  systems that do provide per card load event)  -------------------------------------------------------------------------- */typedef struct { dword         Num ; DEVICE_NAME   DeviceName[4] ; PISDN_ADAPTER QuadroAdapter[4] ;} ADAPTER_LIST_ENTRY, *PADAPTER_LIST_ENTRY ;/* --------------------------------------------------------------------------  Special OS memory support structures  -------------------------------------------------------------------------- */#define MAX_MAPPED_ENTRIES 8typedef struct { void  * Address; dword    Length;} ADAPTER_MEMORY ;/* --------------------------------------------------------------------------  Configuration of XDI clients carried by XDI  -------------------------------------------------------------------------- */#define DIVA_XDI_CAPI_CFG_1_DYNAMIC_L1_ON      0x01#define DIVA_XDI_CAPI_CFG_1_GROUP_POPTIMIZATION_ON 0x02typedef struct _diva_xdi_capi_cfg {  byte cfg_1;} diva_xdi_capi_cfg_t;/* --------------------------------------------------------------------------  Main data structure kept per adapter  -------------------------------------------------------------------------- */struct _ISDN_ADAPTER { void             (* DIRequest)(PISDN_ADAPTER, ENTITY *) ; int                 State ; /* from NT4 1.srv, a good idea, but  a poor achievment */ int                 Initialized ; int         RegisteredWithDidd ; int                 Unavailable ;  /* callback function possible? */ int         ResourcesClaimed ; int         PnpBiosConfigUsed ; dword        Logging ; dword        features ; char        ProtocolIdString[80] ; /*  remember mapped memory areas */ ADAPTER_MEMORY     MappedMemory[MAX_MAPPED_ENTRIES] ; CARD_PROPERTIES     Properties ; dword               cardType ; dword               protocol_id ;       /* configured protocol identifier */ char                protocol_name[8] ;  /* readable name of protocol */ dword               BusType ; dword               BusNumber ; dword               slotNumber ; dword               slotId ; dword               ControllerNumber ;  /* for QUADRO cards only */ PISDN_ADAPTER       MultiMaster ;       /* for 4-BRI card only - use MultiMaster or QuadroList */ PADAPTER_LIST_ENTRY QuadroList ;        /* for QUADRO card  only */ PDEVICE_OBJECT      DeviceObject ; dword               DeviceId ; diva_os_adapter_irq_info_t irq_info; dword volatile      IrqCount ; int                 trapped ; dword               DspCodeBaseAddr ; dword               MaxDspCodeSize ; dword               downloadAddr ; dword               DspCodeBaseAddrTable[4] ; /* add. for MultiMaster */ dword               MaxDspCodeSizeTable[4] ; /* add. for MultiMaster */ dword               downloadAddrTable[4] ; /* add. for MultiMaster */ dword               MemoryBase ; dword               MemorySize ; byte                __iomem *Address ; byte                __iomem *Config ; byte                __iomem *Control ; byte                __iomem *reset ; byte                __iomem *port ; byte                __iomem *ram ; byte                __iomem *cfg ; byte                __iomem *prom ; byte                __iomem *ctlReg ; struct pc_maint  *pcm ; diva_os_dependent_devica_name_t os_name; byte                Name[32] ; dword               serialNo ; dword               ANum ; dword               ArchiveType ; /* ARCHIVE_TYPE_NONE ..._SINGLE ..._USGEN ..._MULTI */ char               *ProtocolSuffix ; /* internal protocolfile table */ char                Archive[32] ; char                Protocol[32] ; char                AddDownload[32] ; /* Dsp- or other additional download files */ char                Oad1[ISDN_MAX_NUM_LEN] ; char                Osa1[ISDN_MAX_NUM_LEN] ; char                Oad2[ISDN_MAX_NUM_LEN] ; char                Osa2[ISDN_MAX_NUM_LEN] ; char                Spid1[ISDN_MAX_NUM_LEN] ; char                Spid2[ISDN_MAX_NUM_LEN] ;  byte                nosig ;  byte                BriLayer2LinkCount ; /* amount of TEI's that adapter will support in P2MP mode */ dword               Channels ; dword               tei ; dword               nt2 ; dword               TerminalCount ; dword               WatchDog ; dword               Permanent ; dword               BChMask ; /* B channel mask for unchannelized modes */ dword               StableL2 ; dword               DidLen ; dword               NoOrderCheck ; dword               ForceLaw; /* VoiceCoding - default:0, a-law: 1, my-law: 2 */ dword               SigFlags ; dword               LowChannel ; dword               NoHscx30 ; dword               ProtVersion ; dword               crc4 ; dword               L1TristateOrQsig ; /* enable Layer 1 Tristate (bit 2)Or Qsig params (bit 0,1)*/ dword               InitialDspInfo ; dword               ModemGuardTone ; dword               ModemMinSpeed ; dword               ModemMaxSpeed ; dword               ModemOptions ; dword               ModemOptions2 ; dword               ModemNegotiationMode ; dword               ModemModulationsMask ; dword               ModemTransmitLevel ; dword               FaxOptions ; dword               FaxMaxSpeed ; dword               Part68LevelLimiter ; dword               UsEktsNumCallApp ; byte                UsEktsFeatAddConf ; byte                UsEktsFeatRemoveConf ; byte                UsEktsFeatCallTransfer ; byte                UsEktsFeatMsgWaiting ; byte                QsigDialect; byte                ForceVoiceMailAlert; byte                DisableAutoSpid; byte                ModemCarrierWaitTimeSec; byte                ModemCarrierLossWaitTimeTenthSec; byte                PiafsLinkTurnaroundInFrames; byte                DiscAfterProgress; byte                AniDniLimiter[3]; byte                TxAttenuation;  /* PRI/E1 only: attenuate TX signal */ word                QsigFeatures; dword               GenerateRingtone ; dword               SupplementaryServicesFeatures; dword               R2Dialect; dword               R2CasOptions; dword               FaxV34Options; dword               DisabledDspMask; dword               AdapterTestMask; dword               DspImageLength; word                AlertToIn20mSecTicks; word                ModemEyeSetup; byte                R2CtryLength; byte                CCBSRelTimer; byte               *PcCfgBufferFile;/* flexible parameter via file */ byte               *PcCfgBuffer ; /* flexible parameter via multistring */ diva_os_dump_file_t dump_file; /* dump memory to file at lowest irq level */ diva_os_board_trace_t board_trace ; /* traces from the board */ diva_os_spin_lock_t isr_spin_lock; diva_os_spin_lock_t data_spin_lock; diva_os_soft_isr_t req_soft_isr; diva_os_soft_isr_t isr_soft_isr; diva_os_atomic_t  in_dpc; PBUFFER             RBuffer;        /* Copy of receive lookahead buffer */ word                e_max; word                e_count; E_INFO             *e_tbl; word                assign;         /* list of pending ASSIGNs  */ word                head;           /* head of request queue    */ word                tail;           /* tail of request queue    */ ADAPTER             a ;             /* not a separate structure */ void        (* out)(ADAPTER * a) ; byte        (* dpc)(ADAPTER * a) ; byte        (* tst_irq)(ADAPTER * a) ; void        (* clr_irq)(ADAPTER * a) ; int         (* load)(PISDN_ADAPTER) ; int         (* mapmem)(PISDN_ADAPTER) ; int         (* chkIrq)(PISDN_ADAPTER) ; void        (* disIrq)(PISDN_ADAPTER) ; void        (* start)(PISDN_ADAPTER) ; void        (* stop)(PISDN_ADAPTER) ; void        (* rstFnc)(PISDN_ADAPTER) ; void        (* trapFnc)(PISDN_ADAPTER) ; dword            (* DetectDsps)(PISDN_ADAPTER) ; void        (* os_trap_nfy_Fnc)(PISDN_ADAPTER, dword) ; diva_os_isr_callback_t diva_isr_handler; dword               sdram_bar;  /* must be 32 bit */ dword               fpga_features; volatile int        pcm_pending; volatile void *     pcm_data; diva_xdi_capi_cfg_t capi_cfg; dword               tasks; void               *dma_map; int             (*DivaAdapterTestProc)(PISDN_ADAPTER); void               *AdapterTestMemoryStart; dword               AdapterTestMemoryLength; const byte* cfg_lib_memory_init; dword       cfg_lib_memory_init_length;};/* ---------------------------------------------------------------------  Entity table   --------------------------------------------------------------------- */struct e_info_s {  ENTITY *      e;  byte          next;                   /* chaining index           */  word          assign_ref;             /* assign reference         */};/* ---------------------------------------------------------------------  S-cards shared ram structure for loading   --------------------------------------------------------------------- */struct s_load { byte ctrl; byte card; byte msize; byte fill0; word ebit; word elocl; word eloch; byte reserved[20]; word signature; byte fill[224]; byte b[256];};#define PR_RAM  ((struct pr_ram *)0)#define RAM ((struct dual *)0)/* ---------------------------------------------------------------------  platform specific conversions   --------------------------------------------------------------------- */extern void * PTR_P(ADAPTER * a, ENTITY * e, void * P);extern void * PTR_X(ADAPTER * a, ENTITY * e);extern void * PTR_R(ADAPTER * a, ENTITY * e);extern void CALLBACK(ADAPTER * a, ENTITY * e);extern void set_ram(void * * adr_ptr);/* ---------------------------------------------------------------------  ram access functions for io mapped cards   --------------------------------------------------------------------- */byte io_in(ADAPTER * a, void * adr);word io_inw(ADAPTER * a, void * adr);void io_in_buffer(ADAPTER * a, void * adr, void * P, word length);void io_look_ahead(ADAPTER * a, PBUFFER * RBuffer, ENTITY * e);void io_out(ADAPTER * a, void * adr, byte data);void io_outw(ADAPTER * a, void * adr, word data);void io_out_buffer(ADAPTER * a, void * adr, void * P, word length);void io_inc(ADAPTER * a, void * adr);void bri_in_buffer (PISDN_ADAPTER IoAdapter, dword Pos,                    void *Buf, dword Len);int bri_out_buffer (PISDN_ADAPTER IoAdapter, dword Pos,                    void *Buf, dword Len, int Verify);/* ---------------------------------------------------------------------  ram access functions for memory mapped cards   --------------------------------------------------------------------- */byte mem_in(ADAPTER * a, void * adr);word mem_inw(ADAPTER * a, void * adr);void mem_in_buffer(ADAPTER * a, void * adr, void * P, word length);void mem_look_ahead(ADAPTER * a, PBUFFER * RBuffer, ENTITY * e);void mem_out(ADAPTER * a, void * adr, byte data);void mem_outw(ADAPTER * a, void * adr, word data);void mem_out_buffer(ADAPTER * a, void * adr, void * P, word length);void mem_inc(ADAPTER * a, void * adr);void mem_in_dw (ADAPTER *a, void *addr, dword* data, int dwords);void mem_out_dw (ADAPTER *a, void *addr, const dword* data, int dwords);/* ---------------------------------------------------------------------  functions exported by io.c   --------------------------------------------------------------------- */extern IDI_CALL Requests[MAX_ADAPTER] ;extern void     DIDpcRoutine (struct _diva_os_soft_isr* psoft_isr,               void* context);extern void     request (PISDN_ADAPTER, ENTITY *) ;/* ---------------------------------------------------------------------  trapFn helpers, used to recover debug trace from dead card   --------------------------------------------------------------------- */typedef struct { word *buf ; word  cnt ; word  out ;} Xdesc ;extern void     dump_trap_frame  (PISDN_ADAPTER IoAdapter, byte __iomem *exception) ;extern void     dump_xlog_buffer (PISDN_ADAPTER IoAdapter, Xdesc *xlogDesc) ;/* --------------------------------------------------------------------- */#endif  /* } __DIVA_XDI_COMMON_IO_H_INC__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -