\doxysection{src/sim/sim\+\_\+int.h File Reference}
\label{sim__int_8h}\index{src/sim/sim\_int.h@{src/sim/sim\_int.h}}
{\ttfamily \#include $<$osmocom/sim/sim.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ osim\+\_\+decoded\+\_\+element} $\ast$ \textbf{ element\+\_\+alloc} (struct \textbf{ osim\+\_\+decoded\+\_\+data} $\ast$dd, const char $\ast$\textbf{ name}, enum \textbf{ osim\+\_\+element\+\_\+type} \textbf{ type}, enum \textbf{ osim\+\_\+element\+\_\+repr} repr)
\item 
struct \textbf{ osim\+\_\+decoded\+\_\+element} $\ast$ \textbf{ element\+\_\+alloc\+\_\+sub} (struct \textbf{ osim\+\_\+decoded\+\_\+element} $\ast$ee, const char $\ast$\textbf{ name}, enum \textbf{ osim\+\_\+element\+\_\+type} \textbf{ type}, enum \textbf{ osim\+\_\+element\+\_\+repr} repr)
\item 
int \textbf{ default\+\_\+decode} (struct \textbf{ osim\+\_\+decoded\+\_\+data} $\ast$dd, const struct \textbf{ osim\+\_\+file\+\_\+desc} $\ast$\textbf{ desc}, int \textbf{ len}, uint8\+\_\+t $\ast$\textbf{ data})
\item 
void \textbf{ add\+\_\+filedesc} (struct \textbf{ osim\+\_\+file\+\_\+desc} $\ast$root, const struct \textbf{ osim\+\_\+file\+\_\+desc} $\ast$in, int num)
\item 
struct \textbf{ osim\+\_\+file\+\_\+desc} $\ast$ \textbf{ alloc\+\_\+df} (void $\ast$ctx, uint16\+\_\+t fid, const char $\ast$\textbf{ name})
\item 
struct \textbf{ osim\+\_\+file\+\_\+desc} $\ast$ \textbf{ add\+\_\+df\+\_\+with\+\_\+ef} (struct \textbf{ osim\+\_\+file\+\_\+desc} $\ast$parent, uint16\+\_\+t fid, const char $\ast$\textbf{ name}, const struct \textbf{ osim\+\_\+file\+\_\+desc} $\ast$in, int num)
\item 
struct \textbf{ osim\+\_\+file\+\_\+desc} $\ast$ \textbf{ alloc\+\_\+adf\+\_\+with\+\_\+ef} (void $\ast$ctx, const uint8\+\_\+t $\ast$adf\+\_\+name, uint8\+\_\+t adf\+\_\+name\+\_\+len, const char $\ast$\textbf{ name}, const struct \textbf{ osim\+\_\+file\+\_\+desc} $\ast$in, int num)
\item 
void \textbf{ osim\+\_\+app\+\_\+profile\+\_\+register} (struct \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile} $\ast$aprof)
\begin{DoxyCompactList}\small\item\em Register an application profile. \end{DoxyCompactList}\item 
struct \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile} $\ast$ \textbf{ osim\+\_\+aprof\+\_\+usim} (void $\ast$ctx)
\item 
struct \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile} $\ast$ \textbf{ osim\+\_\+aprof\+\_\+isim} (void $\ast$ctx)
\item 
struct \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile} $\ast$ \textbf{ osim\+\_\+aprof\+\_\+hpsim} (void $\ast$ctx)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const struct \textbf{ osim\+\_\+reader\+\_\+ops} \textbf{ pcsc\+\_\+reader\+\_\+ops}
\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\mbox{\label{sim__int_8h_ac82d112fc2a2638dfeabf76c2d923921}} 
\index{sim\_int.h@{sim\_int.h}!add\_df\_with\_ef@{add\_df\_with\_ef}}
\index{add\_df\_with\_ef@{add\_df\_with\_ef}!sim\_int.h@{sim\_int.h}}
\doxysubsubsection{add\_df\_with\_ef()}
{\footnotesize\ttfamily struct \textbf{ osim\+\_\+file\+\_\+desc} $\ast$ add\+\_\+df\+\_\+with\+\_\+ef (\begin{DoxyParamCaption}\item[{struct \textbf{ osim\+\_\+file\+\_\+desc} $\ast$}]{parent,  }\item[{uint16\+\_\+t}]{fid,  }\item[{const char $\ast$}]{name,  }\item[{const struct \textbf{ osim\+\_\+file\+\_\+desc} $\ast$}]{in,  }\item[{int}]{num }\end{DoxyParamCaption})}



