📄 spromeps.h
字号:
#define _RB_STDCALL
#define _RB_FASTCALL __fastcall
#define _RB_PASCAL __pascal
#define _RB_CDECL __cdecl
#define _RB_FAR
#define _RB_NEAR
#define _RB_HUGE
#define _RB_API EXPENTRY
#define _RB_PTR _RB_FAR *
#elif defined(_NW_)
#define _RB_STDCALL
#define _RB_FASTCALL __fastcall
#define _RB_PASCAL __pascal
#define _RB_CDECL __cdecl
#define _RB_FAR
#define _RB_NEAR
#define _RB_HUGE
#define _RB_API _RB_CDECL
#define _RB_PTR *
#elif defined(_QNX_)
#define _RB_STDCALL
#define _RB_FASTCALL __fastcall
#define _RB_PASCAL __pascal
#define _RB_CDECL __cdecl
#if defined(__FLAT__)
#define _RB_FAR
#define _RB_NEAR
#define _RB_HUGE
#define _RB_PTR *
#define _RB_API _RB_CDECL
#else
#define _RB_FAR __far
#define _RB_NEAR __near
#define _RB_HUGE __huge
#define _RB_PTR _RB_FAR *
#define _RB_API _RB_FAR _RB_CDECL
#endif
#else
#define _RB_STDCALL
#define _RB_FASTCALL __fastcall
#define _RB_PASCAL __pascal
#define _RB_CDECL __cdecl
#define _RB_FAR
#define _RB_NEAR
#define _RB_HUGE
#define _RB_API _RB_CDECL
#define _RB_PTR *
#endif
#endif
/***************************************************************************/
#define SP_LOADDS _RB_LOADDS
#define SP_SYSCALL _RB_SYSCALL
#define SP_STDCALL _RB_STDCALL
#define SP_FASTCALL _RB_FASTCALL
#define SP_PASCAL _RB_PASCAL
#define SP_CDECL _RB_CDECL
#define SP_FAR _RB_FAR
#define SP_NEAR _RB_NEAR
#define SP_HUGE _RB_HUGE
#if ( defined(_DOS4GW_) && defined(__BORLANDC__) && defined(_WATC_) )
#define SP_API __cdecl
#else
#define SP_API _RB_API
#endif
#define SP_PTR _RB_PTR
#define SP_IN
#define SP_OUT
#define SP_IO
#if !defined(_RBTYPES_INC)
typedef void RB_VOID;
typedef unsigned char RB_BOOLEAN;
typedef unsigned char RB_BYTE;
typedef unsigned short int RB_WORD;
typedef unsigned long int RB_DWORD;
typedef RB_VOID SP_PTR RBP_VOID;
typedef RB_BYTE SP_PTR RBP_BYTE;
typedef RB_BOOLEAN SP_PTR RBP_BOOLEAN;
typedef RB_WORD SP_PTR RBP_WORD;
typedef RB_DWORD SP_PTR RBP_DWORD;
#endif
typedef RB_DWORD RB_SPRO_APIPACKET[SPRO_APIPACKET_SIZE/sizeof(RB_DWORD)];
typedef RB_WORD SP_STATUS;
typedef RBP_VOID RBP_SPRO_APIPACKET;
/* define a unit info structure */
typedef struct _RB_UNIT_INFO {
RB_WORD devID;
RB_WORD serialNum;
RB_WORD port;
RB_BYTE reserved[18];
} RB_UNIT_INFO;
typedef RB_UNIT_INFO SP_PTR RBP_UNIT_INFO;
/* provided for packward compatibility for OS/2 spromeps.h */
#undef RNBO_SPRO_API
#define RNBO_SPRO_APIPACKET RB_SPRO_APIPACKET
#define RNBO_SPRO_APIPACKET_PTR RBP_SPRO_APIPACKET
#define RNBO_SPRO_API SP_API
#define RNBO_USHORT_PTR RBP_WORD
#define RNBO_UCHAR_PTR RBP_BYTE
#define RNBO_QUERY_PTR RBP_BYTE
#define RNBO_ULONG_PTR RBP_DWORD
/* machine types */
#define RB_MIN_MACH_TYPE 0
#define RB_AUTODETECT_MACHINE 0 /* Autodetect machine type */
#define RB_IBM_MACHINE 1 /* defines IBM type hw */
#define RB_NEC_MACHINE 2 /* defines NEC PC-9800 hw */
#define RB_FMR_MACHINE 3 /* defines Fujitsu FMR hw */
#define RB_MAX_MACH_TYPE 3
/* OS types */
#define RB_MIN_OS_TYPE 0
#define RB_AUTODETECT_OS_TYPE 0 /* Autodetect OS type */
#define RB_OS_DOS 1 /* DOS operating system */
#define RB_OS_RSRV1 2 /* reserved */
#define RB_OS_RSRV2 3 /* reserved */
#define RB_OS_WIN3x 4 /* Windows 3.x operating env */
#define RB_OS_WINNT 5 /* Windows NT operating system*/
#define RB_OS_OS2 6 /* OS/2 operating system */
#define RB_OS_WIN95 7 /* Windows 95 operating system*/
#define RB_OS_WIN32s 8 /* Windows WIN32s env */
#define RB_OS_NW 9 /* Netware operating system */
#define RB_OS_QNX 10
#define RB_MAX_OS_TYPE 9
/* Driver types */
#define RB_DOSRM_LOCAL_DRVR 1 /* DOS Real Mode local driver */
#define RB_WIN3x_LOCAL_DRVR 2 /* Windows 3.x local driver */
#define RB_WIN32s_LOCAL_DRVR 3 /* Win32s local driver */
#define RB_WIN3x_SYS_DRVR 4 /* Windows 3.x system driver */
#define RB_WINNT_SYS_DRVR 5 /* Windows NT system driver */
#define RB_OS2_SYS_DRVR 6 /* OS/2 system driver */
#define RB_WIN95_SYS_DRVR 7 /* Windows 95 system driver */
#define RB_NW_LOCAL_DRVR 8 /* Netware local driver */
#define RB_QNX_LOCAL_DRVR 9 /* QNX local driver */
/* Router Flags */
#define RB_ROUTER_USE_LOCAL_DRVR 0x0001 /* use linked in driver */
#define RB_ROUTER_USE_SYS_DRVR 0x0002 /* use system driver */
#define RB_ROUTER_AUTODETECT_DRVR (RB_ROUTER_USE_LOCAL_DRVR | \
RB_ROUTER_USE_SYS_DRVR)
#define RB_MAX_ROUTER_FLAGS (RB_ROUTER_USE_LOCAL_DRVR | \
RB_ROUTER_USE_SYS_DRVR)
/* Port Params flags */
#define RB_FIRST_LOG_PORT 0 /* first logical port */
#define RB_LAST_LOG_PORT 3 /* last logical port */
#define RB_VALIDATE_PORT 0x00000001 /* I/O validate port exsitence*/
#define RB_CONT_HNDLR_INSTALLED 0x00000002 /* OUT system contention */
#define RB_USER_DEFINED_PORT 0x00000004 /* OUT user defined port */
#define RB_FLAGS_DRVR_DEFINED 0x80000000 /* I/O driver defined flags */
#define RB_RSRV_PORT_FLAGS 0x7FFFFFF8 /* reserved */
#define RB_DEFAULT_PORT_FLAGS (RB_VALIDATE_PORT | RB_FLAGS_DRVR_DEFINED)
#define RB_USE_AUTOTIMING 0
/* Port types */
#define RB_MIN_PORT_TYPE 0
#define RB_AUTODETECT_PORT_TYPE 0 /* IN autodetect port type */
#define RB_NEC_PORT_TYPE 1 /* I/O NEC-PC9800 series port */
#define RB_FMR_PORT_TYPE 2 /* I/O Fujitus FMR series port*/
#define RB_PS2_PORT_TYPE 3 /* I/O IBM/AT/PS2 series port */
#define RB_PS2_DMA_PORT_TYPE 4 /* I/O IBM PS2 DMA series port*/
#define RB_MAX_PORT_TYPE 4
/* Contention Methods (bit mask) */
#define RB_CONT_METH_SYS_ALLOC 0x00000001 /* I/O System port allocation */
#define RB_CONT_METH_NT_RIRQL 0x00000002 /* OUT NT Raise IRQ level */
#define RB_CONT_METH_SYS_INT 0x00000004 /* I/O Disable System Ints */
#define RB_CONT_METH_MASK_INT 0x00000008 /* I/O Mask ints at PIC */
#define RB_CONT_METH_WIN_CS 0x00000010 /* I/O Windows Critical Sect */
#define RB_CONT_METH_POLL_HW 0x00000020 /* I/O H/W polling of port */
#define RB_CONT_METH_RBW 0x00000040 /* I/O Read Before Write */
#define RB_CONT_METH_DRVR_DEFINED 0x80000000 /* Contention defined by drvr.*/
/* Interrupts to mask (bit mask) */
#define RB_IRQ_MASK_LPT1 0x0001 /* mask LPT1 interrupt */
#define RB_IRQ_MASK_LPT2 0x0002 /* mask LPT2 interrupt */
#define RB_IRQ_MASK_TIMER 0x0004 /* mask TIMER interrupt */
#define RB_IRQ_MAX_MASK (RB_IRQ_MASK_LPT1 | \
RB_IRQ_MASK_LPT2 | \
RB_IRQ_MASK_TIMER)
#define RB_IRQ_MASK_DEF (RB_IRQ_MASK_LPT1 | \
RB_IRQ_MASK_TIMER)
/* Define default retry counts and intervals */
#define RB_PORT_CONT_RETRY_CNT_DEF 100 /* 100 retries for port cont */
#define RB_PORT_CONT_RETRY_INT_DEF 300 /* 300 ms retry interval */
#define RB_DEV_RETRY_CNT_DEF 100 /* 100 retries for device */
/* Define the cmd field values for RB_SPRO_LIB_PARAMS */
#define RB_SET_LIB_PARAMS_CMD 0x0001 /* Set library parameters */
#define RB_GET_LIB_PARAMS_CMD 0x0002 /* Get library parameters */
/* define the func field values for RB_SPRO_LIB_PARAMS */
#define RB_MACHINE_TYPE_FUNC 0x0001 /* Set/Get Machine type */
#define RB_DELAY_FUNC 0x0002 /* Set/Get Delay value */
#define RB_MASK_INTS_FUNC 0x0003 /* Set/Get Mask interrupts */
#define RB_ROUTER_FLAGS_FUNC 0x0004 /* Set/Get Router flags */
#define RB_OS_PARAMS_FUNC 0x0005 /* Set/Get O/S parameters */
#define RB_PORT_PARAMS_FUNC 0x0006 /* Set/Get Port Parameters */
typedef struct _RB_SP_OS_PARAMS {
SP_IO RB_WORD osType; /* type of Operating System */
SP_OUT RB_WORD osVer; /* version of Operating System*/
} RB_SP_OS_PARAMS;
typedef RB_SP_OS_PARAMS SP_PTR RBP_SP_OS_PARAMS;
typedef struct _RB_SP_PORT_PARAMS {
SP_IO RB_WORD logPortNum; /* logical port number */
SP_IO RB_WORD sysPortNum; /* system port number */
SP_IO RB_WORD portType; /* port type */
SP_IO RB_WORD phyAddr; /* physcial address */
SP_OUT RB_WORD mappedAddr; /* map address */
SP_IO RB_WORD deviceRetryCnt; /* device retry count */
SP_IO RB_WORD contentionRetryCnt; /* port contention retry count */
SP_IO RB_WORD padding1;
SP_IO RB_DWORD contentionMethod; /* port contention method */
SP_IO RB_DWORD contentionRetryInterval; /* port contention retry int */
SP_IO RB_DWORD flags1; /* port flags */
} RB_SP_PORT_PARAMS;
typedef RB_SP_PORT_PARAMS SP_PTR RBP_SP_PORT_PARAMS;
typedef union _RB_SP_CFG_PARAMS {
SP_IO RB_WORD machineType; /* machine type: IBM, NEC, or FMR */
SP_IO RB_WORD delay; /* number of loops for 2us delay */
SP_IO RB_WORD maskInterrupts; /* interrupts to mask */
SP_IO RB_WORD routerFlags; /* request routing flags */
SP_IO RB_SP_OS_PARAMS osParams; /* OS parameters */
SP_IO RB_SP_PORT_PARAMS portParams; /* port parameters */
} RB_SP_CFG_PARAMS;
typedef RB_SP_CFG_PARAMS SP_PTR RBP_SP_CFG_PARAMS;
typedef struct _RB_SPRO_LIB_PARAMS {
SP_IN RB_WORD cmd; /* command - set/get parameters */
SP_IN RB_WORD func; /* function to set/get */
SP_IO RB_SP_CFG_PARAMS params;
} RB_SPRO_LIB_PARAMS;
typedef RB_SPRO_LIB_PARAMS SP_PTR RBP_SPRO_LIB_PARAMS;
/* Define the extern routines */
SP_EXPORT
SP_STATUS SP_API RNBOsproCfgLibParams( SP_IO RBP_SPRO_APIPACKET thePacket,
SP_IO RBP_SPRO_LIB_PARAMS params );
SP_EXPORT
SP_STATUS SP_API RNBOsproFormatPacket( SP_OUT RBP_SPRO_APIPACKET thePacket,
SP_IN RB_WORD thePacketSize );
SP_EXPORT
SP_STATUS SP_API RNBOsproInitialize( SP_OUT RBP_SPRO_APIPACKET packet );
SP_EXPORT
SP_STATUS SP_API RNBOsproFindFirstUnit( SP_IN RBP_SPRO_APIPACKET packet,
SP_IN RB_WORD devleoperID );
SP_EXPORT
SP_STATUS SP_API RNBOsproFindNextUnit( SP_IN RBP_SPRO_APIPACKET packet );
SP_EXPORT
SP_STATUS SP_API RNBOsproRead( SP_IN RBP_SPRO_APIPACKET packet,
SP_IN RB_WORD address,
SP_OUT RBP_WORD data );
SP_EXPORT
SP_STATUS SP_API RNBOsproExtendedRead( SP_IN RBP_SPRO_APIPACKET packet,
SP_IN RB_WORD address,
SP_OUT RBP_WORD data,
SP_OUT RBP_BYTE accessCode );
SP_EXPORT
SP_STATUS SP_API RNBOsproWrite( SP_IN RBP_SPRO_APIPACKET packet,
SP_IN RB_WORD writePassword,
SP_IN RB_WORD address,
SP_IN RB_WORD data,
SP_IN RB_BYTE accessCode );
SP_EXPORT
SP_STATUS SP_API RNBOsproOverwrite( SP_IN RBP_SPRO_APIPACKET packet,
SP_IN RB_WORD writePassword,
SP_IN RB_WORD overwritePassword1,
SP_IN RB_WORD overwritePassword2,
SP_IN RB_WORD address,
SP_IN RB_WORD data,
SP_IN RB_BYTE accessCode );
SP_EXPORT
SP_STATUS SP_API RNBOsproDecrement( SP_IN RBP_SPRO_APIPACKET packet,
SP_IN RB_WORD writePassword,
SP_IN RB_WORD address );
SP_EXPORT
SP_STATUS SP_API RNBOsproActivate( SP_IN RBP_SPRO_APIPACKET packet,
SP_IN RB_WORD writePassword,
SP_IN RB_WORD activatePassword1,
SP_IN RB_WORD activatePassword2,
SP_IN RB_WORD address );
SP_EXPORT
SP_STATUS SP_API RNBOsproQuery( SP_IN RBP_SPRO_APIPACKET packet,
SP_IN RB_WORD address,
SP_IN RBP_VOID queryData,
SP_OUT RBP_VOID response,
SP_OUT RBP_DWORD response32,
SP_IN RB_WORD length );
SP_EXPORT
RB_WORD SP_API RNBOsproGetFullStatus( SP_IN RBP_SPRO_APIPACKET thePacket );
SP_EXPORT
SP_STATUS SP_API RNBOsproGetVersion( SP_IN RBP_SPRO_APIPACKET thePacket,
SP_OUT RBP_BYTE majVer,
SP_OUT RBP_BYTE minVer,
SP_OUT RBP_BYTE rev,
SP_OUT RBP_BYTE osDrvrType );
SP_EXPORT
SP_STATUS SP_API RNBOsproGetUnitInfo( SP_IO RBP_SPRO_APIPACKET thePacket,
SP_OUT RBP_UNIT_INFO unitInfo );
SP_EXPORT
SP_STATUS SP_API RNBOsproSetUnitInfo( SP_IO RBP_SPRO_APIPACKET thePacket,
SP_IN RBP_UNIT_INFO unitInfo );
#endif /* _SPROMEPS_H */
/* end of file */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -