亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mtp_tpi.c

?? OpenSS7 This the fourth public release of the OpenSS7 Master Package. See README in the release for
?? C
?? 第 1 頁 / 共 5 頁
字號:
{	return (mtp_chk_state(mtp, ~mask));}#ifndef TS_NOSTATES#define TS_NOSTATES (TS_WACK_DREQ11 + 1)#endif/* *  TLI interface state flags */#define TSF_UNBND	( 1 << TS_UNBND		)#define TSF_WACK_BREQ	( 1 << TS_WACK_BREQ	)#define TSF_WACK_UREQ	( 1 << TS_WACK_UREQ	)#define TSF_IDLE	( 1 << TS_IDLE		)#define TSF_WACK_OPTREQ	( 1 << TS_WACK_OPTREQ	)#define TSF_WACK_CREQ	( 1 << TS_WACK_CREQ	)#define TSF_WCON_CREQ	( 1 << TS_WCON_CREQ	)#define TSF_WRES_CIND	( 1 << TS_WRES_CIND	)#define TSF_WACK_CRES	( 1 << TS_WACK_CRES	)#define TSF_DATA_XFER	( 1 << TS_DATA_XFER	)#define TSF_WIND_ORDREL	( 1 << TS_WIND_ORDREL	)#define TSF_WREQ_ORDREL	( 1 << TS_WREQ_ORDREL	)#define TSF_WACK_DREQ6	( 1 << TS_WACK_DREQ6	)#define TSF_WACK_DREQ7	( 1 << TS_WACK_DREQ7	)#define TSF_WACK_DREQ9	( 1 << TS_WACK_DREQ9	)#define TSF_WACK_DREQ10	( 1 << TS_WACK_DREQ10	)#define TSF_WACK_DREQ11	( 1 << TS_WACK_DREQ11	)#define TSF_NOSTATES	( 1 << TS_NOSTATES	)#define TSF_WACK_DREQ	(TSF_WACK_DREQ6 \			|TSF_WACK_DREQ7 \			|TSF_WACK_DREQ9 \			|TSF_WACK_DREQ10 \			|TSF_WACK_DREQ11)#define TSF_WACK	(TSF_WACK_BREQ \			|TSF_WACK_UREQ \			|TSF_WACK_OPTREQ \			|TSF_WACK_CREQ \			|TSF_WACK_CRES \			|TSF_WACK_DREQ6 \			|TSF_WACK_DREQ7 \			|TSF_WACK_DREQ9 \			|TSF_WACK_DREQ10 \			|TSF_WACK_DREQ11)static voidmtp_bind(struct mtp *mtp, struct mtp_addr *src){	if (src) {		mtp->src = *src;		mtp->src_len = sizeof(*src);	}	return;}static voidmtp_connect(struct mtp *mtp, struct mtp_addr *dst){	if (dst) {		mtp->dst = *dst;		mtp->dst_len = sizeof(*dst);	}	return;}static voidmtp_unbind(struct mtp *mtp){	mtp->src_len = 0;	return;}static voidmtp_disconnect(struct mtp *mtp){	mtp->dst_len = 0;	return;}/* *  ========================================================================= * *  PRIMITIVES * *  ========================================================================= *//* *  Primitives sent upstream *  ------------------------------------------------------------------------- *//** * m_error: - issue an M_ERROR message upstream * @mtp: private structure * @q: active queue * @msg: message to free upon success * @err: error value */static intm_error(struct mtp *mtp, queue_t *q, mblk_t *msg, int err){	mblk_t *mp;	if ((mp = mi_allocb(q, 2, BPRI_MED))) {		DB_TYPE(mp) = M_ERROR;		*mp->b_wptr++ = err < 0 ? -err : err;		*mp->b_wptr++ = err < 0 ? -err : err;		mtp_set_state(mtp, TS_NOSTATES);		freemsg(msg);		mi_strlog(mtp->rq, STRLOGRX, SL_TRACE, "<- M_ERROR");		putnext(mtp->rq, mp);		return (0);	}	return (-ENOBUFS);}/** * t_conn_ind: - issue a T_CONN_IND primitive upstream * @mtp: private structure * @q: active queue * @bp: message block to free upon success * @src: souce address * @opt: options * @dp: user data */static inline fastcall __unlikely intt_conn_ind(struct mtp *mtp, queue_t *q, mblk_t *bp,	   t_scalar_t seq, struct mtp_addr *src, struct mtp_opts *opt, mblk_t *dp){	struct T_conn_ind *p;	mblk_t *mp;	size_t src_len = t_addr_size(src);	size_t opt_len = t_opts_size(opt);	size_t msg_len = sizeof(*p) + src_len + opt_len;	if (likely((mp = mi_allocb(q, msg_len, BPRI_MED)) != NULL)) {		if (likely(canputnext(mtp->rq))) {			DB_TYPE(mp) = M_PROTO;			p = (typeof(p)) mp->b_wptr;			p->PRIM_type = T_CONN_IND;			p->SRC_length = src_len;			p->SRC_offset = sizeof(*p);			p->OPT_length = opt_len;			p->OPT_offset = sizeof(*p) + src_len;			p->SEQ_number = seq;			mp->b_wptr += sizeof(*p);			t_build_addr(src, mp->b_wptr);			mp->b_wptr += src_len;			t_build_opts(opt, mp->b_wptr);			mp->b_wptr += opt_len;			mp->b_cont = dp;			if (bp)				freeb(bp);			mi_strlog(q, STRLOGRX, SL_TRACE, "<- T_CONN_IND");			putnext(mtp->rq, mp);			return (0);		}		freeb(mp);		return (-EBUSY);	}	return (-ENOBUFS);}/** * t_conn_con: - issue a T_CONN_CON primitive upstream * @mtp: private structure * @q: active queue * @bp: message block to free upon success * @res: responding address * @opt: options * @dp: user data */static inline fastcall __unlikely intt_conn_con(struct mtp *mtp, queue_t *q, mblk_t *bp,	   struct mtp_addr *res, struct mtp_opts *opt, mblk_t *dp){	struct T_conn_con *p;	mblk_t *mp;	size_t res_len = t_addr_size(res);	size_t opt_len = t_opts_size(opt);	size_t msg_len = sizeof(*p) + res_len + opt_len;	if (likely((mp = mi_allocb(q, msg_len, BPRI_MED)) != NULL)) {		if (likely(canputnext(mtp->rq))) {			DB_TYPE(mp) = M_PROTO;			p = (typeof(p)) mp->b_wptr;			p->PRIM_type = T_CONN_CON;			p->RES_length = res_len;			p->RES_offset = sizeof(*p);			p->OPT_length = opt_len;			p->OPT_offset = sizeof(*p) + opt_len;			mp->b_wptr += sizeof(*p);			t_build_addr(res, mp->b_wptr);			mp->b_wptr += res_len;			t_build_opts(opt, mp->b_wptr);			mp->b_wptr += opt_len;			mp->b_cont = dp;			if (bp)				freeb(bp);			mi_strlog(q, STRLOGRX, SL_TRACE, "<- T_CONN_CON");			if (mtp_get_state(mtp) != TS_WCON_CREQ)				swerr();			mtp_set_state(mtp, TS_DATA_XFER);			putnext(mtp->rq, mp);			return (0);		}		freeb(mp);		return (-EBUSY);	}	return (-ENOBUFS);}/** * t_discon_ind: - issue a T_DISCON_IND primitive upstream * @mtp: private structure * @q: active queue * @bp: message block to free upon success * @reason: reason for disconnection * @dp: user data */static inline fastcall __unlikely intt_discon_ind(struct mtp *mtp, queue_t *q, mblk_t *bp, t_scalar_t reason, mblk_t *dp){	struct T_discon_ind *p;	mblk_t *mp;	size_t msg_len = sizeof(*p);	if (mtp_chk_state(mtp, (TSF_WCON_CREQ | TSF_WRES_CIND | TSF_DATA_XFER | TSF_WIND_ORDREL | TSF_WREQ_ORDREL))) {		if (likely((mp = mi_allocb(q, msg_len, BPRI_MED)) != NULL)) {			if (likely(canputnext(mtp->rq))) {				DB_TYPE(mp) = M_PROTO;				p = (typeof(p)) mp->b_wptr;				p->PRIM_type = T_DISCON_IND;				p->DISCON_reason = reason;				p->SEQ_number = 0;				mp->b_wptr += sizeof(*p);				mtp_set_state(mtp, TS_IDLE);				mp->b_cont = dp;				if (bp)					freeb(bp);				mi_strlog(q, STRLOGRX, SL_TRACE, "<- T_DISCON_IND");				putnext(mtp->rq, mp);				return (0);			}			freeb(mp);			return (-EBUSY);		}		return (-ENOBUFS);	}	mi_strlog(q, 0, SL_ERROR, "unexpected indication for state %u", mtp_get_state(mtp));	freeb(bp);	freemsg(dp);	return (0);}/** * t_data_ind: - issue a T_DATA_IND primitive upstream * @mtp: private structure * @q: active queue * @bp: message block to free upon success * @more: more data flag * @dp: user data */static inline fastcall __unlikely intt_data_ind(struct mtp *mtp, queue_t *q, mblk_t *bp, t_scalar_t more, mblk_t *dp){	struct T_data_ind *p;	mblk_t *mp;	if (mtp_chk_state(mtp, (TSF_DATA_XFER | TSF_WIND_ORDREL))) {		if (likely((mp = mi_allocb(q, sizeof(*p), BPRI_MED)) != NULL)) {			if (likely(canputnext(mtp->rq))) {				DB_TYPE(mp) = M_PROTO;				p = (typeof(p)) mp->b_wptr;				p->PRIM_type = T_DATA_IND;				p->MORE_flag = more;				mp->b_wptr += sizeof(*p);				mp->b_cont = dp;				if (bp)					freeb(bp);				mi_strlog(q, STRLOGRX, SL_TRACE, "<- T_DATA_IND");				putnext(mtp->rq, mp);				return (0);			}			freeb(mp);			return (-EBUSY);		}		return (-ENOBUFS);	}	mi_strlog(q, 0, SL_ERROR, "unexpected indication for state %u", mtp_get_state(mtp));	freemsg(mp);	return (0);}/** * t_exdata_ind: - issue a T_EXDATA_IND primitive upstream * @mtp: private structure * @q: active queue * @bp: message block to free upon success * @more: more data flag * @dp: user data */static inline fastcall __unlikely intt_exdata_ind(struct mtp *mtp, queue_t *q, mblk_t *bp, t_scalar_t more, mblk_t *dp){	struct T_exdata_ind *p;	mblk_t *mp;	if (mtp_chk_state(mtp, (TSF_DATA_XFER | TSF_WIND_ORDREL))) {		if (likely((mp = mi_allocb(q, sizeof(*p), BPRI_MED)) != NULL)) {			if (likely(canputnext(mtp->rq))) {				DB_TYPE(mp) = M_PROTO;				mp->b_band = 1;				p = (typeof(p)) mp->b_wptr;				p->PRIM_type = T_EXDATA_IND;				p->MORE_flag = more;				mp->b_wptr += sizeof(*p);				mp->b_cont = dp;				if (bp)					freeb(bp);				mi_strlog(q, STRLOGRX, SL_TRACE, "<- T_EXDATA_IND");				putnext(mtp->rq, mp);				return (0);			}			freeb(mp);			return (-EBUSY);		}		return (-ENOBUFS);	}	mi_strlog(q, 0, SL_ERROR, "unexpected indication for state %u", mtp_get_state(mtp));	freemsg(mp);	return (0);}/** * t_info_ack: - issue a T_INFO_ACK primitive upstream * @mtp: private structure * @q: active queue * @msg: message to free upon success */static inline fastcall __unlikely intt_info_ack(struct mtp *mtp, queue_t *q, mblk_t *msg){	struct T_info_ack *p;	mblk_t *mp;	if (likely((mp = mi_allocb(q, sizeof(*p), BPRI_MED)) != NULL)) {		DB_TYPE(mp) = M_PCPROTO;		p = (typeof(p)) mp->b_wptr;		mp->b_wptr += sizeof(*p);		*p = mtp->prot;		freemsg(msg);		mi_strlog(q, STRLOGRX, SL_TRACE, "<- T_INFO_ACK");		putnext(mtp->rq, mp);		return (0);	}	return (-ENOBUFS);}/* * t_bind_ack: - issue a T_BIND_ACK primitive upstream * @mtp: private structure * @q: active queue * @msg: message to free upon success * @add: bound address * @cons: negotiated number of oustanding connection indications */static inline fastcall __unlikely intt_bind_ack(struct mtp *mtp, queue_t *q, mblk_t *msg, struct mtp_addr *add, t_scalar_t cons){	struct T_bind_ack *p;	mblk_t *mp;	size_t add_len = t_addr_size(add);	size_t msg_len = sizeof(*p) + add_len;	if (mtp_get_state(mtp) == TS_WACK_BREQ) {		if (unlikely((mp = mi_allocb(q, msg_len, BPRI_MED)) != NULL)) {			DB_TYPE(mp) = M_PCPROTO;			p = (typeof(p)) mp->b_wptr;			p->PRIM_type = T_BIND_ACK;			p->ADDR_length = add_len;			p->ADDR_offset = sizeof(*p);			p->CONIND_number = cons;			mp->b_wptr += sizeof(*p);			t_build_addr(add, mp->b_wptr);			mp->b_wptr += add_len;			mtp_bind(mtp, add);			mtp_set_state(mtp, TS_IDLE);			freemsg(msg);			mi_strlog(q, STRLOGRX, SL_TRACE, "<- T_BIND_ACK");			putnext(mtp->rq, mp);			return (0);		}		return (-ENOBUFS);	}	mi_strlog(q, 0, SL_ERROR, "unexpected indication for state %u", mtp_get_state(mtp));	freemsg(msg);	return (0);}/* * t_error_ack: - issue a T_ERROR_ACK primitive upstream * @mtp: private structure * @q: active queue * @msg: message to free upon success * @prim: primitive in error * @etypr: error type */static inline fastcall __unlikely intt_error_ack(struct mtp *mtp, queue_t *q, mblk_t *msg, const t_scalar_t prim, t_scalar_t etype){	struct T_error_ack *p;	mblk_t *mp;	size_t msg_len = sizeof(*p);	if (likely((mp = mi_allocb(q, msg_len, BPRI_MED)) != NULL)) {		DB_TYPE(mp) = M_PCPROTO;		p = (typeof(p)) mp->b_wptr;		p->PRIM_type = T_ERROR_ACK;		p->ERROR_prim = prim;		p->TLI_error = etype < 0 ? TSYSERR : etype;		p->UNIX_error = etype < 0 ? -etype : 0;		mp->b_wptr += sizeof(*p);		switch (mtp_get_state(mtp)) {#ifdef TS_WACK_OPTREQ		case TS_WACK_OPTREQ:#endif		case TS_WACK_UREQ:		case TS_WACK_CREQ:			mtp_set_state(mtp, TS_IDLE);			break;		case TS_WACK_BREQ:			mtp_set_state(mtp, TS_UNBND);			break;		case TS_WACK_CRES:			mtp_set_state(mtp, TS_WRES_CIND);			break;		case TS_WACK_DREQ6:			mtp_set_state(mtp, TS_WCON_CREQ);			break;		case TS_WACK_DREQ7:			mtp_set_state(mtp, TS_WRES_CIND);			break;		case TS_WACK_DREQ9:			mtp_set_state(mtp, TS_DATA_XFER);			break;		case TS_WACK_DREQ10:			mtp_set_state(mtp, TS_WIND_ORDREL);			break;		case TS_WACK_DREQ11:			mtp_set_state(mtp, TS_WREQ_ORDREL);			break;		default:			/* Note: if we are not in a WACK state we simply do not change state.  This 			   occurs normally when we send TOUTSTATE or TNOTSUPPORT or are responding			   to a T_OPTMGMT_REQ in other than TS_IDLE state. */			break;		}		freemsg(msg);		mi_strlog(q, STRLOGRX, SL_TRACE, "<- T_ERROR_ACK");		putnext(mtp->rq, mp);		return (0);	}	return (-ENOBUFS);}/** * t_ok_ack: - issue a T_OK_ACK primitive upstream * @mtp: private structure * @q: active queue * @msg: message to free upon success * @prim: correct primitive * @seq: sequence number * @tok: stream token */static inline fastcall __unlikely intt_ok_ack(struct mtp *mtp, queue_t *q, mblk_t *msg, t_scalar_t prim, t_scalar_t seq, t_scalar_t tok){	struct T_ok_ack *p;	mblk_t *mp;	size_t msg_len = sizeof(*p);	if (likely((mp = mi_allocb(q, msg_len, BPRI_MED)) != NULL)) {		DB_TYPE(mp) = M_PCPROTO;		p = (typeof(p)) mp->b_wptr;		p->PRIM_type = T_OK_ACK;		p->CORRECT_prim = prim;		mp->b_wptr += sizeof(*p);		switch (mtp_get_state(mtp)) {		case TS_WACK_CREQ:			mtp_connect(mtp, &mtp->dst);			mtp_set_state(mtp, TS_WCON_CREQ);			break;		case TS_WACK_UREQ:			mtp_unbind(mtp);			mtp_set_state(mtp, TS_UNBND);			break;		case TS_WACK_OPTREQ:			mtp_set_state(mtp, TS_IDLE);			break;		case TS_WACK_CRES:			/* FIXME: need to use sequence and token */			mtp_set_state(mtp, TS_DATA_XFER);			break;		case TS_WACK_DREQ6:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩视频中午一区| 91麻豆视频网站| 久久九九99视频| 高清成人免费视频| 亚洲色欲色欲www| 一本色道a无线码一区v| 亚洲一区免费观看| 91精品国产一区二区三区香蕉| 热久久一区二区| 国产三级久久久| 色综合咪咪久久| 日韩国产欧美视频| 精品国精品自拍自在线| 成人网在线免费视频| 亚洲一线二线三线久久久| 欧美一级一级性生活免费录像| 精品系列免费在线观看| 国产精品久久久久久亚洲伦| 欧美性猛片aaaaaaa做受| 日本中文一区二区三区| 中文字幕av一区二区三区免费看 | 蜜桃av一区二区| 久久午夜老司机| 91视频免费观看| 秋霞成人午夜伦在线观看| 久久国产精品免费| 国产精品久久久久久久久快鸭| 日本久久精品电影| 激情亚洲综合在线| 亚洲精品成人a在线观看| 精品日韩av一区二区| 色综合一区二区三区| 日韩av网站在线观看| 国产精品国产自产拍高清av王其| 欧美三级蜜桃2在线观看| 国产一区二区三区蝌蚪| 亚洲第一av色| 久久精品免视看| 欧美高清www午色夜在线视频| 国产.欧美.日韩| 日韩电影网1区2区| 亚洲日本护士毛茸茸| 久久综合国产精品| 欧美日韩成人综合在线一区二区 | 成人av在线看| 免费美女久久99| 亚洲精品伦理在线| 国产亚洲精品久| 日韩一区二区高清| 欧美视频一区二区三区在线观看| 国产99精品在线观看| 麻豆精品新av中文字幕| 悠悠色在线精品| 国产精品欧美久久久久一区二区| 欧美日韩一级片网站| 99re成人精品视频| 成人sese在线| 国产精品456| 精品一区二区久久久| 日韩—二三区免费观看av| 亚洲精品自拍动漫在线| 国产精品成人在线观看| 精品国产髙清在线看国产毛片| 欧美日韩国产成人在线免费| 91色乱码一区二区三区| 成人高清免费观看| 国产成人8x视频一区二区 | 亚洲成人资源在线| 亚洲日本va在线观看| 国产精品高潮呻吟| 国产精品麻豆一区二区| 国产欧美日韩视频在线观看| 午夜欧美电影在线观看| 亚洲午夜成aⅴ人片| 一区二区三区四区视频精品免费| 亚洲欧洲在线观看av| 中文字幕不卡三区| 国产精品网站在线| 1024精品合集| 亚洲视频在线观看一区| 国产精品久久久久久久岛一牛影视| 国产欧美日韩另类视频免费观看 | 国产一区二区三区香蕉| 激情综合网激情| 国产一区免费电影| 国产精品自拍三区| 成人免费高清在线观看| 一本久久综合亚洲鲁鲁五月天| 色噜噜狠狠成人中文综合| 欧美亚洲综合一区| 51精品久久久久久久蜜臀| 日韩欧美国产不卡| 国产婷婷色一区二区三区| 国产精品剧情在线亚洲| 亚洲自拍偷拍av| 日本伊人色综合网| 国产精品夜夜嗨| 99这里只有久久精品视频| 在线观看不卡一区| 91精品国产免费久久综合| 精品福利一区二区三区免费视频| 国产性天天综合网| 亚洲美女在线国产| 日本不卡123| 国产ts人妖一区二区| 99国产精品99久久久久久| 欧美天堂亚洲电影院在线播放| 欧美一区2区视频在线观看| 国产亚洲欧美中文| 一级日本不卡的影视| 美女一区二区三区在线观看| 国产a级毛片一区| 欧美日韩综合不卡| 久久综合狠狠综合| 亚洲最大的成人av| 久久99国产精品麻豆| 91麻豆自制传媒国产之光| 91麻豆精品国产自产在线 | 99久久久无码国产精品| 欧洲国内综合视频| xvideos.蜜桃一区二区| 一区二区三区欧美激情| 国产一区不卡视频| 欧美性一二三区| 国产区在线观看成人精品 | 91超碰这里只有精品国产| 久久久天堂av| 亚洲成a人片在线观看中文| 国产精品亚洲一区二区三区在线 | 亚洲h在线观看| 国产精品综合二区| 欧美视频一区在线观看| 国产精品免费视频观看| 日韩av网站免费在线| 色哟哟精品一区| 国产日韩欧美在线一区| 日本在线播放一区二区三区| 92精品国产成人观看免费 | 日本一区二区三区电影| 日本在线不卡视频| 欧洲精品在线观看| 国产精品黄色在线观看| 国产真实乱子伦精品视频| 欧美日韩免费一区二区三区 | 国产精品18久久久久久vr| 欧美日韩一区高清| 亚洲男女一区二区三区| 成人激情视频网站| 黄色精品一二区| 666欧美在线视频| 亚洲大片精品永久免费| 色综合天天综合在线视频| 国产精品视频看| 国产美女视频一区| 日韩欧美的一区二区| 日韩av成人高清| 欧美猛男超大videosgay| 一区二区三区免费观看| 91视视频在线观看入口直接观看www | 亚洲第一电影网| 91 com成人网| 国产呦萝稀缺另类资源| 欧美日韩国产首页在线观看| 亚洲激情第一区| 91猫先生在线| 一区二区三区中文字幕在线观看| 成人听书哪个软件好| 中文字幕一区免费在线观看| 岛国精品在线观看| 国产精品美女久久久久久久久 | 国产一本一道久久香蕉| 欧美v国产在线一区二区三区| 美国av一区二区| 26uuu久久综合| 粉嫩在线一区二区三区视频| 国产欧美日韩麻豆91| www.综合网.com| 亚洲免费av在线| 欧美日韩国产综合视频在线观看| 日韩一区欧美二区| 日韩精品一区二区三区视频播放 | 日韩一区二区高清| 激情六月婷婷综合| 亚洲国产精品99久久久久久久久| 成人综合在线网站| 亚洲欧美日韩在线播放| 在线观看中文字幕不卡| 天堂影院一区二区| 欧美成人aa大片| 粉嫩aⅴ一区二区三区四区五区 | 欧美大片拔萝卜| 丁香天五香天堂综合| 1024国产精品| 欧美日韩1区2区| 久久精品国产99国产| 国产精品三级电影| 欧美午夜精品久久久| 精品亚洲免费视频| 国产精品精品国产色婷婷| 欧美日韩成人一区二区|