\doxysection{include/osmocom/core/linuxrbtree.h File Reference}
\label{linuxrbtree_8h}\index{include/osmocom/core/linuxrbtree.h@{include/osmocom/core/linuxrbtree.h}}
{\ttfamily \#include $<$stdlib.\+h$>$}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ rb\+\_\+node}
\item 
struct \textbf{ rb\+\_\+root}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ RB\+\_\+\+RED}~0
\item 
\#define \textbf{ RB\+\_\+\+BLACK}~1
\item 
\#define \textbf{ rb\+\_\+parent}(r)~((struct \textbf{ rb\+\_\+node} $\ast$)((r)-\/$>$\textbf{ rb\+\_\+parent\+\_\+color} \& $\sim$3))
\item 
\#define \textbf{ rb\+\_\+color}(r)~((r)-\/$>$\textbf{ rb\+\_\+parent\+\_\+color} \& 1)
\item 
\#define \textbf{ rb\+\_\+is\+\_\+red}(r)~(!\textbf{ rb\+\_\+color}(r))
\item 
\#define \textbf{ rb\+\_\+is\+\_\+black}(r)~\textbf{ rb\+\_\+color}(r)
\item 
\#define \textbf{ rb\+\_\+set\+\_\+red}(r)~do \{ (r)-\/$>$\textbf{ rb\+\_\+parent\+\_\+color} \&= $\sim$1; \} while (0)
\item 
\#define \textbf{ rb\+\_\+set\+\_\+black}(r)~do \{ (r)-\/$>$\textbf{ rb\+\_\+parent\+\_\+color} $\vert$= 1; \} while (0)
\item 
\#define \textbf{ RB\+\_\+\+ROOT}~\{ NULL, \}
\item 
\#define \textbf{ rb\+\_\+entry}(ptr,  \textbf{ type},  member)~\textbf{ container\+\_\+of}(ptr, \textbf{ type}, member)
\item 
\#define \textbf{ RB\+\_\+\+EMPTY\+\_\+\+ROOT}(root)~((root)-\/$>$\textbf{ rb\+\_\+node} == NULL)
\item 
\#define \textbf{ RB\+\_\+\+EMPTY\+\_\+\+NODE}(\textbf{ node})~(\textbf{ rb\+\_\+parent}(\textbf{ node}) == \textbf{ node})
\item 
\#define \textbf{ RB\+\_\+\+CLEAR\+\_\+\+NODE}(\textbf{ node})~(\textbf{ rb\+\_\+set\+\_\+parent}(\textbf{ node}, \textbf{ node}))
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ rb\+\_\+node} \textbf{ \+\_\+\+\_\+attribute\+\_\+\+\_\+} ((aligned(sizeof(long))))
\item 
static void \textbf{ rb\+\_\+set\+\_\+parent} (struct \textbf{ rb\+\_\+node} $\ast$rb, struct \textbf{ rb\+\_\+node} $\ast$p)
\item 
static void \textbf{ rb\+\_\+set\+\_\+color} (struct \textbf{ rb\+\_\+node} $\ast$rb, int \textbf{ color})
\item 
void \textbf{ rb\+\_\+insert\+\_\+color} (struct \textbf{ rb\+\_\+node} $\ast$, struct \textbf{ rb\+\_\+root} $\ast$)
\item 
void \textbf{ rb\+\_\+erase} (struct \textbf{ rb\+\_\+node} $\ast$, struct \textbf{ rb\+\_\+root} $\ast$)
\item 
struct \textbf{ rb\+\_\+node} $\ast$ \textbf{ rb\+\_\+next} (const struct \textbf{ rb\+\_\+node} $\ast$)
\item 
struct \textbf{ rb\+\_\+node} $\ast$ \textbf{ rb\+\_\+prev} (const struct \textbf{ rb\+\_\+node} $\ast$)
\item 
struct \textbf{ rb\+\_\+node} $\ast$ \textbf{ rb\+\_\+first} (const struct \textbf{ rb\+\_\+root} $\ast$)
\item 
struct \textbf{ rb\+\_\+node} $\ast$ \textbf{ rb\+\_\+last} (const struct \textbf{ rb\+\_\+root} $\ast$)
\item 
void \textbf{ rb\+\_\+replace\+\_\+node} (struct \textbf{ rb\+\_\+node} $\ast$victim, struct \textbf{ rb\+\_\+node} $\ast$\+\_\+new, struct \textbf{ rb\+\_\+root} $\ast$root)
\item 
static void \textbf{ rb\+\_\+link\+\_\+node} (struct \textbf{ rb\+\_\+node} $\ast$\textbf{ node}, struct \textbf{ rb\+\_\+node} $\ast$parent, struct \textbf{ rb\+\_\+node} $\ast$$\ast$rb\+\_\+link)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
unsigned long \textbf{ rb\+\_\+parent\+\_\+color}
\item 
struct \textbf{ rb\+\_\+node} $\ast$ \textbf{ rb\+\_\+right}
\item 
struct \textbf{ rb\+\_\+node} $\ast$ \textbf{ rb\+\_\+left}
\item 
struct \textbf{ rb\+\_\+root} \textbf{ \+\_\+\+\_\+attribute\+\_\+\+\_\+}
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{linuxrbtree_8h_a9776c921e63661755728d05e55484d0b}} 
\index{linuxrbtree.h@{linuxrbtree.h}!RB\_BLACK@{RB\_BLACK}}
\index{RB\_BLACK@{RB\_BLACK}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{RB\_BLACK}
{\footnotesize\ttfamily \#define RB\+\_\+\+BLACK~1}

\mbox{\label{linuxrbtree_8h_af4c227a753b17d11d05f88a986e06395}} 
\index{linuxrbtree.h@{linuxrbtree.h}!RB\_CLEAR\_NODE@{RB\_CLEAR\_NODE}}
\index{RB\_CLEAR\_NODE@{RB\_CLEAR\_NODE}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{RB\_CLEAR\_NODE}
{\footnotesize\ttfamily \#define RB\+\_\+\+CLEAR\+\_\+\+NODE(\begin{DoxyParamCaption}\item[{}]{\textbf{ node} }\end{DoxyParamCaption})~(\textbf{ rb\+\_\+set\+\_\+parent}(\textbf{ node}, \textbf{ node}))}

\mbox{\label{linuxrbtree_8h_a0111f5e35de290b980d8e46fce6c8b76}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_color@{rb\_color}}
\index{rb\_color@{rb\_color}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_color}
{\footnotesize\ttfamily \#define rb\+\_\+color(\begin{DoxyParamCaption}\item[{}]{r }\end{DoxyParamCaption})~((r)-\/$>$\textbf{ rb\+\_\+parent\+\_\+color} \& 1)}

\mbox{\label{linuxrbtree_8h_ae8779d71fe4e4c61793191c23853b166}} 
\index{linuxrbtree.h@{linuxrbtree.h}!RB\_EMPTY\_NODE@{RB\_EMPTY\_NODE}}
\index{RB\_EMPTY\_NODE@{RB\_EMPTY\_NODE}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{RB\_EMPTY\_NODE}
{\footnotesize\ttfamily \#define RB\+\_\+\+EMPTY\+\_\+\+NODE(\begin{DoxyParamCaption}\item[{}]{\textbf{ node} }\end{DoxyParamCaption})~(\textbf{ rb\+\_\+parent}(\textbf{ node}) == \textbf{ node})}

\mbox{\label{linuxrbtree_8h_a27d6d30750b25bc59c04ad79f048a035}} 
\index{linuxrbtree.h@{linuxrbtree.h}!RB\_EMPTY\_ROOT@{RB\_EMPTY\_ROOT}}
\index{RB\_EMPTY\_ROOT@{RB\_EMPTY\_ROOT}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{RB\_EMPTY\_ROOT}
{\footnotesize\ttfamily \#define RB\+\_\+\+EMPTY\+\_\+\+ROOT(\begin{DoxyParamCaption}\item[{}]{root }\end{DoxyParamCaption})~((root)-\/$>$\textbf{ rb\+\_\+node} == NULL)}

\mbox{\label{linuxrbtree_8h_aedf476fcb61d6b2c7e77d811dfd9071a}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_entry@{rb\_entry}}
\index{rb\_entry@{rb\_entry}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_entry}
{\footnotesize\ttfamily \#define rb\+\_\+entry(\begin{DoxyParamCaption}\item[{}]{ptr,  }\item[{}]{\textbf{ type},  }\item[{}]{member }\end{DoxyParamCaption})~\textbf{ container\+\_\+of}(ptr, \textbf{ type}, member)}

\mbox{\label{linuxrbtree_8h_acd15e6c488eae84eb413571d3ca084cd}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_is\_black@{rb\_is\_black}}
\index{rb\_is\_black@{rb\_is\_black}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_is\_black}
{\footnotesize\ttfamily \#define rb\+\_\+is\+\_\+black(\begin{DoxyParamCaption}\item[{}]{r }\end{DoxyParamCaption})~\textbf{ rb\+\_\+color}(r)}

\mbox{\label{linuxrbtree_8h_a1832867663b9506b87da92e1ee33644e}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_is\_red@{rb\_is\_red}}
\index{rb\_is\_red@{rb\_is\_red}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_is\_red}
{\footnotesize\ttfamily \#define rb\+\_\+is\+\_\+red(\begin{DoxyParamCaption}\item[{}]{r }\end{DoxyParamCaption})~(!\textbf{ rb\+\_\+color}(r))}

\mbox{\label{linuxrbtree_8h_aaae92809c5b07a5fda0006a0d1350a55}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_parent@{rb\_parent}}
\index{rb\_parent@{rb\_parent}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_parent}
{\footnotesize\ttfamily \#define rb\+\_\+parent(\begin{DoxyParamCaption}\item[{}]{r }\end{DoxyParamCaption})~((struct \textbf{ rb\+\_\+node} $\ast$)((r)-\/$>$\textbf{ rb\+\_\+parent\+\_\+color} \& $\sim$3))}

\mbox{\label{linuxrbtree_8h_aebf73e751fbdd4b625db308dbf04d0d2}} 
\index{linuxrbtree.h@{linuxrbtree.h}!RB\_RED@{RB\_RED}}
\index{RB\_RED@{RB\_RED}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{RB\_RED}
{\footnotesize\ttfamily \#define RB\+\_\+\+RED~0}

\mbox{\label{linuxrbtree_8h_a0dc291988d7286d8dd4268066e9031a4}} 
\index{linuxrbtree.h@{linuxrbtree.h}!RB\_ROOT@{RB\_ROOT}}
\index{RB\_ROOT@{RB\_ROOT}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{RB\_ROOT}
{\footnotesize\ttfamily \#define RB\+\_\+\+ROOT~\{ NULL, \}}

\mbox{\label{linuxrbtree_8h_aadcb2e2b62b98d37398abdc1ca840f71}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_set\_black@{rb\_set\_black}}
\index{rb\_set\_black@{rb\_set\_black}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_set\_black}
{\footnotesize\ttfamily \#define rb\+\_\+set\+\_\+black(\begin{DoxyParamCaption}\item[{}]{r }\end{DoxyParamCaption})~do \{ (r)-\/$>$\textbf{ rb\+\_\+parent\+\_\+color} $\vert$= 1; \} while (0)}

\mbox{\label{linuxrbtree_8h_a447d2625cdef78303039847c03504454}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_set\_red@{rb\_set\_red}}
\index{rb\_set\_red@{rb\_set\_red}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_set\_red}
{\footnotesize\ttfamily \#define rb\+\_\+set\+\_\+red(\begin{DoxyParamCaption}\item[{}]{r }\end{DoxyParamCaption})~do \{ (r)-\/$>$\textbf{ rb\+\_\+parent\+\_\+color} \&= $\sim$1; \} while (0)}



\doxysubsection{Function Documentation}
\mbox{\label{linuxrbtree_8h_a898bb3a0a36117a49b04f56ecd626f39}} 
\index{linuxrbtree.h@{linuxrbtree.h}!\_\_attribute\_\_@{\_\_attribute\_\_}}
\index{\_\_attribute\_\_@{\_\_attribute\_\_}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{\_\_attribute\_\_()}
{\footnotesize\ttfamily struct \textbf{ rb\+\_\+node} \+\_\+\+\_\+attribute\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{(aligned(sizeof(long)))}]{ }\end{DoxyParamCaption})}

\mbox{\label{linuxrbtree_8h_a9018e2db66ec88ea4a879015ff6fb214}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_erase@{rb\_erase}}
\index{rb\_erase@{rb\_erase}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_erase()}
{\footnotesize\ttfamily void rb\+\_\+erase (\begin{DoxyParamCaption}\item[{struct \textbf{ rb\+\_\+node} $\ast$}]{node,  }\item[{struct \textbf{ rb\+\_\+root} $\ast$}]{root }\end{DoxyParamCaption})}



References \textbf{ \+\_\+\+\_\+rb\+\_\+erase\+\_\+color()}, \textbf{ color()}, \textbf{ node}, \textbf{ RB\+\_\+\+BLACK}, \textbf{ rb\+\_\+color}, \textbf{ rb\+\_\+left}, \textbf{ rb\+\_\+node\+::rb\+\_\+left}, \textbf{ rb\+\_\+root\+::rb\+\_\+node}, \textbf{ rb\+\_\+parent}, \textbf{ rb\+\_\+node\+::rb\+\_\+parent\+\_\+color}, \textbf{ rb\+\_\+node\+::rb\+\_\+right}, and \textbf{ rb\+\_\+set\+\_\+parent()}.



Referenced by \textbf{ osmo\+\_\+timer\+\_\+del()}.

\mbox{\label{linuxrbtree_8h_abbe4cb6b24397ccc31f7dd013b7c024e}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_first@{rb\_first}}
\index{rb\_first@{rb\_first}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_first()}
{\footnotesize\ttfamily struct \textbf{ rb\+\_\+node} $\ast$ rb\+\_\+first (\begin{DoxyParamCaption}\item[{const struct \textbf{ rb\+\_\+root} $\ast$}]{root }\end{DoxyParamCaption})}



References \textbf{ n}, and \textbf{ rb\+\_\+root\+::rb\+\_\+node}.



Referenced by \textbf{ osmo\+\_\+timers\+\_\+check()}, \textbf{ osmo\+\_\+timers\+\_\+prepare()}, and \textbf{ osmo\+\_\+timers\+\_\+update()}.

\mbox{\label{linuxrbtree_8h_a79c2b572cc73c5ea1a7362fa1b5ee460}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_insert\_color@{rb\_insert\_color}}
\index{rb\_insert\_color@{rb\_insert\_color}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_insert\_color()}
{\footnotesize\ttfamily void rb\+\_\+insert\+\_\+color (\begin{DoxyParamCaption}\item[{struct \textbf{ rb\+\_\+node} $\ast$}]{node,  }\item[{struct \textbf{ rb\+\_\+root} $\ast$}]{root }\end{DoxyParamCaption})}



References \textbf{ \+\_\+\+\_\+rb\+\_\+rotate\+\_\+left()}, \textbf{ \+\_\+\+\_\+rb\+\_\+rotate\+\_\+right()}, \textbf{ node}, \textbf{ rb\+\_\+is\+\_\+red}, \textbf{ rb\+\_\+node\+::rb\+\_\+left}, \textbf{ rb\+\_\+root\+::rb\+\_\+node}, \textbf{ rb\+\_\+parent}, \textbf{ rb\+\_\+node\+::rb\+\_\+right}, \textbf{ rb\+\_\+set\+\_\+black}, and \textbf{ rb\+\_\+set\+\_\+red}.



Referenced by \textbf{ \+\_\+\+\_\+add\+\_\+timer()}.

\mbox{\label{linuxrbtree_8h_acfdd2a0047e7285a3f23e38aee8f8312}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_last@{rb\_last}}
\index{rb\_last@{rb\_last}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_last()}
{\footnotesize\ttfamily struct \textbf{ rb\+\_\+node} $\ast$ rb\+\_\+last (\begin{DoxyParamCaption}\item[{const struct \textbf{ rb\+\_\+root} $\ast$}]{root }\end{DoxyParamCaption})}



References \textbf{ n}, and \textbf{ rb\+\_\+root\+::rb\+\_\+node}.

\mbox{\label{linuxrbtree_8h_a2b01db609bc68b3e23cf684eb36c38d7}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_link\_node@{rb\_link\_node}}
\index{rb\_link\_node@{rb\_link\_node}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_link\_node()}
{\footnotesize\ttfamily static void rb\+\_\+link\+\_\+node (\begin{DoxyParamCaption}\item[{struct \textbf{ rb\+\_\+node} $\ast$}]{node,  }\item[{struct \textbf{ rb\+\_\+node} $\ast$}]{parent,  }\item[{struct \textbf{ rb\+\_\+node} $\ast$$\ast$}]{rb\+\_\+link }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ node}.



Referenced by \textbf{ \+\_\+\+\_\+add\+\_\+timer()}.

\mbox{\label{linuxrbtree_8h_a44b77ee4515e39837266e300dd1bc56e}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_next@{rb\_next}}
\index{rb\_next@{rb\_next}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_next()}
{\footnotesize\ttfamily struct \textbf{ rb\+\_\+node} $\ast$ rb\+\_\+next (\begin{DoxyParamCaption}\item[{const struct \textbf{ rb\+\_\+node} $\ast$}]{node }\end{DoxyParamCaption})}



References \textbf{ node}, \textbf{ rb\+\_\+parent}, and \textbf{ rb\+\_\+node\+::rb\+\_\+right}.



Referenced by \textbf{ osmo\+\_\+timers\+\_\+check()}, and \textbf{ osmo\+\_\+timers\+\_\+update()}.

\mbox{\label{linuxrbtree_8h_abf905407a87847e0738bec0e384f87de}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_prev@{rb\_prev}}
\index{rb\_prev@{rb\_prev}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_prev()}
{\footnotesize\ttfamily struct \textbf{ rb\+\_\+node} $\ast$ rb\+\_\+prev (\begin{DoxyParamCaption}\item[{const struct \textbf{ rb\+\_\+node} $\ast$}]{node }\end{DoxyParamCaption})}



References \textbf{ node}, \textbf{ rb\+\_\+node\+::rb\+\_\+left}, and \textbf{ rb\+\_\+parent}.

\mbox{\label{linuxrbtree_8h_aadd8f0e4b7d85f8bd922bd9287c94c68}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_replace\_node@{rb\_replace\_node}}
\index{rb\_replace\_node@{rb\_replace\_node}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_replace\_node()}
{\footnotesize\ttfamily void rb\+\_\+replace\+\_\+node (\begin{DoxyParamCaption}\item[{struct \textbf{ rb\+\_\+node} $\ast$}]{victim,  }\item[{struct \textbf{ rb\+\_\+node} $\ast$}]{\+\_\+new,  }\item[{struct \textbf{ rb\+\_\+root} $\ast$}]{root }\end{DoxyParamCaption})}



References \textbf{ rb\+\_\+node\+::rb\+\_\+left}, \textbf{ rb\+\_\+root\+::rb\+\_\+node}, \textbf{ rb\+\_\+parent}, \textbf{ rb\+\_\+node\+::rb\+\_\+right}, and \textbf{ rb\+\_\+set\+\_\+parent()}.

\mbox{\label{linuxrbtree_8h_a3e6f547a5b2a8511dbc4f7d50ba5fb78}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_set\_color@{rb\_set\_color}}
\index{rb\_set\_color@{rb\_set\_color}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_set\_color()}
{\footnotesize\ttfamily static void rb\+\_\+set\+\_\+color (\begin{DoxyParamCaption}\item[{struct \textbf{ rb\+\_\+node} $\ast$}]{rb,  }\item[{int}]{color }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ color()}, and \textbf{ rb\+\_\+node\+::rb\+\_\+parent\+\_\+color}.



Referenced by \textbf{ \+\_\+\+\_\+rb\+\_\+erase\+\_\+color()}.

\mbox{\label{linuxrbtree_8h_a0a657d27da9f39593191077295040631}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_set\_parent@{rb\_set\_parent}}
\index{rb\_set\_parent@{rb\_set\_parent}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_set\_parent()}
{\footnotesize\ttfamily static void rb\+\_\+set\+\_\+parent (\begin{DoxyParamCaption}\item[{struct \textbf{ rb\+\_\+node} $\ast$}]{rb,  }\item[{struct \textbf{ rb\+\_\+node} $\ast$}]{p }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ rb\+\_\+node\+::rb\+\_\+parent\+\_\+color}.



Referenced by \textbf{ \+\_\+\+\_\+rb\+\_\+rotate\+\_\+left()}, \textbf{ \+\_\+\+\_\+rb\+\_\+rotate\+\_\+right()}, \textbf{ rb\+\_\+erase()}, and \textbf{ rb\+\_\+replace\+\_\+node()}.



\doxysubsection{Variable Documentation}
\mbox{\label{linuxrbtree_8h_a9e944dcf7b9153307c910d2c22cd3cfd}} 
\index{linuxrbtree.h@{linuxrbtree.h}!\_\_attribute\_\_@{\_\_attribute\_\_}}
\index{\_\_attribute\_\_@{\_\_attribute\_\_}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{\_\_attribute\_\_}
{\footnotesize\ttfamily struct \textbf{ rb\+\_\+root} \+\_\+\+\_\+attribute\+\_\+\+\_\+}

\mbox{\label{linuxrbtree_8h_a487048a96b8ad77c589ef1ac28933953}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_left@{rb\_left}}
\index{rb\_left@{rb\_left}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_left}
{\footnotesize\ttfamily struct \textbf{ rb\+\_\+node}$\ast$ rb\+\_\+left}



Referenced by \textbf{ rb\+\_\+erase()}.

\mbox{\label{linuxrbtree_8h_af69516773850d32a1a9127ac51272028}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_parent\_color@{rb\_parent\_color}}
\index{rb\_parent\_color@{rb\_parent\_color}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_parent\_color}
{\footnotesize\ttfamily unsigned long rb\+\_\+parent\+\_\+color}

\mbox{\label{linuxrbtree_8h_a8c6b55e0df2290c4a6dc500d25602258}} 
\index{linuxrbtree.h@{linuxrbtree.h}!rb\_right@{rb\_right}}
\index{rb\_right@{rb\_right}!linuxrbtree.h@{linuxrbtree.h}}
\doxysubsubsection{rb\_right}
{\footnotesize\ttfamily struct \textbf{ rb\+\_\+node}$\ast$ rb\+\_\+right}

