OpenSS7 SS7 for the Common Man |
© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved. |
||||||||||||||||||||||||||
Home | Overview | Status | News | Documentation | Resources | About | |||||||||||||||||||||
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); }
|
|||||||||||||||||||||||||||
OpenSS7 SS7 for the Common Man |
Home | Overview | Status | News | Documentation | Resources | About | ||||||||||||||||||||
© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved. |