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

📄 dlpi.h

📁 VRTX 商用嵌入式实时操作系统
💻 H
📖 第 1 页 / 共 3 页
字号:
	ulong		dl_reason;	/*normal, abnormal, perm. or transient*/
	ulong		dl_correlation; /* association with connect_ind */
} dl_disconnect_req_t;

/*
 * DL_DISCONNECT_IND, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_DISCONNECT_IND */
	ulong	dl_originator;		/* USER or PROVIDER */
	ulong	dl_reason;		/* permanent or transient */
	ulong	dl_correlation;		/* association with connect_ind */
} dl_disconnect_ind_t;

/*
 * DL_RESET_REQ, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_RESET_REQ */
} dl_reset_req_t;

/*
 * DL_RESET_IND, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_RESET_IND */
	ulong	dl_originator;		/* Provider or User */
	ulong	dl_reason;		/* flow control, link error or resynch*/
} dl_reset_ind_t;

/*
 * DL_RESET_RES, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_RESET_RES */
} dl_reset_res_t;

/*
 * DL_RESET_CON, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_RESET_CON */
} dl_reset_con_t;


/*
 *	CONNECTIONLESS SERVICE PRIMITIVES
 */

/*
 * DL_UNITDATA_REQ, M_PROTO type, with M_DATA block(s)
 */
typedef struct {
	ulong	dl_primitive;		/* DL_UNITDATA_REQ */
	ulong	dl_dest_addr_length;	/* DLSAP length of dest. user */
	ulong	dl_dest_addr_offset;	/* offset from beg. of block */
	dl_priority_t	dl_priority;	/* priority value */
} dl_unitdata_req_t;

/*
 * DL_UNITDATA_IND, M_PROTO type, with M_DATA block(s)
 */
typedef struct {
	ulong	dl_primitive;		/* DL_UNITDATA_IND */
	ulong	dl_dest_addr_length;	/* DLSAP length of dest. user */
	ulong	dl_dest_addr_offset;	/* offset from beg. of block */
	ulong	dl_src_addr_length;	/* DLSAP addr length of sending user*/
	ulong	dl_src_addr_offset;	/* offset from beg. of block */
	ulong	dl_group_address;	/* set to one if multicast/broadcast*/
} dl_unitdata_ind_t;

/*
 * DL_UDERROR_IND, M_PROTO type
 * 	(or M_PCPROTO type if LLI-based provider)
 */
typedef struct {
	ulong	dl_primitive;		/* DL_UDERROR_IND */
	ulong	dl_dest_addr_length;	/* Destination DLSAP */
	ulong	dl_dest_addr_offset;	/* Offset from beg. of block */
	ulong	dl_unix_errno;		/* unix system error code*/
	ulong	dl_errno;		/* DLPI error code */
} dl_uderror_ind_t;

/*
 * DL_UDQOS_REQ, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_UDQOS_REQ */
	ulong	dl_qos_length;		/* length in bytes of requested qos*/
	ulong	dl_qos_offset;		/* offset from beg. of block */
} dl_udqos_req_t;

/*
 *	Primitives to handle XID and TEST operations
 */

/*
 * DL_TEST_REQ, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_TEST_REQ */
	ulong	dl_flag;		/* poll/final */
	ulong	dl_dest_addr_length;	/* DLSAP length of dest. user */
	ulong	dl_dest_addr_offset;	/* offset from beg. of block */
} dl_test_req_t;

/*
 * DL_TEST_IND, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_TEST_IND */
	ulong	dl_flag;		/* poll/final */
	ulong	dl_dest_addr_length;	/* dlsap length of dest. user */
	ulong	dl_dest_addr_offset;	/* offset from beg. of block */
	ulong	dl_src_addr_length;	/* dlsap length of source user */ 
	ulong	dl_src_addr_offset;	/* offset from beg. of block */
} dl_test_ind_t;

/*
 *	DL_TEST_RES, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_TEST_RES */
	ulong	dl_flag;		/* poll/final */
	ulong	dl_dest_addr_length;	/* DLSAP length of dest. user */
	ulong	dl_dest_addr_offset;	/* offset from beg. of block */
} dl_test_res_t;

/*
 *	DL_TEST_CON, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_TEST_CON */
	ulong	dl_flag;		/* poll/final */
	ulong	dl_dest_addr_length;	/* dlsap length of dest. user */
	ulong	dl_dest_addr_offset;	/* offset from beg. of block */
	ulong	dl_src_addr_length;	/* dlsap length of source user */ 
	ulong	dl_src_addr_offset;	/* offset from beg. of block */
} dl_test_con_t;

/*
 * DL_XID_REQ, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_XID_REQ */
	ulong	dl_flag;		/* poll/final */
	ulong	dl_dest_addr_length;	/* dlsap length of dest. user */
	ulong	dl_dest_addr_offset;	/* offset from beg. of block */
} dl_xid_req_t;

/*
 * DL_XID_IND, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_XID_IND */
	ulong	dl_flag;		/* poll/final */
	ulong	dl_dest_addr_length;	/* dlsap length of dest. user */
	ulong	dl_dest_addr_offset;	/* offset from beg. of block */
	ulong	dl_src_addr_length;	/* dlsap length of source user */
	ulong	dl_src_addr_offset;	/* offset from beg. of block */
} dl_xid_ind_t;

/*
 *	DL_XID_RES, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_XID_RES */
	ulong	dl_flag;		/* poll/final */
	ulong	dl_dest_addr_length;	/* DLSAP length of dest. user */
	ulong	dl_dest_addr_offset;	/* offset from beg. of block */
} dl_xid_res_t;

/*
 *	DL_XID_CON, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_XID_CON */
	ulong	dl_flag;		/* poll/final */
	ulong	dl_dest_addr_length;	/* dlsap length of dest. user */
	ulong	dl_dest_addr_offset;	/* offset from beg. of block */
	ulong	dl_src_addr_length;	/* dlsap length of source user */ 
	ulong	dl_src_addr_offset;	/* offset from beg. of block */
} dl_xid_con_t;

/*
 *	ACKNOWLEDGED CONNECTIONLESS SERVICE PRIMITIVES
 */

/*
 * DL_DATA_ACK_REQ, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_DATA_ACK_REQ */
	ulong	dl_correlation;		/* User's correlation token */
	ulong	dl_dest_addr_length;	/* length of destination addr */
	ulong	dl_dest_addr_offset;	/* offset from beginning of block */
	ulong	dl_src_addr_length;	/* length of source address */
	ulong	dl_src_addr_offset;	/* offset from beginning of block */
	ulong	dl_priority;		/* priority */
	ulong	dl_service_class;	/* DL_RQST_RSP or DL_RQST_NORSP */
} dl_data_ack_req_t;

/*
 * DL_DATA_ACK_IND, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_DATA_ACK_IND */
	ulong	dl_dest_addr_length;	/* length of destination addr */
	ulong	dl_dest_addr_offset;	/* offset from beginning of block */
	ulong	dl_src_addr_length;	/* length of source address */
	ulong	dl_src_addr_offset;	/* offset from beginning of block */
	ulong 	dl_priority;		/* priority for data unit transm. */
	ulong	dl_service_class;	/* DL_RQST_RSP or DL_RQST_NORSP */
} dl_data_ack_ind_t;

/*
 * DL_DATA_ACK_STATUS_IND, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_DATA_ACK_STATUS_IND */
	ulong	dl_correlation;		/* User's correlation token */
	ulong	dl_status;		/* success or failure of previous req*/
} dl_data_ack_status_ind_t;

/*
 * DL_REPLY_REQ, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_REPLY_REQ */
	ulong	dl_correlation;		/* User's correlation token */
	ulong	dl_dest_addr_length;	/* length of destination address */
	ulong	dl_dest_addr_offset;	/* offset from beginning of block */
	ulong	dl_src_addr_length;	/* source address length */
	ulong	dl_src_addr_offset;	/* offset from beginning of block */
	ulong	dl_priority;		/* priority for data unit transmission*/
	ulong	dl_service_class;
} dl_reply_req_t;

/*
 * DL_REPLY_IND, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_REPLY_IND */
	ulong	dl_dest_addr_length;	/* length of destination address */
	ulong	dl_dest_addr_offset;	/* offset from beginning of block*/
	ulong	dl_src_addr_length;	/* length of source address */
	ulong	dl_src_addr_offset;	/* offset from beginning of block */
	ulong	dl_priority;		/* priority for data unit transmission*/
	ulong	dl_service_class;	/* DL_RQST_RSP or DL_RQST_NORSP */
} dl_reply_ind_t;

