1121326Sharti/*
2121326Sharti * Copyright (c) 1996-2003
3121326Sharti *	Fraunhofer Institute for Open Communication Systems (FhG Fokus).
4121326Sharti * 	All rights reserved.
5121326Sharti *
6121326Sharti * Redistribution and use in source and binary forms, with or without
7121326Sharti * modification, are permitted provided that the following conditions
8121326Sharti * are met:
9121326Sharti * 1. Redistributions of source code must retain the above copyright
10121326Sharti *    notice, this list of conditions and the following disclaimer.
11121326Sharti * 2. Redistributions in binary form must reproduce the above copyright
12121326Sharti *    notice, this list of conditions and the following disclaimer in the
13121326Sharti *    documentation and/or other materials provided with the distribution.
14121326Sharti *
15121326Sharti * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16121326Sharti * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17121326Sharti * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18121326Sharti * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19121326Sharti * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20121326Sharti * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21121326Sharti * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22121326Sharti * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23121326Sharti * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24121326Sharti * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25121326Sharti * SUCH DAMAGE.
26121326Sharti *
27121326Sharti * Author: Hartmut Brandt <harti@freebsd.org>
28121326Sharti *
29131826Sharti * $Begemot: libunimsg/netnatm/saal/sscfupriv.h,v 1.3 2003/09/19 12:02:03 hbb Exp $
30121326Sharti *
31121326Sharti * Private SSCF-UNI definitions.
32121326Sharti */
33121326Sharti#ifdef _KERNEL
34121326Sharti#ifdef __FreeBSD__
35121326Sharti#include <netgraph/atm/sscfu/ng_sscfu_cust.h>
36121326Sharti#endif
37121326Sharti#else
38121326Sharti#include "sscfucust.h"
39121326Sharti#endif
40121326Sharti
41121326Sharti/*
42121326Sharti * Structure for signal queueing.
43121326Sharti */
44121326Shartistruct sscfu_sig {
45121326Sharti	sscfu_sigq_link_t link;		/* link to next signal */
46121326Sharti	enum saal_sig	sig;		/* the signal */
47121326Sharti	struct SSCFU_MBUF_T *m;		/* associated message */
48121326Sharti};
49121326Sharti
50121326Shartistruct sscfu {
51121326Sharti	enum sscfu_state	state;		/* SSCF state */
52121326Sharti	const struct sscfu_funcs *funcs;	/* func vector */
53121326Sharti	void			*aarg;		/* user arg */
54121326Sharti	int			inhand;		/* need to queue signals */
55121326Sharti	sscfu_sigq_head_t	sigs;		/* signal queue */
56121326Sharti	u_int			debug;		/* debugging flags */
57121326Sharti};
58121326Sharti
59121326Sharti/*
60121326Sharti * Debugging
61121326Sharti */
62121326Sharti#ifdef SSCFU_DEBUG
63121326Sharti#define VERBOSE(S,M,F)	if ((S)->debug & (M)) (S)->funcs->verbose F
64121326Sharti#else
65121326Sharti#define VERBOSE(S,M,F)
66121326Sharti#endif
67