📄 psap2.h
字号:
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 + -