References \textbf{ add\+\_\+filedesc()}, \textbf{ alloc\+\_\+df()}, \textbf{ osim\+\_\+file\+\_\+desc\+::child\+\_\+list}, \textbf{ osim\+\_\+file\+\_\+desc\+::fid}, \textbf{ osim\+\_\+file\+\_\+desc\+::list}, \textbf{ llist\+\_\+add\+\_\+tail()}, \textbf{ name}, and \textbf{ osim\+\_\+file\+\_\+desc\+::parent}.



Referenced by \textbf{ osim\+\_\+aprof\+\_\+usim()}, \textbf{ osim\+\_\+cprof\+\_\+tsim()}, \textbf{ osim\+\_\+int\+\_\+cprof\+\_\+add\+\_\+gsm()}, and \textbf{ osim\+\_\+int\+\_\+cprof\+\_\+add\+\_\+telecom()}.

\mbox{\label{sim__int_8h_a49223048285e9b3c260e0836d02ef692}} 
\index{sim\_int.h@{sim\_int.h}!add\_filedesc@{add\_filedesc}}
\index{add\_filedesc@{add\_filedesc}!sim\_int.h@{sim\_int.h}}
\doxysubsubsection{add\_filedesc()}
{\footnotesize\ttfamily void add\+\_\+filedesc (\begin{DoxyParamCaption}\item[{struct \textbf{ osim\+\_\+file\+\_\+desc} $\ast$}]{root,  }\item[{const struct \textbf{ osim\+\_\+file\+\_\+desc} $\ast$}]{in,  }\item[{int}]{num }\end{DoxyParamCaption})}



References \textbf{ osim\+\_\+file\+\_\+desc\+::child\+\_\+list}, \textbf{ osim\+\_\+file\+\_\+desc\+::list}, and \textbf{ llist\+\_\+add\+\_\+tail()}.



Referenced by \textbf{ add\+\_\+df\+\_\+with\+\_\+ef()}, \textbf{ alloc\+\_\+adf\+\_\+with\+\_\+ef()}, \textbf{ osim\+\_\+cprof\+\_\+sim()}, \textbf{ osim\+\_\+cprof\+\_\+tsim()}, and \textbf{ osim\+\_\+cprof\+\_\+uicc()}.

\mbox{\label{sim__int_8h_ab912c1310b8d57e15fcb869d02a53544}} 
\index{sim\_int.h@{sim\_int.h}!alloc\_adf\_with\_ef@{alloc\_adf\_with\_ef}}
\index{alloc\_adf\_with\_ef@{alloc\_adf\_with\_ef}!sim\_int.h@{sim\_int.h}}
\doxysubsubsection{alloc\_adf\_with\_ef()}
{\footnotesize\ttfamily struct \textbf{ osim\+\_\+file\+\_\+desc} $\ast$ alloc\+\_\+adf\+\_\+with\+\_\+ef (\begin{DoxyParamCaption}\item[{void $\ast$}]{ctx,  }\item[{const uint8\+\_\+t $\ast$}]{adf\+\_\+name,  }\item[{uint8\+\_\+t}]{adf\+\_\+name\+\_\+len,  }\item[{const char $\ast$}]{name,  }\item[{const struct \textbf{ osim\+\_\+file\+\_\+desc} $\ast$}]{in,  }\item[{int}]{num }\end{DoxyParamCaption})}



References \textbf{ add\+\_\+filedesc()}, \textbf{ alloc\+\_\+df()}, \textbf{ osim\+\_\+file\+\_\+desc\+::df\+\_\+name}, \textbf{ osim\+\_\+file\+\_\+desc\+::df\+\_\+name\+\_\+len}, \textbf{ name}, \textbf{ osim\+\_\+file\+\_\+desc\+::type}, and \textbf{ TYPE\+\_\+\+ADF}.



