\hypertarget{ng__uni__cust_8h_source}{}\doxysection{ng\+\_\+uni\+\_\+cust.\+h}
\label{ng__uni__cust_8h_source}\index{netgraph/atm/uni/ng\_uni\_cust.h@{netgraph/atm/uni/ng\_uni\_cust.h}}
\mbox{\hyperlink{ng__uni__cust_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00004}00004 \textcolor{comment}{ * Copyright (c) 2001-\/2003}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00005}00005 \textcolor{comment}{ *      Fraunhofer Institute for Open Communication Systems (FhG Fokus).}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00006}00006 \textcolor{comment}{ *      All rights reserved.}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00007}00007 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00008}00008 \textcolor{comment}{ * Author: Hartmut Brandt <harti@freebsd.org>}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00009}00009 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00010}00010 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00011}00011 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00012}00012 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00013}00013 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00014}00014 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00015}00015 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00016}00016 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00017}00017 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00018}00018 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00019}00019 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00020}00020 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00021}00021 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00022}00022 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00023}00023 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00024}00024 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00025}00025 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00026}00026 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00027}00027 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00028}00028 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00029}00029 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00030}00030 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00031}00031 \textcolor{comment}{ * Customisation of signalling source to the NG environment.}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00032}00032 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00033}00033 \textcolor{comment}{ * \$FreeBSD\$}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00034}00034 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00035}00035 }
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00036}00036 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00037}00037 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00038}00038 \textcolor{preprocessor}{\#include <sys/kernel.h>}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00039}00039 \textcolor{preprocessor}{\#include <sys/malloc.h>}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00040}00040 \textcolor{preprocessor}{\#include <sys/queue.h>}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00041}00041 \textcolor{preprocessor}{\#include <sys/lock.h>}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00042}00042 \textcolor{preprocessor}{\#include <sys/mutex.h>}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00043}00043 \textcolor{preprocessor}{\#include <sys/mbuf.h>}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00044}00044 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{ng__message_8h}{netgraph/ng\_message.h}}>}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00045}00045 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{netgraph_8h}{netgraph/netgraph.h}}>}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00046}00046 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{ngatmbase_8h}{netgraph/atm/ngatmbase.h}}>}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00047}00047 }
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00048}\mbox{\hyperlink{ng__uni__cust_8h_a4a461344520cc15d4892dca65ae91be6}{00048}} \textcolor{preprocessor}{\#define ASSERT(E, M) KASSERT(E,M)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00049}00049 }
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00050}00050 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00051}00051 \textcolor{comment}{ * Memory}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00052}00052 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00053}\mbox{\hyperlink{ng__uni__cust_8h_aa07edef91e092f383e3822eee709ab66}{00053}} \textcolor{keyword}{enum} \mbox{\hyperlink{ng__uni__cust_8h_aa07edef91e092f383e3822eee709ab66}{unimem}} \{}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00054}\mbox{\hyperlink{ng__uni__cust_8h_aa07edef91e092f383e3822eee709ab66a4d198918442a3ce438e6d94578a4f723}{00054}}         \mbox{\hyperlink{ng__uni__cust_8h_aa07edef91e092f383e3822eee709ab66a4d198918442a3ce438e6d94578a4f723}{UNIMEM\_INS}} = 0,}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00055}\mbox{\hyperlink{ng__uni__cust_8h_aa07edef91e092f383e3822eee709ab66a5b0316bc0f70a5fbfd656fb051ca9379}{00055}}         \mbox{\hyperlink{ng__uni__cust_8h_aa07edef91e092f383e3822eee709ab66a5b0316bc0f70a5fbfd656fb051ca9379}{UNIMEM\_ALL}},}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00056}\mbox{\hyperlink{ng__uni__cust_8h_aa07edef91e092f383e3822eee709ab66ab04261ff1ec6d692090c0bda35d61668}{00056}}         \mbox{\hyperlink{ng__uni__cust_8h_aa07edef91e092f383e3822eee709ab66ab04261ff1ec6d692090c0bda35d61668}{UNIMEM\_SIG}},}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00057}\mbox{\hyperlink{ng__uni__cust_8h_aa07edef91e092f383e3822eee709ab66a3433891feda609d9d01177a553093eea}{00057}}         \mbox{\hyperlink{ng__uni__cust_8h_aa07edef91e092f383e3822eee709ab66a3433891feda609d9d01177a553093eea}{UNIMEM\_CALL}},}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00058}\mbox{\hyperlink{ng__uni__cust_8h_aa07edef91e092f383e3822eee709ab66a923d4817ac090dde5a06020f987fb569}{00058}}         \mbox{\hyperlink{ng__uni__cust_8h_aa07edef91e092f383e3822eee709ab66a923d4817ac090dde5a06020f987fb569}{UNIMEM\_PARTY}},}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00059}00059 \};}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00060}\mbox{\hyperlink{ng__uni__cust_8h_a484f9741b8fc43a922f47673a6be3da7}{00060}} \textcolor{preprocessor}{\#define UNIMEM\_TYPES    5}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00061}00061 }
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00062}00062 \textcolor{keywordtype}{void} *\mbox{\hyperlink{ng__uni__cust_8h_a76d02dfa717097ec96b6dddd4329f21b}{ng\_uni\_malloc}}(\textcolor{keyword}{enum} \mbox{\hyperlink{ng__uni__cust_8h_aa07edef91e092f383e3822eee709ab66}{unimem}}, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *, u\_int);}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00063}00063 \textcolor{keywordtype}{void} \mbox{\hyperlink{ng__uni__cust_8h_a4fe412a23eca9b6f9402b0796cc4fdaa}{ng\_uni\_free}}(\textcolor{keyword}{enum} \mbox{\hyperlink{ng__uni__cust_8h_aa07edef91e092f383e3822eee709ab66}{unimem}}, \textcolor{keywordtype}{void} *, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *, u\_int);}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00064}00064 }
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00065}\mbox{\hyperlink{ng__uni__cust_8h_afe5bc77132d99827d3d64a6c10323742}{00065}} \textcolor{preprocessor}{\#define INS\_ALLOC()     ng\_uni\_malloc(UNIMEM\_INS, \_\_FILE\_\_, \_\_LINE\_\_)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00066}\mbox{\hyperlink{ng__uni__cust_8h_af9a0bf9b8aa0c23d666a0fc97f6ff8b4}{00066}} \textcolor{preprocessor}{\#define INS\_FREE(P)     ng\_uni\_free(UNIMEM\_INS, P, \_\_FILE\_\_, \_\_LINE\_\_)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00067}00067 }
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00068}\mbox{\hyperlink{ng__uni__cust_8h_a8f9ba282149b2315030181860c59da28}{00068}} \textcolor{preprocessor}{\#define UNI\_ALLOC()     ng\_uni\_malloc(UNIMEM\_ALL, \_\_FILE\_\_, \_\_LINE\_\_)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00069}\mbox{\hyperlink{ng__uni__cust_8h_a3cc942e1aa0e01788c26e9bf74850c33}{00069}} \textcolor{preprocessor}{\#define UNI\_FREE(P)     ng\_uni\_free(UNIMEM\_ALL, P, \_\_FILE\_\_, \_\_LINE\_\_)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00070}00070 }
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00071}\mbox{\hyperlink{ng__uni__cust_8h_a83ddef968417e53a2b332224f3cbcc2c}{00071}} \textcolor{preprocessor}{\#define SIG\_ALLOC()     ng\_uni\_malloc(UNIMEM\_SIG, \_\_FILE\_\_, \_\_LINE\_\_)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00072}\mbox{\hyperlink{ng__uni__cust_8h_a96af48ff88e2727c883430362ed3fb0e}{00072}} \textcolor{preprocessor}{\#define SIG\_FREE(P)     ng\_uni\_free(UNIMEM\_SIG, P, \_\_FILE\_\_, \_\_LINE\_\_)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00073}00073 }
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00074}\mbox{\hyperlink{ng__uni__cust_8h_aac9d311cc781ca1c24aa1849d0af5402}{00074}} \textcolor{preprocessor}{\#define CALL\_ALLOC()    ng\_uni\_malloc(UNIMEM\_CALL, \_\_FILE\_\_, \_\_LINE\_\_)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00075}\mbox{\hyperlink{ng__uni__cust_8h_afbaaedf8e63e3ec4a0e0b69437d890d3}{00075}} \textcolor{preprocessor}{\#define CALL\_FREE(P)    ng\_uni\_free(UNIMEM\_CALL, P, \_\_FILE\_\_, \_\_LINE\_\_)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00076}00076 }
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00077}\mbox{\hyperlink{ng__uni__cust_8h_ad162cb2e88361b3445952aa3c6fbb1fa}{00077}} \textcolor{preprocessor}{\#define PARTY\_ALLOC()   ng\_uni\_malloc(UNIMEM\_PARTY, \_\_FILE\_\_, \_\_LINE\_\_)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00078}\mbox{\hyperlink{ng__uni__cust_8h_a3c5157560fd1fb8b648034a3ba96bf9a}{00078}} \textcolor{preprocessor}{\#define PARTY\_FREE(P)   ng\_uni\_free(UNIMEM\_PARTY, P, \_\_FILE\_\_, \_\_LINE\_\_)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00079}00079 }
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00080}00080 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00081}00081 \textcolor{comment}{ * Timers}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00082}00082 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00083}\mbox{\hyperlink{structuni__timer}{00083}} \textcolor{keyword}{struct }\mbox{\hyperlink{structuni__timer}{uni\_timer}} \{}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00084}\mbox{\hyperlink{structuni__timer_aaec7429a48fc81ef9136721a4a501322}{00084}}         \textcolor{keyword}{struct }callout \mbox{\hyperlink{structuni__timer_aaec7429a48fc81ef9136721a4a501322}{c}};}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00085}00085 \};}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00086}00086 }
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00087}\mbox{\hyperlink{ng__uni__cust_8h_aed22703fe831c550e50899a61dd377dc}{00087}} \textcolor{preprocessor}{\#define \_TIMER\_INIT(X,T)        ng\_callout\_init(\&(X)-\/>T.c)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00088}\mbox{\hyperlink{ng__uni__cust_8h_a8658aa0e21baef9af30fa736caa7e37c}{00088}} \textcolor{preprocessor}{\#define \_TIMER\_DESTROY(UNI,FIELD) \_TIMER\_STOP(UNI,FIELD)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00089}\mbox{\hyperlink{ng__uni__cust_8h_a87f1b0d9f0bf03567663391fe924734a}{00089}} \textcolor{preprocessor}{\#define \_TIMER\_STOP(UNI,FIELD) do \{                                             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00090}00090 \textcolor{preprocessor}{        ng\_uncallout(\&FIELD.c, (UNI)-\/>arg);                                     \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00091}00091 \textcolor{preprocessor}{    \} while (0)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00092}\mbox{\hyperlink{ng__uni__cust_8h_a252fa27ebe1a1c5cc546f7f036392102}{00092}} \textcolor{preprocessor}{\#define TIMER\_ISACT(UNI,T)      (callout\_active(\&(UNI)-\/>T.c) ||         \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00093}00093 \textcolor{preprocessor}{        callout\_pending(\&(UNI)-\/>T.c))}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00094}\mbox{\hyperlink{ng__uni__cust_8h_af08b9b16d03fa41b57af5672b876c110}{00094}} \textcolor{preprocessor}{\#define \_TIMER\_START(UNI,ARG,FIELD,DUE,FUNC) do \{                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00095}00095 \textcolor{preprocessor}{        \_TIMER\_STOP(UNI, FIELD);                                        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00096}00096 \textcolor{preprocessor}{        ng\_callout(\&FIELD.c, (UNI)-\/>arg, NULL,                          \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00097}00097 \textcolor{preprocessor}{            hz * (DUE) / 1000, FUNC, (ARG), 0);                         \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00098}00098 \textcolor{preprocessor}{    \} while (0)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00099}00099 }
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00100}\mbox{\hyperlink{ng__uni__cust_8h_a9801499a11a5038f1dd17998b2339aca}{00100}} \textcolor{preprocessor}{\#define TIMER\_FUNC\_UNI(T,F)                                             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00101}00101 \textcolor{preprocessor}{static void F(struct uni *);                                            \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00102}00102 \textcolor{preprocessor}{static void                                                             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00103}00103 \textcolor{preprocessor}{\_\#\#T\#\#\_func(node\_p node, hook\_p hook, void *arg1, int arg2)             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00104}00104 \textcolor{preprocessor}{\{                                                                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00105}00105 \textcolor{preprocessor}{        struct uni *uni = (struct uni *)arg1;                           \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00106}00106 \textcolor{preprocessor}{                                                                        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00107}00107 \textcolor{preprocessor}{        (F)(uni);                                                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00108}00108 \textcolor{preprocessor}{        uni\_work(uni);                                                  \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00109}00109 \textcolor{preprocessor}{\}}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00110}00110 }
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00111}00111 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00112}00112 \textcolor{comment}{ * Be careful: call may be invalid after the call to F}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00113}00113 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00114}\mbox{\hyperlink{ng__uni__cust_8h_acdffc711383313f63fbaeece84fa863b}{00114}} \textcolor{preprocessor}{\#define TIMER\_FUNC\_CALL(T,F)                                            \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00115}00115 \textcolor{preprocessor}{static void F(struct call *);                                           \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00116}00116 \textcolor{preprocessor}{static void                                                             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00117}00117 \textcolor{preprocessor}{\_\#\#T\#\#\_func(node\_p node, hook\_p hook, void *arg1, int arg2)             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00118}00118 \textcolor{preprocessor}{\{                                                                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00119}00119 \textcolor{preprocessor}{        struct call *call = (struct call *)arg1;                        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00120}00120 \textcolor{preprocessor}{        struct uni *uni = call-\/>uni;                                    \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00121}00121 \textcolor{preprocessor}{                                                                        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00122}00122 \textcolor{preprocessor}{        (F)(call);                                                      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00123}00123 \textcolor{preprocessor}{        uni\_work(uni);                                                  \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00124}00124 \textcolor{preprocessor}{\}}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00125}00125 }
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00126}00126 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00127}00127 \textcolor{comment}{ * Be careful: call/party may be invalid after the call to F}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00128}00128 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00129}\mbox{\hyperlink{ng__uni__cust_8h_a83a2ddd6deb5b4159f81f2063774957e}{00129}} \textcolor{preprocessor}{\#define TIMER\_FUNC\_PARTY(T,F)                                           \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00130}00130 \textcolor{preprocessor}{static void F(struct party *);                                          \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00131}00131 \textcolor{preprocessor}{static void                                                             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00132}00132 \textcolor{preprocessor}{\_\#\#T\#\#\_func(node\_p node, hook\_p hook, void *arg1, int arg2)             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00133}00133 \textcolor{preprocessor}{\{                                                                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00134}00134 \textcolor{preprocessor}{        struct party *party = (struct party *)arg1;                     \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00135}00135 \textcolor{preprocessor}{        struct uni *uni = party-\/>call-\/>uni;                             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00136}00136 \textcolor{preprocessor}{                                                                        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00137}00137 \textcolor{preprocessor}{        (F)(party);                                                     \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00138}00138 \textcolor{preprocessor}{        uni\_work(uni);                                                  \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00139}00139 \textcolor{preprocessor}{\}}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00140}00140 }
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00141}00141 \textcolor{keyword}{extern} \textcolor{keywordtype}{size\_t} \mbox{\hyperlink{ng__uni__cust_8h_abcd90847ae1e560a9af9bdda63266499}{unimem\_sizes}}[\mbox{\hyperlink{ng__uni__cust_8h_a484f9741b8fc43a922f47673a6be3da7}{UNIMEM\_TYPES}}];}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00142}00142 }
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00143}\mbox{\hyperlink{ng__uni__cust_8h_a0eb5d6a4f060da6b5ad01cf0cddde3f1}{00143}} \textcolor{preprocessor}{\#define UNICORE                                                         \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00144}00144 \textcolor{preprocessor}{size\_t unimem\_sizes[UNIMEM\_TYPES] = \{                                   \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00145}00145 \textcolor{preprocessor}{        [UNIMEM\_INS]    = sizeof(struct uni),                           \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00146}00146 \textcolor{preprocessor}{        [UNIMEM\_ALL]    = sizeof(struct uni\_all),                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00147}00147 \textcolor{preprocessor}{        [UNIMEM\_SIG]    = sizeof(struct sig),                           \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00148}00148 \textcolor{preprocessor}{        [UNIMEM\_CALL]   = sizeof(struct call),                          \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00149}00149 \textcolor{preprocessor}{        [UNIMEM\_PARTY]  = sizeof(struct party)                          \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__uni__cust_8h_source_l00150}00150 \textcolor{preprocessor}{\};}}

\end{DoxyCode}
