mirror of
https://github.com/ChronosX88/netsukuku.git
synced 2024-11-26 20:22:20 +00:00
576 lines
100 KiB
HTML
576 lines
100 KiB
HTML
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
|
<head>
|
||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||
|
<meta name="generator" content="Doxygen 1.8.6"/>
|
||
|
<title>The Netsukuku Project: src/libiptc/linux_list.h Source File</title>
|
||
|
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
|
||
|
<script type="text/javascript" src="../../jquery.js"></script>
|
||
|
<script type="text/javascript" src="../../dynsections.js"></script>
|
||
|
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
|
||
|
<script type="text/javascript" src="../../resize.js"></script>
|
||
|
<script type="text/javascript" src="../../navtree.js"></script>
|
||
|
<script type="text/javascript">
|
||
|
$(document).ready(initResizable);
|
||
|
$(window).load(resizeHeight);
|
||
|
</script>
|
||
|
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
|
||
|
<script type="text/javascript" src="../../search/search.js"></script>
|
||
|
<script type="text/javascript">
|
||
|
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
||
|
</script>
|
||
|
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
|
||
|
</head>
|
||
|
<body>
|
||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||
|
<div id="titlearea">
|
||
|
<table cellspacing="0" cellpadding="0">
|
||
|
<tbody>
|
||
|
<tr style="height: 56px;">
|
||
|
<td style="padding-left: 0.5em;">
|
||
|
<div id="projectname">The Netsukuku Project
|
||
|
 <span id="projectnumber">0.0.9</span>
