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