Referenced by \textbf{ osim\+\_\+aprof\+\_\+hpsim()}, \textbf{ osim\+\_\+aprof\+\_\+isim()}, and \textbf{ osim\+\_\+aprof\+\_\+usim()}.

\mbox{\label{sim__int_8h_ab05975262a896023c4adfe5856662964}} 
\index{sim\_int.h@{sim\_int.h}!alloc\_df@{alloc\_df}}
\index{alloc\_df@{alloc\_df}!sim\_int.h@{sim\_int.h}}
\doxysubsubsection{alloc\_df()}
{\footnotesize\ttfamily struct \textbf{ osim\+\_\+file\+\_\+desc} $\ast$ alloc\+\_\+df (\begin{DoxyParamCaption}\item[{void $\ast$}]{ctx,  }\item[{uint16\+\_\+t}]{fid,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



References \textbf{ osim\+\_\+file\+\_\+desc\+::child\+\_\+list}, \textbf{ osim\+\_\+file\+\_\+desc\+::fid}, \textbf{ INIT\+\_\+\+LLIST\+\_\+\+HEAD}, \textbf{ name}, \textbf{ osim\+\_\+file\+\_\+desc\+::short\+\_\+name}, \textbf{ osim\+\_\+file\+\_\+desc\+::type}, and \textbf{ TYPE\+\_\+\+DF}.



Referenced by \textbf{ add\+\_\+df\+\_\+with\+\_\+ef()}, \textbf{ alloc\+\_\+adf\+\_\+with\+\_\+ef()}, \textbf{ osim\+\_\+cprof\+\_\+sim()}, \textbf{ osim\+\_\+cprof\+\_\+tsim()}, and \textbf{ osim\+\_\+cprof\+\_\+uicc()}.

\mbox{\label{sim__int_8h_ac5c822b3b087e4cb135f715727e19e67}} 
\index{sim\_int.h@{sim\_int.h}!default\_decode@{default\_decode}}
\index{default\_decode@{default\_decode}!sim\_int.h@{sim\_int.h}}
\doxysubsubsection{default\_decode()}
{\footnotesize\ttfamily int default\+\_\+decode (\begin{DoxyParamCaption}\item[{struct \textbf{ osim\+\_\+decoded\+\_\+data} $\ast$}]{dd,  }\item[{const struct \textbf{ osim\+\_\+file\+\_\+desc} $\ast$}]{desc,  }\item[{int}]{len,  }\item[{uint8\+\_\+t $\ast$}]{data }\end{DoxyParamCaption})}



References \textbf{ osim\+\_\+decoded\+\_\+element\+::buf}, \textbf{ data}, \textbf{ ELEM\+\_\+\+REPR\+\_\+\+HEX}, \textbf{ ELEM\+\_\+\+T\+\_\+\+BYTES}, \textbf{ element\+\_\+alloc()}, \textbf{ len()}, and \textbf{ osim\+\_\+decoded\+\_\+element\+::u}.

\mbox{\label{sim__int_8h_a9d6a6d137e0426b291b95a85d0431565}} 
\index{sim\_int.h@{sim\_int.h}!element\_alloc@{element\_alloc}}
\index{element\_alloc@{element\_alloc}!sim\_int.h@{sim\_int.h}}
\doxysubsubsection{element\_alloc()}
{\footnotesize\ttfamily struct \textbf{ osim\+\_\+decoded\+\_\+element} $\ast$ element\+\_\+alloc (\begin{DoxyParamCaption}\item[{struct \textbf{ osim\+\_\+decoded\+\_\+data} $\ast$}]{dd,  }\item[{const char $\ast$}]{name,  }\item[{enum \textbf{ osim\+\_\+element\+\_\+type}}]{type,  }\item[{enum \textbf{ osim\+\_\+element\+\_\+repr}}]{repr }\end{DoxyParamCaption})}



References \textbf{ \+\_\+\+\_\+element\+\_\+alloc()}, \textbf{ osim\+\_\+decoded\+\_\+data\+::decoded\+\_\+elements}, \textbf{ osim\+\_\+decoded\+\_\+element\+::list}, \textbf{ llist\+\_\+add\+\_\+tail()}, \textbf{ name}, and \textbf{ osim\+\_\+decoded\+\_\+element\+::type}.



Referenced by \textbf{ default\+\_\+decode()}, \textbf{ elp\+\_\+decode()}, \textbf{ gsm\+\_\+hpplmn\+\_\+decode()}, \textbf{ gsm\+\_\+imsi\+\_\+decode()}, \textbf{ gsm\+\_\+kc\+\_\+decode()}, \textbf{ gsm\+\_\+lp\+\_\+decode()}, \textbf{ gsm\+\_\+plmnsel\+\_\+decode()}, and \textbf{ iccid\+\_\+decode()}.

\mbox{\label{sim__int_8h_a3536009303b5c04aff61bfd8afd59574}} 
\index{sim\_int.h@{sim\_int.h}!element\_alloc\_sub@{element\_alloc\_sub}}
\index{element\_alloc\_sub@{element\_alloc\_sub}!sim\_int.h@{sim\_int.h}}
\doxysubsubsection{element\_alloc\_sub()}
{\footnotesize\ttfamily struct \textbf{ osim\+\_\+decoded\+\_\+element} $\ast$ element\+\_\+alloc\+\_\+sub (\begin{DoxyParamCaption}\item[{struct \textbf{ osim\+\_\+decoded\+\_\+element} $\ast$}]{ee,  }\item[{const char $\ast$}]{name,  }\item[{enum \textbf{ osim\+\_\+element\+\_\+type}}]{type,  }\item[{enum \textbf{ osim\+\_\+element\+\_\+repr}}]{repr }\end{DoxyParamCaption})}



References \textbf{ \+\_\+\+\_\+element\+\_\+alloc()}, \textbf{ osim\+\_\+decoded\+\_\+element\+::list}, \textbf{ llist\+\_\+add()}, \textbf{ name}, \textbf{ osim\+\_\+decoded\+\_\+element\+::siblings}, \textbf{ osim\+\_\+decoded\+\_\+element\+::type}, and \textbf{ osim\+\_\+decoded\+\_\+element\+::u}.



Referenced by \textbf{ gsm\+\_\+plmnsel\+\_\+decode()}.

\mbox{\label{sim__int_8h_a3cac49d1becf9386a9e1f7d7f527f5c6}} 
\index{sim\_int.h@{sim\_int.h}!osim\_app\_profile\_register@{osim\_app\_profile\_register}}
\index{osim\_app\_profile\_register@{osim\_app\_profile\_register}!sim\_int.h@{sim\_int.h}}
\doxysubsubsection{osim\_app\_profile\_register()}
{\footnotesize\ttfamily void osim\+\_\+app\+\_\+profile\+\_\+register (\begin{DoxyParamCaption}\item[{struct \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile} $\ast$}]{aprof }\end{DoxyParamCaption})}



Register an application profile. 

Typically called at early start-\/up. 

References \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile\+::aid}, \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile\+::aid\+\_\+len}, \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile\+::list}, \textbf{ llist\+\_\+add\+\_\+tail()}, \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile\+::name}, \textbf{ osim\+\_\+app\+\_\+profile\+\_\+find\+\_\+by\+\_\+aid()}, \textbf{ osim\+\_\+app\+\_\+profile\+\_\+find\+\_\+by\+\_\+name()}, and \textbf{ OSMO\+\_\+\+ASSERT}.



