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/ua/ua_lm.h


File /code/strss7/drivers/ua/ua_lm.h



#ifndef __UA_LM_H__
#define __UA_LM_H__

#ident "@(#) $RCSfile: ua_lm.h,v $ $Name:  $($Revision: 0.8.2.1 $) $Date: 2002/10/18 02:26:20 $"

#include <ss7/ua_lm.h>		/* LM Primitives definitions */
#include <ss7/ua_lm_ioctl.h>

#define LM_AS_EVENT_IND

typedef struct LM_as_event_ind {
	long PRIM_type;
	ulong MUX_id;			/* Lower Mux id for reporting stream */
	ulong EVENT_type;		/* Application Server event */
	ulong ASID_length;		/* Application Server Identifier (RC) */
	ulong ASID_offset;		/* Application Server Identifier (RC) */
	ulong ASPID_length;		/* Application Server Process Id */
	ulong ASPID_offset;		/* Application Server Process Id */
} LM_as_event_ind_t;

#endif				/* __UA_LM_H__ */

/*
 *  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;
	lp_t *lp = Q_LP(q);
	LM_link_ind_t *p;
	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;
		mp->b_wptr += sizeof(*p);
		mp->b_cont = dp;
		pullmsg(mp, -1);
		putq(lp->lmq, mp);
		return (0);
	}
	return (-ENOBUFS);
}

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

/*
 *  M_ERROR_IND
 *  -------------------------------------------------------------------------
 */
static __inline__ mblk_t *lm_error_ind(void)
{
	mblk_t *mp;
	LM_error_ind_t *p;
	if ((mp = allocb(sizeof(*p), BPRI_MED))) {
		mp->b_datap->db_type = M_PCPROTO;
		p = (LM_error_ind_t *) mp->b_wptr;
		p->primitive = LM_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(queue_t * q, 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);
		putq(q, mp);
		return (0);
	}
	return (-ENOBUFS);
}

/*
 *  LM_XXXX
 */
static __inline__ mblk_t *lm_xxxx(void)
{
	mblk_t *mp;
	LM_xxxx *p;
	if ((mp = allocb(sizeof(*p), BPRI_MED))) {
		mp->b_datap->db_type = M_PCPROTO;
		p = (LM_xxxx *) mp->b_wptr;
		p->primitive = LM_XXXX;
		mp->b_wptr += sizeof(*p);
	}
	return (mp);
}

static __inline__ int lm_link_notify_ind(sl, not_ptr, not_len)
	const slp_t *sl;
	const caddr_t not_ptr;
	const size_t not_len;
{
	mblk_t *mp;
	lm_link_notify_ind_t *p;
	if ((mp = allocb(sizeof(*p), BPRI_MED))) {
		mp->b_datap->db_type = M_PROTO;
		p = (lm_link_notify_ind_t *) mp->b_wptr;
		p->primitive = LM_LINK_NOTIFY_IND;
		p->linkid = sl->muxid;
		p->notify_length = not_len;
		p->notify_offset = not_len ? sizeof(*p) : 0;
		mp->b_wptr += sizeof(*p);
		bcopy(not_ptr, mp->b_wptr, not_len);
		mp->b_wptr += not_len;
		putq(sl->mgmtq, mp);
		return (0);
	}
	return (-ENOBUFS);
}


Home Index Prev Next More Download Info FAQ Mail   Home -> Resources -> Browse Source -> strss7/drivers/ua/ua_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: