📄 idi.h
字号:
/* * External IDI interface * * Copyright (C) Eicon Technology Corporation, 2000. * * Eicon File Revision : 1.0 * * This software may be used and distributed according to the terms * of the GNU General Public License, incorporated herein by reference. * */#if !defined(IDI_H)#define IDI_H#include "sys.h"/* typedefs for our data structures */typedef struct get_name_s GET_NAME;typedef struct entity_s ENTITY;typedef struct buffers_s BUFFERS;/* IDI request/callback function pointer */typedef void (* IDI_CALL)(ENTITY *);typedef struct { word length; /* length of data/parameter field */ byte P[270]; /* data/parameter field */} DBUFFER;#define REQ_NAME 0x0100#define BOARD_NAME_LENGTH 9struct get_name_s { word command; /* command = 0x0100 */ byte name[BOARD_NAME_LENGTH];};#define REQ_REMOVE 0x0000 /* pointer to word which is 0 */#define REQ_SERIAL 0x0200 struct get_serial_s { word command; /* command = 0x0200 */ dword serial; /* serial number */};#define REQ_POSTCALL 0x0300 struct postcall_s { word command; /* command = 0x0300 */ word dummy; /* not used */ IDI_CALL callback; /* routine address to call back */ ENTITY *contxt; /* ptr to entity to use */};#define REQ_XLOG 0x0400 /* structure is card dependent/defined locally */struct buffers_s { word PLength; byte *P;};struct entity_s { byte Req; /* pending request */ byte Rc; /* return code received */ byte Ind; /* indication received */ byte ReqCh; /* channel of current Req */ byte RcCh; /* channel of current Rc */ byte IndCh; /* channel of current Ind */ byte Id; /* ID used by this entity */ byte GlobalId; /* reserved field */ byte XNum; /* number of X-buffers */ byte RNum; /* number of R-buffers */ BUFFERS *X; /* pointer to X-buffer list */ BUFFERS *R; /* pointer to R-buffer list */ word RLength; /* length of current R-data */ DBUFFER *RBuffer; /* buffer of current R-data */ byte RNR; /* receive not ready flag */ byte complete; /* receive complete status */ IDI_CALL callback; word user[2]; /* fields used by the driver internally */ byte No; /* entity number */ byte reserved2; /* reserved field */ byte More; /* R/X More flags */ byte MInd; /* MDATA coding for this ID */ byte XCurrent; /* current transmit buffer */ byte RCurrent; /* current receive buffer */ word XOffset; /* offset in x-buffer */ word ROffset; /* offset in r-buffer */};typedef struct { byte type; byte channels; word features; /* dword serial; */ IDI_CALL request;} DESCRIPTOR;extern void DIVA_DIDD_Read(DESCRIPTOR *, int); /* descriptor type field coding */#define IDI_ADAPTER_S 1#define IDI_ADAPTER_PR 2#define IDI_ADAPTER_DIVA 3#define IDI_ADAPTER_MAESTRA 4#define IDI_ADAPTER_MAESTRAQ 5#define IDI_ADAPTER_MAESTRAP 6#define IDI_VADAPTER 0x40#define IDI_DRIVER 0x80#define IDI_DIMAINT 0xff/* feature bit mask values */#define DI_VOICE 0x0 /* obsolete define */#define DI_FAX3 0x1#define DI_MODEM 0x2#define DI_POST 0x4#define DI_V110 0x8#define DI_V120 0x10#define DI_POTS 0x20#define DI_CODEC 0x40#define DI_MANAGE 0x80#define DI_V_42 0x0100#define DI_EXTD_FAX 0x0200 /* Extended FAX (ECM, 2D, T.6, Polling) */#endif /* IDI_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -