\hypertarget{arc4random_8c}{}\doxysection{libkern/arc4random.c File Reference}
\label{arc4random_8c}\index{libkern/arc4random.c@{libkern/arc4random.c}}
{\ttfamily \#include $<$sys/cdefs.\+h$>$}\newline
{\ttfamily \#include $<$sys/types.\+h$>$}\newline
{\ttfamily \#include $<$sys/param.\+h$>$}\newline
{\ttfamily \#include $<$sys/kernel.\+h$>$}\newline
{\ttfamily \#include $<$sys/libkern.\+h$>$}\newline
{\ttfamily \#include $<$sys/linker.\+h$>$}\newline
{\ttfamily \#include $<$sys/lock.\+h$>$}\newline
{\ttfamily \#include $<$sys/malloc.\+h$>$}\newline
{\ttfamily \#include $<$sys/msan.\+h$>$}\newline
{\ttfamily \#include $<$sys/mutex.\+h$>$}\newline
{\ttfamily \#include $<$sys/random.\+h$>$}\newline
{\ttfamily \#include $<$sys/smp.\+h$>$}\newline
{\ttfamily \#include $<$sys/time.\+h$>$}\newline
{\ttfamily \#include $<$machine/cpu.\+h$>$}\newline
{\ttfamily \#include $<$crypto/chacha20/chacha.\+h$>$}\newline
{\ttfamily \#include $<$crypto/sha2/sha256.\+h$>$}\newline
{\ttfamily \#include $<$dev/random/randomdev.\+h$>$}\newline
Include dependency graph for arc4random.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d8/d3a/arc4random_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structchacha20__s}{chacha20\+\_\+s}}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{arc4random_8c_a920a3883b58b7c110167bb5ea5401997}{CHACHA20\+\_\+\+RESEED\+\_\+\+BYTES}}~65536
\item 
\#define \mbox{\hyperlink{arc4random_8c_af1ef0c92066e02dff037995492f73413}{CHACHA20\+\_\+\+RESEED\+\_\+\+SECONDS}}~300
\item 
\#define \mbox{\hyperlink{arc4random_8c_a4e23b7de217e0636841f68a8138160f2}{CHACHA20\+\_\+\+KEYBYTES}}~32
\item 
\#define \mbox{\hyperlink{arc4random_8c_a7dc5a140313fd85cc890b0a17b8f44e3}{CHACHA20\+\_\+\+BUFFER\+\_\+\+SIZE}}~64
\item 
\#define \mbox{\hyperlink{arc4random_8c_a97beb6da38bd08c00e73c139a2b48905}{CHACHA20\+\_\+\+FOREACH}}(\+\_\+chacha20)
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{arc4random_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\+\_\+\+\_\+\+FBSDID}} (\char`\"{}\$Free\+BSD\$\char`\"{})
\item 
\mbox{\hyperlink{arc4random_8c_a8cea6facc0b2dc0687b8e8706021c39a}{CTASSERT}} (\mbox{\hyperlink{arc4random_8c_a4e23b7de217e0636841f68a8138160f2}{CHACHA20\+\_\+\+KEYBYTES}} $\ast$8 $>$=CHACHA\+\_\+\+MINKEYLEN)
\item 
\mbox{\hyperlink{arc4random_8c_a30251da6f0b3b3b166e751c10b4f516e}{MALLOC\+\_\+\+DEFINE}} (M\+\_\+\+CHACHA20\+RANDOM, \char`\"{}chacha20random\char`\"{}, \char`\"{}chacha20random structures\char`\"{})
\item 
struct \mbox{\hyperlink{structchacha20__s}{chacha20\+\_\+s}} \mbox{\hyperlink{arc4random_8c_ae3f7b9f0a182a2ad1dcb4549b19381a4}{\+\_\+\+\_\+aligned}} (CACHE\+\_\+\+LINE\+\_\+\+SIZE)
\item 
static void \mbox{\hyperlink{arc4random_8c_aadde7c3564b4677a42aa6342fed3ece3}{chacha20\+\_\+randomstir}} (struct \mbox{\hyperlink{structchacha20__s}{chacha20\+\_\+s}} $\ast$chacha20)
\item 
static void \mbox{\hyperlink{arc4random_8c_ac251a508aebce13a9bbd9c8d8d4bd098}{chacha20\+\_\+init}} (void)
\item 
\mbox{\hyperlink{arc4random_8c_a0583f735931c268ffde44c1172bff601}{SYSINIT}} (chacha20, SI\+\_\+\+SUB\+\_\+\+LOCK, SI\+\_\+\+ORDER\+\_\+\+ANY, \mbox{\hyperlink{arc4random_8c_ac251a508aebce13a9bbd9c8d8d4bd098}{chacha20\+\_\+init}}, NULL)
\item 
static void \mbox{\hyperlink{arc4random_8c_afc712371815b2544e326034f66f8d10c}{chacha20\+\_\+uninit}} (void)
\item 
\mbox{\hyperlink{arc4random_8c_aca823be79d0e3a1b49e86dc0a46b5474}{SYSUNINIT}} (chacha20, SI\+\_\+\+SUB\+\_\+\+LOCK, SI\+\_\+\+ORDER\+\_\+\+ANY, \mbox{\hyperlink{arc4random_8c_afc712371815b2544e326034f66f8d10c}{chacha20\+\_\+uninit}}, NULL)
\item 
void \mbox{\hyperlink{arc4random_8c_ab628c6443ef7017cd3cf89628f8040b5}{arc4rand}} (void $\ast$ptr, u\+\_\+int len, int reseed)
\item 
uint32\+\_\+t \mbox{\hyperlink{arc4random_8c_a01532506197a21188c6c792062ee5ff1}{arc4random}} (void)
\item 
void \mbox{\hyperlink{arc4random_8c_aede424cdd3f40500015acf72004c3c67}{arc4random\+\_\+buf}} (void $\ast$ptr, size\+\_\+t len)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
int \mbox{\hyperlink{arc4random_8c_aedb4065360c3afdb04ff4689d7b596d7}{arc4rand\+\_\+iniseed\+\_\+state}} = ARC4\+\_\+\+ENTR\+\_\+\+NONE
\item 
struct mtx \mbox{\hyperlink{arc4random_8c_a7b5de10a04be6deb16c42cef5da02110}{mtx}}
\item 
int \mbox{\hyperlink{arc4random_8c_a24bdd92b6cf8d141a4a27d4882c6a905}{numbytes}}
\item 
time\+\_\+t \mbox{\hyperlink{arc4random_8c_a7c3206193fd117742ab3a6a0ff890983}{t\+\_\+reseed}}
\item 
uint8\+\_\+t \mbox{\hyperlink{arc4random_8c_ab0baee338665deda94527efc3315cfdc}{m\+\_\+buffer}} \mbox{[}\mbox{\hyperlink{arc4random_8c_a7dc5a140313fd85cc890b0a17b8f44e3}{CHACHA20\+\_\+\+BUFFER\+\_\+\+SIZE}}\mbox{]}
\item 
struct chacha\+\_\+ctx \mbox{\hyperlink{arc4random_8c_a39ce9c0721b213ba617e3206c8883665}{ctx}}
\item 
static struct \mbox{\hyperlink{structchacha20__s}{chacha20\+\_\+s}} $\ast$ \mbox{\hyperlink{arc4random_8c_a5a99fe9e34ce0b7daa6de324087a60e9}{chacha20inst}} = NULL
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{arc4random_8c_a7dc5a140313fd85cc890b0a17b8f44e3}\label{arc4random_8c_a7dc5a140313fd85cc890b0a17b8f44e3}} 
\index{arc4random.c@{arc4random.c}!CHACHA20\_BUFFER\_SIZE@{CHACHA20\_BUFFER\_SIZE}}
\index{CHACHA20\_BUFFER\_SIZE@{CHACHA20\_BUFFER\_SIZE}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{CHACHA20\_BUFFER\_SIZE}{CHACHA20\_BUFFER\_SIZE}}
{\footnotesize\ttfamily \#define CHACHA20\+\_\+\+BUFFER\+\_\+\+SIZE~64}



Definition at line \mbox{\hyperlink{arc4random_8c_source_l00055}{55}} of file \mbox{\hyperlink{arc4random_8c_source}{arc4random.\+c}}.

\mbox{\Hypertarget{arc4random_8c_a97beb6da38bd08c00e73c139a2b48905}\label{arc4random_8c_a97beb6da38bd08c00e73c139a2b48905}} 
\index{arc4random.c@{arc4random.c}!CHACHA20\_FOREACH@{CHACHA20\_FOREACH}}
\index{CHACHA20\_FOREACH@{CHACHA20\_FOREACH}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{CHACHA20\_FOREACH}{CHACHA20\_FOREACH}}
{\footnotesize\ttfamily \#define CHACHA20\+\_\+\+FOREACH(\begin{DoxyParamCaption}\item[{}]{\+\_\+chacha20 }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{        \textcolor{keywordflow}{for} (\_chacha20 = \&\mbox{\hyperlink{arc4random_8c_a5a99fe9e34ce0b7daa6de324087a60e9}{chacha20inst}}[0]; \(\backslash\)}
\DoxyCodeLine{             \_chacha20 <= \&\mbox{\hyperlink{arc4random_8c_a5a99fe9e34ce0b7daa6de324087a60e9}{chacha20inst}}[mp\_maxid]; \(\backslash\)}
\DoxyCodeLine{             \_chacha20++)}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{arc4random_8c_source_l00078}{78}} of file \mbox{\hyperlink{arc4random_8c_source}{arc4random.\+c}}.

\mbox{\Hypertarget{arc4random_8c_a4e23b7de217e0636841f68a8138160f2}\label{arc4random_8c_a4e23b7de217e0636841f68a8138160f2}} 
\index{arc4random.c@{arc4random.c}!CHACHA20\_KEYBYTES@{CHACHA20\_KEYBYTES}}
\index{CHACHA20\_KEYBYTES@{CHACHA20\_KEYBYTES}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{CHACHA20\_KEYBYTES}{CHACHA20\_KEYBYTES}}
{\footnotesize\ttfamily \#define CHACHA20\+\_\+\+KEYBYTES~32}



Definition at line \mbox{\hyperlink{arc4random_8c_source_l00054}{54}} of file \mbox{\hyperlink{arc4random_8c_source}{arc4random.\+c}}.

\mbox{\Hypertarget{arc4random_8c_a920a3883b58b7c110167bb5ea5401997}\label{arc4random_8c_a920a3883b58b7c110167bb5ea5401997}} 
\index{arc4random.c@{arc4random.c}!CHACHA20\_RESEED\_BYTES@{CHACHA20\_RESEED\_BYTES}}
\index{CHACHA20\_RESEED\_BYTES@{CHACHA20\_RESEED\_BYTES}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{CHACHA20\_RESEED\_BYTES}{CHACHA20\_RESEED\_BYTES}}
{\footnotesize\ttfamily \#define CHACHA20\+\_\+\+RESEED\+\_\+\+BYTES~65536}



Definition at line \mbox{\hyperlink{arc4random_8c_source_l00052}{52}} of file \mbox{\hyperlink{arc4random_8c_source}{arc4random.\+c}}.

\mbox{\Hypertarget{arc4random_8c_af1ef0c92066e02dff037995492f73413}\label{arc4random_8c_af1ef0c92066e02dff037995492f73413}} 
\index{arc4random.c@{arc4random.c}!CHACHA20\_RESEED\_SECONDS@{CHACHA20\_RESEED\_SECONDS}}
\index{CHACHA20\_RESEED\_SECONDS@{CHACHA20\_RESEED\_SECONDS}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{CHACHA20\_RESEED\_SECONDS}{CHACHA20\_RESEED\_SECONDS}}
{\footnotesize\ttfamily \#define CHACHA20\+\_\+\+RESEED\+\_\+\+SECONDS~300}



Definition at line \mbox{\hyperlink{arc4random_8c_source_l00053}{53}} of file \mbox{\hyperlink{arc4random_8c_source}{arc4random.\+c}}.



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{arc4random_8c_ae3f7b9f0a182a2ad1dcb4549b19381a4}\label{arc4random_8c_ae3f7b9f0a182a2ad1dcb4549b19381a4}} 
\index{arc4random.c@{arc4random.c}!\_\_aligned@{\_\_aligned}}
\index{\_\_aligned@{\_\_aligned}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{\_\_aligned()}{\_\_aligned()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structchacha20__s}{chacha20\+\_\+s}} \+\_\+\+\_\+aligned (\begin{DoxyParamCaption}\item[{CACHE\+\_\+\+LINE\+\_\+\+SIZE}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{arc4random_8c_a8c3ef283470a68cd30afe9b8a72cb60f}\label{arc4random_8c_a8c3ef283470a68cd30afe9b8a72cb60f}} 
\index{arc4random.c@{arc4random.c}!\_\_FBSDID@{\_\_FBSDID}}
\index{\_\_FBSDID@{\_\_FBSDID}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{\_\_FBSDID()}{\_\_FBSDID()}}
{\footnotesize\ttfamily \+\_\+\+\_\+\+FBSDID (\begin{DoxyParamCaption}\item[{\char`\"{}\$Free\+BSD\$\char`\"{}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{arc4random_8c_ab628c6443ef7017cd3cf89628f8040b5}\label{arc4random_8c_ab628c6443ef7017cd3cf89628f8040b5}} 
\index{arc4random.c@{arc4random.c}!arc4rand@{arc4rand}}
\index{arc4rand@{arc4rand}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{arc4rand()}{arc4rand()}}
{\footnotesize\ttfamily void arc4rand (\begin{DoxyParamCaption}\item[{void $\ast$}]{ptr,  }\item[{u\+\_\+int}]{len,  }\item[{int}]{reseed }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{arc4random_8c_source_l00197}{197}} of file \mbox{\hyperlink{arc4random_8c_source}{arc4random.\+c}}.



References \mbox{\hyperlink{arc4random_8c_source_l00060}{arc4rand\+\_\+iniseed\+\_\+state}}, \mbox{\hyperlink{arc4random_8c_source_l00055}{CHACHA20\+\_\+\+BUFFER\+\_\+\+SIZE}}, \mbox{\hyperlink{arc4random_8c_source_l00078}{CHACHA20\+\_\+\+FOREACH}}, \mbox{\hyperlink{arc4random_8c_source_l00087}{chacha20\+\_\+randomstir()}}, \mbox{\hyperlink{arc4random_8c_source_l00052}{CHACHA20\+\_\+\+RESEED\+\_\+\+BYTES}}, \mbox{\hyperlink{arc4random_8c_source_l00076}{chacha20inst}}, \mbox{\hyperlink{arc4random_8c_source_l00070}{chacha20\+\_\+s\+::ctx}}, \mbox{\hyperlink{arc4random_8c_source_l00069}{chacha20\+\_\+s\+::m\+\_\+buffer}}, \mbox{\hyperlink{arc4random_8c_source_l00066}{chacha20\+\_\+s\+::mtx}}, \mbox{\hyperlink{arc4random_8c_source_l00067}{chacha20\+\_\+s\+::numbytes}}, and \mbox{\hyperlink{arc4random_8c_source_l00068}{chacha20\+\_\+s\+::t\+\_\+reseed}}.



Referenced by \mbox{\hyperlink{arc4random_8c_source_l00248}{arc4random()}}, and \mbox{\hyperlink{arc4random_8c_source_l00257}{arc4random\+\_\+buf()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=297pt]{d8/d1a/arc4random_8c_ab628c6443ef7017cd3cf89628f8040b5_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d8/d1a/arc4random_8c_ab628c6443ef7017cd3cf89628f8040b5_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{arc4random_8c_a01532506197a21188c6c792062ee5ff1}\label{arc4random_8c_a01532506197a21188c6c792062ee5ff1}} 
\index{arc4random.c@{arc4random.c}!arc4random@{arc4random}}
\index{arc4random@{arc4random}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{arc4random()}{arc4random()}}
{\footnotesize\ttfamily uint32\+\_\+t arc4random (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{arc4random_8c_source_l00248}{248}} of file \mbox{\hyperlink{arc4random_8c_source}{arc4random.\+c}}.



References \mbox{\hyperlink{arc4random_8c_source_l00197}{arc4rand()}}.



Referenced by \mbox{\hyperlink{arc4random__uniform_8c_source_l00035}{arc4random\+\_\+uniform()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d8/d1a/arc4random_8c_a01532506197a21188c6c792062ee5ff1_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=310pt]{d8/d1a/arc4random_8c_a01532506197a21188c6c792062ee5ff1_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{arc4random_8c_aede424cdd3f40500015acf72004c3c67}\label{arc4random_8c_aede424cdd3f40500015acf72004c3c67}} 
\index{arc4random.c@{arc4random.c}!arc4random\_buf@{arc4random\_buf}}
\index{arc4random\_buf@{arc4random\_buf}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{arc4random\_buf()}{arc4random\_buf()}}
{\footnotesize\ttfamily void arc4random\+\_\+buf (\begin{DoxyParamCaption}\item[{void $\ast$}]{ptr,  }\item[{size\+\_\+t}]{len }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{arc4random_8c_source_l00257}{257}} of file \mbox{\hyperlink{arc4random_8c_source}{arc4random.\+c}}.



References \mbox{\hyperlink{arc4random_8c_source_l00197}{arc4rand()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d8/d1a/arc4random_8c_aede424cdd3f40500015acf72004c3c67_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{arc4random_8c_ac251a508aebce13a9bbd9c8d8d4bd098}\label{arc4random_8c_ac251a508aebce13a9bbd9c8d8d4bd098}} 
\index{arc4random.c@{arc4random.c}!chacha20\_init@{chacha20\_init}}
\index{chacha20\_init@{chacha20\_init}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{chacha20\_init()}{chacha20\_init()}}
{\footnotesize\ttfamily static void chacha20\+\_\+init (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{arc4random_8c_source_l00162}{162}} of file \mbox{\hyperlink{arc4random_8c_source}{arc4random.\+c}}.



References \mbox{\hyperlink{arc4random_8c_source_l00055}{CHACHA20\+\_\+\+BUFFER\+\_\+\+SIZE}}, \mbox{\hyperlink{arc4random_8c_source_l00078}{CHACHA20\+\_\+\+FOREACH}}, \mbox{\hyperlink{arc4random_8c_source_l00076}{chacha20inst}}, \mbox{\hyperlink{arc4random_8c_source_l00070}{chacha20\+\_\+s\+::ctx}}, \mbox{\hyperlink{explicit__bzero_8c_source_l00024}{explicit\+\_\+bzero()}}, \mbox{\hyperlink{arc4random_8c_source_l00069}{chacha20\+\_\+s\+::m\+\_\+buffer}}, \mbox{\hyperlink{arc4random_8c_source_l00066}{chacha20\+\_\+s\+::mtx}}, \mbox{\hyperlink{arc4random_8c_source_l00067}{chacha20\+\_\+s\+::numbytes}}, and \mbox{\hyperlink{arc4random_8c_source_l00068}{chacha20\+\_\+s\+::t\+\_\+reseed}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d8/d1a/arc4random_8c_ac251a508aebce13a9bbd9c8d8d4bd098_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{arc4random_8c_aadde7c3564b4677a42aa6342fed3ece3}\label{arc4random_8c_aadde7c3564b4677a42aa6342fed3ece3}} 
\index{arc4random.c@{arc4random.c}!chacha20\_randomstir@{chacha20\_randomstir}}
\index{chacha20\_randomstir@{chacha20\_randomstir}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{chacha20\_randomstir()}{chacha20\_randomstir()}}
{\footnotesize\ttfamily static void chacha20\+\_\+randomstir (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structchacha20__s}{chacha20\+\_\+s}} $\ast$}]{chacha20 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{arc4random_8c_source_l00087}{87}} of file \mbox{\hyperlink{arc4random_8c_source}{arc4random.\+c}}.



References \mbox{\hyperlink{arc4random_8c_source_l00054}{CHACHA20\+\_\+\+KEYBYTES}}, \mbox{\hyperlink{arc4random_8c_source_l00053}{CHACHA20\+\_\+\+RESEED\+\_\+\+SECONDS}}, \mbox{\hyperlink{arc4random_8c_source_l00004}{ctx}}, \mbox{\hyperlink{arc4random_8c_source_l00070}{chacha20\+\_\+s\+::ctx}}, \mbox{\hyperlink{arc4random_8c_source_l00066}{chacha20\+\_\+s\+::mtx}}, \mbox{\hyperlink{arc4random_8c_source_l00067}{chacha20\+\_\+s\+::numbytes}}, and \mbox{\hyperlink{arc4random_8c_source_l00068}{chacha20\+\_\+s\+::t\+\_\+reseed}}.



Referenced by \mbox{\hyperlink{arc4random_8c_source_l00197}{arc4rand()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d8/d1a/arc4random_8c_aadde7c3564b4677a42aa6342fed3ece3_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{arc4random_8c_afc712371815b2544e326034f66f8d10c}\label{arc4random_8c_afc712371815b2544e326034f66f8d10c}} 
\index{arc4random.c@{arc4random.c}!chacha20\_uninit@{chacha20\_uninit}}
\index{chacha20\_uninit@{chacha20\_uninit}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{chacha20\_uninit()}{chacha20\_uninit()}}
{\footnotesize\ttfamily static void chacha20\+\_\+uninit (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{arc4random_8c_source_l00182}{182}} of file \mbox{\hyperlink{arc4random_8c_source}{arc4random.\+c}}.



References \mbox{\hyperlink{arc4random_8c_source_l00078}{CHACHA20\+\_\+\+FOREACH}}, \mbox{\hyperlink{arc4random_8c_source_l00076}{chacha20inst}}, and \mbox{\hyperlink{arc4random_8c_source_l00066}{chacha20\+\_\+s\+::mtx}}.

\mbox{\Hypertarget{arc4random_8c_a8cea6facc0b2dc0687b8e8706021c39a}\label{arc4random_8c_a8cea6facc0b2dc0687b8e8706021c39a}} 
\index{arc4random.c@{arc4random.c}!CTASSERT@{CTASSERT}}
\index{CTASSERT@{CTASSERT}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{CTASSERT()}{CTASSERT()}}
{\footnotesize\ttfamily CTASSERT (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{arc4random_8c_a4e23b7de217e0636841f68a8138160f2}{CHACHA20\+\_\+\+KEYBYTES}} $\ast$8 $>$=}]{CHACHA\+\_\+\+MINKEYLEN }\end{DoxyParamCaption})}

\mbox{\Hypertarget{arc4random_8c_a30251da6f0b3b3b166e751c10b4f516e}\label{arc4random_8c_a30251da6f0b3b3b166e751c10b4f516e}} 
\index{arc4random.c@{arc4random.c}!MALLOC\_DEFINE@{MALLOC\_DEFINE}}
\index{MALLOC\_DEFINE@{MALLOC\_DEFINE}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{MALLOC\_DEFINE()}{MALLOC\_DEFINE()}}
{\footnotesize\ttfamily MALLOC\+\_\+\+DEFINE (\begin{DoxyParamCaption}\item[{M\+\_\+\+CHACHA20\+RANDOM}]{,  }\item[{\char`\"{}chacha20random\char`\"{}}]{,  }\item[{\char`\"{}chacha20random structures\char`\"{}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{arc4random_8c_a0583f735931c268ffde44c1172bff601}\label{arc4random_8c_a0583f735931c268ffde44c1172bff601}} 
\index{arc4random.c@{arc4random.c}!SYSINIT@{SYSINIT}}
\index{SYSINIT@{SYSINIT}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{SYSINIT()}{SYSINIT()}}
{\footnotesize\ttfamily SYSINIT (\begin{DoxyParamCaption}\item[{chacha20}]{,  }\item[{SI\+\_\+\+SUB\+\_\+\+LOCK}]{,  }\item[{SI\+\_\+\+ORDER\+\_\+\+ANY}]{,  }\item[{\mbox{\hyperlink{arc4random_8c_ac251a508aebce13a9bbd9c8d8d4bd098}{chacha20\+\_\+init}}}]{,  }\item[{NULL}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{arc4random_8c_aca823be79d0e3a1b49e86dc0a46b5474}\label{arc4random_8c_aca823be79d0e3a1b49e86dc0a46b5474}} 
\index{arc4random.c@{arc4random.c}!SYSUNINIT@{SYSUNINIT}}
\index{SYSUNINIT@{SYSUNINIT}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{SYSUNINIT()}{SYSUNINIT()}}
{\footnotesize\ttfamily SYSUNINIT (\begin{DoxyParamCaption}\item[{chacha20}]{,  }\item[{SI\+\_\+\+SUB\+\_\+\+LOCK}]{,  }\item[{SI\+\_\+\+ORDER\+\_\+\+ANY}]{,  }\item[{\mbox{\hyperlink{arc4random_8c_afc712371815b2544e326034f66f8d10c}{chacha20\+\_\+uninit}}}]{,  }\item[{NULL}]{ }\end{DoxyParamCaption})}



\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{arc4random_8c_aedb4065360c3afdb04ff4689d7b596d7}\label{arc4random_8c_aedb4065360c3afdb04ff4689d7b596d7}} 
\index{arc4random.c@{arc4random.c}!arc4rand\_iniseed\_state@{arc4rand\_iniseed\_state}}
\index{arc4rand\_iniseed\_state@{arc4rand\_iniseed\_state}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{arc4rand\_iniseed\_state}{arc4rand\_iniseed\_state}}
{\footnotesize\ttfamily int arc4rand\+\_\+iniseed\+\_\+state = ARC4\+\_\+\+ENTR\+\_\+\+NONE}



Definition at line \mbox{\hyperlink{arc4random_8c_source_l00060}{60}} of file \mbox{\hyperlink{arc4random_8c_source}{arc4random.\+c}}.



Referenced by \mbox{\hyperlink{arc4random_8c_source_l00197}{arc4rand()}}.

\mbox{\Hypertarget{arc4random_8c_a5a99fe9e34ce0b7daa6de324087a60e9}\label{arc4random_8c_a5a99fe9e34ce0b7daa6de324087a60e9}} 
\index{arc4random.c@{arc4random.c}!chacha20inst@{chacha20inst}}
\index{chacha20inst@{chacha20inst}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{chacha20inst}{chacha20inst}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structchacha20__s}{chacha20\+\_\+s}}$\ast$ chacha20inst = NULL\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{arc4random_8c_source_l00076}{76}} of file \mbox{\hyperlink{arc4random_8c_source}{arc4random.\+c}}.



Referenced by \mbox{\hyperlink{arc4random_8c_source_l00197}{arc4rand()}}, \mbox{\hyperlink{arc4random_8c_source_l00162}{chacha20\+\_\+init()}}, and \mbox{\hyperlink{arc4random_8c_source_l00182}{chacha20\+\_\+uninit()}}.

\mbox{\Hypertarget{arc4random_8c_a39ce9c0721b213ba617e3206c8883665}\label{arc4random_8c_a39ce9c0721b213ba617e3206c8883665}} 
\index{arc4random.c@{arc4random.c}!ctx@{ctx}}
\index{ctx@{ctx}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{ctx}{ctx}}
{\footnotesize\ttfamily struct chacha\+\_\+ctx ctx}



Definition at line \mbox{\hyperlink{arc4random_8c_source_l00004}{4}} of file \mbox{\hyperlink{arc4random_8c_source}{arc4random.\+c}}.



Referenced by \mbox{\hyperlink{arc4random_8c_source_l00087}{chacha20\+\_\+randomstir()}}.

\mbox{\Hypertarget{arc4random_8c_ab0baee338665deda94527efc3315cfdc}\label{arc4random_8c_ab0baee338665deda94527efc3315cfdc}} 
\index{arc4random.c@{arc4random.c}!m\_buffer@{m\_buffer}}
\index{m\_buffer@{m\_buffer}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{m\_buffer}{m\_buffer}}
{\footnotesize\ttfamily uint8\+\_\+t m\+\_\+buffer\mbox{[}\mbox{\hyperlink{arc4random_8c_a7dc5a140313fd85cc890b0a17b8f44e3}{CHACHA20\+\_\+\+BUFFER\+\_\+\+SIZE}}\mbox{]}}



Definition at line \mbox{\hyperlink{arc4random_8c_source_l00003}{3}} of file \mbox{\hyperlink{arc4random_8c_source}{arc4random.\+c}}.

\mbox{\Hypertarget{arc4random_8c_a7b5de10a04be6deb16c42cef5da02110}\label{arc4random_8c_a7b5de10a04be6deb16c42cef5da02110}} 
\index{arc4random.c@{arc4random.c}!mtx@{mtx}}
\index{mtx@{mtx}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{mtx}{mtx}}
{\footnotesize\ttfamily struct mtx mtx}



Definition at line \mbox{\hyperlink{arc4random_8c_source_l00000}{0}} of file \mbox{\hyperlink{arc4random_8c_source}{arc4random.\+c}}.

\mbox{\Hypertarget{arc4random_8c_a24bdd92b6cf8d141a4a27d4882c6a905}\label{arc4random_8c_a24bdd92b6cf8d141a4a27d4882c6a905}} 
\index{arc4random.c@{arc4random.c}!numbytes@{numbytes}}
\index{numbytes@{numbytes}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{numbytes}{numbytes}}
{\footnotesize\ttfamily int numbytes}



Definition at line \mbox{\hyperlink{arc4random_8c_source_l00001}{1}} of file \mbox{\hyperlink{arc4random_8c_source}{arc4random.\+c}}.

\mbox{\Hypertarget{arc4random_8c_a7c3206193fd117742ab3a6a0ff890983}\label{arc4random_8c_a7c3206193fd117742ab3a6a0ff890983}} 
\index{arc4random.c@{arc4random.c}!t\_reseed@{t\_reseed}}
\index{t\_reseed@{t\_reseed}!arc4random.c@{arc4random.c}}
\doxysubsubsection{\texorpdfstring{t\_reseed}{t\_reseed}}
{\footnotesize\ttfamily time\+\_\+t t\+\_\+reseed}



Definition at line \mbox{\hyperlink{arc4random_8c_source_l00002}{2}} of file \mbox{\hyperlink{arc4random_8c_source}{arc4random.\+c}}.

