\hypertarget{ng__sscfu__cust_8h_source}{}\doxysection{ng\+\_\+sscfu\+\_\+cust.\+h}
\label{ng__sscfu__cust_8h_source}\index{netgraph/atm/sscfu/ng\_sscfu\_cust.h@{netgraph/atm/sscfu/ng\_sscfu\_cust.h}}
\mbox{\hyperlink{ng__sscfu__cust_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00004}00004 \textcolor{comment}{ * Copyright (c) 2001-\/2003}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00005}00005 \textcolor{comment}{ *      Fraunhofer Institute for Open Communication Systems (FhG Fokus).}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00006}00006 \textcolor{comment}{ *      All rights reserved.}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00007}00007 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00008}00008 \textcolor{comment}{ * Author: Harti Brandt <harti@freebsd.org>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00009}00009 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00010}00010 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00011}00011 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00012}00012 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00013}00013 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00014}00014 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00015}00015 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00016}00016 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00017}00017 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00018}00018 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00019}00019 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00020}00020 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00021}00021 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00022}00022 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00023}00023 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00024}00024 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00025}00025 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00026}00026 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00027}00027 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00028}00028 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00029}00029 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00030}00030 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00031}00031 \textcolor{comment}{ * Customisation of the SSCFU code to ng\_sscfu.}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00032}00032 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00033}00033 \textcolor{comment}{ * \$FreeBSD\$}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00034}00034 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00035}00035 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00036}00036 \textcolor{preprocessor}{\#include <sys/types.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00037}00037 \textcolor{preprocessor}{\#include <sys/kernel.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00038}00038 \textcolor{preprocessor}{\#include <sys/mbuf.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00039}00039 \textcolor{preprocessor}{\#include <sys/queue.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00040}00040 \textcolor{preprocessor}{\#include <sys/callout.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00041}00041 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00042}00042 \textcolor{preprocessor}{\#include <sys/malloc.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00043}00043 \textcolor{preprocessor}{\#include <machine/stdarg.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00044}00044 }
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00045}00045 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00046}00046 \textcolor{comment}{ * Allocate zeroed or non-\/zeroed memory of some size and cast it.}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00047}00047 \textcolor{comment}{ * Return NULL on failure.}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00048}00048 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00049}00049 \textcolor{preprocessor}{\#ifndef SSCFU\_DEBUG}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00050}00050 }
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00051}\mbox{\hyperlink{ng__sscfu__cust_8h_a9ddd10677b035372ea1626da4ce087a9}{00051}} \textcolor{preprocessor}{\#define MEMINIT() \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00052}00052 \textcolor{preprocessor}{        MALLOC\_DECLARE(M\_NG\_SSCFU); \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00053}00053 \textcolor{preprocessor}{        DECL\_SIGQ\_GET}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00054}00054 }
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00055}\mbox{\hyperlink{ng__sscfu__cust_8h_a3c5477b8d5e8d61c6a13515f962567fe}{00055}} \textcolor{preprocessor}{\#define MEMZALLOC(PTR, CAST, SIZE) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00056}00056 \textcolor{preprocessor}{        ((PTR) = (CAST)malloc((SIZE), M\_NG\_SSCFU, M\_NOWAIT | M\_ZERO))}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00057}\mbox{\hyperlink{ng__sscfu__cust_8h_a4193724e929ce8f1a465b57514539a36}{00057}} \textcolor{preprocessor}{\#define MEMFREE(PTR) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00058}00058 \textcolor{preprocessor}{        free(PTR, M\_NG\_SSCFU)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00059}00059 }
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00060}\mbox{\hyperlink{ng__sscfu__cust_8h_ab364d9d2ccada607e29366b8ebd48dbf}{00060}} \textcolor{preprocessor}{\#define SIG\_ALLOC(PTR) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00061}00061 \textcolor{preprocessor}{        MEMZALLOC(PTR, struct sscfu\_sig *, sizeof(struct sscfu\_sig))}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00062}\mbox{\hyperlink{ng__sscfu__cust_8h_ac5d1f55ca2713b342b01ec7b00dd2ff6}{00062}} \textcolor{preprocessor}{\#define SIG\_FREE(PTR) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00063}00063 \textcolor{preprocessor}{        MEMFREE(PTR)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00064}00064 }
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00065}00065 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00066}00066 }
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00067}00067 \textcolor{preprocessor}{\#define MEMINIT()                                                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00068}00068 \textcolor{preprocessor}{        MALLOC\_DEFINE(M\_NG\_SSCFU\_INS, "{}sscfu\_ins"{}}, "{}SSCFU instances"{});  \(\backslash\)}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00069}00069         MALLOC\_DEFINE(M\_NG\_SSCFU\_SIG, "{}sscfu\_sig"{}, "{}SSCFU signals"{});    \(\backslash\)}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00070}00070         DECL\_SIGQ\_GET}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00071}00071 }
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00072}00072 \textcolor{preprocessor}{\#define MEMZALLOC(PTR, CAST, SIZE)                                      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00073}00073 \textcolor{preprocessor}{        ((PTR) = (CAST)malloc((SIZE), M\_NG\_SSCFU\_INS, M\_NOWAIT | M\_ZERO))}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00074}00074 \textcolor{preprocessor}{\#define MEMFREE(PTR)                                                    \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00075}00075 \textcolor{preprocessor}{        free(PTR, M\_NG\_SSCFU\_INS)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00076}00076 }
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00077}00077 \textcolor{preprocessor}{\#define SIG\_ALLOC(PTR)                                                  \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00078}00078 \textcolor{preprocessor}{        ((PTR) = malloc(sizeof(struct sscfu\_sig),                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00079}00079 \textcolor{preprocessor}{            M\_NG\_SSCFU\_SIG, M\_NOWAIT | M\_ZERO))}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00080}00080 \textcolor{preprocessor}{\#define SIG\_FREE(PTR)                                                   \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00081}00081 \textcolor{preprocessor}{        free(PTR, M\_NG\_SSCFU\_SIG)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00082}00082 }
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00083}00083 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00084}00084 }
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00085}00085 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00086}00086 \textcolor{comment}{ * Signal queues}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00087}00087 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00088}\mbox{\hyperlink{ng__sscfu__cust_8h_ac5a7e36396cff6390cabb077c1f72946}{00088}} \textcolor{keyword}{typedef} \mbox{\hyperlink{ng__sscfu__cust_8h_ac5a7e36396cff6390cabb077c1f72946}{TAILQ\_ENTRY}}(sscfu\_sig) sscfu\_sigq\_link\_t;}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00089}\mbox{\hyperlink{ng__sscfu__cust_8h_a5b4f81dc58372defede121a42cfd89c8}{00089}} \textcolor{keyword}{typedef} \mbox{\hyperlink{ng__sscfu__cust_8h_a5b4f81dc58372defede121a42cfd89c8}{TAILQ\_HEAD}}(sscfu\_sigq, sscfu\_sig) sscfu\_sigq\_head\_t;}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00090}\mbox{\hyperlink{ng__sscfu__cust_8h_a8bb8601f916b285bf5853dfce6a8d24d}{00090}} \textcolor{preprocessor}{\#define SIGQ\_INIT(Q)            TAILQ\_INIT(Q)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00091}\mbox{\hyperlink{ng__sscfu__cust_8h_a8f2dd00689c7313cf67c035c51a6d931}{00091}} \textcolor{preprocessor}{\#define SIGQ\_APPEND(Q, S)       TAILQ\_INSERT\_TAIL(Q, S, link)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00092}00092 }
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00093}\mbox{\hyperlink{ng__sscfu__cust_8h_a0c677311751a52be5226963987b5b291}{00093}} \textcolor{preprocessor}{\#define SIGQ\_GET(Q) ng\_sscfu\_sigq\_get((Q))}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00094}00094 }
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00095}\mbox{\hyperlink{ng__sscfu__cust_8h_ae81ac1ccd94189025c05d9261e304eb2}{00095}} \textcolor{preprocessor}{\#define DECL\_SIGQ\_GET                                                   \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00096}00096 \textcolor{preprocessor}{static \_\_inline struct sscfu\_sig *                                      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00097}00097 \textcolor{preprocessor}{ng\_sscfu\_sigq\_get(struct sscfu\_sigq *q)                                 \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00098}00098 \textcolor{preprocessor}{\{                                                                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00099}00099 \textcolor{preprocessor}{        struct sscfu\_sig *s;                                            \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00100}00100 \textcolor{preprocessor}{                                                                        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00101}00101 \textcolor{preprocessor}{        s = TAILQ\_FIRST(q);                                             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00102}00102 \textcolor{preprocessor}{        if (s != NULL)                                                  \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00103}00103 \textcolor{preprocessor}{                TAILQ\_REMOVE(q, s, link);                               \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00104}00104 \textcolor{preprocessor}{        return (s);                                                     \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00105}00105 \textcolor{preprocessor}{\}}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00106}00106 }
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00107}\mbox{\hyperlink{ng__sscfu__cust_8h_a55553ce2b6001bfa72022e65f823e5bf}{00107}} \textcolor{preprocessor}{\#define SIGQ\_CLEAR(Q)                                                   \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00108}00108 \textcolor{preprocessor}{    do \{                                                                \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00109}00109 \textcolor{preprocessor}{        struct sscfu\_sig *\_s1, *\_s2;                                    \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00110}00110 \textcolor{preprocessor}{                                                                        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00111}00111 \textcolor{preprocessor}{        \_s1 = TAILQ\_FIRST(Q);                                           \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00112}00112 \textcolor{preprocessor}{        while (\_s1 != NULL) \{                                           \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00113}00113 \textcolor{preprocessor}{                \_s2 = TAILQ\_NEXT(\_s1, link);                            \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00114}00114 \textcolor{preprocessor}{                if (\_s1-\/>m)                                             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00115}00115 \textcolor{preprocessor}{                        MBUF\_FREE(\_s1-\/>m);                              \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00116}00116 \textcolor{preprocessor}{                SIG\_FREE(\_s1);                                          \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00117}00117 \textcolor{preprocessor}{                \_s1 = \_s2;                                              \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00118}00118 \textcolor{preprocessor}{        \}                                                               \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00119}00119 \textcolor{preprocessor}{        TAILQ\_INIT(Q);                                                  \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00120}00120 \textcolor{preprocessor}{    \} while (0)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00121}00121 }
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00122}00122 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00123}00123 \textcolor{comment}{ * Message buffers}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00124}00124 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00125}\mbox{\hyperlink{ng__sscfu__cust_8h_a6a03b775059ecbe71d434d3bb703831a}{00125}} \textcolor{preprocessor}{\#define MBUF\_FREE(M)    m\_freem(M)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00126}00126 }
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00127}00127 \textcolor{preprocessor}{\#ifdef SSCFU\_DEBUG}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00128}00128 \textcolor{preprocessor}{\#define ASSERT(S)       KASSERT(S, (\#S))}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00129}00129 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00130}\mbox{\hyperlink{ng__sscfu__cust_8h_a288eab360688b79d982f3404ebac0989}{00130}} \textcolor{preprocessor}{\#define ASSERT(S)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu__cust_8h_source_l00131}00131 \textcolor{preprocessor}{\#endif}}

\end{DoxyCode}
