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

📄 rtpkt.h

📁 ftam等标准协议服务器和客户端的源代码。
💻 H
字号:
/* rtpkt.h - include file for reliable transfer providers (RtS-PROVIDER) *//*  * $Header: /f/iso/h/RCS/rtpkt.h,v 5.0 88/07/21 14:39:28 mrose Rel $ * * * $Log$ *//* *				  NOTICE * *    Acquisition, use, and distribution of this module and related *    materials are subject to the restrictions of a license agreement. *    Consult the Preface in the User's Manual for the full terms of *    this agreement. * */#ifndef	_RtSAP_#include "rtsap.h"		/* definitions for RtS-USERs */#endif#include "acpkt.h"		/* definitions for AcS-PROVIDERs */#ifndef	_SSAP_#include "ssap.h"		/* definitions for SS-USERs */#endif/*  */#define	rtsapPsig(acb, sd) \{ \    if ((acb = findacblk (sd)) == NULL) { \	(void) sigsetmask (smask); \	return rtsaplose (rti, RTS_PARAMETER, NULLCP, \			    "invalid association descriptor"); \    } \    if (!(acb -> acb_flags & ACB_RTS)) { \	(void) sigsetmask (smask); \	return rtsaplose (rti, RTS_OPERATION, NULLCP, \			    "not an association descriptor for RTS"); \    } \    if (!(acb -> acb_flags & ACB_CONN)) { \	(void) sigsetmask (smask); \	return rtsaplose (rti, RTS_OPERATION, NULLCP, \			    "association descriptor not connected"); \    } \    if (acb -> acb_flags & ACB_FINN) { \	(void) sigsetmask (smask); \	return rtsaplose (rti, RTS_OPERATION, NULLCP, \			    "association descriptor finishing"); \    } \}#define	rtsapFsig(acb, sd) \{ \    if ((acb = findacblk (sd)) == NULL) { \	(void) sigsetmask (smask); \	return rtsaplose (rti, RTS_PARAMETER, NULLCP, \			    "invalid association descriptor"); \    } \    if (!(acb -> acb_flags & ACB_RTS)) { \	(void) sigsetmask (smask); \	return rtsaplose (rti, RTS_OPERATION, NULLCP, \			    "not an association descriptor for RTS"); \    } \    if (!(acb -> acb_flags & ACB_CONN)) { \	(void) sigsetmask (smask); \	return rtsaplose (rti, RTS_OPERATION, NULLCP, \			    "association descriptor not connected"); \    } \    if (!(acb -> acb_flags & ACB_FINN)) { \	(void) sigsetmask (smask); \	return rtsaplose (rti, RTS_OPERATION, NULLCP, \			    "association descriptor not finishing"); \    } \}#define	missingP(p) \{ \    if (p == NULL) \	return rtsaplose (rti, RTS_PARAMETER, NULLCP, \			    "mandatory parameter \"%s\" missing", "p"); \}#ifndef	lint#ifndef	__STDC__#define	copyRtSAPdata(base,len,d) \{ \    register int i = len; \    if ((d -> d/* */_cc = min (i, sizeof d -> d/* */_data)) > 0) \	bcopy (base, d -> d/* */_data, d -> d/* */_cc); \}#else#define	copyRtSAPdata(base,len,d) \{ \    register int i = len; \    if ((d -> d##_cc = min (i, sizeof d -> d##_data)) > 0) \	bcopy (base, d -> d##_data, d -> d##_cc); \}#endif#else#define	copyRtSAPdata(base,len,d)	bcopy (base, (char *) d, len)#endif#define	pylose() \	rtpktlose (acb, rti, RTS_PROTOCOL, NULLCP, "%s", PY_pepy)/* would really prefer to determine DEFAULT_CKPOINT dynamically, but can't   since need to know it *before* doing the A-ASSOCIATE.REQUEST or   S-CONNECT.REQUEST... */#define	DEFAULT_CKPOINT	(65518 >> 10)#define	DEFAULT_WINDOW	PCONN_WD_DFLT#define	RTS_MYREQUIRE	(SR_EXCEPTIONS | SR_ACTIVITY | SR_HALFDUPLEX \			    | SR_MINORSYNC)#define	RT_ASN		"rtse pci version 1"int	rtpktlose (), rtsaplose ();/*  */#define	SetPS2RtService(acb) \{ \    (acb) -> acb_pturnrequest = rt2pspturn; \    (acb) -> acb_gturnrequest = rt2psgturn; \    (acb) -> acb_transferequest = rt2pstrans; \    (acb) -> acb_rtwaitrequest = rt2pswait; \    (acb) -> acb_rtsetindications = rt2psasync; \    (acb) -> acb_rtselectmask = rt2psmask; \    (acb) -> acb_rtpktlose = rt2pslose; \}int	acs2rtslose (), acs2rtsabort (), ps2rtslose ();int	rt2pspturn (), rt2psgturn (), rt2pstrans (), rt2pswait (),	rt2psasync (), rt2psmask (), rt2pslose ();#define	SetSS2RtService(acb) \{ \    (acb) -> acb_pturnrequest = rt2sspturn; \    (acb) -> acb_gturnrequest = rt2ssgturn; \    (acb) -> acb_transferequest = rt2sstrans; \    (acb) -> acb_rtwaitrequest = rt2sswait; \    (acb) -> acb_rtsetindications = rt2ssasync; \    (acb) -> acb_rtselectmask = rt2ssmask; \    (acb) -> acb_rtpktlose = rt2sslose; \}int	ss2rtslose (), ss2rtsabort ();int	rt2sspturn (), rt2ssgturn (), rt2sstrans (), rt2sswait (),	rt2ssasync (), rt2ssmask (), rt2sslose ();/*  */				/* RTORQ apdu */#define	RTORQ_CKPOINT	0	/* checkpointSize tag */#define	  RTORQ_CK_DFLT	0	/*   default */#define	RTORQ_WINDOW	1	/* windowSize tag */#define	  RTORQ_WD_DFLT	3	/*   default */#define	RTORQ_DIALOGUE	2	/* dialogueMode tag */#define	  RTORQ_DM_MONO 0	/*   monologue */#define	  RTORQ_DM_TWA	1	/*   two-way alternate */#define	  RTORQ_DM_DFLT	RTORQ_DM_MONO#define	RTORQ_CONNDATA	3	/* connectionDataRQ tag */#define	  RTORQ_CD_OPEN 0	/*   open tag */#define	  RTORQ_CD_RCVR	1	/*   recover tag */				/* RTOAC apdu */#define	RTOAC_CKPOINT	0	/* checkpointSize tag */#define	  RTOAC_CK_DFLT	0	/*   default */#define	RTOAC_WINDOW	1	/* windowSize tag */#define	  RTOAC_WD_DFLT	3	/*   default */#define	RTOAC_CONNDATA	2	/* connectionDataAC */#define	  RTOAC_CD_OPEN	0	/*   open tag */#define	  RTOAC_CD_RCVR	1	/*   recover tag */				/* RTORJ apdu */#define	RTORJ_REFUSE	0	/* refuseReason tag */#define	RTORJ_USERDATA	1	/* userDataRJ */				/* RTAB apdu */#define	RTAB_REASON	0	/* abortReason tag */#define	RTAB_REFLECT	1	/* relectedParameter tag */#define	RTAB_USERDATA	2	/* userDataAB */extern int rtsap_priority;

⌨️ 快捷键说明

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