\hypertarget{ng__sscfu_8c_source}{}\doxysection{ng\+\_\+sscfu.\+c}
\label{ng__sscfu_8c_source}\index{netgraph/atm/sscfu/ng\_sscfu.c@{netgraph/atm/sscfu/ng\_sscfu.c}}
\mbox{\hyperlink{ng__sscfu_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00004}00004 \textcolor{comment}{ * Copyright (c) 2001-\/2003}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00005}00005 \textcolor{comment}{ *      Fraunhofer Institute for Open Communication Systems (FhG Fokus).}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00006}00006 \textcolor{comment}{ *      All rights reserved.}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00007}00007 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00008}00008 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00009}00009 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00010}00010 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00011}00011 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00012}00012 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00013}00013 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00014}00014 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00015}00015 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00016}00016 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00017}00017 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00018}00018 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00019}00019 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00020}00020 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00021}00021 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00022}00022 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00023}00023 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00024}00024 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00025}00025 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00026}00026 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00027}00027 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00028}00028 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00029}00029 \textcolor{comment}{ * Author: Hartmut Brandt <harti@freebsd.org>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00030}00030 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00031}00031 \textcolor{comment}{ * Netgraph module for ITU-\/T Q.2120 UNI SSCF.}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00032}00032 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00033}00033 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00034}00034 \textcolor{preprocessor}{\#include <sys/cdefs.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00035}\mbox{\hyperlink{ng__sscfu_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{00035}} \mbox{\hyperlink{ng__sscfu_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\_\_FBSDID}}(\textcolor{stringliteral}{"{}\$FreeBSD\$"{}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00036}00036 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00037}00037 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00038}00038 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00039}00039 \textcolor{preprocessor}{\#include <sys/kernel.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00040}00040 \textcolor{preprocessor}{\#include <sys/malloc.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00041}00041 \textcolor{preprocessor}{\#include <sys/mbuf.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00042}00042 \textcolor{preprocessor}{\#include <sys/errno.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00043}00043 \textcolor{preprocessor}{\#include <sys/syslog.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00044}00044 \textcolor{preprocessor}{\#include <sys/socket.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00045}00045 \textcolor{preprocessor}{\#include <sys/socketvar.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00046}00046 \textcolor{preprocessor}{\#include <sys/sbuf.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00047}00047 \textcolor{preprocessor}{\#include <machine/stdarg.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00048}00048 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00049}00049 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{ng__message_8h}{netgraph/ng\_message.h}}>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00050}00050 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{netgraph_8h}{netgraph/netgraph.h}}>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00051}00051 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{ng__parse_8h}{netgraph/ng\_parse.h}}>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00052}00052 \textcolor{preprocessor}{\#include <netnatm/saal/sscopdef.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00053}00053 \textcolor{preprocessor}{\#include <netnatm/saal/sscfudef.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00054}00054 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{ng__sscop_8h}{netgraph/atm/ng\_sscop.h}}>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00055}00055 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{ng__sscfu_8h}{netgraph/atm/ng\_sscfu.h}}>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00056}00056 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{ng__sscfu__cust_8h}{netgraph/atm/sscfu/ng\_sscfu\_cust.h}}>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00057}00057 \textcolor{preprocessor}{\#include <netnatm/saal/sscfu.h>}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00058}00058 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00059}\mbox{\hyperlink{ng__sscfu_8c_ac36552e58d703028de98de475a855181}{00059}} \mbox{\hyperlink{ng__sscfu_8c_ac36552e58d703028de98de475a855181}{MALLOC\_DEFINE}}(M\_NG\_SSCFU, \textcolor{stringliteral}{"{}netgraph\_sscfu"{}}, \textcolor{stringliteral}{"{}netgraph uni sscf node"{}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00060}00060 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00061}\mbox{\hyperlink{ng__sscfu_8c_aa29d6ecc6c051e910042b102a3f79426}{00061}} \mbox{\hyperlink{ng__sscfu_8c_aa29d6ecc6c051e910042b102a3f79426}{MODULE\_DEPEND}}(ng\_sscfu, ngatmbase, 1, 1, 1);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00062}00062 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00063}00063 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00064}00064 \textcolor{comment}{ * Private data}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00065}00065 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00066}\mbox{\hyperlink{structpriv}{00066}} \textcolor{keyword}{struct }\mbox{\hyperlink{structpriv}{priv}} \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00067}\mbox{\hyperlink{structpriv_af095469fef023c37377528a48c3198ee}{00067}}         \mbox{\hyperlink{structng__hook}{hook\_p}}            \mbox{\hyperlink{structpriv_af095469fef023c37377528a48c3198ee}{upper}};     \textcolor{comment}{/* SAAL interface */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00068}\mbox{\hyperlink{structpriv_aca85f0b6f145c86310d2af9ad23edfb3}{00068}}         \mbox{\hyperlink{structng__hook}{hook\_p}}            \mbox{\hyperlink{structpriv_aca85f0b6f145c86310d2af9ad23edfb3}{lower}};     \textcolor{comment}{/* SSCOP interface */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00069}\mbox{\hyperlink{structpriv_a0fa93470953fdeef29d4d37068d6fab0}{00069}}         \textcolor{keyword}{struct }sscfu    *\mbox{\hyperlink{structpriv_a0fa93470953fdeef29d4d37068d6fab0}{sscf}};      \textcolor{comment}{/* the instance */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00070}\mbox{\hyperlink{structpriv_a2682a85868bc0f0cb8d41135da968471}{00070}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structpriv_a2682a85868bc0f0cb8d41135da968471}{enabled}};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00071}00071 \};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00072}00072 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00073}00073 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00074}00074 \textcolor{comment}{ * PARSING}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00075}00075 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00076}00076 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00077}00077 \textcolor{comment}{ * Parse PARAM type}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00078}00078 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00079}\mbox{\hyperlink{ng__sscfu_8c_ada3180fdb9cbce9ec422c7a7167ebcc0}{00079}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structng__parse__struct__field}{ng\_parse\_struct\_field}} \mbox{\hyperlink{ng__sscfu_8c_ada3180fdb9cbce9ec422c7a7167ebcc0}{ng\_sscop\_param\_type\_info}}[] =}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00080}00080     \mbox{\hyperlink{ng__sscop_8h_afa99a1af28e1bc64f4c5f94680a15fd0}{NG\_SSCOP\_PARAM\_INFO}};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00081}00081 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00082}\mbox{\hyperlink{ng__sscfu_8c_a88380f11fd71665d8eb5cdd099d3b539}{00082}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structng__parse__type}{ng\_parse\_type}} \mbox{\hyperlink{ng__sscfu_8c_a88380f11fd71665d8eb5cdd099d3b539}{ng\_sscop\_param\_type}} = \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00083}00083         \&\mbox{\hyperlink{ng__parse_8c_aa8b7049fbd698972a3d2ce77dfd7d079}{ng\_parse\_struct\_type}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00084}00084         \mbox{\hyperlink{ng__sscfu_8c_ada3180fdb9cbce9ec422c7a7167ebcc0}{ng\_sscop\_param\_type\_info}}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00085}00085 \};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00086}00086 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00087}\mbox{\hyperlink{ng__sscfu_8c_a2aea2cb39fcb58cabcc7c653f9bfec45}{00087}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structng__parse__struct__field}{ng\_parse\_struct\_field}} \mbox{\hyperlink{ng__sscfu_8c_a2aea2cb39fcb58cabcc7c653f9bfec45}{ng\_sscfu\_getdefparam\_type\_info}}[] =}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00088}00088     \mbox{\hyperlink{ng__sscfu_8h_aaf105d24eb3d0d171989a6aa2a8e28ed}{NG\_SSCFU\_GETDEFPARAM\_INFO}};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00089}00089 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00090}\mbox{\hyperlink{ng__sscfu_8c_a29d0e83769a404c6b2bc3714bff0572d}{00090}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structng__parse__type}{ng\_parse\_type}} \mbox{\hyperlink{ng__sscfu_8c_a29d0e83769a404c6b2bc3714bff0572d}{ng\_sscfu\_getdefparam\_type}} = \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00091}00091         \&\mbox{\hyperlink{ng__parse_8c_aa8b7049fbd698972a3d2ce77dfd7d079}{ng\_parse\_struct\_type}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00092}00092         \mbox{\hyperlink{ng__sscfu_8c_a2aea2cb39fcb58cabcc7c653f9bfec45}{ng\_sscfu\_getdefparam\_type\_info}}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00093}00093 \};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00094}00094 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00095}\mbox{\hyperlink{ng__sscfu_8c_a578e5fad93046ed5c9fe850074ae64f1}{00095}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structng__cmdlist}{ng\_cmdlist}} \mbox{\hyperlink{ng__sscfu_8c_a578e5fad93046ed5c9fe850074ae64f1}{ng\_sscfu\_cmdlist}}[] = \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00096}00096         \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00097}00097           \mbox{\hyperlink{ng__sscfu_8h_a47a61b4ebe2091e3d9783df9adba317a}{NGM\_SSCFU\_COOKIE}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00098}00098           \mbox{\hyperlink{ng__sscfu_8h_adf764cbdea00d65edcd07bb9953ad2b7a9434695002ba1854fa539cdfbda73e6c}{NGM\_SSCFU\_GETDEFPARAM}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00099}00099           \textcolor{stringliteral}{"{}getdefparam"{}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00100}00100           NULL,}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00101}00101           \&\mbox{\hyperlink{ng__sscfu_8c_a29d0e83769a404c6b2bc3714bff0572d}{ng\_sscfu\_getdefparam\_type}}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00102}00102         \},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00103}00103         \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00104}00104           \mbox{\hyperlink{ng__sscfu_8h_a47a61b4ebe2091e3d9783df9adba317a}{NGM\_SSCFU\_COOKIE}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00105}00105           \mbox{\hyperlink{ng__sscfu_8h_adf764cbdea00d65edcd07bb9953ad2b7a12d61bad212c47db988e17dfa6d2965e}{NGM\_SSCFU\_ENABLE}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00106}00106           \textcolor{stringliteral}{"{}enable"{}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00107}00107           NULL,}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00108}00108           NULL}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00109}00109         \},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00110}00110         \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00111}00111           \mbox{\hyperlink{ng__sscfu_8h_a47a61b4ebe2091e3d9783df9adba317a}{NGM\_SSCFU\_COOKIE}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00112}00112           \mbox{\hyperlink{ng__sscfu_8h_adf764cbdea00d65edcd07bb9953ad2b7a37e26eabbff2a2acaa6ab798c41745bc}{NGM\_SSCFU\_DISABLE}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00113}00113           \textcolor{stringliteral}{"{}disable"{}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00114}00114           NULL,}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00115}00115           NULL}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00116}00116         \},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00117}00117         \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00118}00118           \mbox{\hyperlink{ng__sscfu_8h_a47a61b4ebe2091e3d9783df9adba317a}{NGM\_SSCFU\_COOKIE}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00119}00119           \mbox{\hyperlink{ng__sscfu_8h_adf764cbdea00d65edcd07bb9953ad2b7adb97f329ac234138373b5167e4812122}{NGM\_SSCFU\_GETDEBUG}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00120}00120           \textcolor{stringliteral}{"{}getdebug"{}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00121}00121           NULL,}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00122}00122           \&\mbox{\hyperlink{ng__parse_8c_af0a365c844376443f1f3e25524d3b658}{ng\_parse\_hint32\_type}}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00123}00123         \},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00124}00124         \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00125}00125           \mbox{\hyperlink{ng__sscfu_8h_a47a61b4ebe2091e3d9783df9adba317a}{NGM\_SSCFU\_COOKIE}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00126}00126           \mbox{\hyperlink{ng__sscfu_8h_adf764cbdea00d65edcd07bb9953ad2b7ae9e53fd593a94f6d68ef70b345a2935c}{NGM\_SSCFU\_SETDEBUG}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00127}00127           \textcolor{stringliteral}{"{}setdebug"{}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00128}00128           \&\mbox{\hyperlink{ng__parse_8c_af0a365c844376443f1f3e25524d3b658}{ng\_parse\_hint32\_type}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00129}00129           NULL}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00130}00130         \},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00131}00131         \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00132}00132           \mbox{\hyperlink{ng__sscfu_8h_a47a61b4ebe2091e3d9783df9adba317a}{NGM\_SSCFU\_COOKIE}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00133}00133           \mbox{\hyperlink{ng__sscfu_8h_adf764cbdea00d65edcd07bb9953ad2b7aa358380017b11a7d65679c9366c17643}{NGM\_SSCFU\_GETSTATE}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00134}00134           \textcolor{stringliteral}{"{}getstate"{}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00135}00135           NULL,}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00136}00136           \&\mbox{\hyperlink{ng__parse_8c_ac8ed58dbf4650a5ddc5bfd882e064519}{ng\_parse\_uint32\_type}}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00137}00137         \},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00138}00138         \{ 0 \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00139}00139 \};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00140}00140 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00141}\mbox{\hyperlink{ng__sscfu_8c_ad4e87ae1661ff57da05e69cac95e66f7}{00141}} \textcolor{keyword}{static} \mbox{\hyperlink{netgraph_8h_abb75b9ed2849e15851d6402d2ab5b899}{ng\_constructor\_t}} \mbox{\hyperlink{ng__sscfu_8c_ad4e87ae1661ff57da05e69cac95e66f7}{ng\_sscfu\_constructor}};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00142}\mbox{\hyperlink{ng__sscfu_8c_aaf8325553b78ba9566ce141c5c7bbe9e}{00142}} \textcolor{keyword}{static} \mbox{\hyperlink{netgraph_8h_aab0a679789a1af312a7f856b4668ad74}{ng\_shutdown\_t}}       \mbox{\hyperlink{ng__sscfu_8c_aaf8325553b78ba9566ce141c5c7bbe9e}{ng\_sscfu\_shutdown}};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00143}\mbox{\hyperlink{ng__sscfu_8c_aace1c2e2a7afbe70319646198684fdbd}{00143}} \textcolor{keyword}{static} \mbox{\hyperlink{netgraph_8h_a47b860e2900386e775707cc1ae661162}{ng\_rcvmsg\_t}}   \mbox{\hyperlink{ng__sscfu_8c_aace1c2e2a7afbe70319646198684fdbd}{ng\_sscfu\_rcvmsg}};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00144}\mbox{\hyperlink{ng__sscfu_8c_a7858d4d274adf56d1e66aaf9098a5c8a}{00144}} \textcolor{keyword}{static} \mbox{\hyperlink{netgraph_8h_afa50639df4ed6eb400f8220a890d56e6}{ng\_newhook\_t}} \mbox{\hyperlink{ng__sscfu_8c_a7858d4d274adf56d1e66aaf9098a5c8a}{ng\_sscfu\_newhook}};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00145}\mbox{\hyperlink{ng__sscfu_8c_a9cfd220d19b1167645f71ef0043baf5e}{00145}} \textcolor{keyword}{static} \mbox{\hyperlink{netgraph_8h_a669e1783335f933b4a4f90f17d22f381}{ng\_disconnect\_t}}   \mbox{\hyperlink{ng__sscfu_8c_a9cfd220d19b1167645f71ef0043baf5e}{ng\_sscfu\_disconnect}};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00146}\mbox{\hyperlink{ng__sscfu_8c_a8e80c9f1eca736a197b0de312069b20a}{00146}} \textcolor{keyword}{static} \mbox{\hyperlink{netgraph_8h_aa87ef7415b345b801747ceaf99de6c43}{ng\_rcvdata\_t}} \mbox{\hyperlink{ng__sscfu_8c_a8e80c9f1eca736a197b0de312069b20a}{ng\_sscfu\_rcvupper}};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00147}\mbox{\hyperlink{ng__sscfu_8c_ad09b2dfc9adf0cdd8698d7c8472104b9}{00147}} \textcolor{keyword}{static} \mbox{\hyperlink{netgraph_8h_aa87ef7415b345b801747ceaf99de6c43}{ng\_rcvdata\_t}} \mbox{\hyperlink{ng__sscfu_8c_ad09b2dfc9adf0cdd8698d7c8472104b9}{ng\_sscfu\_rcvlower}};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00148}00148 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00149}00149 \textcolor{keyword}{static} \textcolor{keywordtype}{int} \mbox{\hyperlink{ng__sscfu_8c_abd64535082948885245abacc09b59e6a}{ng\_sscfu\_mod\_event}}(module\_t, \textcolor{keywordtype}{int}, \textcolor{keywordtype}{void} *);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00150}00150 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00151}\mbox{\hyperlink{ng__sscfu_8c_a8a152bc4df9b4954ecc7372a8f266482}{00151}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structng__type}{ng\_type}} \mbox{\hyperlink{ng__sscfu_8c_a8a152bc4df9b4954ecc7372a8f266482}{ng\_sscfu\_typestruct}} = \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00152}00152         .\mbox{\hyperlink{structng__type_adbc1c8884ff0e625c19c4b513262fd0e}{version}} =       \mbox{\hyperlink{netgraph_8h_acc6b5f853e8058f4d5a8ca825ee60c97}{NG\_ABI\_VERSION}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00153}00153         .name =         \mbox{\hyperlink{ng__sscfu_8h_a0895b7f2b2ac63dbd61fe609ff41a98f}{NG\_SSCFU\_NODE\_TYPE}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00154}00154         .mod\_event =    \mbox{\hyperlink{ng__sscfu_8c_abd64535082948885245abacc09b59e6a}{ng\_sscfu\_mod\_event}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00155}00155         .constructor =  \mbox{\hyperlink{ng__sscfu_8c_ad4e87ae1661ff57da05e69cac95e66f7}{ng\_sscfu\_constructor}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00156}00156         .rcvmsg =       \mbox{\hyperlink{ng__sscfu_8c_aace1c2e2a7afbe70319646198684fdbd}{ng\_sscfu\_rcvmsg}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00157}00157         .shutdown =     \mbox{\hyperlink{ng__sscfu_8c_aaf8325553b78ba9566ce141c5c7bbe9e}{ng\_sscfu\_shutdown}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00158}00158         .newhook =      \mbox{\hyperlink{ng__sscfu_8c_a7858d4d274adf56d1e66aaf9098a5c8a}{ng\_sscfu\_newhook}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00159}00159         .rcvdata =      \mbox{\hyperlink{ng__sscfu_8c_a8e80c9f1eca736a197b0de312069b20a}{ng\_sscfu\_rcvupper}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00160}00160         .disconnect =   \mbox{\hyperlink{ng__sscfu_8c_a9cfd220d19b1167645f71ef0043baf5e}{ng\_sscfu\_disconnect}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00161}00161         .cmdlist =      \mbox{\hyperlink{ng__sscfu_8c_a578e5fad93046ed5c9fe850074ae64f1}{ng\_sscfu\_cmdlist}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00162}00162 \};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00163}\mbox{\hyperlink{ng__sscfu_8c_aa70e8be27c848f03cff40889e4ad7b44}{00163}} \mbox{\hyperlink{ng__sscfu_8c_aa70e8be27c848f03cff40889e4ad7b44}{NETGRAPH\_INIT}}(sscfu, \&\mbox{\hyperlink{ng__sscfu_8c_a8a152bc4df9b4954ecc7372a8f266482}{ng\_sscfu\_typestruct}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00164}00164 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00165}00165 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{ng__sscfu_8c_ad219a6c42d25b2fad1918dc058ca75cc}{sscfu\_send\_upper}}(\textcolor{keyword}{struct} sscfu *, \textcolor{keywordtype}{void} *, \textcolor{keyword}{enum} saal\_sig,}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00166}00166         \textcolor{keyword}{struct} mbuf *);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00167}00167 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{ng__sscfu_8c_ae3d82d1a6444bfca0d48a7cc1916918a}{sscfu\_send\_lower}}(\textcolor{keyword}{struct} sscfu *, \textcolor{keywordtype}{void} *, \textcolor{keyword}{enum} sscop\_aasig,}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00168}00168         \textcolor{keyword}{struct} mbuf *, u\_int);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00169}00169 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{ng__sscfu_8c_a8fadd9031f16bff425d89d2d195d927f}{sscfu\_window}}(\textcolor{keyword}{struct} sscfu *, \textcolor{keywordtype}{void} *, u\_int);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00170}\mbox{\hyperlink{ng__sscfu_8c_adc776301cad84edc7672d8048fd578bd}{00170}} \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{ng__sscfu_8c_adc776301cad84edc7672d8048fd578bd}{sscfu\_verbose}}(\textcolor{keyword}{struct} sscfu *, \textcolor{keywordtype}{void} *, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *, ...)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00171}00171         \_\_printflike(3, 4);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00172}00172 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00173}00173 static const struct sscfu\_funcs sscfu\_funcs = \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00174}00174         \mbox{\hyperlink{ng__sscfu_8c_ad219a6c42d25b2fad1918dc058ca75cc}{sscfu\_send\_upper}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00175}00175         \mbox{\hyperlink{ng__sscfu_8c_ae3d82d1a6444bfca0d48a7cc1916918a}{sscfu\_send\_lower}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00176}00176         \mbox{\hyperlink{ng__sscfu_8c_a8fadd9031f16bff425d89d2d195d927f}{sscfu\_window}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00177}00177         \mbox{\hyperlink{ng__sscfu_8c_adc776301cad84edc7672d8048fd578bd}{sscfu\_verbose}}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00178}00178 \};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00179}00179 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00180}00180 \textcolor{comment}{/************************************************************/}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00181}00181 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00182}00182 \textcolor{comment}{ * CONTROL MESSAGES}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00183}00183 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00184}00184 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00185}\mbox{\hyperlink{ng__sscfu_8c_ad37742acb9942f25af31e6d812bc6d9c}{00185}} \mbox{\hyperlink{ng__sscfu_8c_ad37742acb9942f25af31e6d812bc6d9c}{text\_status}}(\mbox{\hyperlink{structng__node}{node\_p}} node, \textcolor{keyword}{struct} \mbox{\hyperlink{structpriv}{priv}} *\mbox{\hyperlink{structpriv}{priv}}, \textcolor{keywordtype}{char} *arg, u\_int len)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00186}00186 \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00187}00187         \textcolor{keyword}{struct }sbuf sbuf;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00188}00188 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00189}00189         sbuf\_new(\&sbuf, arg, len, 0);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00190}00190 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00191}00191         \textcolor{keywordflow}{if} (\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_af095469fef023c37377528a48c3198ee}{upper}})}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00192}00192                 sbuf\_printf(\&sbuf, \textcolor{stringliteral}{"{}upper hook: \%s connected to \%s:\%s\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00193}00193                     \mbox{\hyperlink{netgraph_8h_ab077a5607cd5a2e82cc67326badd440a}{NG\_HOOK\_NAME}}(\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_af095469fef023c37377528a48c3198ee}{upper}}),}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00194}00194                     \mbox{\hyperlink{netgraph_8h_a810ab9f272b092d488c5a52c6d5349e6}{NG\_NODE\_NAME}}(\mbox{\hyperlink{netgraph_8h_a1d027698ed92e240870e67cd8362f1d4}{NG\_HOOK\_NODE}}(\mbox{\hyperlink{netgraph_8h_a74d793bf65c44f5732dbaf331d871681}{NG\_HOOK\_PEER}}(\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_af095469fef023c37377528a48c3198ee}{upper}}))),}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00195}00195                     \mbox{\hyperlink{netgraph_8h_ab077a5607cd5a2e82cc67326badd440a}{NG\_HOOK\_NAME}}(\mbox{\hyperlink{netgraph_8h_a74d793bf65c44f5732dbaf331d871681}{NG\_HOOK\_PEER}}(\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_af095469fef023c37377528a48c3198ee}{upper}})));}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00196}00196         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00197}00197                 sbuf\_printf(\&sbuf, \textcolor{stringliteral}{"{}upper hook: <not connected>\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00198}00198 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00199}00199         \textcolor{keywordflow}{if} (\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_aca85f0b6f145c86310d2af9ad23edfb3}{lower}})}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00200}00200                 sbuf\_printf(\&sbuf, \textcolor{stringliteral}{"{}lower hook: \%s connected to \%s:\%s\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00201}00201                     \mbox{\hyperlink{netgraph_8h_ab077a5607cd5a2e82cc67326badd440a}{NG\_HOOK\_NAME}}(\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_aca85f0b6f145c86310d2af9ad23edfb3}{lower}}),}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00202}00202                     \mbox{\hyperlink{netgraph_8h_a810ab9f272b092d488c5a52c6d5349e6}{NG\_NODE\_NAME}}(\mbox{\hyperlink{netgraph_8h_a1d027698ed92e240870e67cd8362f1d4}{NG\_HOOK\_NODE}}(\mbox{\hyperlink{netgraph_8h_a74d793bf65c44f5732dbaf331d871681}{NG\_HOOK\_PEER}}(\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_aca85f0b6f145c86310d2af9ad23edfb3}{lower}}))),}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00203}00203                     \mbox{\hyperlink{netgraph_8h_ab077a5607cd5a2e82cc67326badd440a}{NG\_HOOK\_NAME}}(\mbox{\hyperlink{netgraph_8h_a74d793bf65c44f5732dbaf331d871681}{NG\_HOOK\_PEER}}(\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_aca85f0b6f145c86310d2af9ad23edfb3}{lower}})));}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00204}00204         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00205}00205                 sbuf\_printf(\&sbuf, \textcolor{stringliteral}{"{}lower hook: <not connected>\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00206}00206 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00207}00207         sbuf\_printf(\&sbuf, \textcolor{stringliteral}{"{}sscf state: \%s\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00208}00208             \mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a2682a85868bc0f0cb8d41135da968471}{enabled}} == 0 ? \textcolor{stringliteral}{"{}<disabled>"{}} :}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00209}00209             sscfu\_statename(sscfu\_getstate(\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a0fa93470953fdeef29d4d37068d6fab0}{sscf}})));}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00210}00210 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00211}00211         sbuf\_finish(\&sbuf);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00212}00212         \textcolor{keywordflow}{return} (sbuf\_len(\&sbuf));}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00213}00213 \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00214}00214 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00215}00215 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00216}\mbox{\hyperlink{ng__sscfu_8c_ae8592616dfebdb92e9cde2ce72d893d8}{00216}} \mbox{\hyperlink{ng__sscfu_8c_aace1c2e2a7afbe70319646198684fdbd}{ng\_sscfu\_rcvmsg}}(\mbox{\hyperlink{structng__node}{node\_p}} node, \mbox{\hyperlink{structng__item}{item\_p}} item, \mbox{\hyperlink{structng__hook}{hook\_p}} lasthook)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00217}00217 \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00218}00218         \textcolor{keyword}{struct }\mbox{\hyperlink{structpriv}{priv}} *\mbox{\hyperlink{structpriv}{priv}} = \mbox{\hyperlink{netgraph_8h_ae76b377c72ed8b60e8cbe1a204f70598}{NG\_NODE\_PRIVATE}}(node);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00219}00219         \textcolor{keyword}{struct }\mbox{\hyperlink{structng__mesg}{ng\_mesg}} *resp = NULL;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00220}00220         \textcolor{keyword}{struct }\mbox{\hyperlink{structng__mesg}{ng\_mesg}} *msg;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00221}00221         \textcolor{keywordtype}{int} error = 0;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00222}00222 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00223}00223         \mbox{\hyperlink{netgraph_8h_adc9a04fd174ef3c29ecae94016b84839}{NGI\_GET\_MSG}}(item, msg);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00224}00224 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00225}00225         \textcolor{keywordflow}{switch} (msg-\/>\mbox{\hyperlink{structng__mesg_a16ea313a1e38531a10a14902b7579210}{header}}.\mbox{\hyperlink{structng__mesg_1_1ng__msghdr_ab59e14593b69a406ed5ca4209d489a10}{typecookie}}) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00226}00226           \textcolor{keywordflow}{case} \mbox{\hyperlink{ng__message_8h_a577acb07400a990f6e293df85928c01e}{NGM\_GENERIC\_COOKIE}}:}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00227}00227                 \textcolor{keywordflow}{switch} (msg-\/>\mbox{\hyperlink{structng__mesg_a16ea313a1e38531a10a14902b7579210}{header}}.\mbox{\hyperlink{structng__mesg_1_1ng__msghdr_a8e76e57bf8666004146ceb1ba38ad3a5}{cmd}}) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00228}00228                   \textcolor{keywordflow}{case} \mbox{\hyperlink{ng__message_8h_ae8a3b6a5d0d3244ed73924ab2421a0d0af7e8d918ab39873056284fe1b8dfe71b}{NGM\_TEXT\_STATUS}}:}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00229}00229                         \mbox{\hyperlink{ng__message_8h_a216c0b1bcd68ffab4668cdab2e4e0981}{NG\_MKRESPONSE}}(resp, msg, \mbox{\hyperlink{ng__message_8h_a3a84bfff41ce7395b73b14eb82a0f4e1}{NG\_TEXTRESPONSE}}, M\_NOWAIT);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00230}00230                         \textcolor{keywordflow}{if} (resp == NULL) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00231}00231                                 error = ENOMEM;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00232}00232                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00233}00233                         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00234}00234                         resp-\/>\mbox{\hyperlink{structng__mesg_a16ea313a1e38531a10a14902b7579210}{header}}.\mbox{\hyperlink{structng__mesg_1_1ng__msghdr_a8f8d7499b617aa48f128bd10e40b5a13}{arglen}} = \mbox{\hyperlink{ng__sscfu_8c_ad37742acb9942f25af31e6d812bc6d9c}{text\_status}}(node, \mbox{\hyperlink{structpriv}{priv}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00235}00235                             (\textcolor{keywordtype}{char} *)resp-\/>\mbox{\hyperlink{structng__mesg_afe7d2a81b120e0f3d15facd293174c6d}{data}}, resp-\/>\mbox{\hyperlink{structng__mesg_a16ea313a1e38531a10a14902b7579210}{header}}.\mbox{\hyperlink{structng__mesg_1_1ng__msghdr_a8f8d7499b617aa48f128bd10e40b5a13}{arglen}}) + 1;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00236}00236                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00237}00237 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00238}00238                   \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00239}00239                         error = EINVAL;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00240}00240                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00241}00241                 \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00242}00242                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00243}00243 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00244}00244           \textcolor{keywordflow}{case} \mbox{\hyperlink{ng__sscfu_8h_a47a61b4ebe2091e3d9783df9adba317a}{NGM\_SSCFU\_COOKIE}}:}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00245}00245                 \textcolor{keywordflow}{switch} (msg-\/>\mbox{\hyperlink{structng__mesg_a16ea313a1e38531a10a14902b7579210}{header}}.\mbox{\hyperlink{structng__mesg_1_1ng__msghdr_a8e76e57bf8666004146ceb1ba38ad3a5}{cmd}}) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00246}00246                   \textcolor{keywordflow}{case} \mbox{\hyperlink{ng__sscfu_8h_adf764cbdea00d65edcd07bb9953ad2b7a9434695002ba1854fa539cdfbda73e6c}{NGM\_SSCFU\_GETDEFPARAM}}:}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00247}00247                     \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00248}00248                         \textcolor{keyword}{struct }\mbox{\hyperlink{structng__sscfu__getdefparam}{ng\_sscfu\_getdefparam}} *p;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00249}00249 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00250}00250                         \textcolor{keywordflow}{if} (msg-\/>\mbox{\hyperlink{structng__mesg_a16ea313a1e38531a10a14902b7579210}{header}}.\mbox{\hyperlink{structng__mesg_1_1ng__msghdr_a8f8d7499b617aa48f128bd10e40b5a13}{arglen}} != 0) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00251}00251                                 error = EINVAL;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00252}00252                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00253}00253                         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00254}00254                         \mbox{\hyperlink{ng__message_8h_a216c0b1bcd68ffab4668cdab2e4e0981}{NG\_MKRESPONSE}}(resp, msg, \textcolor{keyword}{sizeof}(*p), M\_NOWAIT);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00255}00255                         \textcolor{keywordflow}{if} (resp == NULL) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00256}00256                                 error = ENOMEM;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00257}00257                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00258}00258                         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00259}00259                         p = (\textcolor{keyword}{struct }\mbox{\hyperlink{structng__sscfu__getdefparam}{ng\_sscfu\_getdefparam}} *)resp-\/>\mbox{\hyperlink{structng__mesg_afe7d2a81b120e0f3d15facd293174c6d}{data}};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00260}00260                         p-\/>\mbox{\hyperlink{structng__sscfu__getdefparam_ac04f9e7955ffbf1063f6fee17471cb2f}{mask}} = sscfu\_getdefparam(\&p-\/>\mbox{\hyperlink{structng__sscfu__getdefparam_a77966b925d470e48b9d187e856586a84}{param}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00261}00261                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00262}00262                     \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00263}00263 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00264}00264                   \textcolor{keywordflow}{case} \mbox{\hyperlink{ng__sscfu_8h_adf764cbdea00d65edcd07bb9953ad2b7a12d61bad212c47db988e17dfa6d2965e}{NGM\_SSCFU\_ENABLE}}:}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00265}00265                         \textcolor{keywordflow}{if} (msg-\/>\mbox{\hyperlink{structng__mesg_a16ea313a1e38531a10a14902b7579210}{header}}.\mbox{\hyperlink{structng__mesg_1_1ng__msghdr_a8f8d7499b617aa48f128bd10e40b5a13}{arglen}} != 0) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00266}00266                                 error = EINVAL;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00267}00267                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00268}00268                         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00269}00269                         \textcolor{keywordflow}{if} (\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a2682a85868bc0f0cb8d41135da968471}{enabled}}) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00270}00270                                 error = EISCONN;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00271}00271                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00272}00272                         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00273}00273                         \mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a2682a85868bc0f0cb8d41135da968471}{enabled}} = 1;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00274}00274                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00275}00275 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00276}00276                   \textcolor{keywordflow}{case} \mbox{\hyperlink{ng__sscfu_8h_adf764cbdea00d65edcd07bb9953ad2b7a37e26eabbff2a2acaa6ab798c41745bc}{NGM\_SSCFU\_DISABLE}}:}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00277}00277                         \textcolor{keywordflow}{if} (msg-\/>\mbox{\hyperlink{structng__mesg_a16ea313a1e38531a10a14902b7579210}{header}}.\mbox{\hyperlink{structng__mesg_1_1ng__msghdr_a8f8d7499b617aa48f128bd10e40b5a13}{arglen}} != 0) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00278}00278                                 error = EINVAL;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00279}00279                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00280}00280                         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00281}00281                         \textcolor{keywordflow}{if} (!\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a2682a85868bc0f0cb8d41135da968471}{enabled}}) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00282}00282                                 error = ENOTCONN;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00283}00283                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00284}00284                         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00285}00285                         \mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a2682a85868bc0f0cb8d41135da968471}{enabled}} = 0;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00286}00286                         sscfu\_reset(\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a0fa93470953fdeef29d4d37068d6fab0}{sscf}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00287}00287                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00288}00288 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00289}00289                   \textcolor{keywordflow}{case} \mbox{\hyperlink{ng__sscfu_8h_adf764cbdea00d65edcd07bb9953ad2b7aa358380017b11a7d65679c9366c17643}{NGM\_SSCFU\_GETSTATE}}:}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00290}00290                         \textcolor{keywordflow}{if} (msg-\/>\mbox{\hyperlink{structng__mesg_a16ea313a1e38531a10a14902b7579210}{header}}.\mbox{\hyperlink{structng__mesg_1_1ng__msghdr_a8f8d7499b617aa48f128bd10e40b5a13}{arglen}} != 0) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00291}00291                                 error = EINVAL;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00292}00292                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00293}00293                         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00294}00294                         \mbox{\hyperlink{ng__message_8h_a216c0b1bcd68ffab4668cdab2e4e0981}{NG\_MKRESPONSE}}(resp, msg, \textcolor{keyword}{sizeof}(uint32\_t), M\_NOWAIT);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00295}00295                         \textcolor{keywordflow}{if}(resp == NULL) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00296}00296                                 error = ENOMEM;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00297}00297                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00298}00298                         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00299}00299                         *(uint32\_t *)resp-\/>\mbox{\hyperlink{structng__mesg_afe7d2a81b120e0f3d15facd293174c6d}{data}} =}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00300}00300                             \mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a2682a85868bc0f0cb8d41135da968471}{enabled}} ? (sscfu\_getstate(\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a0fa93470953fdeef29d4d37068d6fab0}{sscf}}) + 1)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00301}00301                                           : 0;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00302}00302                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00303}00303 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00304}00304                   \textcolor{keywordflow}{case} \mbox{\hyperlink{ng__sscfu_8h_adf764cbdea00d65edcd07bb9953ad2b7adb97f329ac234138373b5167e4812122}{NGM\_SSCFU\_GETDEBUG}}:}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00305}00305                         \textcolor{keywordflow}{if} (msg-\/>\mbox{\hyperlink{structng__mesg_a16ea313a1e38531a10a14902b7579210}{header}}.\mbox{\hyperlink{structng__mesg_1_1ng__msghdr_a8f8d7499b617aa48f128bd10e40b5a13}{arglen}} != 0) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00306}00306                                 error = EINVAL;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00307}00307                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00308}00308                         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00309}00309                         \mbox{\hyperlink{ng__message_8h_a216c0b1bcd68ffab4668cdab2e4e0981}{NG\_MKRESPONSE}}(resp, msg, \textcolor{keyword}{sizeof}(uint32\_t), M\_NOWAIT);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00310}00310                         \textcolor{keywordflow}{if}(resp == NULL) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00311}00311                                 error = ENOMEM;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00312}00312                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00313}00313                         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00314}00314                         *(uint32\_t *)resp-\/>\mbox{\hyperlink{structng__mesg_afe7d2a81b120e0f3d15facd293174c6d}{data}} = sscfu\_getdebug(\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a0fa93470953fdeef29d4d37068d6fab0}{sscf}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00315}00315                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00316}00316 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00317}00317                   \textcolor{keywordflow}{case} \mbox{\hyperlink{ng__sscfu_8h_adf764cbdea00d65edcd07bb9953ad2b7ae9e53fd593a94f6d68ef70b345a2935c}{NGM\_SSCFU\_SETDEBUG}}:}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00318}00318                         \textcolor{keywordflow}{if} (msg-\/>\mbox{\hyperlink{structng__mesg_a16ea313a1e38531a10a14902b7579210}{header}}.\mbox{\hyperlink{structng__mesg_1_1ng__msghdr_a8f8d7499b617aa48f128bd10e40b5a13}{arglen}} != \textcolor{keyword}{sizeof}(uint32\_t)) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00319}00319                                 error = EINVAL;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00320}00320                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00321}00321                         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00322}00322                         sscfu\_setdebug(\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a0fa93470953fdeef29d4d37068d6fab0}{sscf}}, *(uint32\_t *)msg-\/>\mbox{\hyperlink{structng__mesg_afe7d2a81b120e0f3d15facd293174c6d}{data}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00323}00323                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00324}00324 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00325}00325                   \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00326}00326                         error = EINVAL;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00327}00327                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00328}00328                 \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00329}00329                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00330}00330 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00331}00331           \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00332}00332                 error = EINVAL;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00333}00333                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00334}00334         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00335}00335 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00336}00336         \mbox{\hyperlink{netgraph_8h_a69db50ed7f968e936580df029ab5c5dc}{NG\_RESPOND\_MSG}}(error, node, item, resp);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00337}00337         \mbox{\hyperlink{netgraph_8h_abd7a8c5f70b0f15aa17bfda43a9cf6b2}{NG\_FREE\_MSG}}(msg);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00338}00338 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00339}00339         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00340}00340 \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00341}00341 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00342}00342 \textcolor{comment}{/************************************************************/}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00343}00343 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00344}00344 \textcolor{comment}{ * HOOK MANAGEMENT}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00345}00345 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00346}00346 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00347}\mbox{\hyperlink{ng__sscfu_8c_a706c0bfb3cd2bdf88ce4d4cacc89cf77}{00347}} \mbox{\hyperlink{ng__sscfu_8c_a7858d4d274adf56d1e66aaf9098a5c8a}{ng\_sscfu\_newhook}}(\mbox{\hyperlink{structng__node}{node\_p}} node, \mbox{\hyperlink{structng__hook}{hook\_p}} hook, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *\mbox{\hyperlink{ng__ppp_8c_ab2adbf48c2df32ccf9cced3bc8c3dc26}{name}})}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00348}00348 \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00349}00349         \textcolor{keyword}{struct }\mbox{\hyperlink{structpriv}{priv}} *\mbox{\hyperlink{structpriv}{priv}} = \mbox{\hyperlink{netgraph_8h_ae76b377c72ed8b60e8cbe1a204f70598}{NG\_NODE\_PRIVATE}}(node);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00350}00350 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00351}00351         \textcolor{keywordflow}{if} (strcmp(\mbox{\hyperlink{ng__ppp_8c_ab2adbf48c2df32ccf9cced3bc8c3dc26}{name}}, \textcolor{stringliteral}{"{}upper"{}}) == 0)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00352}00352                 \mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_af095469fef023c37377528a48c3198ee}{upper}} = hook;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00353}00353         \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (strcmp(\mbox{\hyperlink{ng__ppp_8c_ab2adbf48c2df32ccf9cced3bc8c3dc26}{name}}, \textcolor{stringliteral}{"{}lower"{}}) == 0) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00354}00354                 \mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_aca85f0b6f145c86310d2af9ad23edfb3}{lower}} = hook;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00355}00355                 \mbox{\hyperlink{netgraph_8h_ab1e7d2c2d5515e199564939de7b47da8}{NG\_HOOK\_SET\_RCVDATA}}(hook, \mbox{\hyperlink{ng__sscfu_8c_ad09b2dfc9adf0cdd8698d7c8472104b9}{ng\_sscfu\_rcvlower}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00356}00356         \} \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00357}00357                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00358}00358         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00359}00359 \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00360}00360 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00361}00361 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00362}\mbox{\hyperlink{ng__sscfu_8c_a060ab3669652d9adceb88ba2131ec218}{00362}} \mbox{\hyperlink{ng__sscfu_8c_a9cfd220d19b1167645f71ef0043baf5e}{ng\_sscfu\_disconnect}}(\mbox{\hyperlink{structng__hook}{hook\_p}} hook)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00363}00363 \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00364}00364         \mbox{\hyperlink{structng__node}{node\_p}} node = \mbox{\hyperlink{netgraph_8h_a1d027698ed92e240870e67cd8362f1d4}{NG\_HOOK\_NODE}}(hook);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00365}00365         \textcolor{keyword}{struct }\mbox{\hyperlink{structpriv}{priv}} *\mbox{\hyperlink{structpriv}{priv}} = \mbox{\hyperlink{netgraph_8h_ae76b377c72ed8b60e8cbe1a204f70598}{NG\_NODE\_PRIVATE}}(node);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00366}00366 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00367}00367         \textcolor{keywordflow}{if} (hook == \mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_af095469fef023c37377528a48c3198ee}{upper}})}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00368}00368                 \mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_af095469fef023c37377528a48c3198ee}{upper}} = NULL;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00369}00369         \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (hook == \mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_aca85f0b6f145c86310d2af9ad23edfb3}{lower}})}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00370}00370                 \mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_aca85f0b6f145c86310d2af9ad23edfb3}{lower}} = NULL;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00371}00371         \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00372}00372                 log(LOG\_ERR, \textcolor{stringliteral}{"{}bogus hook"{}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00373}00373                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00374}00374         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00375}00375 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00376}00376         \textcolor{keywordflow}{if} (\mbox{\hyperlink{netgraph_8h_ad47e204c5b3adaddfa4bf0c380234f48}{NG\_NODE\_NUMHOOKS}}(node) == 0) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00377}00377                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{netgraph_8h_a6bdd56e0f33084eeaadbe696febcbbd8}{NG\_NODE\_IS\_VALID}}(node))}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00378}00378                         \mbox{\hyperlink{netgraph_8h_a85914ce0da2b314478aaf7efcdcd3ff0}{ng\_rmnode\_self}}(node);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00379}00379         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00380}00380                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00381}00381 \textcolor{comment}{                 * Because there are no timeouts reset the protocol}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00382}00382 \textcolor{comment}{                 * if the lower layer is disconnected.}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00383}00383 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00384}00384                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_aca85f0b6f145c86310d2af9ad23edfb3}{lower}} == NULL \&\&}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00385}00385                     \mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a2682a85868bc0f0cb8d41135da968471}{enabled}} \&\&}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00386}00386                     sscfu\_getstate(\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a0fa93470953fdeef29d4d37068d6fab0}{sscf}}) != SSCFU\_RELEASED)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00387}00387                         sscfu\_reset(\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a0fa93470953fdeef29d4d37068d6fab0}{sscf}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00388}00388         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00389}00389         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00390}00390 \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00391}00391 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00392}00392 \textcolor{comment}{/************************************************************/}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00393}00393 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00394}00394 \textcolor{comment}{ * DATA}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00395}00395 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00396}00396 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00397}\mbox{\hyperlink{ng__sscfu_8c_a92632dfae4c3829440f655daa9b80df1}{00397}} \mbox{\hyperlink{ng__sscfu_8c_a8e80c9f1eca736a197b0de312069b20a}{ng\_sscfu\_rcvupper}}(\mbox{\hyperlink{structng__hook}{hook\_p}} hook, \mbox{\hyperlink{structng__item}{item\_p}} item)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00398}00398 \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00399}00399         \mbox{\hyperlink{structng__node}{node\_p}} node = \mbox{\hyperlink{netgraph_8h_a1d027698ed92e240870e67cd8362f1d4}{NG\_HOOK\_NODE}}(hook);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00400}00400         \textcolor{keyword}{struct }\mbox{\hyperlink{structpriv}{priv}} *\mbox{\hyperlink{structpriv}{priv}} = \mbox{\hyperlink{netgraph_8h_ae76b377c72ed8b60e8cbe1a204f70598}{NG\_NODE\_PRIVATE}}(node);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00401}00401         \textcolor{keyword}{struct }mbuf *m;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00402}00402         \textcolor{keyword}{struct }\mbox{\hyperlink{structsscfu__arg}{sscfu\_arg}} a;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00403}00403 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00404}00404         \textcolor{keywordflow}{if} (!\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a2682a85868bc0f0cb8d41135da968471}{enabled}} || \mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_aca85f0b6f145c86310d2af9ad23edfb3}{lower}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00405}00405                 \mbox{\hyperlink{netgraph_8h_ab1451f92a5ed6715897d40bf802b06d5}{NG\_FREE\_ITEM}}(item);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00406}00406                 \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00407}00407         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00408}00408 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00409}00409         \mbox{\hyperlink{netgraph_8h_abbb0acb5f480576cff9901caddeef57f}{NGI\_GET\_M}}(item, m);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00410}00410         \mbox{\hyperlink{netgraph_8h_ab1451f92a5ed6715897d40bf802b06d5}{NG\_FREE\_ITEM}}(item);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00411}00411 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00412}00412         \textcolor{keywordflow}{if} (!(m-\/>m\_flags \& M\_PKTHDR)) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00413}00413                 printf(\textcolor{stringliteral}{"{}no pkthdr\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00414}00414                 m\_freem(m);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00415}00415                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00416}00416         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00417}00417         \textcolor{keywordflow}{if} (m-\/>m\_len < (\textcolor{keywordtype}{int})\textcolor{keyword}{sizeof}(a) \&\& (m = m\_pullup(m, \textcolor{keyword}{sizeof}(a))) == NULL)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00418}00418                 \textcolor{keywordflow}{return} (ENOMEM);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00419}00419         bcopy((caddr\_t)mtod(m, \textcolor{keyword}{struct} \mbox{\hyperlink{structsscfu__arg}{sscfu\_arg}} *), \&a, \textcolor{keyword}{sizeof}(a));}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00420}00420         m\_adj(m, \textcolor{keyword}{sizeof}(a));}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00421}00421 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00422}00422         \textcolor{keywordflow}{return} (sscfu\_saalsig(\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a0fa93470953fdeef29d4d37068d6fab0}{sscf}}, a.\mbox{\hyperlink{structsscfu__arg_a9da129159e7f7035d761cb859a862023}{sig}}, m));}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00423}00423 \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00424}00424 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00425}00425 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00426}\mbox{\hyperlink{ng__sscfu_8c_ad219a6c42d25b2fad1918dc058ca75cc}{00426}} \mbox{\hyperlink{ng__sscfu_8c_ad219a6c42d25b2fad1918dc058ca75cc}{sscfu\_send\_upper}}(\textcolor{keyword}{struct} sscfu *sscf, \textcolor{keywordtype}{void} *p, \textcolor{keyword}{enum} saal\_sig \mbox{\hyperlink{structsscfu__arg_a9da129159e7f7035d761cb859a862023}{sig}}, \textcolor{keyword}{struct} mbuf *m)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00427}00427 \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00428}00428         \mbox{\hyperlink{structng__node}{node\_p}} node = (\mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\_p}})p;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00429}00429         \textcolor{keyword}{struct }\mbox{\hyperlink{structpriv}{priv}} *\mbox{\hyperlink{structpriv}{priv}} = \mbox{\hyperlink{netgraph_8h_ae76b377c72ed8b60e8cbe1a204f70598}{NG\_NODE\_PRIVATE}}(node);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00430}00430         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00431}00431         \textcolor{keyword}{struct }\mbox{\hyperlink{structsscfu__arg}{sscfu\_arg}} *a;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00432}00432 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00433}00433         \textcolor{keywordflow}{if} (\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_af095469fef023c37377528a48c3198ee}{upper}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00434}00434                 \textcolor{keywordflow}{if} (m != NULL)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00435}00435                         m\_freem(m);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00436}00436                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00437}00437         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00438}00438         \textcolor{keywordflow}{if} (m == NULL) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00439}00439                 MGETHDR(m, M\_NOWAIT, MT\_DATA);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00440}00440                 \textcolor{keywordflow}{if} (m == NULL)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00441}00441                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00442}00442                 m-\/>m\_len = \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }\mbox{\hyperlink{structsscfu__arg}{sscfu\_arg}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00443}00443                 m-\/>m\_pkthdr.len = m-\/>m\_len;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00444}00444         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00445}00445                 M\_PREPEND(m, \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} \mbox{\hyperlink{structsscfu__arg}{sscfu\_arg}}), M\_NOWAIT);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00446}00446                 \textcolor{keywordflow}{if} (m == NULL)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00447}00447                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00448}00448         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00449}00449         a = mtod(m, \textcolor{keyword}{struct} \mbox{\hyperlink{structsscfu__arg}{sscfu\_arg}} *);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00450}00450         a-\/>\mbox{\hyperlink{structsscfu__arg_a9da129159e7f7035d761cb859a862023}{sig}} = \mbox{\hyperlink{structsscfu__arg_a9da129159e7f7035d761cb859a862023}{sig}};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00451}00451 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00452}00452         \mbox{\hyperlink{netgraph_8h_a8c5e877ed70dff86bb57062afe4cee38}{NG\_SEND\_DATA\_ONLY}}(error, \mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_af095469fef023c37377528a48c3198ee}{upper}}, m);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00453}00453 \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00454}00454 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00455}00455 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00456}\mbox{\hyperlink{ng__sscfu_8c_a08e8b4d6f227db97a59667163845ea1c}{00456}} \mbox{\hyperlink{ng__sscfu_8c_ad09b2dfc9adf0cdd8698d7c8472104b9}{ng\_sscfu\_rcvlower}}(\mbox{\hyperlink{structng__hook}{hook\_p}} hook, \mbox{\hyperlink{structng__item}{item\_p}} item)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00457}00457 \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00458}00458         \mbox{\hyperlink{structng__node}{node\_p}} node = \mbox{\hyperlink{netgraph_8h_a1d027698ed92e240870e67cd8362f1d4}{NG\_HOOK\_NODE}}(hook);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00459}00459         \textcolor{keyword}{struct }\mbox{\hyperlink{structpriv}{priv}} *\mbox{\hyperlink{structpriv}{priv}} = \mbox{\hyperlink{netgraph_8h_ae76b377c72ed8b60e8cbe1a204f70598}{NG\_NODE\_PRIVATE}}(node);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00460}00460         \textcolor{keyword}{struct }mbuf *m;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00461}00461         \textcolor{keyword}{struct }\mbox{\hyperlink{structsscop__arg}{sscop\_arg}} a;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00462}00462 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00463}00463         \textcolor{keywordflow}{if} (!\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a2682a85868bc0f0cb8d41135da968471}{enabled}} || \mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_af095469fef023c37377528a48c3198ee}{upper}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00464}00464                 \mbox{\hyperlink{netgraph_8h_ab1451f92a5ed6715897d40bf802b06d5}{NG\_FREE\_ITEM}}(item);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00465}00465                 \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00466}00466         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00467}00467 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00468}00468         \mbox{\hyperlink{netgraph_8h_abbb0acb5f480576cff9901caddeef57f}{NGI\_GET\_M}}(item, m);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00469}00469         \mbox{\hyperlink{netgraph_8h_ab1451f92a5ed6715897d40bf802b06d5}{NG\_FREE\_ITEM}}(item);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00470}00470 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00471}00471         \textcolor{keywordflow}{if} (!(m-\/>m\_flags \& M\_PKTHDR)) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00472}00472                 printf(\textcolor{stringliteral}{"{}no pkthdr\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00473}00473                 m\_freem(m);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00474}00474                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00475}00475         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00476}00476 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00477}00477         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00478}00478 \textcolor{comment}{         * Strip of the SSCOP header.}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00479}00479 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00480}00480         \textcolor{keywordflow}{if} (m-\/>m\_len < (\textcolor{keywordtype}{int})\textcolor{keyword}{sizeof}(a) \&\& (m = m\_pullup(m, \textcolor{keyword}{sizeof}(a))) == NULL)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00481}00481                 \textcolor{keywordflow}{return} (ENOMEM);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00482}00482         bcopy((caddr\_t)mtod(m, \textcolor{keyword}{struct} \mbox{\hyperlink{structsscop__arg}{sscop\_arg}} *), \&a, \textcolor{keyword}{sizeof}(a));}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00483}00483         m\_adj(m, \textcolor{keyword}{sizeof}(a));}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00484}00484 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00485}00485         sscfu\_input(\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a0fa93470953fdeef29d4d37068d6fab0}{sscf}}, a.\mbox{\hyperlink{structsscop__arg_a7be6ca2d5de38aa0432de109dec6427b}{sig}}, m, a.\mbox{\hyperlink{structsscop__arg_a058c8f08ed3f9d82a5a3b0dda6cb8c54}{arg}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00486}00486 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00487}00487         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00488}00488 \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00489}00489 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00490}00490 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00491}\mbox{\hyperlink{ng__sscfu_8c_ae3d82d1a6444bfca0d48a7cc1916918a}{00491}} \mbox{\hyperlink{ng__sscfu_8c_ae3d82d1a6444bfca0d48a7cc1916918a}{sscfu\_send\_lower}}(\textcolor{keyword}{struct} sscfu *sscf, \textcolor{keywordtype}{void} *p, \textcolor{keyword}{enum} sscop\_aasig \mbox{\hyperlink{structsscop__arg_a7be6ca2d5de38aa0432de109dec6427b}{sig}},}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00492}00492     \textcolor{keyword}{struct} mbuf *m, u\_int \mbox{\hyperlink{structsscop__arg_a058c8f08ed3f9d82a5a3b0dda6cb8c54}{arg}})}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00493}00493 \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00494}00494         \mbox{\hyperlink{structng__node}{node\_p}} node = (\mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\_p}})p;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00495}00495         \textcolor{keyword}{struct }\mbox{\hyperlink{structpriv}{priv}} *\mbox{\hyperlink{structpriv}{priv}} = \mbox{\hyperlink{netgraph_8h_ae76b377c72ed8b60e8cbe1a204f70598}{NG\_NODE\_PRIVATE}}(node);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00496}00496         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00497}00497         \textcolor{keyword}{struct }\mbox{\hyperlink{structsscop__arg}{sscop\_arg}} *a;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00498}00498 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00499}00499         \textcolor{keywordflow}{if} (\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_aca85f0b6f145c86310d2af9ad23edfb3}{lower}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00500}00500                 \textcolor{keywordflow}{if} (m != NULL)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00501}00501                         m\_freem(m);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00502}00502                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00503}00503         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00504}00504         \textcolor{keywordflow}{if} (m == NULL) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00505}00505                 MGETHDR(m, M\_NOWAIT, MT\_DATA);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00506}00506                 \textcolor{keywordflow}{if} (m == NULL)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00507}00507                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00508}00508                 m-\/>m\_len = \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }\mbox{\hyperlink{structsscop__arg}{sscop\_arg}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00509}00509                 m-\/>m\_pkthdr.len = m-\/>m\_len;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00510}00510         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00511}00511                 M\_PREPEND(m, \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} \mbox{\hyperlink{structsscop__arg}{sscop\_arg}}), M\_NOWAIT);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00512}00512                 \textcolor{keywordflow}{if} (m == NULL)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00513}00513                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00514}00514         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00515}00515         a = mtod(m, \textcolor{keyword}{struct} \mbox{\hyperlink{structsscop__arg}{sscop\_arg}} *);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00516}00516         a-\/>\mbox{\hyperlink{structsscop__arg_a7be6ca2d5de38aa0432de109dec6427b}{sig}} = \mbox{\hyperlink{structsscop__arg_a7be6ca2d5de38aa0432de109dec6427b}{sig}};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00517}00517         a-\/>\mbox{\hyperlink{structsscop__arg_a058c8f08ed3f9d82a5a3b0dda6cb8c54}{arg}} = \mbox{\hyperlink{structsscop__arg_a058c8f08ed3f9d82a5a3b0dda6cb8c54}{arg}};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00518}00518 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00519}00519         \mbox{\hyperlink{netgraph_8h_a8c5e877ed70dff86bb57062afe4cee38}{NG\_SEND\_DATA\_ONLY}}(error, \mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_aca85f0b6f145c86310d2af9ad23edfb3}{lower}}, m);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00520}00520 \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00521}00521 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00522}00522 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00523}00523 \textcolor{comment}{ * Window is handled by ng\_sscop so make this a NOP.}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00524}00524 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00525}00525 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00526}\mbox{\hyperlink{ng__sscfu_8c_a8fadd9031f16bff425d89d2d195d927f}{00526}} \mbox{\hyperlink{ng__sscfu_8c_a8fadd9031f16bff425d89d2d195d927f}{sscfu\_window}}(\textcolor{keyword}{struct} sscfu *sscfu, \textcolor{keywordtype}{void} *\mbox{\hyperlink{structsscop__arg_a058c8f08ed3f9d82a5a3b0dda6cb8c54}{arg}}, u\_int w)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00527}00527 \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00528}00528 \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00529}00529 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00530}00530 \textcolor{comment}{/************************************************************/}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00531}00531 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00532}00532 \textcolor{comment}{ * NODE MANAGEMENT}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00533}00533 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00534}00534 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00535}\mbox{\hyperlink{ng__sscfu_8c_aa455c351c23de2903efffebfa7b03dfe}{00535}} \mbox{\hyperlink{ng__sscfu_8c_ad4e87ae1661ff57da05e69cac95e66f7}{ng\_sscfu\_constructor}}(\mbox{\hyperlink{structng__node}{node\_p}} node)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00536}00536 \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00537}00537         \textcolor{keyword}{struct }\mbox{\hyperlink{structpriv}{priv}} *\mbox{\hyperlink{structpriv}{priv}};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00538}00538 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00539}00539         \mbox{\hyperlink{structpriv}{priv}} = malloc(\textcolor{keyword}{sizeof}(*\mbox{\hyperlink{structpriv}{priv}}), M\_NG\_SSCFU, M\_WAITOK | M\_ZERO);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00540}00540 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00541}00541         \textcolor{keywordflow}{if} ((\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a0fa93470953fdeef29d4d37068d6fab0}{sscf}} = sscfu\_create(node, \&sscfu\_funcs)) == NULL) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00542}00542                 free(\mbox{\hyperlink{structpriv}{priv}}, M\_NG\_SSCFU);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00543}00543                 \textcolor{keywordflow}{return} (ENOMEM);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00544}00544         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00545}00545 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00546}00546         \mbox{\hyperlink{netgraph_8h_a674a9dcfdef6a73d16cccde37234f470}{NG\_NODE\_SET\_PRIVATE}}(node, \mbox{\hyperlink{structpriv}{priv}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00547}00547 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00548}00548         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00549}00549 \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00550}00550 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00551}00551 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00552}\mbox{\hyperlink{ng__sscfu_8c_ae9c3ee00d35e120624d797be3ab02dab}{00552}} \mbox{\hyperlink{ng__sscfu_8c_aaf8325553b78ba9566ce141c5c7bbe9e}{ng\_sscfu\_shutdown}}(\mbox{\hyperlink{structng__node}{node\_p}} node)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00553}00553 \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00554}00554         \textcolor{keyword}{struct }\mbox{\hyperlink{structpriv}{priv}} *\mbox{\hyperlink{structpriv}{priv}} = \mbox{\hyperlink{netgraph_8h_ae76b377c72ed8b60e8cbe1a204f70598}{NG\_NODE\_PRIVATE}}(node);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00555}00555 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00556}00556         sscfu\_destroy(\mbox{\hyperlink{structpriv}{priv}}-\/>\mbox{\hyperlink{structpriv_a0fa93470953fdeef29d4d37068d6fab0}{sscf}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00557}00557 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00558}00558         free(\mbox{\hyperlink{structpriv}{priv}}, M\_NG\_SSCFU);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00559}00559         \mbox{\hyperlink{netgraph_8h_a674a9dcfdef6a73d16cccde37234f470}{NG\_NODE\_SET\_PRIVATE}}(node, NULL);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00560}00560 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00561}00561         \mbox{\hyperlink{netgraph_8h_a7e3862fa34646a9c66c9b02ac5383d1a}{NG\_NODE\_UNREF}}(node);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00562}00562 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00563}00563         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00564}00564 \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00565}00565 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00566}00566 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00567}00567 \mbox{\hyperlink{ng__sscfu_8c_adc776301cad84edc7672d8048fd578bd}{sscfu\_verbose}}(\textcolor{keyword}{struct} sscfu *sscfu, \textcolor{keywordtype}{void} *arg, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *fmt, ...)}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00568}00568 \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00569}00569         va\_list ap;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00570}00570 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00571}00571         va\_start(ap, fmt);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00572}00572         printf(\textcolor{stringliteral}{"{}sscfu(\%p): "{}}, sscfu);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00573}00573         vprintf(fmt, ap);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00574}00574         va\_end(ap);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00575}00575         printf(\textcolor{stringliteral}{"{}\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00576}00576 \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00577}00577 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00578}00578 \textcolor{comment}{/************************************************************/}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00579}00579 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00580}00580 \textcolor{comment}{ * INITIALISATION}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00581}00581 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00582}00582 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00583}00583 \textcolor{comment}{ * Loading and unloading of node type}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00584}00584 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00585}00585 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00586}\mbox{\hyperlink{ng__sscfu_8c_abd64535082948885245abacc09b59e6a}{00586}} \mbox{\hyperlink{ng__sscfu_8c_abd64535082948885245abacc09b59e6a}{ng\_sscfu\_mod\_event}}(module\_t mod, \textcolor{keywordtype}{int} \mbox{\hyperlink{ng__ubt__var_8h_aeef6900f411bc223febdd92c9435693b}{event}}, \textcolor{keywordtype}{void} *\mbox{\hyperlink{ng__ubt__var_8h_a7f897df1949af68456ee830f2468e476}{data}})}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00587}00587 \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00588}00588         \textcolor{keywordtype}{int} error = 0;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00589}00589 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00590}00590         \textcolor{keywordflow}{switch} (\mbox{\hyperlink{ng__ubt__var_8h_aeef6900f411bc223febdd92c9435693b}{event}}) \{}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00591}00591           \textcolor{keywordflow}{case} MOD\_LOAD:}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00592}00592                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00593}00593 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00594}00594           \textcolor{keywordflow}{case} MOD\_UNLOAD:}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00595}00595                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00596}00596 }
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00597}00597           \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00598}00598                 error = EOPNOTSUPP;}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00599}00599                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00600}00600         \}}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00601}00601         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{ng__sscfu_8c_source_l00602}00602 \}}

\end{DoxyCode}
