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

📄 slpmod.c

📁 OpenSS7 This the fourth public release of the OpenSS7 Master Package. See README in the release for
💻 C
📖 第 1 页 / 共 4 页
字号:
				break;			case LMI_DETACH_PENDING:				p->lmi_state = sl_set_l_state(sl, lk, LMI_DISABLED);				break;			case LMI_ENABLE_PENDING:				p->lmi_state = sl_set_l_state(sl, lk, LMI_DISABLED);				break;			case LMI_DISABLE_PENDING:				p->lmi_state = sl_set_l_state(sl, lk, LMI_ENABLED);				break;			default:				/* FIXME: log error */				p->lmi_state = sl_get_l_state(lk);				break;			}		}		mp->b_wptr += sizeof(*p);		freemsg(msg);		strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- LMI_ERROR_ACK");		putnext(lk->oq, mp);		return (0);	}	return (-ENOBUFS);}static inline intlmi_enable_con(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg){	lmi_enable_con_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p), BPRI_MED)))) {		mp->b_datap->db_type = M_PCPROTO;		p = (typeof(p)) mp->b_wptr;		p->lmi_primitive = LMI_ENABLE_CON;		p->lmi_state = sl_set_l_state(sl, lk, LMI_ENABLED);		mp->b_wptr += sizeof(*p);		freemsg(msg);		strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- LMI_ENABLE_CON");		putnext(lk->oq, mp);		return (0);	}	return (-ENOBUFS);}static inline intlmi_disable_con(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg){	lmi_disable_con_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p), BPRI_MED)))) {		mp->b_datap->db_type = M_PCPROTO;		p = (typeof(p)) mp->b_wptr;		p->lmi_primitive = LMI_DISABLE_CON;		p->lmi_state = sl_set_l_state(sl, lk, LMI_DISABLED);		mp->b_wptr += sizeof(*p);		freemsg(msg);		strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- LMI_DISABLE_CON");		putnext(lk->oq, mp);		return (0);	}	return (-ENOBUFS);}static inline intlmi_optmgmt_ack(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg, caddr_t optr, size_t olen,		sl_ulong flags){	lmi_optmgmt_ack_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p) + olen, BPRI_MED)))) {		mp->b_datap->db_type = M_PCPROTO;		p = (typeof(p)) mp->b_wptr;		p->lmi_primitive = LMI_OPTMGMT_ACK;		p->lmi_opt_length = olen;		p->lmi_opt_offset = olen ? sizeof(*p) : 0;		p->lmi_mgmt_flags = flags;		mp->b_wptr += sizeof(*p);		bcopy(optr, mp->b_wptr, olen);		mp->b_wptr += olen;		freemsg(msg);		strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- LMI_OPTMGMT_ACK");		putnext(lk->oq, mp);		return (0);	}	return (-ENOBUFS);}static inline intlmi_error_ind(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg, sl_long err){	lmi_error_ind_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p), BPRI_MED)))) {		if (bcanputnext(lk->oq, 1)) {			mp->b_datap->db_type = M_PROTO;			mp->b_band = 1;			p = (typeof(p)) mp->b_wptr;			p->lmi_primitive = LMI_ERROR_IND;			p->lmi_errno = err < 0 ? -err : 0;			p->lmi_reason = err < 0 ? LMI_SYSERR : err;			p->lmi_state = sl_get_l_state(lk);			mp->b_wptr += sizeof(*p);			freemsg(msg);			strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- LMI_ERROR_IND");			putnext(lk->oq, mp);			return (0);		}		freeb(mp);		return (-EBUSY);	}	return (-ENOBUFS);}static inline intlmi_stats_ind(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg, sl_ulong itvl){	lmi_stats_ind_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p), BPRI_MED)))) {		mp->b_datap->db_type = M_PROTO;		mp->b_band = 1;		p = (typeof(p)) mp->b_wptr;		p->lmi_primitive = LMI_STATS_IND;		p->lmi_interval = itvl;		p->lmi_timestamp = drv_hztomsec(jiffies);		mp->b_wptr += sizeof(*p);		freemsg(msg);		strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- LMI_STATS_IND");		putnext(lk->oq, mp);		return (0);	}	return (-ENOBUFS);}static inline intlmi_event_ind(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg, sl_ulong oid,	      sl_ulong severity){	lmi_event_ind_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p), BPRI_MED)))) {		if (bcanputnext(lk->oq, 1)) {			mp->b_datap->db_type = M_PCPROTO;			mp->b_band = 1;			p = (typeof(p)) mp->b_wptr;			p->lmi_primitive = LMI_EVENT_IND;			p->lmi_objectid = oid;			p->lmi_timestamp = drv_hztomsec(jiffies);			p->lmi_severity = severity;			mp->b_wptr += sizeof(*p);			freemsg(msg);			strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- LMI_EVENT_IND");			putnext(lk->oq, mp);			return (0);		}		freeb(mp);		return (-EBUSY);	}	return (-ENOBUFS);}static inline intsl_pdu_ind(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg, sl_ulong pri, mblk_t *dp){	sl_pdu_ind_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p), BPRI_MED)))) {		if (likely(canputnext(lk->oq))) {			mp->b_datap->db_type = M_PROTO;			p = (typeof(p)) mp->b_wptr;			p->sl_primitive = SL_PDU_IND;			p->sl_mp = pri;			mp->b_wptr += sizeof(*p);			mp->b_cont = dp;			freemsg(msg);			strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- SL_PDU_IND");			putnext(lk->oq, mp);			return (0);		}		freeb(mp);		return (-EBUSY);	}	return (-ENOBUFS);}static inline intsl_link_congested_ind(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg, sl_ulong cong,		      sl_ulong disc){	sl_link_cong_ind_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p), BPRI_MED)))) {		if (bcanputnext(lk->oq, 1)) {			mp->b_datap->db_type = M_PROTO;			mp->b_band = 1;			p = (typeof(p)) mp->b_wptr;			p->sl_primitive = SL_LINK_CONGESTED_IND;			p->sl_timestamp = drv_hztomsec(jiffies);			p->sl_cong_status = cong;			p->sl_disc_status = disc;			mp->b_wptr += sizeof(*p);			freemsg(msg);			strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- SL_LINK_CONGESTED_IND");			putnext(lk->oq, mp);			return (0);		}		freeb(mp);		return (-EBUSY);	}	return (-ENOBUFS);}static inline intsl_link_congestion_ceased_ind(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg){	sl_link_cong_ceased_ind_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p), BPRI_MED)))) {		if (bcanputnext(lk->oq, 1)) {			mp->b_datap->db_type = M_PROTO;			mp->b_band = 1;			p = (typeof(p)) mp->b_wptr;			p->sl_primitive = SL_LINK_CONGESTION_CEASED_IND;			p->sl_timestamp = drv_hztomsec(jiffies);			p->sl_cong_status = 0;			p->sl_disc_status = 0;			mp->b_wptr += sizeof(*p);			freemsg(msg);			strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE,			       "<- SL_LINK_CONGESTION_CEASED_IND");			putnext(lk->oq, mp);			return (0);		}		freeb(mp);		return (-EBUSY);	}	return (-ENOBUFS);}static inline intsl_retrieved_message_ind(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg, sl_ulong pri,			 mblk_t *dp){	sl_retrieved_msg_ind_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p), BPRI_MED)))) {		mp->b_datap->db_type = M_PROTO;		p = (typeof(p)) mp->b_wptr;		p->sl_primitive = SL_RETRIEVED_MESSAGE_IND;		p->sl_mp = pri;		mp->b_wptr += sizeof(*p);		mp->b_cont = dp;		freemsg(msg);		strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- SL_RETRIEVED_MESSAGE_IND");		putnext(lk->oq, mp);		return (0);	}	return (-ENOBUFS);}static inline intsl_retrieval_complete_ind(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg, sl_ulong pri,			  mblk_t *dp){	sl_retrieval_comp_ind_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p), BPRI_MED)))) {		mp->b_datap->db_type = M_PROTO;		p = (typeof(p)) mp->b_wptr;		p->sl_primitive = SL_RETRIEVAL_COMPLETE_IND;		p->sl_mp = pri;		mp->b_wptr += sizeof(*p);		mp->b_cont = dp;		freemsg(msg);		strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- SL_RETRIEVAL_COMPLETE_IND");		putnext(lk->oq, mp);		return (0);	}	return (-ENOBUFS);}static inline intsl_rb_cleared_ind(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg){	sl_rb_cleared_ind_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p), BPRI_MED)))) {		mp->b_datap->db_type = M_PROTO;		p = (typeof(p)) mp->b_wptr;		p->sl_primitive = SL_RB_CLEARED_IND;		mp->b_wptr += sizeof(*p);		freemsg(msg);		strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- SL_RB_CLEARED_IND");		putnext(lk->oq, mp);		return (0);	}	return (-ENOBUFS);}static inline intsl_bsnt_ind(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg, sl_ulong bsnt){	sl_bsnt_ind_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p), BPRI_MED)))) {		mp->b_datap->db_type = M_PROTO;		p = (typeof(p)) mp->b_wptr;		p->sl_primitive = SL_BSNT_IND;		p->sl_bsnt = bsnt;		mp->b_wptr += sizeof(*p);		freemsg(msg);		strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- SL_BSNT_IND");		putnext(lk->oq, mp);		return (0);	}	return (-ENOBUFS);}static inline intsl_in_service_ind(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg){	sl_in_service_ind_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p), BPRI_MED)))) {		mp->b_datap->db_type = M_PROTO;		p = (typeof(p)) mp->b_wptr;		p->sl_primitive = SL_IN_SERVICE_IND;		mp->b_wptr += sizeof(*p);		freemsg(msg);		strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- SL_IN_SERVICE_IND");		putnext(lk->oq, mp);		return (0);	}	return (-ENOBUFS);}static inline intsl_out_of_service_ind(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg, sl_ulong reason){	sl_out_of_service_ind_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p), BPRI_MED)))) {		mp->b_datap->db_type = M_PROTO;		p = (typeof(p)) mp->b_wptr;		p->sl_primitive = SL_OUT_OF_SERVICE_IND;		p->sl_timestamp = drv_hztomsec(jiffies);		p->sl_reason = reason;		mp->b_wptr += sizeof(*p);		freemsg(msg);		strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- SL_OUT_OF_SERVICE_IND");		putnext(lk->oq, mp);		return (0);	}	return (-ENOBUFS);}static inline intsl_remote_processor_outage_ind(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg){	sl_rem_proc_out_ind_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p), BPRI_MED)))) {		mp->b_datap->db_type = M_PROTO;		p = (typeof(p)) mp->b_wptr;		p->sl_primitive = SL_REMOTE_PROCESSOR_OUTAGE_IND;		p->sl_timestamp = drv_hztomsec(jiffies);		mp->b_wptr += sizeof(*p);		freemsg(msg);		strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- SL_REMOTE_PROCESSOR_OUTAGE_IND");		putnext(lk->oq, mp);		return (0);	}	return (-ENOBUFS);}static inline intsl_remote_processor_recovered_ind(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg){	sl_rem_proc_recovered_ind_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p), BPRI_MED)))) {		mp->b_datap->db_type = M_PROTO;		p = (typeof(p)) mp->b_wptr;		p->sl_primitive = SL_REMOTE_PROCESSOR_RECOVERED_IND;		p->sl_timestamp = drv_hztomsec(jiffies);		mp->b_wptr += sizeof(*p);		freemsg(msg);		strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- SL_REMOTE_PROCESSOR_RECOVERED_IND");		putnext(lk->oq, mp);		return (0);	}	return (-ENOBUFS);}static inline intsl_rtb_cleared_ind(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg){	sl_rtb_cleared_ind_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p), BPRI_MED)))) {		mp->b_datap->db_type = M_PROTO;		p = (typeof(p)) mp->b_wptr;		p->sl_primitive = SL_RTB_CLEARED_IND;		mp->b_wptr += sizeof(*p);		freemsg(msg);		strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- SL_RTB_CLEARED_IND");		putnext(lk->oq, mp);		return (0);	}	return (-ENOBUFS);}static inline intsl_retrieval_not_possible_ind(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg){	sl_retrieval_not_poss_ind_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p), BPRI_MED)))) {		mp->b_datap->db_type = M_PROTO;		p = (typeof(p)) mp->b_wptr;		p->sl_primitive = SL_RETRIEVAL_NOT_POSSIBLE_IND;		mp->b_wptr += sizeof(*p);		freemsg(msg);		strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- SL_RETRIEVAL_NOT_POSSIBLE_IND");		putnext(lk->oq, mp);		return (0);	}	return (-ENOBUFS);}static inline intsl_bsnt_not_retrievable_ind(struct sl *sl, struct lk *lk, queue_t *q, mblk_t *msg){	sl_bsnt_not_retr_ind_t *p;	mblk_t *mp;	if (likely(!!(mp = sl_allocb(q, sizeof(*p), BPRI_MED)))) {		mp->b_datap->db_type = M_PROTO;		p = (typeof(p)) mp->b_wptr;		p->sl_primitive = SL_BSNT_NOT_RETRIEVABLE_IND;		mp->b_wptr += sizeof(*p);		freemsg(msg);		strlog(sl->mid, sl->sid, SLLOGTX, SL_TRACE, "<- SL_BSNT_NOT_RETRIEVABLE_IND");		putnext(lk->oq, mp);		return (0);

⌨️ 快捷键说明

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