/*
 * DL_REPLY_STATUS_IND, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_REPLY_STATUS_IND */
	ulong	dl_correlation;		/* User's correlation token */
	ulong	dl_status;		/* success or failure of previous req*/
} dl_reply_status_ind_t;

/*
 * DL_REPLY_UPDATE_REQ, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_REPLY_UPDATE_REQ */
	ulong	dl_correlation;		/* user's correlation token */
	ulong	dl_src_addr_length;	/* length of source address */
	ulong	dl_src_addr_offset;	/* offset from beginning of block */
} dl_reply_update_req_t;

/*
 * DL_REPLY_UPDATE_STATUS_IND, M_PROTO type
 */
typedef struct {
	ulong	dl_primitive;		/* DL_REPLY_UPDATE_STATUS_IND */
	ulong	dl_correlation;		/* User's correlation token */
	ulong	dl_status;		/* success or failure of previous req*/
} dl_reply_update_status_ind_t;

union DL_primitives {
	ulong			dl_primitive;
	dl_info_req_t		info_req;
	dl_info_ack_t		info_ack;
	dl_attach_req_t		attach_req;
	dl_detach_req_t		detach_req;
	dl_bind_req_t		bind_req;
	dl_bind_ack_t		bind_ack;
	dl_unbind_req_t		unbind_req;
	dl_subs_bind_req_t	subs_bind_req;
	dl_subs_bind_ack_t	subs_bind_ack;
	dl_subs_unbind_req_t	subs_unbind_req;
	dl_ok_ack_t		ok_ack;
	dl_error_ack_t		error_ack;
	dl_connect_req_t	connect_req;
	dl_connect_ind_t	connect_ind;
	dl_connect_res_t	connect_res;
	dl_connect_con_t	connect_con;
	dl_token_req_t		token_req;
	dl_token_ack_t		token_ack;
	dl_disconnect_req_t	disconnect_req;
	dl_disconnect_ind_t	disconnect_ind;
	dl_reset_req_t		reset_req;
	dl_reset_ind_t		reset_ind;
	dl_reset_res_t		reset_res;
	dl_reset_con_t		reset_con;
	dl_unitdata_req_t	unitdata_req;
	dl_unitdata_ind_t	unitdata_ind;
	dl_uderror_ind_t	uderror_ind;
	dl_udqos_req_t		udqos_req;
	dl_enabmulti_req_t	enabmulti_req;
	dl_disabmulti_req_t	disabmulti_req;
	dl_promiscon_req_t	promiscon_req;
	dl_promiscoff_req_t	promiscoff_req;
	dl_phys_addr_req_t	physaddr_req;
	dl_phys_addr_ack_t	physaddr_ack;
	dl_set_phys_addr_req_t	set_physaddr_req;
	dl_get_statistics_req_t	get_statistics_req;
	dl_get_statistics_ack_t	get_statistics_ack;
	dl_test_req_t		test_req;
	dl_test_ind_t		test_ind;
	dl_test_res_t		test_res;
	dl_test_con_t		test_con;
	dl_xid_req_t		xid_req;
	dl_xid_ind_t		xid_ind;
	dl_xid_res_t		xid_res;
	dl_xid_con_t		xid_con;
	dl_data_ack_req_t	data_ack_req;
	dl_data_ack_ind_t	data_ack_ind;
	dl_data_ack_status_ind_t	data_ack_status_ind;
	dl_reply_req_t		reply_req;
	dl_reply_ind_t		reply_ind;
	dl_reply_status_ind_t	reply_status_ind;
	dl_reply_update_req_t	reply_update_req;
	dl_reply_update_status_ind_t	reply_update_status_ind;
};