Referenced by \textbf{ osim\+\_\+init()}.

\mbox{\label{sim__int_8h_a0d1ddba1a8b060dff984936f2bc2d471}} 
\index{sim\_int.h@{sim\_int.h}!osim\_aprof\_hpsim@{osim\_aprof\_hpsim}}
\index{osim\_aprof\_hpsim@{osim\_aprof\_hpsim}!sim\_int.h@{sim\_int.h}}
\doxysubsubsection{osim\_aprof\_hpsim()}
{\footnotesize\ttfamily struct \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile} $\ast$ osim\+\_\+aprof\+\_\+hpsim (\begin{DoxyParamCaption}\item[{void $\ast$}]{ctx }\end{DoxyParamCaption})}



References \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile\+::adf}, \textbf{ adf\+\_\+hpsim\+\_\+aid}, \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile\+::aid}, \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile\+::aid\+\_\+len}, \textbf{ alloc\+\_\+adf\+\_\+with\+\_\+ef()}, \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ hpsim\+\_\+ef\+\_\+in\+\_\+adf\+\_\+hpsim}, \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile\+::name}, \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile\+::sw}, and \textbf{ ts31\+\_\+104\+\_\+sw}.



Referenced by \textbf{ osim\+\_\+init()}.

\mbox{\label{sim__int_8h_ae43d1ede8abc00379adf7a4f5bce0a60}} 
\index{sim\_int.h@{sim\_int.h}!osim\_aprof\_isim@{osim\_aprof\_isim}}
\index{osim\_aprof\_isim@{osim\_aprof\_isim}!sim\_int.h@{sim\_int.h}}
\doxysubsubsection{osim\_aprof\_isim()}
{\footnotesize\ttfamily struct \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile} $\ast$ osim\+\_\+aprof\+\_\+isim (\begin{DoxyParamCaption}\item[{void $\ast$}]{ctx }\end{DoxyParamCaption})}