|
||
|
</div>
|
||
|
<div id="projectbrief">An Alternative routing method</div>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</tbody>
|
||
|
</table>
|
||
|
</div>
|
||
|
<!-- end header part -->
|
||
|
<!-- Generated by Doxygen 1.8.6 -->
|
||
|
<script type="text/javascript">
|
||
|
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
|
||
|
</script>
|
||
|
<div id="navrow1" class="tabs">
|
||
|
<ul class="tablist">
|
||
|
<li><a href="../../index.html"><span>Main Page</span></a></li>
|
||
|
<li><a href="../../annotated.html"><span>Data Structures</span></a></li>
|
||
|
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
|
||
|
<li>
|
||
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
||
|
<span class="left">
|
||
|
<img id="MSearchSelect" src="../../search/mag_sel.png"
|
||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||
|
alt=""/>
|
||
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
||
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||
|
</span><span class="right">
|
||
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="../../search/close.png" alt=""/></a>
|
||
|
</span>
|
||
|
</div>
|
||
|
</li>
|
||
|
</ul>
|
||
|
</div>
|
||
|
<div id="navrow2" class="tabs2">
|
||
|
<ul class="tablist">
|
||
|
<li><a href="../../files.html"><span>File List</span></a></li>
|
||
|
<li><a href="../../globals.html"><span>Globals</span></a></li>
|
||
|
</ul>
|
||
|
</div>
|
||
|
</div><!-- top -->
|
||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||
|
<div id="nav-tree">
|
||
|
<div id="nav-tree-contents">
|
||
|
<div id="nav-sync" class="sync"></div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||
|
class="ui-resizable-handle">
|
||
|
</div>
|
||
|
</div>
|
||
|
<script type="text/javascript">
|
||
|
$(document).ready(function(){initNavTree('da/d00/linux__list_8h_source.html','../../');});
|
||
|
</script>
|
||
|
<div id="doc-content">
|
||
|
<!-- window showing the filter options -->
|
||
|
<div id="MSearchSelectWindow"
|
||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a></div>
|
||
|
|
||
|
<!-- iframe showing the search results (closed by default) -->
|
||
|
<div id="MSearchResultsWindow">
|
||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||
|
name="MSearchResults" id="MSearchResults">
|
||
|
</iframe>
|
||
|
</div>
|
||
|
|
||
|
<div class="header">
|
||
|
<div class="headertitle">
|
||
|
<div class="title">linux_list.h</div> </div>
|
||
|
</div><!--header-->
|
||
|
<div class="contents">
|
||
|
<a href="../../da/d00/linux__list_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#ifndef _LINUX_LIST_H</span></div>
|
||
|
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#define _LINUX_LIST_H</span></div>
|
||
|
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> </div>
|
||
|
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#undef offsetof</span></div>
|
||
|
<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a276e8a32e0bbf024aadd9420b8f2d3b3"> 5</a></span> <span class="preprocessor">#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)</span></div>
|
||
|
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> </div>
|
||
|
<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#af8c317a42292b61c93aae91e59118a46"> 15</a></span> <span class="preprocessor">#define container_of(ptr, type, member) ({ \</span></div>
|
||
|
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor"> const typeof( ((type *)0)->member ) *__mptr = (ptr); \</span></div>
|
||
|
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor"> (type *)( (char *)__mptr - offsetof(type,member) );})</span></div>
|
||
|
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
|
||
|
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">/*</span></div>
|
||
|
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * Check at compile time that something is of a particular type.</span></div>
|
||
|
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * Always evaluates to 1 so you may use it easily in comparisons.</span></div>
|
||
|
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> */</span></div>
|
||
|
<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a8b644e688b339331a7c1f93a39c379ad"> 23</a></span> <span class="preprocessor">#define typecheck(type,x) \</span></div>
|
||
|
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">({ type __dummy; \</span></div>
|
||
|
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"> typeof(x) __dummy2; \</span></div>
|
||
|
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor"> (void)(&__dummy == &__dummy2); \</span></div>
|
||
|
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"> 1; \</span></div>
|
||
|
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">})</span></div>
|
||
|
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
|
||
|
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b"> 30</a></span> <span class="preprocessor">#define prefetch(x) 1</span></div>
|
||
|
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
|
||
|
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">/* empty define to make this work in userspace -HW */</span></div>
|
||
|
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#af5af5daeacc75c413fb9a3f910e9fb32"> 33</a></span> <span class="preprocessor">#define smp_wmb()</span></div>
|
||
|
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
|
||
|
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">/*</span></div>
|
||
|
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment"> * These are non-NULL pointers that will result in page faults</span></div>
|
||
|
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment"> * under normal circumstances, used to verify that nobody uses</span></div>
|
||
|
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment"> * non-initialized list entries.</span></div>
|
||
|
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment"> */</span></div>
|
||
|
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a96b8b53821aa079fc5acc2ecac6a309f"> 40</a></span> <span class="preprocessor">#define LIST_POISON1 ((void *) 0x00100100)</span></div>
|
||
|
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a32e88152ac3cebc4352f9f6254e786ff"> 41</a></span> <span class="preprocessor">#define LIST_POISON2 ((void *) 0x00200200)</span></div>
|
||
|
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
|
||
|
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">/*</span></div>
|
||
|
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> * Simple doubly linked list implementation.</span></div>
|
||
|
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> *</span></div>
|
||
|
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> * Some of the internal functions ("__xxx") are useful when</span></div>
|
||
|
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> * manipulating whole lists rather than single entries, as</span></div>
|
||
|
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> * sometimes we already know the next/prev entries and we can</span></div>
|
||
|
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"> * generate better code by using them directly rather than</span></div>
|
||
|
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> * using the generic single-entry routines.</span></div>
|
||
|
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"> */</span></div>
|
||
|
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
|
||
|
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="../../d9/d93/structlist__head.html"> 53</a></span> <span class="keyword">struct </span><a class="code" href="../../d9/d93/structlist__head.html">list_head</a> {</div>
|
||
|
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004"> 54</a></span>  <span class="keyword">struct </span><a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *<a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a>, *<a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a>;</div>
|
||
|
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> };</div>
|
||
|
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
|
||
|
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a4642d4b7df28478bb762fe43c85b5c63"> 57</a></span> <span class="preprocessor">#define LIST_HEAD_INIT(name) { &(name), &(name) }</span></div>
|
||
|
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
|
||
|
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a42f0e72af970a790b60a740af8c9ecd0"> 59</a></span> <span class="preprocessor">#define LIST_HEAD(name) \</span></div>
|
||
|
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"> struct list_head name = LIST_HEAD_INIT(name)</span></div>
|
||
|
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
|
||
|
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a0ffe9d28c36d7b018a9cfae33bae45c0"> 62</a></span> <span class="preprocessor">#define INIT_LIST_HEAD(ptr) do { \</span></div>
|
||
|
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"> (ptr)->next = (ptr); (ptr)->prev = (ptr); \</span></div>
|
||
|
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">} while (0)</span></div>
|
||
|
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
|
||
|
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment">/*</span></div>
|
||
|
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment"> * Insert a new entry between two known consecutive entries.</span></div>
|
||
|
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment"> *</span></div>
|
||
|
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment"> * This is only for internal list manipulation where we know</span></div>
|
||
|
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment"> * the prev/next entries already!</span></div>
|
||
|
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment"> */</span></div>
|
||
|
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a8a28f150a191624bf6923a48cdace7e3"> 72</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#a8a28f150a191624bf6923a48cdace7e3">__list_add</a>(<span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *<span class="keyword">new</span>,</div>
|
||
|
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *<a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a>,</div>
|
||
|
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *<a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a>)</div>
|
||
|
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> {</div>
|
||
|
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  next-><a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a> = <span class="keyword">new</span>;</div>
|
||
|
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">new</span>-><a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a> = <a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a>;</div>
|
||
|
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keyword">new</span>-><a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a> = <a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a>;</div>
|
||
|
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  prev-><a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a> = <span class="keyword">new</span>;</div>
|
||
|
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> }</div>
|
||
|
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
|
||
|
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a0373c4b3c8ce51a451a569ad978b32e1"> 90</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#a0373c4b3c8ce51a451a569ad978b32e1">list_add</a>(<span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *<span class="keyword">new</span>, <span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *head)</div>
|
||
|
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> {</div>
|
||
|
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="../../da/d00/linux__list_8h.html#a8a28f150a191624bf6923a48cdace7e3">__list_add</a>(<span class="keyword">new</span>, head, head-><a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a>);</div>
|
||
|
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> }</div>
|
||
|
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
|
||
|
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a588bec046f1e9797b33a5c5ab250f447"> 103</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#a588bec046f1e9797b33a5c5ab250f447">list_add_tail</a>(<span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *<span class="keyword">new</span>, <span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *head)</div>
|
||
|
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> {</div>
|
||
|
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="../../da/d00/linux__list_8h.html#a8a28f150a191624bf6923a48cdace7e3">__list_add</a>(<span class="keyword">new</span>, head-><a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a>, head);</div>
|
||
|
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> }</div>
|
||
|
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
|
||
|
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment">/*</span></div>
|
||
|
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment"> * Insert a new entry between two known consecutive entries.</span></div>
|
||
|
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment"> *</span></div>
|
||
|
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment"> * This is only for internal list manipulation where we know</span></div>
|
||
|
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment"> * the prev/next entries already!</span></div>
|
||
|
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment"> */</span></div>
|
||
|
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a5f5c28e8a54fd6bfbe9a9419aefddb88"> 114</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#a5f5c28e8a54fd6bfbe9a9419aefddb88">__list_add_rcu</a>(<span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> * <span class="keyword">new</span>,</div>
|
||
|
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> * <a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a>, <span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> * <a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a>)</div>
|
||
|
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> {</div>
|
||
|
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keyword">new</span>->next = <a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a>;</div>
|
||
|
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keyword">new</span>-><a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a> = <a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a>;</div>
|
||
|
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="../../da/d00/linux__list_8h.html#af5af5daeacc75c413fb9a3f910e9fb32">smp_wmb</a>();</div>
|
||
|
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  next-><a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a> = <span class="keyword">new</span>;</div>
|
||
|
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  prev-><a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a> = <span class="keyword">new</span>;</div>
|
||
|
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> }</div>
|
||
|
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
|
||
|
<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a087d5457d659b54dafff3b729c867192"> 140</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#a087d5457d659b54dafff3b729c867192">list_add_rcu</a>(<span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *<span class="keyword">new</span>, <span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *head)</div>
|
||
|
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> {</div>
|
||
|
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="../../da/d00/linux__list_8h.html#a5f5c28e8a54fd6bfbe9a9419aefddb88">__list_add_rcu</a>(<span class="keyword">new</span>, head, head-><a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a>);</div>
|
||
|
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> }</div>
|
||
|
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
|
||
|
<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a9c0a5060da14beb9e5aac0333a0162e1"> 161</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#a9c0a5060da14beb9e5aac0333a0162e1">list_add_tail_rcu</a>(<span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *<span class="keyword">new</span>,</div>
|
||
|
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *head)</div>
|
||
|
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> {</div>
|
||
|
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="../../da/d00/linux__list_8h.html#a5f5c28e8a54fd6bfbe9a9419aefddb88">__list_add_rcu</a>(<span class="keyword">new</span>, head-><a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a>, head);</div>
|
||
|
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> }</div>
|
||
|
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
|
||
|
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="comment">/*</span></div>
|
||
|
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment"> * Delete a list entry by making the prev/next entries</span></div>
|
||
|
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment"> * point to each other.</span></div>
|
||
|
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment"> *</span></div>
|
||
|
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment"> * This is only for internal list manipulation where we know</span></div>
|
||
|
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment"> * the prev/next entries already!</span></div>
|
||
|
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="comment"> */</span></div>
|
||
|
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a24b474717d65a296695e8b79b4adefda"> 174</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#a24b474717d65a296695e8b79b4adefda">__list_del</a>(<span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> * <a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a>, <span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> * <a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a>)</div>
|
||
|
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> {</div>
|
||
|
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  next-><a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a> = <a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a>;</div>
|
||
|
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  prev-><a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a> = <a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a>;</div>
|
||
|
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> }</div>
|
||
|
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
|
||
|
<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#ab1708206f0f7e0a56550b35372203ba5"> 186</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#ab1708206f0f7e0a56550b35372203ba5">list_del</a>(<span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *entry)</div>
|
||
|
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> {</div>
|
||
|
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="../../da/d00/linux__list_8h.html#a24b474717d65a296695e8b79b4adefda">__list_del</a>(entry-><a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a>, entry-><a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a>);</div>
|
||
|
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  entry-><a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a> = <a class="code" href="../../da/d00/linux__list_8h.html#a96b8b53821aa079fc5acc2ecac6a309f">LIST_POISON1</a>;</div>
|
||
|
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  entry-><a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a> = <a class="code" href="../../da/d00/linux__list_8h.html#a32e88152ac3cebc4352f9f6254e786ff">LIST_POISON2</a>;</div>
|
||
|
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> }</div>
|
||
|
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div>
|
||
|
<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a3495fef4758575d5f7524d1585043ff0"> 217</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#a3495fef4758575d5f7524d1585043ff0">list_del_rcu</a>(<span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *entry)</div>
|
||
|
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> {</div>
|
||
|
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="../../da/d00/linux__list_8h.html#a24b474717d65a296695e8b79b4adefda">__list_del</a>(entry-><a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a>, entry-><a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a>);</div>
|
||
|
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  entry-><a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a> = <a class="code" href="../../da/d00/linux__list_8h.html#a32e88152ac3cebc4352f9f6254e786ff">LIST_POISON2</a>;</div>
|
||
|
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> }</div>
|
||
|
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
|
||
|
<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#ae1cde0f50b85945cfff23be4fc1586f4"> 227</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#ae1cde0f50b85945cfff23be4fc1586f4">list_del_init</a>(<span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *entry)</div>
|
||
|
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> {</div>
|
||
|
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="../../da/d00/linux__list_8h.html#a24b474717d65a296695e8b79b4adefda">__list_del</a>(entry-><a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a>, entry-><a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a>);</div>
|
||
|
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="../../da/d00/linux__list_8h.html#a0ffe9d28c36d7b018a9cfae33bae45c0">INIT_LIST_HEAD</a>(entry);</div>
|
||
|
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> }</div>
|
||
|
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div>
|
||
|
<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#aee8df43e41969c2272acfd6ed6e75d4c"> 238</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#aee8df43e41969c2272acfd6ed6e75d4c">list_move</a>(<span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *list, <span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *head)</div>
|
||
|
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> {</div>
|
||
|
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="../../da/d00/linux__list_8h.html#a24b474717d65a296695e8b79b4adefda">__list_del</a>(list-><a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a>, list-><a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a>);</div>
|
||
|
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <a class="code" href="../../da/d00/linux__list_8h.html#a0373c4b3c8ce51a451a569ad978b32e1">list_add</a>(list, head);</div>
|
||
|
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> }</div>
|
||
|
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div>
|
||
|
<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a1c5ac6a6b04a03f5782e818daacf96e9"> 249</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#a1c5ac6a6b04a03f5782e818daacf96e9">list_move_tail</a>(<span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *list,</div>
|
||
|
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *head)</div>
|
||
|
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> {</div>
|
||
|
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <a class="code" href="../../da/d00/linux__list_8h.html#a24b474717d65a296695e8b79b4adefda">__list_del</a>(list-><a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a>, list-><a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a>);</div>
|
||
|
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <a class="code" href="../../da/d00/linux__list_8h.html#a588bec046f1e9797b33a5c5ab250f447">list_add_tail</a>(list, head);</div>
|
||
|
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> }</div>
|
||
|
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div>
|
||
|
<div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a6601e54d8f27ab290ee6819f7e2127b7"> 260</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="../../da/d00/linux__list_8h.html#a6601e54d8f27ab290ee6819f7e2127b7">list_empty</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *head)</div>
|
||
|
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> {</div>
|
||
|
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">return</span> head-><a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a> == head;</div>
|
||
|
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> }</div>
|
||
|
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div>
|
||
|
<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#aba7d3f2ac5d41b9040e7341cab21591b"> 277</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="../../da/d00/linux__list_8h.html#aba7d3f2ac5d41b9040e7341cab21591b">list_empty_careful</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *head)</div>
|
||
|
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> {</div>
|
||
|
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keyword">struct </span><a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *<a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a> = head-><a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a>;</div>
|
||
|
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">return</span> (next == head) && (next == head-><a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a>);</div>
|
||
|
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> }</div>
|
||
|
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div>
|
||
|
<div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a25979c80a2d71dd02ada121a46c71a59"> 283</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#a25979c80a2d71dd02ada121a46c71a59">__list_splice</a>(<span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *list,</div>
|
||
|
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *head)</div>
|
||
|
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> {</div>
|
||
|
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keyword">struct </span><a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *first = list-><a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a>;</div>
|
||
|
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keyword">struct </span><a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *last = list-><a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a>;</div>
|
||
|
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keyword">struct </span><a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *at = head-><a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a>;</div>
|
||
|
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div>
|
||
|
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  first-><a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a> = head;</div>
|
||
|
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  head-><a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a> = first;</div>
|
||
|
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div>
|
||
|
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  last-><a class="code" href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">next</a> = at;</div>
|
||
|
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  at-><a class="code" href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">prev</a> = last;</div>
|
||
|
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> }</div>
|
||
|
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> </div>
|
||
|
<div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a2c4399cfbde5e5d5eddf2e13c97bd5d5"> 302</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#a2c4399cfbde5e5d5eddf2e13c97bd5d5">list_splice</a>(<span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *list, <span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *head)</div>
|
||
|
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> {</div>
|
||
|
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keywordflow">if</span> (!<a class="code" href="../../da/d00/linux__list_8h.html#a6601e54d8f27ab290ee6819f7e2127b7">list_empty</a>(list))</div>
|
||
|
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="code" href="../../da/d00/linux__list_8h.html#a25979c80a2d71dd02ada121a46c71a59">__list_splice</a>(list, head);</div>
|
||
|
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> }</div>
|
||
|
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div>
|
||
|
<div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a948b15519bb72e3d42f3e56975580d30"> 315</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#a948b15519bb72e3d42f3e56975580d30">list_splice_init</a>(<span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *list,</div>
|
||
|
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keyword">struct</span> <a class="code" href="../../d9/d93/structlist__head.html">list_head</a> *head)</div>
|
||
|
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> {</div>
|
||
|
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">if</span> (!<a class="code" href="../../da/d00/linux__list_8h.html#a6601e54d8f27ab290ee6819f7e2127b7">list_empty</a>(list)) {</div>
|
||
|
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <a class="code" href="../../da/d00/linux__list_8h.html#a25979c80a2d71dd02ada121a46c71a59">__list_splice</a>(list, head);</div>
|
||
|
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <a class="code" href="../../da/d00/linux__list_8h.html#a0ffe9d28c36d7b018a9cfae33bae45c0">INIT_LIST_HEAD</a>(list);</div>
|
||
|
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  }</div>
|
||
|
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> }</div>
|
||
|
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div>
|
||
|
<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de"> 330</a></span> <span class="preprocessor">#define list_entry(ptr, type, member) \</span></div>
|
||
|
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="preprocessor"> container_of(ptr, type, member)</span></div>
|
||
|
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div>
|
||
|
<div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#ab8b24e6660ab3760c923e4b4db3fa502"> 338</a></span> <span class="preprocessor">#define list_for_each(pos, head) \</span></div>
|
||
|
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="preprocessor"> for (pos = (head)->next, prefetch(pos->next); pos != (head); \</span></div>
|
||
|
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor"> pos = pos->next, prefetch(pos->next))</span></div>
|
||
|
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div>
|
||
|
<div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#abfd5aa736021dace98d07ff2518a698d"> 352</a></span> <span class="preprocessor">#define __list_for_each(pos, head) \</span></div>
|
||
|
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="preprocessor"> for (pos = (head)->next; pos != (head); pos = pos->next)</span></div>
|
||
|
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div>
|
||
|
<div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a19fc06b83f3502a83ce566b8887e6aec"> 360</a></span> <span class="preprocessor">#define list_for_each_prev(pos, head) \</span></div>
|
||
|
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="preprocessor"> for (pos = (head)->prev, prefetch(pos->prev); pos != (head); \</span></div>
|
||
|
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="preprocessor"> pos = pos->prev, prefetch(pos->prev))</span></div>
|
||
|
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div>
|
||
|
<div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a9e4b9328744994b9d3878f5dad75c09f"> 370</a></span> <span class="preprocessor">#define list_for_each_safe(pos, n, head) \</span></div>
|
||
|
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="preprocessor"> for (pos = (head)->next, n = pos->next; pos != (head); \</span></div>
|
||
|
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="preprocessor"> pos = n, n = pos->next)</span></div>
|
||
|
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div>
|
||
|
<div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a9b782fefb5ab71ce9762182e45a615e1"> 380</a></span> <span class="preprocessor">#define list_for_each_entry(pos, head, member) \</span></div>
|
||
|
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="preprocessor"> for (pos = list_entry((head)->next, typeof(*pos), member), \</span></div>
|
||
|
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="preprocessor"> prefetch(pos->member.next); \</span></div>
|
||
|
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="preprocessor"> &pos->member != (head); \</span></div>
|
||
|
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="preprocessor"> pos = list_entry(pos->member.next, typeof(*pos), member), \</span></div>
|
||
|
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor"> prefetch(pos->member.next))</span></div>
|
||
|
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> </div>
|
||
|
<div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#accc8d8e6c8ffe8ce964c5a1b59732cf3"> 393</a></span> <span class="preprocessor">#define list_for_each_entry_reverse(pos, head, member) \</span></div>
|
||
|
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor"> for (pos = list_entry((head)->prev, typeof(*pos), member), \</span></div>
|
||
|
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="preprocessor"> prefetch(pos->member.prev); \</span></div>
|
||
|
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor"> &pos->member != (head); \</span></div>
|
||
|
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor"> pos = list_entry(pos->member.prev, typeof(*pos), member), \</span></div>
|
||
|
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor"> prefetch(pos->member.prev))</span></div>
|
||
|
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> </div>
|
||
|
<div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#af6fc8bdd3ce7ee375e35baf9d2b2e62a"> 407</a></span> <span class="preprocessor">#define list_prepare_entry(pos, head, member) \</span></div>
|
||
|
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor"> ((pos) ? : list_entry(head, typeof(*pos), member))</span></div>
|
||
|
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div>
|
||
|
<div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a91b31084b4ece72dbd75d2bb1f01d9ff"> 417</a></span> <span class="preprocessor">#define list_for_each_entry_continue(pos, head, member) \</span></div>
|
||
|
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="preprocessor"> for (pos = list_entry(pos->member.next, typeof(*pos), member), \</span></div>
|
||
|
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="preprocessor"> prefetch(pos->member.next); \</span></div>
|
||
|
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="preprocessor"> &pos->member != (head); \</span></div>
|
||
|
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="preprocessor"> pos = list_entry(pos->member.next, typeof(*pos), member), \</span></div>
|
||
|
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor"> prefetch(pos->member.next))</span></div>
|
||
|
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> </div>
|
||
|
<div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#ac3f72d6bd5144c7970824813810d2da1"> 431</a></span> <span class="preprocessor">#define list_for_each_entry_safe(pos, n, head, member) \</span></div>
|
||
|
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="preprocessor"> for (pos = list_entry((head)->next, typeof(*pos), member), \</span></div>
|
||
|
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="preprocessor"> n = list_entry(pos->member.next, typeof(*pos), member); \</span></div>
|
||
|
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="preprocessor"> &pos->member != (head); \</span></div>
|
||
|
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="preprocessor"> pos = n, n = list_entry(n->member.next, typeof(*n), member))</span></div>
|
||
|
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div>
|
||
|
<div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a01f08b212e62fb15eb21a3806fa7590c"> 446</a></span> <span class="preprocessor">#define list_for_each_rcu(pos, head) \</span></div>
|
||
|
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="preprocessor"> for (pos = (head)->next, prefetch(pos->next); pos != (head); \</span></div>
|
||
|
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="preprocessor"> pos = pos->next, ({ smp_read_barrier_depends(); 0;}), prefetch(pos->next))</span></div>
|
||
|
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> </div>
|
||
|
<div class="line"><a name="l00450"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#abbf51eb5fa935cfe15fae7a37dd983fc"> 450</a></span> <span class="preprocessor">#define __list_for_each_rcu(pos, head) \</span></div>
|
||
|
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="preprocessor"> for (pos = (head)->next; pos != (head); \</span></div>
|
||
|
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="preprocessor"> pos = pos->next, ({ smp_read_barrier_depends(); 0;}))</span></div>
|
||
|
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> </div>
|
||
|
<div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a5d11673db9368e449f5cd52416fa1cf7"> 465</a></span> <span class="preprocessor">#define list_for_each_safe_rcu(pos, n, head) \</span></div>
|
||
|
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="preprocessor"> for (pos = (head)->next, n = pos->next; pos != (head); \</span></div>
|
||
|
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="preprocessor"> pos = n, ({ smp_read_barrier_depends(); 0;}), n = pos->next)</span></div>
|
||
|
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> </div>
|
||
|
<div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a8f594017c381faadd03ff91037ef3490"> 479</a></span> <span class="preprocessor">#define list_for_each_entry_rcu(pos, head, member) \</span></div>
|
||
|
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="preprocessor"> for (pos = list_entry((head)->next, typeof(*pos), member), \</span></div>
|
||
|
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="preprocessor"> prefetch(pos->member.next); \</span></div>
|
||
|
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="preprocessor"> &pos->member != (head); \</span></div>
|
||
|
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor"> pos = list_entry(pos->member.next, typeof(*pos), member), \</span></div>
|
||
|
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="preprocessor"> ({ smp_read_barrier_depends(); 0;}), \</span></div>
|
||
|
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="preprocessor"> prefetch(pos->member.next))</span></div>
|
||
|
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> </div>
|
||
|
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> </div>
|
||
|
<div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a3cd271ad1585a041358502377e8ae891"> 498</a></span> <span class="preprocessor">#define list_for_each_continue_rcu(pos, head) \</span></div>
|
||
|
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="preprocessor"> for ((pos) = (pos)->next, prefetch((pos)->next); (pos) != (head); \</span></div>
|
||
|
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="preprocessor"> (pos) = (pos)->next, ({ smp_read_barrier_depends(); 0;}), prefetch((pos)->next))</span></div>
|
||
|
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> </div>
|
||
|
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="comment">/*</span></div>
|
||
|
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="comment"> * Double linked lists with a single pointer list head.</span></div>
|
||
|
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="comment"> * Mostly useful for hash tables where the two pointer list head is</span></div>
|
||
|
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="comment"> * too wasteful.</span></div>
|
||
|
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="comment"> * You lose the ability to access the tail in O(1).</span></div>
|
||
|
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="comment"> */</span></div>
|
||
|
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> </div>
|
||
|
<div class="line"><a name="l00509"></a><span class="lineno"><a class="line" href="../../df/d4d/structhlist__head.html"> 509</a></span> <span class="keyword">struct </span><a class="code" href="../../df/d4d/structhlist__head.html">hlist_head</a> {</div>
|
||
|
<div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="../../df/d4d/structhlist__head.html#a247198a722f93022121b73aee62006bb"> 510</a></span>  <span class="keyword">struct </span><a class="code" href="../../da/d12/structhlist__node.html">hlist_node</a> *<a class="code" href="../../df/d4d/structhlist__head.html#a247198a722f93022121b73aee62006bb">first</a>;</div>
|
||
|
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> };</div>
|
||
|
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> </div>
|
||
|
<div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="../../da/d12/structhlist__node.html"> 513</a></span> <span class="keyword">struct </span><a class="code" href="../../da/d12/structhlist__node.html">hlist_node</a> {</div>
|
||
|
<div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a"> 514</a></span>  <span class="keyword">struct </span><a class="code" href="../../da/d12/structhlist__node.html">hlist_node</a> *<a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a>, **<a class="code" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">pprev</a>;</div>
|
||
|
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> };</div>
|
||
|
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> </div>
|
||
|
<div class="line"><a name="l00517"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a68283f4abad271853d5b25ad697b1b06"> 517</a></span> <span class="preprocessor">#define HLIST_HEAD_INIT { .first = NULL }</span></div>
|
||
|
<div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a5110612fedc3e1b54fce4c2143c4c788"> 518</a></span> <span class="preprocessor">#define HLIST_HEAD(name) struct hlist_head name = { .first = NULL }</span></div>
|
||
|
<div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a502bdfb9a4a5a0d922363ea1708bf081"> 519</a></span> <span class="preprocessor">#define INIT_HLIST_HEAD(ptr) ((ptr)->first = NULL)</span></div>
|
||
|
<div class="line"><a name="l00520"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a9d36ad2cdc5a41b254c71b707760bcce"> 520</a></span> <span class="preprocessor">#define INIT_HLIST_NODE(ptr) ((ptr)->next = NULL, (ptr)->pprev = NULL)</span></div>
|
||
|
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> </div>
|
||
|
<div class="line"><a name="l00522"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a7f946d296ab41ce808e96d529a4106d6"> 522</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="../../da/d00/linux__list_8h.html#a7f946d296ab41ce808e96d529a4106d6">hlist_unhashed</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="../../da/d12/structhlist__node.html">hlist_node</a> *h)</div>
|
||
|
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> {</div>
|
||
|
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keywordflow">return</span> !h-><a class="code" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">pprev</a>;</div>
|
||
|
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> }</div>
|
||
|
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> </div>
|
||
|
<div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#af610dde21167bf116937c81c393a229f"> 527</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="../../da/d00/linux__list_8h.html#af610dde21167bf116937c81c393a229f">hlist_empty</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="../../df/d4d/structhlist__head.html">hlist_head</a> *h)</div>
|
||
|
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> {</div>
|
||
|
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="keywordflow">return</span> !h-><a class="code" href="../../df/d4d/structhlist__head.html#a247198a722f93022121b73aee62006bb">first</a>;</div>
|
||
|
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> }</div>
|
||
|
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> </div>
|
||
|
<div class="line"><a name="l00532"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a167c5c3fe3b88a3e499210033585c6d8"> 532</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#a167c5c3fe3b88a3e499210033585c6d8">__hlist_del</a>(<span class="keyword">struct</span> <a class="code" href="../../da/d12/structhlist__node.html">hlist_node</a> *n)</div>
|
||
|
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> {</div>
|
||
|
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keyword">struct </span><a class="code" href="../../da/d12/structhlist__node.html">hlist_node</a> *<a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a> = n-><a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a>;</div>
|
||
|
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="keyword">struct </span><a class="code" href="../../da/d12/structhlist__node.html">hlist_node</a> **<a class="code" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">pprev</a> = n-><a class="code" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">pprev</a>;</div>
|
||
|
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  *pprev = <a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a>;</div>
|
||
|
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordflow">if</span> (next)</div>
|
||
|
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  next-><a class="code" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">pprev</a> = <a class="code" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">pprev</a>;</div>
|
||
|
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> }</div>
|
||
|
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> </div>
|
||
|
<div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#aa7bb9806633e74fad4c0f4ba8d3ac850"> 541</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#aa7bb9806633e74fad4c0f4ba8d3ac850">hlist_del</a>(<span class="keyword">struct</span> <a class="code" href="../../da/d12/structhlist__node.html">hlist_node</a> *n)</div>
|
||
|
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> {</div>
|
||
|
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <a class="code" href="../../da/d00/linux__list_8h.html#a167c5c3fe3b88a3e499210033585c6d8">__hlist_del</a>(n);</div>
|
||
|
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  n-><a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a> = <a class="code" href="../../da/d00/linux__list_8h.html#a96b8b53821aa079fc5acc2ecac6a309f">LIST_POISON1</a>;</div>
|
||
|
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  n-><a class="code" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">pprev</a> = <a class="code" href="../../da/d00/linux__list_8h.html#a32e88152ac3cebc4352f9f6254e786ff">LIST_POISON2</a>;</div>
|
||
|
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> }</div>
|
||
|
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> </div>
|
||
|
<div class="line"><a name="l00567"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a0f031846dfd044009602871bd965561c"> 567</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#a0f031846dfd044009602871bd965561c">hlist_del_rcu</a>(<span class="keyword">struct</span> <a class="code" href="../../da/d12/structhlist__node.html">hlist_node</a> *n)</div>
|
||
|
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> {</div>
|
||
|
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <a class="code" href="../../da/d00/linux__list_8h.html#a167c5c3fe3b88a3e499210033585c6d8">__hlist_del</a>(n);</div>
|
||
|
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  n-><a class="code" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">pprev</a> = <a class="code" href="../../da/d00/linux__list_8h.html#a32e88152ac3cebc4352f9f6254e786ff">LIST_POISON2</a>;</div>
|
||
|
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> }</div>
|
||
|
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> </div>
|
||
|
<div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a2e00d6f98de0c25c46a7645a0b6f4d5f"> 573</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#a2e00d6f98de0c25c46a7645a0b6f4d5f">hlist_del_init</a>(<span class="keyword">struct</span> <a class="code" href="../../da/d12/structhlist__node.html">hlist_node</a> *n)</div>
|
||
|
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> {</div>
|
||
|
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keywordflow">if</span> (n-><a class="code" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">pprev</a>) {</div>
|
||
|
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <a class="code" href="../../da/d00/linux__list_8h.html#a167c5c3fe3b88a3e499210033585c6d8">__hlist_del</a>(n);</div>
|
||
|
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <a class="code" href="../../da/d00/linux__list_8h.html#a9d36ad2cdc5a41b254c71b707760bcce">INIT_HLIST_NODE</a>(n);</div>
|
||
|
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  }</div>
|
||
|
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> }</div>
|
||
|
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> </div>
|
||
|
<div class="line"><a name="l00581"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a57c06f2da305f4a6e16d6a40b196b72e"> 581</a></span> <span class="preprocessor">#define hlist_del_rcu_init hlist_del_init</span></div>
|
||
|
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> </div>
|
||
|
<div class="line"><a name="l00583"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#ad7a242949abf03ff2ae417686a4451cd"> 583</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#ad7a242949abf03ff2ae417686a4451cd">hlist_add_head</a>(<span class="keyword">struct</span> <a class="code" href="../../da/d12/structhlist__node.html">hlist_node</a> *n, <span class="keyword">struct</span> <a class="code" href="../../df/d4d/structhlist__head.html">hlist_head</a> *h)</div>
|
||
|
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> {</div>
|
||
|
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keyword">struct </span><a class="code" href="../../da/d12/structhlist__node.html">hlist_node</a> *first = h-><a class="code" href="../../df/d4d/structhlist__head.html#a247198a722f93022121b73aee62006bb">first</a>;</div>
|
||
|
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  n-><a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a> = first;</div>
|
||
|
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="keywordflow">if</span> (first)</div>
|
||
|
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  first-><a class="code" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">pprev</a> = &n-><a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a>;</div>
|
||
|
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  h-><a class="code" href="../../df/d4d/structhlist__head.html#a247198a722f93022121b73aee62006bb">first</a> = n;</div>
|
||
|
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  n-><a class="code" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">pprev</a> = &h-><a class="code" href="../../df/d4d/structhlist__head.html#a247198a722f93022121b73aee62006bb">first</a>;</div>
|
||
|
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> }</div>
|
||
|
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> </div>
|
||
|
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> </div>
|
||
|
<div class="line"><a name="l00613"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#ad16ef5ef2d6e154c3e770176d8a6b5fd"> 613</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#ad16ef5ef2d6e154c3e770176d8a6b5fd">hlist_add_head_rcu</a>(<span class="keyword">struct</span> <a class="code" href="../../da/d12/structhlist__node.html">hlist_node</a> *n,</div>
|
||
|
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="keyword">struct</span> <a class="code" href="../../df/d4d/structhlist__head.html">hlist_head</a> *h)</div>
|
||
|
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> {</div>
|
||
|
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <span class="keyword">struct </span><a class="code" href="../../da/d12/structhlist__node.html">hlist_node</a> *first = h-><a class="code" href="../../df/d4d/structhlist__head.html#a247198a722f93022121b73aee62006bb">first</a>;</div>
|
||
|
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  n-><a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a> = first;</div>
|
||
|
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  n-><a class="code" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">pprev</a> = &h-><a class="code" href="../../df/d4d/structhlist__head.html#a247198a722f93022121b73aee62006bb">first</a>;</div>
|
||
|
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <a class="code" href="../../da/d00/linux__list_8h.html#af5af5daeacc75c413fb9a3f910e9fb32">smp_wmb</a>();</div>
|
||
|
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="keywordflow">if</span> (first)</div>
|
||
|
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  first-><a class="code" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">pprev</a> = &n-><a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a>;</div>
|
||
|
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  h-><a class="code" href="../../df/d4d/structhlist__head.html#a247198a722f93022121b73aee62006bb">first</a> = n;</div>
|
||
|
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> }</div>
|
||
|
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> </div>
|
||
|
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="comment">/* next must be != NULL */</span></div>
|
||
|
<div class="line"><a name="l00626"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a254a79dcc8e7dd5662a4e67fcd04ed10"> 626</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#a254a79dcc8e7dd5662a4e67fcd04ed10">hlist_add_before</a>(<span class="keyword">struct</span> <a class="code" href="../../da/d12/structhlist__node.html">hlist_node</a> *n,</div>
|
||
|
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <span class="keyword">struct</span> <a class="code" href="../../da/d12/structhlist__node.html">hlist_node</a> *<a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a>)</div>
|
||
|
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> {</div>
|
||
|
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  n-><a class="code" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">pprev</a> = next-><a class="code" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">pprev</a>;</div>
|
||
|
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  n-><a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a> = <a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a>;</div>
|
||
|
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  next-><a class="code" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">pprev</a> = &n-><a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a>;</div>
|
||
|
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  *(n-><a class="code" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">pprev</a>) = n;</div>
|
||
|
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> }</div>
|
||
|
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> </div>
|
||
|
<div class="line"><a name="l00635"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a15ceaf3edb7fab6f0b2289cb8c0771c4"> 635</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="../../da/d00/linux__list_8h.html#a15ceaf3edb7fab6f0b2289cb8c0771c4">hlist_add_after</a>(<span class="keyword">struct</span> <a class="code" href="../../da/d12/structhlist__node.html">hlist_node</a> *n,</div>
|
||
|
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <span class="keyword">struct</span> <a class="code" href="../../da/d12/structhlist__node.html">hlist_node</a> *<a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a>)</div>
|
||
|
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> {</div>
|
||
|
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  next-><a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a> = n-><a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a>;</div>
|
||
|
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  n-><a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a> = <a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a>;</div>
|
||
|
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  next-><a class="code" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">pprev</a> = &n-><a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a>;</div>
|
||
|
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> </div>
|
||
|
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <span class="keywordflow">if</span>(next-><a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a>)</div>
|
||
|
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  next-><a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a>-><a class="code" href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">pprev</a> = &next-><a class="code" href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">next</a>;</div>
|
||
|
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> }</div>
|
||
|
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> </div>
|
||
|
<div class="line"><a name="l00646"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#ae6c5fc3a7207aad6b8ea756eaa8bb043"> 646</a></span> <span class="preprocessor">#define hlist_entry(ptr, type, member) container_of(ptr,type,member)</span></div>
|
||
|
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> </div>
|
||
|
<div class="line"><a name="l00648"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#ac971440486bd1084a2b110f53a9ad3b7"> 648</a></span> <span class="preprocessor">#define hlist_for_each(pos, head) \</span></div>
|
||
|
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> <span class="preprocessor"> for (pos = (head)->first; pos && ({ prefetch(pos->next); 1; }); \</span></div>
|
||
|
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="preprocessor"> pos = pos->next)</span></div>
|
||
|
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> </div>
|
||
|
<div class="line"><a name="l00652"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a0ac51eeb1d38e770546acbe88d566211"> 652</a></span> <span class="preprocessor">#define hlist_for_each_safe(pos, n, head) \</span></div>
|
||
|
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> <span class="preprocessor"> for (pos = (head)->first; pos && ({ n = pos->next; 1; }); \</span></div>
|
||
|
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="preprocessor"> pos = n)</span></div>
|
||
|
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> </div>
|
||
|
<div class="line"><a name="l00663"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a3758c38c0697ac740d62f4d4db56abb4"> 663</a></span> <span class="preprocessor">#define hlist_for_each_entry(tpos, pos, head, member) \</span></div>
|
||
|
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="preprocessor"> for (pos = (head)->first; \</span></div>
|
||
|
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="preprocessor"> pos && ({ prefetch(pos->next); 1;}) && \</span></div>
|
||
|
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> <span class="preprocessor"> ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \</span></div>
|
||
|
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="preprocessor"> pos = pos->next)</span></div>
|
||
|
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> </div>
|
||
|
<div class="line"><a name="l00675"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a28c9946e110bc7830cfaeef96e1306b4"> 675</a></span> <span class="preprocessor">#define hlist_for_each_entry_continue(tpos, pos, member) \</span></div>
|
||
|
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="preprocessor"> for (pos = (pos)->next; \</span></div>
|
||
|
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> <span class="preprocessor"> pos && ({ prefetch(pos->next); 1;}) && \</span></div>
|
||
|
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="preprocessor"> ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \</span></div>
|
||
|
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="preprocessor"> pos = pos->next)</span></div>
|
||
|
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> </div>
|
||
|
<div class="line"><a name="l00687"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a587cf22c9b7f20e8a9e47f82dd1bc7bb"> 687</a></span> <span class="preprocessor">#define hlist_for_each_entry_from(tpos, pos, member) \</span></div>
|
||
|
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="preprocessor"> for (; pos && ({ prefetch(pos->next); 1;}) && \</span></div>
|
||
|
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> <span class="preprocessor"> ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \</span></div>
|
||
|
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> <span class="preprocessor"> pos = pos->next)</span></div>
|
||
|
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> </div>
|
||
|
<div class="line"><a name="l00700"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#a5c24f2d2ef4edd718fc7553bbdd22cb6"> 700</a></span> <span class="preprocessor">#define hlist_for_each_entry_safe(tpos, pos, n, head, member) \</span></div>
|
||
|
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <span class="preprocessor"> for (pos = (head)->first; \</span></div>
|
||
|
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="preprocessor"> pos && ({ n = pos->next; 1; }) && \</span></div>
|
||
|
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> <span class="preprocessor"> ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \</span></div>
|
||
|
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="preprocessor"> pos = n)</span></div>
|
||
|
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> </div>
|
||
|
<div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="../../da/d00/linux__list_8h.html#ad4b9f81ad2c6b8d09c79a23ccd9771fe"> 717</a></span> <span class="preprocessor">#define hlist_for_each_entry_rcu(tpos, pos, head, member) \</span></div>
|
||
|
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> <span class="preprocessor"> for (pos = (head)->first; \</span></div>
|
||
|
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> <span class="preprocessor"> pos && ({ prefetch(pos->next); 1;}) && \</span></div>
|
||
|
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="preprocessor"> ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \</span></div>
|
||
|
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="preprocessor"> pos = pos->next, ({ smp_read_barrier_depends(); 0; }) )</span></div>
|
||
|
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> </div>
|
||
|
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="preprocessor">#endif</span></div>
|
||
|
<div class="ttc" id="structhlist__node_html_a915ba19b2ab3aa3f092edc8d5ed98c27"><div class="ttname"><a href="../../da/d12/structhlist__node.html#a915ba19b2ab3aa3f092edc8d5ed98c27">hlist_node::next</a></div><div class="ttdeci">struct hlist_node * next</div><div class="ttdef"><b>Definition:</b> linux_list.h:514</div></div>
|
||
|
<div class="ttc" id="structhlist__head_html"><div class="ttname"><a href="../../df/d4d/structhlist__head.html">hlist_head</a></div><div class="ttdef"><b>Definition:</b> linux_list.h:509</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a9c0a5060da14beb9e5aac0333a0162e1"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a9c0a5060da14beb9e5aac0333a0162e1">list_add_tail_rcu</a></div><div class="ttdeci">static void list_add_tail_rcu(struct list_head *new, struct list_head *head)</div><div class="ttdef"><b>Definition:</b> linux_list.h:161</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a0ffe9d28c36d7b018a9cfae33bae45c0"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a0ffe9d28c36d7b018a9cfae33bae45c0">INIT_LIST_HEAD</a></div><div class="ttdeci">#define INIT_LIST_HEAD(ptr)</div><div class="ttdef"><b>Definition:</b> linux_list.h:62</div></div>
|
||
|
<div class="ttc" id="structlist__head_html_ac3b0ff0dfb978a0cfbdad6b9d19cdcfe"><div class="ttname"><a href="../../d9/d93/structlist__head.html#ac3b0ff0dfb978a0cfbdad6b9d19cdcfe">list_head::next</a></div><div class="ttdeci">struct list_head * next</div><div class="ttdef"><b>Definition:</b> linux_list.h:54</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a9d36ad2cdc5a41b254c71b707760bcce"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a9d36ad2cdc5a41b254c71b707760bcce">INIT_HLIST_NODE</a></div><div class="ttdeci">#define INIT_HLIST_NODE(ptr)</div><div class="ttdef"><b>Definition:</b> linux_list.h:520</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a087d5457d659b54dafff3b729c867192"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a087d5457d659b54dafff3b729c867192">list_add_rcu</a></div><div class="ttdeci">static void list_add_rcu(struct list_head *new, struct list_head *head)</div><div class="ttdef"><b>Definition:</b> linux_list.h:140</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a25979c80a2d71dd02ada121a46c71a59"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a25979c80a2d71dd02ada121a46c71a59">__list_splice</a></div><div class="ttdeci">static void __list_splice(struct list_head *list, struct list_head *head)</div><div class="ttdef"><b>Definition:</b> linux_list.h:283</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a3495fef4758575d5f7524d1585043ff0"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a3495fef4758575d5f7524d1585043ff0">list_del_rcu</a></div><div class="ttdeci">static void list_del_rcu(struct list_head *entry)</div><div class="ttdef"><b>Definition:</b> linux_list.h:217</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_ab1708206f0f7e0a56550b35372203ba5"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#ab1708206f0f7e0a56550b35372203ba5">list_del</a></div><div class="ttdeci">static void list_del(struct list_head *entry)</div><div class="ttdef"><b>Definition:</b> linux_list.h:186</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_af610dde21167bf116937c81c393a229f"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#af610dde21167bf116937c81c393a229f">hlist_empty</a></div><div class="ttdeci">static int hlist_empty(const struct hlist_head *h)</div><div class="ttdef"><b>Definition:</b> linux_list.h:527</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a948b15519bb72e3d42f3e56975580d30"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a948b15519bb72e3d42f3e56975580d30">list_splice_init</a></div><div class="ttdeci">static void list_splice_init(struct list_head *list, struct list_head *head)</div><div class="ttdef"><b>Definition:</b> linux_list.h:315</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a5f5c28e8a54fd6bfbe9a9419aefddb88"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a5f5c28e8a54fd6bfbe9a9419aefddb88">__list_add_rcu</a></div><div class="ttdeci">static void __list_add_rcu(struct list_head *new, struct list_head *prev, struct list_head *next)</div><div class="ttdef"><b>Definition:</b> linux_list.h:114</div></div>
|
||
|
<div class="ttc" id="structlist__head_html_aaa0eabda8877e1d6de73a33f223ad004"><div class="ttname"><a href="../../d9/d93/structlist__head.html#aaa0eabda8877e1d6de73a33f223ad004">list_head::prev</a></div><div class="ttdeci">struct list_head * prev</div><div class="ttdef"><b>Definition:</b> linux_list.h:54</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a167c5c3fe3b88a3e499210033585c6d8"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a167c5c3fe3b88a3e499210033585c6d8">__hlist_del</a></div><div class="ttdeci">static void __hlist_del(struct hlist_node *n)</div><div class="ttdef"><b>Definition:</b> linux_list.h:532</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a588bec046f1e9797b33a5c5ab250f447"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a588bec046f1e9797b33a5c5ab250f447">list_add_tail</a></div><div class="ttdeci">static void list_add_tail(struct list_head *new, struct list_head *head)</div><div class="ttdef"><b>Definition:</b> linux_list.h:103</div></div>
|
||
|
<div class="ttc" id="structlist__head_html"><div class="ttname"><a href="../../d9/d93/structlist__head.html">list_head</a></div><div class="ttdef"><b>Definition:</b> linux_list.h:53</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_ad7a242949abf03ff2ae417686a4451cd"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#ad7a242949abf03ff2ae417686a4451cd">hlist_add_head</a></div><div class="ttdeci">static void hlist_add_head(struct hlist_node *n, struct hlist_head *h)</div><div class="ttdef"><b>Definition:</b> linux_list.h:583</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_af5af5daeacc75c413fb9a3f910e9fb32"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#af5af5daeacc75c413fb9a3f910e9fb32">smp_wmb</a></div><div class="ttdeci">#define smp_wmb()</div><div class="ttdef"><b>Definition:</b> linux_list.h:33</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a96b8b53821aa079fc5acc2ecac6a309f"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a96b8b53821aa079fc5acc2ecac6a309f">LIST_POISON1</a></div><div class="ttdeci">#define LIST_POISON1</div><div class="ttdef"><b>Definition:</b> linux_list.h:40</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a254a79dcc8e7dd5662a4e67fcd04ed10"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a254a79dcc8e7dd5662a4e67fcd04ed10">hlist_add_before</a></div><div class="ttdeci">static void hlist_add_before(struct hlist_node *n, struct hlist_node *next)</div><div class="ttdef"><b>Definition:</b> linux_list.h:626</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_aee8df43e41969c2272acfd6ed6e75d4c"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#aee8df43e41969c2272acfd6ed6e75d4c">list_move</a></div><div class="ttdeci">static void list_move(struct list_head *list, struct list_head *head)</div><div class="ttdef"><b>Definition:</b> linux_list.h:238</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a2e00d6f98de0c25c46a7645a0b6f4d5f"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a2e00d6f98de0c25c46a7645a0b6f4d5f">hlist_del_init</a></div><div class="ttdeci">static void hlist_del_init(struct hlist_node *n)</div><div class="ttdef"><b>Definition:</b> linux_list.h:573</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a0f031846dfd044009602871bd965561c"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a0f031846dfd044009602871bd965561c">hlist_del_rcu</a></div><div class="ttdeci">static void hlist_del_rcu(struct hlist_node *n)</div><div class="ttdef"><b>Definition:</b> linux_list.h:567</div></div>
|
||
|
<div class="ttc" id="structhlist__head_html_a247198a722f93022121b73aee62006bb"><div class="ttname"><a href="../../df/d4d/structhlist__head.html#a247198a722f93022121b73aee62006bb">hlist_head::first</a></div><div class="ttdeci">struct hlist_node * first</div><div class="ttdef"><b>Definition:</b> linux_list.h:510</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_aa7bb9806633e74fad4c0f4ba8d3ac850"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#aa7bb9806633e74fad4c0f4ba8d3ac850">hlist_del</a></div><div class="ttdeci">static void hlist_del(struct hlist_node *n)</div><div class="ttdef"><b>Definition:</b> linux_list.h:541</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a8a28f150a191624bf6923a48cdace7e3"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a8a28f150a191624bf6923a48cdace7e3">__list_add</a></div><div class="ttdeci">static void __list_add(struct list_head *new, struct list_head *prev, struct list_head *next)</div><div class="ttdef"><b>Definition:</b> linux_list.h:72</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a1c5ac6a6b04a03f5782e818daacf96e9"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a1c5ac6a6b04a03f5782e818daacf96e9">list_move_tail</a></div><div class="ttdeci">static void list_move_tail(struct list_head *list, struct list_head *head)</div><div class="ttdef"><b>Definition:</b> linux_list.h:249</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a32e88152ac3cebc4352f9f6254e786ff"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a32e88152ac3cebc4352f9f6254e786ff">LIST_POISON2</a></div><div class="ttdeci">#define LIST_POISON2</div><div class="ttdef"><b>Definition:</b> linux_list.h:41</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a15ceaf3edb7fab6f0b2289cb8c0771c4"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a15ceaf3edb7fab6f0b2289cb8c0771c4">hlist_add_after</a></div><div class="ttdeci">static void hlist_add_after(struct hlist_node *n, struct hlist_node *next)</div><div class="ttdef"><b>Definition:</b> linux_list.h:635</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a2c4399cfbde5e5d5eddf2e13c97bd5d5"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a2c4399cfbde5e5d5eddf2e13c97bd5d5">list_splice</a></div><div class="ttdeci">static void list_splice(struct list_head *list, struct list_head *head)</div><div class="ttdef"><b>Definition:</b> linux_list.h:302</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a6601e54d8f27ab290ee6819f7e2127b7"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a6601e54d8f27ab290ee6819f7e2127b7">list_empty</a></div><div class="ttdeci">static int list_empty(const struct list_head *head)</div><div class="ttdef"><b>Definition:</b> linux_list.h:260</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_ad16ef5ef2d6e154c3e770176d8a6b5fd"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#ad16ef5ef2d6e154c3e770176d8a6b5fd">hlist_add_head_rcu</a></div><div class="ttdeci">static void hlist_add_head_rcu(struct hlist_node *n, struct hlist_head *h)</div><div class="ttdef"><b>Definition:</b> linux_list.h:613</div></div>
|
||
|
<div class="ttc" id="structhlist__node_html_a47d5ab1ce59648e62dae64c49553e61a"><div class="ttname"><a href="../../da/d12/structhlist__node.html#a47d5ab1ce59648e62dae64c49553e61a">hlist_node::pprev</a></div><div class="ttdeci">struct hlist_node ** pprev</div><div class="ttdef"><b>Definition:</b> linux_list.h:514</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a7f946d296ab41ce808e96d529a4106d6"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a7f946d296ab41ce808e96d529a4106d6">hlist_unhashed</a></div><div class="ttdeci">static int hlist_unhashed(const struct hlist_node *h)</div><div class="ttdef"><b>Definition:</b> linux_list.h:522</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a0373c4b3c8ce51a451a569ad978b32e1"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a0373c4b3c8ce51a451a569ad978b32e1">list_add</a></div><div class="ttdeci">static void list_add(struct list_head *new, struct list_head *head)</div><div class="ttdef"><b>Definition:</b> linux_list.h:90</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_ae1cde0f50b85945cfff23be4fc1586f4"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#ae1cde0f50b85945cfff23be4fc1586f4">list_del_init</a></div><div class="ttdeci">static void list_del_init(struct list_head *entry)</div><div class="ttdef"><b>Definition:</b> linux_list.h:227</div></div>
|
||
|
<div class="ttc" id="structhlist__node_html"><div class="ttname"><a href="../../da/d12/structhlist__node.html">hlist_node</a></div><div class="ttdef"><b>Definition:</b> linux_list.h:513</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_a24b474717d65a296695e8b79b4adefda"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#a24b474717d65a296695e8b79b4adefda">__list_del</a></div><div class="ttdeci">static void __list_del(struct list_head *prev, struct list_head *next)</div><div class="ttdef"><b>Definition:</b> linux_list.h:174</div></div>
|
||
|
<div class="ttc" id="linux__list_8h_html_aba7d3f2ac5d41b9040e7341cab21591b"><div class="ttname"><a href="../../da/d00/linux__list_8h.html#aba7d3f2ac5d41b9040e7341cab21591b">list_empty_careful</a></div><div class="ttdeci">static int list_empty_careful(const struct list_head *head)</div><div class="ttdef"><b>Definition:</b> linux_list.h:277</div></div>
|
||
|
</div><!-- fragment --></div><!-- contents -->
|
||
|
</div><!-- doc-content -->
|
||
|
<!-- start footer part -->
|
||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||
|
<ul>
|
||
|
<li class="navelem"><a class="el" href="../../dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="../../dir_8bc5913a01a98b5812fe0bc47a8f5b87.html">libiptc</a></li><li class="navelem"><a class="el" href="../../da/d00/linux__list_8h.html">linux_list.h</a></li>
|
||
|
<li class="footer">Generated on Wed Feb 19 2014 14:19:08 for The Netsukuku Project by
|
||
|
<a href="http://www.doxygen.org/index.html">
|
||
|
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
|
||
|
</ul>
|
||
|
</div>
|
||
|
</body>
|
||
|
</html>
|