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

📄 psap2.h

📁 ftam等标准协议服务器和客户端的源代码。
💻 H
📖 第 1 页 / 共 2 页
字号:
    PE	    pn_info[NPDATA];	/*   data */};#define	PNFREE(pn) \{ \    register int PNI; \ \    for (PNI = (pn) -> pn_ninfo - 1; PNI >= 0; PNI--) \	if ((pn) -> pn_info[PNI]) \	    pe_free ((pn) -> pn_info[PNI]), (pn) -> pn_info[PNI] = NULLPE; \    (pn) -> pn_ninfo = 0; \}struct PSAPactivity {		/* P-ACTIVITY-*.{INDICATION,CONFIRMATION} */    int	    pv_type;		/* type of indication/confirmation */				/* same values as sv_type */    struct SSAPactid pv_id;	/* START/RESUME activity identifier */    struct SSAPactid pv_oid;	/* RESUME old activity identifier */    struct SSAPref   pv_connect;/* 	  old connection identifier */    long    pv_ssn;		/* RESUME/END Serial number */    int	    pv_reason;		/* INTERRUPT/DISCARD */				/* same values as sp_reason */        				/* activity DATA from peer */    int	    pv_ninfo;		/*   number of elements */    PE	    pv_info[NPDATA];	/*   data */};#define	PVFREE(pv) \{ \    register int PVI; \ \    for (PVI = (pv) -> pv_ninfo - 1; PVI >= 0; PVI--) \	if ((pv) -> pv_info[PVI]) \	    pe_free ((pv) -> pv_info[PVI]), (pv) -> pv_info[PVI] = NULLPE; \    (pv) -> pv_ninfo = 0; \}struct PSAPreport {		/* P-{U,P}-EXCEPTION-REPORT.INDICATION */    int	    pp_peer;		/* T   = P-U-EXCEPTION-REPORT.INDICATION:					pp_reason/pp_info both meaningful				   NIL = P-P-EXCEPTION-REPORT.INDICATION:					pp_reason == SP_NOREASON, or					pp_reason == SP_PROTOCOL */    int	    pp_reason;		/* same values as sp_reason */				/* report DATA from peer */    int	    pp_ninfo;		/*   number of elements */    PE	    pp_info[NPDATA];	/*   data */};#define	PPFREE(pp) \{ \    register int PPI; \ \    for (PPI = (pp) -> pp_ninfo - 1; PPI >= 0; PPI--) \	if ((pp) -> pp_info[PPI]) \	    pe_free ((pp) -> pp_info[PPI]), (pp) -> pp_info[PPI] = NULLPE; \    (pp) -> pp_ninfo = 0; \}struct PSAPfinish {		/* P-RELEASE.INDICATION */				/* release DATA from peer */    int	    pf_ninfo;		/*   number of elements */    PE	    pf_info[NPDATA];	/*   data */};#define	PFFREE(pf) \{ \    register int PFI; \ \    for (PFI = (pf) -> pf_ninfo - 1; PFI >= 0; PFI--) \	if ((pf) -> pf_info[PFI]) \	    pe_free ((pf) -> pf_info[PFI]), (pf) -> pf_info[PFI] = NULLPE; \    (pf) -> pf_ninfo = 0; \}struct PSAPrelease {		/* P-RELEASE.CONFIRMATION */    int	    pr_affirmative;	/* T   = connection released				   NIL = request refused */				/* release DATA from peer */    int	    pr_ninfo;		/*   number of elements */    PE	    pr_info[NPDATA];	/*   data */};#define	PRFREE(pr) \{ \    register int PRI; \ \    for (PRI = (pr) -> pr_ninfo - 1; PRI >= 0; PRI--) \	if ((pr) -> pr_info[PRI]) \	    pe_free ((pr) -> pr_info[PRI]), (pr) -> pr_info[PRI] = NULLPE; \    (pr) -> pr_ninfo = 0; \}struct PSAPabort {		/* P-{U,P}-ABORT.INDICATION */    int	    pa_peer;		/* T   = P-U-ABORT.INDICATION:					    pa_info/pa_ninfo is meaningful				   NIL = P-P-ABORT.INDICATION:					    pa_reason/pa_ppdu is meaningful,					    pa_data contains diagnostics */    int	    pa_reason;		/* same codes as pc_result */				/* abort information from peer */    int	    pa_ninfo;		/*   number of elements */    PE	    pa_info[NPDATA];	/*   data */				/* diagnostics from provider */#define	PA_SIZE		512    int	    pa_cc;		/*   length */    char    pa_data[PA_SIZE];	/*   data */};#define	PAFREE(pa) \{ \    register int PAI; \ \    for (PAI = (pa) -> pa_ninfo - 1; PAI >= 0; PAI--) \	if ((pa) -> pa_info[PAI]) \	    pe_free ((pa) -> pa_info[PAI]), (pa) -> pa_info[PAI] = NULLPE; \    (pa) -> pa_ninfo = 0; \}struct PSAPindication {    int	    pi_type;		/* the union element present */#define	PI_DATA		0x00#define	PI_TOKEN	0x01#define	PI_SYNC		0x02#define	PI_ACTIVITY	0x03#define	PI_REPORT	0x04#define	PI_FINISH	0x05#define	PI_ABORT	0x06    union {	struct PSAPdata pi_un_data;	struct PSAPtoken pi_un_token;	struct PSAPsync pi_un_sync;	struct PSAPactivity pi_un_activity;	struct PSAPreport pi_un_report;	struct PSAPfinish pi_un_finish;	struct PSAPabort pi_un_abort;    }	pi_un;#define	pi_data		pi_un.pi_un_data#define	pi_token	pi_un.pi_un_token#define	pi_sync		pi_un.pi_un_sync#define	pi_activity	pi_un.pi_un_activity#define	pi_report	pi_un.pi_un_report#define	pi_finish	pi_un.pi_un_finish#define	pi_abort	pi_un.pi_un_abort};/*  */extern char *psap2version;int	PExec ();		/* SERVER only */int	PInit ();		/* P-CONNECT.INDICATION */int	PConnResponse ();	/* P-CONNECT.RESPONSE */				/* P-CONNECT.REQUEST (backwards-compatible) */#define	PConnRequest(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) \	PAsynConnRequest (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,0)int	PAsynConnRequest ();	/* P-(ASYN-)CONNECT.REQUEST */int	PAsynRetryRequest ();	/* P-ASYN-RETRY.REQUEST (pseudo) */int	PDataRequest ();	/* P-DATA.REQUEST */int	PDataRequestAux ();	/* P-[*-]DATA.REQUEST */#define	PPDU_TTD	8#define	PPDU_TE		9#define	PPDU_TC	       10#define	PPDU_TCC       11#define	PExpdRequest(s,d,n,p) \	PDataRequestAux ((s), (d), (n), (p), "expedited", SExpdRequest, \			"SExpdRequest", "P-EXPEDITED-DATA user-data", PPDU_TE)#define	PTypedRequest(s,d,n,p) \	PDataRequestAux ((s), (d), (n), (p), "typed", STypedRequest, \			"STypedRequest", "P-TYPED-DATA user-data", PPDU_TTD)#define	PCapdRequest(s,d,n,p) \	PDataRequestAux ((s), (d), (n), (p), "capability", SCapdRequest, \			"SCapdRequest", "P-CAPABILITY-DATA user-data", PPDU_TC)#define	PCapdResponse(s,d,n,p) \	PDataRequestAux ((s), (d), (n), (p), "capability", SCapdResponse, \			"SCapdResponse","P-CAPABILITY-DATA user-data",PPDU_TCC)int	PReadRequest ();	/* P-READ.REQUEST (pseudo) */int	PGTokenRequest ();	/* P-TOKEN-GIVE.REQUEST */int	PPTokenRequest ();	/* P-TOKEN-PLEASE.REQUEST */int	PGControlRequest ();	/* P-CONTROL-GIVE.REQUEST */int	PMajSyncRequestAux ();	/* P-{MAJOR-SYNC,ACTIVITY-END}.REQUEST */#define	PMajSyncRequest(s,i,d,n,p) \	PMajSyncRequestAux ((s), (i), (d), (n), (p), "majorsync", \			SMajSyncRequest, "SMajSyncRequest")#define	PActEndRequest(s,i,d,n,p) \	PMajSyncRequestAux ((s), (i), (d), (n), (p), "activity end", \			SActEndRequest, "SActEndRequest")int	PMajSyncResponseAux ();	/* P-{MAJOR-SYNC,ACTIVITY-END}.RESPONSE */#define	PMajSyncResponse(s,d,n,p) \	PMajSyncResponseAux ((s), (d), (n), (p), "majorsync", \			SMajSyncResponse, "SMajSyncResponse")#define	PActEndResponse(s,d,n,p) \	PMajSyncResponseAux ((s), (d), (n), (p), "activity end", \			SActEndResponse, "SActEndResponse")int	PMinSyncRequest ();	/* P-MINOR-SYNC.REQUEST */int	PMinSyncResponse ();	/* P-MINOR-SYNC.RESPONSE */int	PReSyncRequest ();	/* P-RESYNCHRONIZE.REQUEST */int	PReSyncResponse ();	/* P-RESYNCHRONIZE.RESPONSE */int	PActStartRequest ();	/* P-ACTIVITY-START.REQUEST */int	PActResumeRequest ();	/* P-ACTIVITY-RESUME.REQUEST */int	PActIntrRequestAux ();	/* P-ACTIVITY-{INTERRUPT,DISCARD}.REQUEST */#define	PActIntrRequest(s,r,p) \	PActIntrRequestAux ((s), (r), (p), \			SActIntrRequest, "SActIntrRequest")#define	PActDiscRequest(s,r,p) \	PActIntrRequestAux ((s), (r), (p), \			SActDiscRequest, "SActDiscRequest")int	PActIntrResponseAux ();	/* P-ACTIVITY-{INTERRUPT,DISCARD}.RESPONSE */#define	PActIntrResponse(s,p) \	PActIntrResponseAux ((s), (p), \			SActIntrResponse, "SActIntrResponse")#define	PActDiscResponse(s,p) \	PActIntrResponseAux ((s), (p), \			SActDiscResponse, "SActDiscResponse")int	PUAbortRequest ();	/* P-U-ABORT.REQUEST */int	PUReportRequest ();	/* P-U-EXCEPTION-REPORT.REQUEST */int	PRelRequest ();		/* P-RELEASE.REQUEST */int	PRelResponse ();	/* P-RELEASE.RESPONSE */int	PSetIndications ();	/* define vectors for INDICATION events */int	PSelectMask ();		/* map presentation descriptors for select() */char   *PErrString ();		/* return PSAP error code in string form */#define	PLocalHostName	getlocalhostchar   *PLocalHostName ();	/* return name of local host (sigh) */#endif

⌨️ 快捷键说明

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