#define	DL_INFO_REQ_SIZE	sizeof(dl_info_req_t)
#define	DL_INFO_ACK_SIZE	sizeof(dl_info_ack_t)
#define	DL_ATTACH_REQ_SIZE	sizeof(dl_attach_req_t)
#define	DL_DETACH_REQ_SIZE	sizeof(dl_detach_req_t)
#define	DL_BIND_REQ_SIZE	sizeof(dl_bind_req_t)
#define	DL_BIND_ACK_SIZE	sizeof(dl_bind_ack_t)
#define	DL_UNBIND_REQ_SIZE	sizeof(dl_unbind_req_t)
#define DL_SUBS_BIND_REQ_SIZE	sizeof(dl_subs_bind_req_t)
#define DL_SUBS_BIND_ACK_SIZE	sizeof(dl_subs_bind_ack_t)
#define	DL_SUBS_UNBIND_REQ_SIZE	sizeof(dl_subs_unbind_req_t)
#define	DL_OK_ACK_SIZE		sizeof(dl_ok_ack_t)
#define	DL_ERROR_ACK_SIZE	sizeof(dl_error_ack_t)
#define	DL_CONNECT_REQ_SIZE	sizeof(dl_connect_req_t)
#define	DL_CONNECT_IND_SIZE	sizeof(dl_connect_ind_t)
#define	DL_CONNECT_RES_SIZE	sizeof(dl_connect_res_t)
#define	DL_CONNECT_CON_SIZE	sizeof(dl_connect_con_t)
#define	DL_TOKEN_REQ_SIZE	sizeof(dl_token_req_t)
#define	DL_TOKEN_ACK_SIZE	sizeof(dl_token_ack_t)
#define	DL_DISCONNECT_REQ_SIZE	sizeof(dl_disconnect_req_t)
#define	DL_DISCONNECT_IND_SIZE	sizeof(dl_disconnect_ind_t)
#define	DL_RESET_REQ_SIZE	sizeof(dl_reset_req_t)
#define	DL_RESET_IND_SIZE	sizeof(dl_reset_ind_t)
#define	DL_RESET_RES_SIZE	sizeof(dl_reset_res_t)
#define	DL_RESET_CON_SIZE	sizeof(dl_reset_con_t)
#define	DL_UNITDATA_REQ_SIZE	sizeof(dl_unitdata_req_t)
#define	DL_UNITDATA_IND_SIZE	sizeof(dl_unitdata_ind_t)
#define	DL_UDERROR_IND_SIZE	sizeof(dl_uderror_ind_t)
#define	DL_UDQOS_REQ_SIZE	sizeof(dl_udqos_req_t)
#define	DL_ENABMULTI_REQ_SIZE	sizeof(dl_enabmulti_req_t)
#define	DL_DISABMULTI_REQ_SIZE	sizeof(dl_disabmulti_req_t)
#define	DL_PROMISCON_REQ_SIZE	sizeof(dl_promiscon_req_t)
#define	DL_PROMISCOFF_REQ_SIZE	sizeof(dl_promiscoff_req_t)
#define	DL_PHYS_ADDR_REQ_SIZE	sizeof(dl_phys_addr_req_t)
#define	DL_PHYS_ADDR_ACK_SIZE	sizeof(dl_phys_addr_ack_t)
#define	DL_SET_PHYS_ADDR_REQ_SIZE	sizeof(dl_set_phys_addr_req_t)
#define	DL_GET_STATISTICS_REQ_SIZE	sizeof(dl_get_statistics_req_t)
#define	DL_GET_STATISTICS_ACK_SIZE	sizeof(dl_get_statistics_ack_t)
#define DL_XID_REQ_SIZE		sizeof(dl_xid_req_t)
#define DL_XID_IND_SIZE		sizeof(dl_xid_ind_t)
#define DL_XID_RES_SIZE		sizeof(dl_xid_res_t)
#define DL_XID_CON_SIZE		sizeof(dl_xid_con_t)
#define DL_TEST_REQ_SIZE	sizeof(dl_test_req_t)
#define	DL_TEST_IND_SIZE	sizeof(dl_test_ind_t)
#define	DL_TEST_RES_SIZE	sizeof(dl_test_res_t)
#define	DL_TEST_CON_SIZE	sizeof(dl_test_con_t)
#define	DL_DATA_ACK_REQ_SIZE	sizeof(dl_data_ack_req_t)
#define	DL_DATA_ACK_IND_SIZE	sizeof(dl_data_ack_ind_t)
#define	DL_DATA_ACK_STATUS_IND_SIZE	sizeof(dl_data_ack_status_ind_t)
#define	DL_REPLY_REQ_SIZE	sizeof(dl_reply_req_t)
#define	DL_REPLY_IND_SIZE	sizeof(dl_reply_ind_t)
#define	DL_REPLY_STATUS_IND_SIZE	sizeof(dl_reply_status_ind_t)
#define	DL_REPLY_UPDATE_REQ_SIZE	sizeof(dl_reply_update_req_t)
#define	DL_REPLY_UPDATE_STATUS_IND_SIZE	sizeof(dl_reply_update_status_ind_t)

#ifdef __cplusplus
}
#endif
 
#endif /* _SYS_DLPI_H */

⌨️ 快捷键说明

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