OpenSS7
SS7 for the
Common Man

© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved.
Last modified:

Home Overview Status News Documentation Resources About
   
 Overview
 Status
 News
 Documentation
 Resources
 About

   
Home Index Prev Next More Download Info FAQ Mail   Home -> Resources -> Browse Source -> strss7/drivers/m3ua/m3ua_lm.h


File /code/strss7/drivers/m3ua/m3ua_lm.h



#ifndef __M3UA_LM_H__
#define __M3UA_LM_H__

/*
 *  =========================================================================
 *
 *  M3UA --> LM	(Upstream Primitives to Layer Management)
 *
 *  =========================================================================
 */
/*
 *  LM_LINK_IND
 *  -------------------------------------------------------------------------
 *  This is the bottom half of pass-through control of any of the links under
 *  the multiplexor from the configuration daemon stream.
 */
static __inline__ int lm_link_ind(queue_t * q, mblk_t * dp)
{
	mblk_t *mp;
	lm_link_ind_t *p;
	lp_t *lp = (lp_t *) q->q_ptr;
	if ((mp = allocb(sizeof(*p), BPRI_MED))) {
		mp->b_datap->db_type = dp->b_datap->db_type;
		p = (lm_link_ind_t *) mp->b_wptr;
		p->primitive = LM_EVENT_IND;
		p->muxid = lp->muxid;
		p->type = lp->type;
		p->mode = lp->mode;
		p->class = lp->class;
		mp->b_wptr += sizeof(*p);
		mp->b_cont = dp;
		pullmsg(mp, -1);
		m3ua_u_rput(m3ua_lmq, mp);
		return (0);
	}
	return (-ENOBUFS);
}

/*
 *  M_NOTIFY_IND
 *  -------------------------------------------------------------------------
 */
static __inline__ mblk_t *m3_notify_ind(void)
{
	mblk_t *mp;
	m3_notify_ind_t *p;
	if ((mp = allocb(sizeof(*p), BPRI_MED))) {
		mp->b_datap->db_type = M_PCPROTO;
		p = (m3_notify_ind_t *) mp->b_wptr;
		p->primitive = M3_NOTIFY_IND;
		/* 
		 *  FIXME: do some more...
		 */
		mp->b_wptr += sizeof(*p);
	}
	return (mp);
}

/*
 *  M_ERROR_IND
 *  -------------------------------------------------------------------------
 */
static __inline__ mblk_t *m3_error_ind(void)
{
	mblk_t *mp;
	m3_error_ind_t *p;
	if ((mp = allocb(sizeof(*p), BPRI_MED))) {
		mp->b_datap->db_type = M_PCPROTO;
		p = (m3_error_ind_t *) mp->b_wptr;
		p->primitive = M3_ERROR_IND;
		/* 
		 *  FIXME: do some more...
		 */
		mp->b_wptr += sizeof(*p);
	}
	return (mp);
}

/*
 *  M_LINK_NOTIFY_IND
 */

/*
 *  LM_AS_EVENT_IND
 *  -------------------------------------------------------------------------
 */
static __inline__ int lm_as_event_ind(uint muxid, uint event, uint asid, uint aspid)
{
	mblk_t *mp;
	LM_as_event_ind_t *p;
	if ((mp = allocb(sizeof(*p), BPRI_MED))) {
		mp->b_datap->db_type = M_PROTO;
		p = (LM_as_event_ind_t *) mp->b_wptr;
		p->PRIM_type = LM_AS_EVENT_IND;
		p->MUX_identifier = muxid;
		p->AS_identifier = asid;
		p->ASP_identifier = aspid;
		mp->b_wptr += sizeof(*p);
		m3ua_u_rput(m3ua_lmq, mp);
		return (0);
	}
	return (-ENOBUFS);
}

#endif				/* __M3UA_LM_H__ */


Home Index Prev Next More Download Info FAQ Mail   Home -> Resources -> Browse Source -> strss7/drivers/m3ua/m3ua_lm.h

OpenSS7
SS7 for the
Common Man
Home Overview Status News Documentation Resources About

© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved.
Last modified: