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

📄 ssap.h

📁 ftam等标准协议服务器和客户端的源代码。
💻 H
📖 第 1 页 / 共 2 页
字号:
/* ssap.h - include file for session users (SS-USER) *//*  * $Header: /f/iso/h/RCS/ssap.h,v 5.0 88/07/21 14:39:34 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	_SSAP_#define	_SSAP_#ifndef	_MANIFEST_#include "manifest.h"#endif#ifndef	_GENERAL_#include "general.h"#endif#ifndef	_ISOADDRS_#include "isoaddrs.h"#endif/*  */struct SSAPactid {		/* Activity Identifier */#define	SID_DATA_SIZE	6    u_char  sd_len;    char    sd_data[SID_DATA_SIZE];};struct SSAPref {		/* SSAP reference */				/* USER reference */#define	SREF_USER_SIZE		64    u_char  sr_ulen;    char    sr_udata[SREF_USER_SIZE];				/* COMMON reference */#define	SREF_COMM_SIZE		64    u_char  sr_clen;    char    sr_cdata[SREF_COMM_SIZE];				/* ADDITIONAL reference */#define	SREF_ADDT_SIZE	4    u_char  sr_alen;    char    sr_adata[SREF_ADDT_SIZE];				/* for S-ACTIVITY-RESUME */    u_char  sr_vlen;    char    sr_vdata[SREF_USER_SIZE];#define	sr_calling	sr_udata#define	sr_calling_len	sr_ulen#define	sr_called	sr_vdata#define	sr_called_len	sr_vlen};/*  */struct SSAPstart {		/* S-CONNECT.INDICATION */    int	    ss_sd;		/* SESSION descriptor */    struct SSAPref  ss_connect;	/* session connection identifier */        struct SSAPaddr ss_calling;	/* address of peer calling */    struct SSAPaddr ss_called;	/* address of peer called */    int	    ss_requirements;	/* session requirements */    int	    ss_settings;	/* initial settings of tokens */    long    ss_isn;		/* initial serial number */    int	    ss_ssdusize;	/* largest atomic SSDU */    int	    ss_version;	    	/* session service version number */    struct QOStype ss_qos;	/* quality of service */				/* initial DATA from peer */#define	SS_SIZE		512    int	    ss_cc;		/*   length */    char   *ss_data;		/*   data */};#define	SSFREE(ss) \{ \    if ((ss) -> ss_data) \	free ((ss) -> ss_data), (ss) -> ss_data = NULL; \}    struct SSAPconnect {		/* S-CONNECT.CONFIRMATION */    int	    sc_sd;		/* SESSION descriptor */    struct SSAPref  sc_connect;	/* session connection identifier */        struct SSAPaddr sc_responding;/* address of peer responding */    int	    sc_result;		/* result */#define	SC_ACCEPT	(-1)#define	SC_BASE		0x80		/* reject by SSAP-provider */#define	SC_SSAPID	(SC_BASE + 1)	/* SSAP identifier unknown */#define	SC_SSUSER	(SC_BASE + 2)	/* SS-user not attached to SSAP */#define	SC_CONGEST	(SC_BASE + 3)	/* Congestion at SSAP */#define	SC_VERSION	(SC_BASE + 4)	/* Proposed protocol versions not					   supported */					/* begin UNOFFICIAL */#define	SC_ADDRESS	(SC_BASE + 5)	/* Address unknown */#define	SC_REFUSED	(SC_BASE + 6)   /* Connect request refused on this				           network connection */#define	SC_TRANSPORT	(SC_BASE + 7)	/* Transport disconnect */#define	SC_ABORT	(SC_BASE + 8)	/* Provider-initiated abort */#define	SC_PROTOCOL	(SC_BASE + 9)	/* Protocol error */#define	SC_PARAMETER	(SC_BASE + 10)	/* Invalid parameter */#define	SC_OPERATION	(SC_BASE + 11)	/* Invalid operation */#define	SC_TIMER	(SC_BASE + 12)	/* Timer expired */#define	SC_WAITING	(SC_BASE + 13)	/* Indications waiting */					/* end UNOFFICIAL */					/* reject by SSAP-user */#define	SC_NOTSPECIFIED	0		/* Reason not specified */#define	SC_CONGESTION	1		/* Temporary congestion */#define	SC_REJECTED	2		/* Rejected */#ifdef	notdef#define	SC_FATAL(r)	((r) < SC_BASE || (r) < SC_PARAMETER)#define	SC_OFFICIAL(r)	((r) < SC_BASE || (r) < SC_ADDRESS)#else#define	SC_FATAL(r)	((r) < SC_PARAMETER)#define	SC_OFFICIAL(r)	((r) < SC_ADDRESS)#endif    int	    sc_requirements;	/* session requirements */    int	    sc_settings;	/* initial assignment of tokens */    int	    sc_please;		/* tokens requested by SS-user				   (S-TOKEN-PLEASE.INDICATION) */    long    sc_isn;		/* initial serial number */    int	    sc_ssdusize;	/* largest atomic SSDU */    int	    sc_version;	    	/* session service version number */    struct QOStype sc_qos;	/* quality of service */				/* initial DATA from peer */#ifdef	HPUX#undef	SC_SIZE#endif#define	SC_SIZE		512    int	    sc_cc;		/*   length */    char   *sc_data;		/*   data */    char   *sc_realdata;	/*   real head of data */};#define	SCFREE(sc) \{ \    if ((sc) -> sc_realdata) \	free ((sc) -> sc_realdata), \	    (sc) -> sc_realdata = (sc) -> sc_data = NULL; \    else \	if ((sc) -> sc_data) \	    free ((sc) -> sc_data), (sc) -> sc_data = NULL; \}					/* SESSION requirements */#define	SR_HALFDUPLEX	0x0001	/* half-duplex */#define	SR_DUPLEX	0x0002	/* full-duplex */#define	SR_EXPEDITED	0x0004	/* expedited data transfer */#define	SR_MINORSYNC	0x0008	/* minor synchronize */#define	SR_MAJORSYNC	0x0010	/* major synchronize */#define	SR_RESYNC	0x0020	/* resynchronize */#define	SR_ACTIVITY	0x0040	/* activity management */#define	SR_NEGOTIATED	0x0080	/* negotiated release */#define	SR_CAPABILITY	0x0100	/* capability data transfer */#define	SR_EXCEPTIONS	0x0200	/* exceptions reporting */#define	SR_TYPEDATA	0x0400	/* typed data transfer */#define	SR_SYMMETRIC	0x0800	/* symmetric synchronize */#define	SR_RLS_EXISTS	SR_NEGOTIATED#define	SR_MAJ_EXISTS	(SR_MAJORSYNC | SR_ACTIVITY)#define	SR_ACT_EXISTS	SR_ACTIVITY#define	SR_MIN_EXISTS	SR_MINORSYNC#define	SR_DAT_EXISTS	SR_HALFDUPLEX#define	SR_TOKENS	(SR_RLS_EXISTS | SR_MAJ_EXISTS | SR_ACT_EXISTS \			    | SR_MIN_EXISTS | SR_DAT_EXISTS)#define	SR_BASUBSET	(SR_HALFDUPLEX | SR_TYPEDATA | SR_CAPABILITY \			    | SR_MINORSYNC | SR_EXCEPTIONS | SR_ACTIVITY)#define	SR_BCSUBSET	(SR_HALFDUPLEX | SR_DUPLEX)#define	SR_BSSUBSET	(SR_NEGOTIATED | SR_HALFDUPLEX | SR_DUPLEX \			    | SR_TYPEDATA | SR_MINORSYNC | SR_MAJORSYNC \			    | SR_RESYNC)#define	SR_MYREQUIRE	(SR_BASUBSET | SR_BCSUBSET | SR_BSSUBSET \			    | SR_EXPEDITED)#define	SR_DEFAULT	(SR_HALFDUPLEX | SR_MINORSYNC | SR_ACTIVITY \			    | SR_CAPABILITY | SR_EXCEPTIONS)					/* SESSION tokens */#define	ST_INIT_VALUE	0x00	/* initiator's side */#define	ST_RESP_VALUE	0x01	/* responder's side */#define	ST_CALL_VALUE	0x02	/* called SS-user's choice */#define	ST_RSVD_VALUE	0x03	/* reserved */#define	ST_MASK		0x03#define	ST_RLS_SHIFT	6	/* release token */#define	ST_MAJ_SHIFT	4	/* major/activity token */#define	ST_ACT_SHIFT	ST_MAJ_SHIFT#define	ST_MIN_SHIFT	2	/* synchronize-minor token */#define	ST_DAT_SHIFT	0	/* data token */#define	dotokens() \{ \    dotoken (SR_RLS_EXISTS, ST_RLS_SHIFT, ST_RLS_TOKEN, "release"); \    dotoken (SR_MAJ_EXISTS, ST_MAJ_SHIFT, ST_MAJ_TOKEN, "majorsync"); \    dotoken (SR_MIN_EXISTS, ST_MIN_SHIFT, ST_MIN_TOKEN, "minorsync"); \    dotoken (SR_DAT_EXISTS, ST_DAT_SHIFT, ST_DAT_TOKEN, "data"); \}struct SSAPdata {		/* S-READ.INDICATION */    int	    sx_type;		/* type of indication */#define	SX_NORMAL	0x00	/* S-DATA.INDICATION */#define	SX_EXPEDITED	0x01	/* S-EXPEDITED-DATA.INDICATION */#define	SX_TYPED	0x02	/* S-TYPED-DATA.INDICATION */#define	SX_CAPDIND	0x03	/* S-CAPABILITY-DATA.INDICATION */#define	SX_CAPDCNF	0x04	/* S-CAPABILITY-DATA.CONFIRMATION */#define	SX_EXSIZE	14	/* EXPEDITED DATA (XSSDU) only */#define	SX_CDSIZE	512	/* CAPABILITY DATA only */#define	SX_CDASIZE	512	/* CAPABILITY DATA ACK only */    int	    sx_cc;		/*   total length */    struct qbuf sx_qbuf;	/*   chained data */};#define	SXFREE(sx)	QBFREE (&((sx) -> sx_qbuf))struct SSAPtoken {		/* S-{TOKEN-*,GIVE-CONTROL}.INDICATION */    int	    st_type;		/* type of indication */#define	ST_GIVE		0x00	/* S-TOKEN-GIVE.INDICATION */#define	ST_PLEASE	0x01	/* S-TOKEN-PLEASE.INDICATION */#define	ST_CONTROL	0x02	/* S-GIVE-CONTROL.INDICATION */    u_char  st_tokens;		/* tokens offered/wanted */#define	ST_RLS_TOKEN	(0x01 << ST_RLS_SHIFT)#define	ST_MAJ_TOKEN	(0x01 << ST_MAJ_SHIFT)#define	ST_ACT_TOKEN	(0x01 << ST_ACT_SHIFT)#define	ST_MIN_TOKEN	(0x01 << ST_MIN_SHIFT)#define	ST_DAT_TOKEN	(0x01 << ST_DAT_SHIFT)    u_char  st_owned;		/* tokens owned by user */#define	ST_SIZE		512	/* PLEASE TOKEN only */

⌨️ 快捷键说明

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