References \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile\+::adf}, \textbf{ adf\+\_\+isim\+\_\+aid}, \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile\+::aid}, \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile\+::aid\+\_\+len}, \textbf{ alloc\+\_\+adf\+\_\+with\+\_\+ef()}, \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ isim\+\_\+ef\+\_\+in\+\_\+adf\+\_\+isim}, \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile\+::name}, \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile\+::sw}, and \textbf{ ts31\+\_\+103\+\_\+sw}.



Referenced by \textbf{ osim\+\_\+init()}.

\mbox{\label{sim__int_8h_af64370ea1c4545111b004ea3b3fa36f1}} 
\index{sim\_int.h@{sim\_int.h}!osim\_aprof\_usim@{osim\_aprof\_usim}}
\index{osim\_aprof\_usim@{osim\_aprof\_usim}!sim\_int.h@{sim\_int.h}}
\doxysubsubsection{osim\_aprof\_usim()}
{\footnotesize\ttfamily struct \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile} $\ast$ osim\+\_\+aprof\+\_\+usim (\begin{DoxyParamCaption}\item[{void $\ast$}]{ctx }\end{DoxyParamCaption})}



References \textbf{ add\+\_\+df\+\_\+with\+\_\+ef()}, \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile\+::adf}, \textbf{ adf\+\_\+usim\+\_\+aid}, \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile\+::aid}, \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile\+::aid\+\_\+len}, \textbf{ alloc\+\_\+adf\+\_\+with\+\_\+ef()}, \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile\+::name}, \textbf{ osim\+\_\+card\+\_\+app\+\_\+profile\+::sw}, \textbf{ ts31\+\_\+102\+\_\+sw}, \textbf{ usim\+\_\+ef\+\_\+in\+\_\+adf\+\_\+usim}, \textbf{ usim\+\_\+ef\+\_\+in\+\_\+df\+\_\+5gs}, \textbf{ usim\+\_\+ef\+\_\+in\+\_\+df\+\_\+acdc}, \textbf{ usim\+\_\+ef\+\_\+in\+\_\+df\+\_\+gsm\+\_\+access}, \textbf{ usim\+\_\+ef\+\_\+in\+\_\+df\+\_\+hnb}, \textbf{ usim\+\_\+ef\+\_\+in\+\_\+df\+\_\+mexe}, \textbf{ usim\+\_\+ef\+\_\+in\+\_\+df\+\_\+prose}, \textbf{ usim\+\_\+ef\+\_\+in\+\_\+df\+\_\+wlan}, and \textbf{ usim\+\_\+ef\+\_\+in\+\_\+solsa}.



Referenced by \textbf{ osim\+\_\+init()}.



\doxysubsection{Variable Documentation}
\mbox{\label{sim__int_8h_ab7f69b3b69ba8374a6fde6f6758da104}} 
\index{sim\_int.h@{sim\_int.h}!pcsc\_reader\_ops@{pcsc\_reader\_ops}}
\index{pcsc\_reader\_ops@{pcsc\_reader\_ops}!sim\_int.h@{sim\_int.h}}
\doxysubsubsection{pcsc\_reader\_ops}
{\footnotesize\ttfamily const struct \textbf{ osim\+\_\+reader\+\_\+ops} pcsc\+\_\+reader\+\_\+ops\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ osim\+\_\+reader\+\_\+open()}.

