\doxysection{ss7\+\_\+internal.\+h}
\label{ss7__internal_8h_source}\index{src/ss7\_internal.h@{src/ss7\_internal.h}}
\textbf{ Go to the documentation of this file.}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{preprocessor}{\#pragma once}}
\DoxyCodeLine{2 }
\DoxyCodeLine{3 \textcolor{comment}{/* Internal header used by libosmo-\/sccp, not available publicly for lib users */}}
\DoxyCodeLine{4 }
\DoxyCodeLine{5 \textcolor{preprocessor}{\#include <stdbool.h>}}
\DoxyCodeLine{6 \textcolor{preprocessor}{\#include <stdint.h>}}
\DoxyCodeLine{7 }
\DoxyCodeLine{8 \textcolor{preprocessor}{\#include <osmocom/core/linuxlist.h>}}
\DoxyCodeLine{9 \textcolor{preprocessor}{\#include <osmocom/netif/stream.h>}}
\DoxyCodeLine{10 \textcolor{preprocessor}{\#include <osmocom/sigtran/osmo\_ss7.h>}}
\DoxyCodeLine{11 }
\DoxyCodeLine{12 \textcolor{preprocessor}{\#include "{}ss7\_instance.h"{}}}
\DoxyCodeLine{13 }
\DoxyCodeLine{14 \textcolor{preprocessor}{\#define MAX\_PC\_STR\_LEN 32}}
\DoxyCodeLine{15 }
\DoxyCodeLine{16 \textcolor{keyword}{extern} \textcolor{keywordtype}{bool} ss7\_initialized;}
\DoxyCodeLine{17 }
\DoxyCodeLine{18 \textcolor{keywordtype}{bool} ss7\_ipv6\_sctp\_supported(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *host, \textcolor{keywordtype}{bool} bind);}
\DoxyCodeLine{19 }
\DoxyCodeLine{20 uint32\_t ss7\_pc\_full\_mask(\textcolor{keyword}{const} \textcolor{keyword}{struct} osmo\_ss7\_pc\_fmt *pc\_fmt);}
\DoxyCodeLine{21 }
\DoxyCodeLine{22 \textcolor{keyword}{struct }osmo\_ss7\_asp *ss7\_asp\_find\_by\_socket\_addr(\textcolor{keywordtype}{int} fd, \textcolor{keywordtype}{int} trans\_proto);}
\DoxyCodeLine{23 }
\DoxyCodeLine{24 \textcolor{keywordtype}{bool} ss7\_asp\_protocol\_check\_trans\_proto(\textcolor{keyword}{enum} osmo\_ss7\_asp\_protocol proto, \textcolor{keywordtype}{int} trans\_proto);}
\DoxyCodeLine{25 \textcolor{keywordtype}{int} ss7\_default\_trans\_proto\_for\_asp\_proto(\textcolor{keyword}{enum} osmo\_ss7\_asp\_protocol proto);}
\DoxyCodeLine{26 \textcolor{keywordtype}{int} ss7\_asp\_ipa\_srv\_conn\_rx\_cb(\textcolor{keyword}{struct} osmo\_stream\_srv *conn, \textcolor{keywordtype}{int} res, \textcolor{keyword}{struct} msgb *msg);}
\DoxyCodeLine{27 \textcolor{keywordtype}{int} ss7\_asp\_xua\_srv\_conn\_rx\_cb(\textcolor{keyword}{struct} osmo\_stream\_srv *conn, \textcolor{keywordtype}{int} res, \textcolor{keyword}{struct} msgb *msg);}
\DoxyCodeLine{28 \textcolor{keywordtype}{int} ss7\_asp\_m3ua\_tcp\_srv\_conn\_rx\_cb(\textcolor{keyword}{struct} osmo\_stream\_srv *conn, \textcolor{keywordtype}{int} res, \textcolor{keyword}{struct} msgb *msg);}
\DoxyCodeLine{29 \textcolor{keywordtype}{int} ss7\_asp\_xua\_srv\_conn\_closed\_cb(\textcolor{keyword}{struct} osmo\_stream\_srv *srv);}
\DoxyCodeLine{30 }
\DoxyCodeLine{31 \textcolor{keywordtype}{int} xua\_tcp\_segmentation\_cb(\textcolor{keyword}{struct} msgb *msg);}
\DoxyCodeLine{32 }
\DoxyCodeLine{33 \textcolor{keyword}{static} \textcolor{keyword}{inline} \textcolor{keyword}{struct }llist\_head *\_ss7\_llist\_round\_robin(\textcolor{keyword}{struct} llist\_head *list, \textcolor{keywordtype}{void} **state)}
\DoxyCodeLine{34 \{}
\DoxyCodeLine{35         \textcolor{keyword}{struct }llist\_head *e = *state;}
\DoxyCodeLine{36         \textcolor{keywordflow}{if} (!e || e-\/>next == list)}
\DoxyCodeLine{37                 e = list;}
\DoxyCodeLine{38         e = e-\/>next;}
\DoxyCodeLine{39         \textcolor{keywordflow}{if} (e == list)}
\DoxyCodeLine{40                 e = NULL;}
\DoxyCodeLine{41         *state = e;}
\DoxyCodeLine{42         \textcolor{keywordflow}{return} e;}
\DoxyCodeLine{43 \}}
\DoxyCodeLine{44 \textcolor{preprocessor}{\#define ss7\_llist\_round\_robin(list, state, struct\_type, entry\_name) \(\backslash\)}}
\DoxyCodeLine{45 \textcolor{preprocessor}{        llist\_entry(\_ss7\_llist\_round\_robin(list, state), struct\_type, entry\_name)}}
\DoxyCodeLine{46 }
\DoxyCodeLine{48 \textcolor{keyword}{static} \textcolor{keyword}{inline} uint32\_t load\_24be(\textcolor{keyword}{const} \textcolor{keywordtype}{void} *ptr)}
\DoxyCodeLine{49 \{}
\DoxyCodeLine{50         \textcolor{keyword}{const} uint8\_t *data = ptr;}
\DoxyCodeLine{51         \textcolor{keywordflow}{return} (data[0] << 16) | (data[1] << 8) | data[2];}
\DoxyCodeLine{52 \}}
\DoxyCodeLine{53 }
\DoxyCodeLine{54 \textcolor{comment}{/* VTY */}}
\DoxyCodeLine{55 \textcolor{preprocessor}{\#define XUA\_VAR\_STR     "{}(sua|m3ua|ipa)"{}}}

\end{DoxyCode}
