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


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



#ifndef __UA_H__
#define __UA_H__

#ident "@(#) $RCSfile: ua.h,v $ $Name:  $($Revision: 0.8.2.2 $) $Date: 2002/10/18 03:09:22 $"

extern int ua_reuseb(ua_t *, size_t, int, mblk_t **);

#if 0
extern int ua_putq(queue_t *, mblk_t *, int (*)(queue_t *, mblk_t *));
extern int ua_srvq(queue_t *, int (*)(queue_t *, mblk_t *));
#endif
extern int ua_w_flush(queue_t *, mblk_t *);
extern int ua_r_flush(queue_t *, mblk_t *);

#ifndef NUM_SPIDS
#define NUM_SPIDS 16
#endif

typedef struct drv {
	uint cmajor;			/* base character major device number */
	uint nmajor;			/* number of major device numbers */
	uint nminor;			/* number of minor device numbers */
	char *name;			/* name of multiplexing driver */
	uint min_alen;			/* minimum address length */
	uint max_alen;			/* maximum address length */
	ops_t u_ops_lm;			/* operations to perform on LM stream */
	ops_t u_ops_ss7;		/* operations to perform on SS7-U stream */
	ops_t l_ops_ss7;		/* operations to perform on SS7-P stream */
	ops_t l_ops_asp;		/* operations to perform on ASP stream */
	ops_t l_ops_sgp;		/* operations to perform on SGP stream */
	ops_t l_ops_spp;		/* operations to perform on SPP stream */
	struct sp *sp[NUM_SPIDS];
} drv_t;

extern drv_t ualm_driver;
extern drv_t m2ua_driver;
extern drv_t m3ua_driver;
extern drv_t isua_driver;
extern drv_t sua_driver;
extern drv_t tua_driver;

//extern kmem_cache_t *ua_pp_cachep;
//extern kmem_cache_t *ua_xp_cachep;
//extern kmem_cache_t *ua_gp_cachep;
//extern kmem_cache_t *ua_as_cachep;
//extern kmem_cache_t *ua_ap_cachep;
//extern kmem_cache_t *ua_sp_cachep;
//extern kmem_cache_t *ua_np_cachep;

/* structure allocation and deallocation */
extern pp_t *ua_pp_alloc(void);
extern xp_t *ua_xp_alloc(void);
extern gp_t *ua_gp_alloc(void);
extern as_t *ua_as_alloc(void);
extern ap_t *ua_ap_alloc(void);
extern sp_t *ua_sp_alloc(void);
extern np_t *ua_np_alloc(void);

extern void ua_pp_free(pp_t * pp);
extern void ua_xp_free(xp_t * xp);
extern void ua_gp_free(gp_t * gp);
extern void ua_as_free(as_t * as);
extern void ua_ap_free(ap_t * ap);
extern void ua_sp_free(sp_t * sp);
extern void ua_np_free(np_t * np);

/* timeouts */
#define ua_t_ack_val 200
#define ua_t_hbt_val 200
#define ua_t_pnd_val 200

extern void ua_as_ack_timeout(caddr_t data);
extern void ua_xp_ack_timeout(caddr_t data);
extern void ua_gp_ack_timeout(caddr_t data);

/* state machine functions */
extern int sg_activate_req(queue_t * q, as_t * ps);
extern int sg_inactive_req(queue_t * q, as_t * ps);
extern int as_active_req(queue_t * q, as_t * as);
extern int as_inactive_req(queue_t * q, as_t * as);
extern int asp_active_ack(queue_t * q, as_t * as);
extern int asp_active_nack(queue_t * q, as_t * as);
extern int asp_inactive_ack(queue_t * q, as_t * as);
extern int asp_override(queue_t * q, as_t * as);
extern int as_active_ack(queue_t * q, as_t * as);
extern int as_active_nack(queue_t * q, as_t * as);
extern int as_inactive_ack(queue_t * q, as_t * as);
extern int sg_inactive_ack(queue_t * q, as_t * ps);
extern int sg_active_ack(queue_t * q, as_t * ps);
extern int sg_active_nack(queue_t * q, as_t * ps);

/* layer management message handling */
extern int lm_w_ioctl(queue_t * q, mblk_t * mp);
extern int lm_w_prim(queue_t * q, mblk_t * mp);
extern int lm_r_prim(queue_t * q, mblk_t * mp);

#define QR_DONE		0
#define QR_ABSORBED	1
#define QR_TRIMMED	2
#define QR_LOOP		3
#define QR_PASSALONG	4
#define QR_PASSFLOW	5
#define QR_DISABLE	6

#define UA_PRIV(__q) ((sccp_t *)(__q)->q_ptr)

/* buffer handling */
extern void ua_bufcall(queue_t * q, size_t size, int prior);
extern inline mblk_t *ua_allocb(queue_t * q, size_t size, int prior)
{
	mblk_t *mp;

	if ((mp = allocb(size, prior)))
		return (mp);
	ua_bufcall(q, size, prior);
	return (NULL);
}

#endif				/* __UA_H__ */


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

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

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