2014-02-19 23:45:00 +00:00
<!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 File Reference< / 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;" >
2014-02-20 00:30:40 +00:00
< td id = "projectlogo" > < img alt = "Logo" src = "../../Logo_netsukuku.jpg" / > < / td >
2014-02-19 23:45:00 +00:00
< 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.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 = "summary" >
< a href = "#nested-classes" > Data Structures< / a > |
< a href = "#define-members" > Macros< / a > |
< a href = "#func-members" > Functions< / a > < / div >
< div class = "headertitle" >
< div class = "title" > linux_list.h File Reference< / div > < / div >
< / div > <!-- header -->
< div class = "contents" >
< div class = "textblock" > < div class = "dynheader" >
This graph shows which files directly or indirectly include this file:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../de/d5e/linux__list_8h__dep__incl.png" border = "0" usemap = "#src_2libiptc_2linux__list_8hdep" alt = "" / > < / div >
< map name = "src_2libiptc_2linux__list_8hdep" id = "src_2libiptc_2linux__list_8hdep" >
< area shape = "rect" id = "node3" href = "../../d6/dd7/libiptc_8c.html" title = "src/libiptc/libiptc.c" alt = "" coords = "15,83,140,112" / > < area shape = "rect" id = "node5" href = "../../d7/d61/libip4tc_8c.html" title = "src/libiptc/libip4tc.c" alt = "" coords = "11,160,144,189" / > < / map >
< / div >
< / div >
< p > < a href = "../../da/d00/linux__list_8h_source.html" > Go to the source code of this file.< / a > < / p >
< table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a name = "nested-classes" > < / a >
Data Structures< / h2 > < / td > < / tr >
< tr class = "memitem:" > < td class = "memItemLeft" align = "right" valign = "top" > struct   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > < / td > < / tr >
< tr class = "separator:" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:" > < td class = "memItemLeft" align = "right" valign = "top" > struct   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../df/d4d/structhlist__head.html" > hlist_head< / a > < / td > < / tr >
< tr class = "separator:" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:" > < td class = "memItemLeft" align = "right" valign = "top" > struct   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > < / td > < / tr >
< tr class = "separator:" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table > < table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a name = "define-members" > < / a >
Macros< / h2 > < / td > < / tr >
< tr class = "memitem:a276e8a32e0bbf024aadd9420b8f2d3b3" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a276e8a32e0bbf024aadd9420b8f2d3b3" > offsetof< / a > (TYPE, MEMBER)      ((size_t) & ((TYPE *)0)-> MEMBER)< / td > < / tr >
< tr class = "separator:a276e8a32e0bbf024aadd9420b8f2d3b3" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:af8c317a42292b61c93aae91e59118a46" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#af8c317a42292b61c93aae91e59118a46" > container_of< / a > (ptr, < a class = "el" href = "../../d8/d91/krnl__route_8c.html#ac765329451135abec74c45e1897abf26" > type< / a > , member)< / td > < / tr >
< tr class = "separator:af8c317a42292b61c93aae91e59118a46" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a8b644e688b339331a7c1f93a39c379ad" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a8b644e688b339331a7c1f93a39c379ad" > typecheck< / a > (< a class = "el" href = "../../d8/d91/krnl__route_8c.html#ac765329451135abec74c45e1897abf26" > type< / a > , x)< / td > < / tr >
< tr class = "separator:a8b644e688b339331a7c1f93a39c379ad" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a004692feb1f91896c21a6d1644b54f2b" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (x)      1< / td > < / tr >
< tr class = "separator:a004692feb1f91896c21a6d1644b54f2b" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:af5af5daeacc75c413fb9a3f910e9fb32" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#af5af5daeacc75c413fb9a3f910e9fb32" > smp_wmb< / a > ()< / td > < / tr >
< tr class = "separator:af5af5daeacc75c413fb9a3f910e9fb32" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a96b8b53821aa079fc5acc2ecac6a309f" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a96b8b53821aa079fc5acc2ecac6a309f" > LIST_POISON1< / a >       ((void *) 0x00100100)< / td > < / tr >
< tr class = "separator:a96b8b53821aa079fc5acc2ecac6a309f" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a32e88152ac3cebc4352f9f6254e786ff" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a32e88152ac3cebc4352f9f6254e786ff" > LIST_POISON2< / a >       ((void *) 0x00200200)< / td > < / tr >
< tr class = "separator:a32e88152ac3cebc4352f9f6254e786ff" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a4642d4b7df28478bb762fe43c85b5c63" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a4642d4b7df28478bb762fe43c85b5c63" > LIST_HEAD_INIT< / a > (name)      { & (name), & (name) }< / td > < / tr >
< tr class = "separator:a4642d4b7df28478bb762fe43c85b5c63" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a42f0e72af970a790b60a740af8c9ecd0" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a42f0e72af970a790b60a740af8c9ecd0" > LIST_HEAD< / a > (name)      struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > name = < a class = "el" href = "../../da/d00/linux__list_8h.html#a4642d4b7df28478bb762fe43c85b5c63" > LIST_HEAD_INIT< / a > (name)< / td > < / tr >
< tr class = "separator:a42f0e72af970a790b60a740af8c9ecd0" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a0ffe9d28c36d7b018a9cfae33bae45c0" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a0ffe9d28c36d7b018a9cfae33bae45c0" > INIT_LIST_HEAD< / a > (ptr)< / td > < / tr >
< tr class = "separator:a0ffe9d28c36d7b018a9cfae33bae45c0" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a26c976b7f654e70df318c1843e5094de" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de" > list_entry< / a > (ptr, < a class = "el" href = "../../d8/d91/krnl__route_8c.html#ac765329451135abec74c45e1897abf26" > type< / a > , member)      < a class = "el" href = "../../da/d00/linux__list_8h.html#af8c317a42292b61c93aae91e59118a46" > container_of< / a > (ptr, < a class = "el" href = "../../d8/d91/krnl__route_8c.html#ac765329451135abec74c45e1897abf26" > type< / a > , member)< / td > < / tr >
< tr class = "separator:a26c976b7f654e70df318c1843e5094de" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ab8b24e6660ab3760c923e4b4db3fa502" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#ab8b24e6660ab3760c923e4b4db3fa502" > list_for_each< / a > (pos, head)< / td > < / tr >
< tr class = "separator:ab8b24e6660ab3760c923e4b4db3fa502" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:abfd5aa736021dace98d07ff2518a698d" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#abfd5aa736021dace98d07ff2518a698d" > __list_for_each< / a > (pos, head)      for (pos = (head)-> next; pos != (head); pos = pos-> next)< / td > < / tr >
< tr class = "separator:abfd5aa736021dace98d07ff2518a698d" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a19fc06b83f3502a83ce566b8887e6aec" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a19fc06b83f3502a83ce566b8887e6aec" > list_for_each_prev< / a > (pos, head)< / td > < / tr >
< tr class = "separator:a19fc06b83f3502a83ce566b8887e6aec" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a9e4b9328744994b9d3878f5dad75c09f" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a9e4b9328744994b9d3878f5dad75c09f" > list_for_each_safe< / a > (pos, n, head)< / td > < / tr >
< tr class = "separator:a9e4b9328744994b9d3878f5dad75c09f" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a9b782fefb5ab71ce9762182e45a615e1" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a9b782fefb5ab71ce9762182e45a615e1" > list_for_each_entry< / a > (pos, head, member)< / td > < / tr >
< tr class = "separator:a9b782fefb5ab71ce9762182e45a615e1" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:accc8d8e6c8ffe8ce964c5a1b59732cf3" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#accc8d8e6c8ffe8ce964c5a1b59732cf3" > list_for_each_entry_reverse< / a > (pos, head, member)< / td > < / tr >
< tr class = "separator:accc8d8e6c8ffe8ce964c5a1b59732cf3" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:af6fc8bdd3ce7ee375e35baf9d2b2e62a" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#af6fc8bdd3ce7ee375e35baf9d2b2e62a" > list_prepare_entry< / a > (pos, head, member)      ((pos) ? : < a class = "el" href = "../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de" > list_entry< / a > (head, typeof(*pos), member))< / td > < / tr >
< tr class = "separator:af6fc8bdd3ce7ee375e35baf9d2b2e62a" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a91b31084b4ece72dbd75d2bb1f01d9ff" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a91b31084b4ece72dbd75d2bb1f01d9ff" > list_for_each_entry_continue< / a > (pos, head, member)< / td > < / tr >
< tr class = "separator:a91b31084b4ece72dbd75d2bb1f01d9ff" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ac3f72d6bd5144c7970824813810d2da1" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#ac3f72d6bd5144c7970824813810d2da1" > list_for_each_entry_safe< / a > (pos, n, head, member)< / td > < / tr >
< tr class = "separator:ac3f72d6bd5144c7970824813810d2da1" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a01f08b212e62fb15eb21a3806fa7590c" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a01f08b212e62fb15eb21a3806fa7590c" > list_for_each_rcu< / a > (pos, head)< / td > < / tr >
< tr class = "separator:a01f08b212e62fb15eb21a3806fa7590c" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:abbf51eb5fa935cfe15fae7a37dd983fc" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#abbf51eb5fa935cfe15fae7a37dd983fc" > __list_for_each_rcu< / a > (pos, head)< / td > < / tr >
< tr class = "separator:abbf51eb5fa935cfe15fae7a37dd983fc" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a5d11673db9368e449f5cd52416fa1cf7" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a5d11673db9368e449f5cd52416fa1cf7" > list_for_each_safe_rcu< / a > (pos, n, head)< / td > < / tr >
< tr class = "separator:a5d11673db9368e449f5cd52416fa1cf7" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a8f594017c381faadd03ff91037ef3490" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a8f594017c381faadd03ff91037ef3490" > list_for_each_entry_rcu< / a > (pos, head, member)< / td > < / tr >
< tr class = "separator:a8f594017c381faadd03ff91037ef3490" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a3cd271ad1585a041358502377e8ae891" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a3cd271ad1585a041358502377e8ae891" > list_for_each_continue_rcu< / a > (pos, head)< / td > < / tr >
< tr class = "separator:a3cd271ad1585a041358502377e8ae891" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a68283f4abad271853d5b25ad697b1b06" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a68283f4abad271853d5b25ad697b1b06" > HLIST_HEAD_INIT< / a >       { .first = NULL }< / td > < / tr >
< tr class = "separator:a68283f4abad271853d5b25ad697b1b06" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a5110612fedc3e1b54fce4c2143c4c788" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a5110612fedc3e1b54fce4c2143c4c788" > HLIST_HEAD< / a > (name)      struct < a class = "el" href = "../../df/d4d/structhlist__head.html" > hlist_head< / a > name = { .first = NULL }< / td > < / tr >
< tr class = "separator:a5110612fedc3e1b54fce4c2143c4c788" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a502bdfb9a4a5a0d922363ea1708bf081" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a502bdfb9a4a5a0d922363ea1708bf081" > INIT_HLIST_HEAD< / a > (ptr)      ((ptr)-> first = NULL)< / td > < / tr >
< tr class = "separator:a502bdfb9a4a5a0d922363ea1708bf081" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a9d36ad2cdc5a41b254c71b707760bcce" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a9d36ad2cdc5a41b254c71b707760bcce" > INIT_HLIST_NODE< / a > (ptr)      ((ptr)-> next = NULL, (ptr)-> pprev = NULL)< / td > < / tr >
< tr class = "separator:a9d36ad2cdc5a41b254c71b707760bcce" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a57c06f2da305f4a6e16d6a40b196b72e" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a57c06f2da305f4a6e16d6a40b196b72e" > hlist_del_rcu_init< / a >       < a class = "el" href = "../../da/d00/linux__list_8h.html#a2e00d6f98de0c25c46a7645a0b6f4d5f" > hlist_del_init< / a > < / td > < / tr >
< tr class = "separator:a57c06f2da305f4a6e16d6a40b196b72e" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ae6c5fc3a7207aad6b8ea756eaa8bb043" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#ae6c5fc3a7207aad6b8ea756eaa8bb043" > hlist_entry< / a > (ptr, < a class = "el" href = "../../d8/d91/krnl__route_8c.html#ac765329451135abec74c45e1897abf26" > type< / a > , member)      < a class = "el" href = "../../da/d00/linux__list_8h.html#af8c317a42292b61c93aae91e59118a46" > container_of< / a > (ptr,< a class = "el" href = "../../d8/d91/krnl__route_8c.html#ac765329451135abec74c45e1897abf26" > type< / a > ,member)< / td > < / tr >
< tr class = "separator:ae6c5fc3a7207aad6b8ea756eaa8bb043" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ac971440486bd1084a2b110f53a9ad3b7" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#ac971440486bd1084a2b110f53a9ad3b7" > hlist_for_each< / a > (pos, head)< / td > < / tr >
< tr class = "separator:ac971440486bd1084a2b110f53a9ad3b7" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a0ac51eeb1d38e770546acbe88d566211" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a0ac51eeb1d38e770546acbe88d566211" > hlist_for_each_safe< / a > (pos, n, head)< / td > < / tr >
< tr class = "separator:a0ac51eeb1d38e770546acbe88d566211" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a3758c38c0697ac740d62f4d4db56abb4" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a3758c38c0697ac740d62f4d4db56abb4" > hlist_for_each_entry< / a > (tpos, pos, head, member)< / td > < / tr >
< tr class = "separator:a3758c38c0697ac740d62f4d4db56abb4" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a28c9946e110bc7830cfaeef96e1306b4" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a28c9946e110bc7830cfaeef96e1306b4" > hlist_for_each_entry_continue< / a > (tpos, pos, member)< / td > < / tr >
< tr class = "separator:a28c9946e110bc7830cfaeef96e1306b4" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a587cf22c9b7f20e8a9e47f82dd1bc7bb" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a587cf22c9b7f20e8a9e47f82dd1bc7bb" > hlist_for_each_entry_from< / a > (tpos, pos, member)< / td > < / tr >
< tr class = "separator:a587cf22c9b7f20e8a9e47f82dd1bc7bb" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a5c24f2d2ef4edd718fc7553bbdd22cb6" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a5c24f2d2ef4edd718fc7553bbdd22cb6" > hlist_for_each_entry_safe< / a > (tpos, pos, n, head, member)< / td > < / tr >
< tr class = "separator:a5c24f2d2ef4edd718fc7553bbdd22cb6" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ad4b9f81ad2c6b8d09c79a23ccd9771fe" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#ad4b9f81ad2c6b8d09c79a23ccd9771fe" > hlist_for_each_entry_rcu< / a > (tpos, pos, head, member)< / td > < / tr >
< tr class = "separator:ad4b9f81ad2c6b8d09c79a23ccd9771fe" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table > < table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a name = "func-members" > < / a >
Functions< / h2 > < / td > < / tr >
< tr class = "memitem:a8a28f150a191624bf6923a48cdace7e3" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a8a28f150a191624bf6923a48cdace7e3" > __list_add< / a > (struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *new, struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *prev, struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *next)< / td > < / tr >
< tr class = "separator:a8a28f150a191624bf6923a48cdace7e3" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a0373c4b3c8ce51a451a569ad978b32e1" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a0373c4b3c8ce51a451a569ad978b32e1" > list_add< / a > (struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *new, struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *head)< / td > < / tr >
< tr class = "separator:a0373c4b3c8ce51a451a569ad978b32e1" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a588bec046f1e9797b33a5c5ab250f447" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a588bec046f1e9797b33a5c5ab250f447" > list_add_tail< / a > (struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *new, struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *head)< / td > < / tr >
< tr class = "separator:a588bec046f1e9797b33a5c5ab250f447" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a5f5c28e8a54fd6bfbe9a9419aefddb88" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a5f5c28e8a54fd6bfbe9a9419aefddb88" > __list_add_rcu< / a > (struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *new, struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *prev, struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *next)< / td > < / tr >
< tr class = "separator:a5f5c28e8a54fd6bfbe9a9419aefddb88" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a087d5457d659b54dafff3b729c867192" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a087d5457d659b54dafff3b729c867192" > list_add_rcu< / a > (struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *new, struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *head)< / td > < / tr >
< tr class = "separator:a087d5457d659b54dafff3b729c867192" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a9c0a5060da14beb9e5aac0333a0162e1" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a9c0a5060da14beb9e5aac0333a0162e1" > list_add_tail_rcu< / a > (struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *new, struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *head)< / td > < / tr >
< tr class = "separator:a9c0a5060da14beb9e5aac0333a0162e1" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a24b474717d65a296695e8b79b4adefda" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a24b474717d65a296695e8b79b4adefda" > __list_del< / a > (struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *prev, struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *next)< / td > < / tr >
< tr class = "separator:a24b474717d65a296695e8b79b4adefda" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ab1708206f0f7e0a56550b35372203ba5" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#ab1708206f0f7e0a56550b35372203ba5" > list_del< / a > (struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *entry)< / td > < / tr >
< tr class = "separator:ab1708206f0f7e0a56550b35372203ba5" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a3495fef4758575d5f7524d1585043ff0" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a3495fef4758575d5f7524d1585043ff0" > list_del_rcu< / a > (struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *entry)< / td > < / tr >
< tr class = "separator:a3495fef4758575d5f7524d1585043ff0" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ae1cde0f50b85945cfff23be4fc1586f4" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#ae1cde0f50b85945cfff23be4fc1586f4" > list_del_init< / a > (struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *entry)< / td > < / tr >
< tr class = "separator:ae1cde0f50b85945cfff23be4fc1586f4" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:aee8df43e41969c2272acfd6ed6e75d4c" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#aee8df43e41969c2272acfd6ed6e75d4c" > list_move< / a > (struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *list, struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *head)< / td > < / tr >
< tr class = "separator:aee8df43e41969c2272acfd6ed6e75d4c" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a1c5ac6a6b04a03f5782e818daacf96e9" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a1c5ac6a6b04a03f5782e818daacf96e9" > list_move_tail< / a > (struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *list, struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *head)< / td > < / tr >
< tr class = "separator:a1c5ac6a6b04a03f5782e818daacf96e9" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a6601e54d8f27ab290ee6819f7e2127b7" > < td class = "memItemLeft" align = "right" valign = "top" > static int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a6601e54d8f27ab290ee6819f7e2127b7" > list_empty< / a > (const struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *head)< / td > < / tr >
< tr class = "separator:a6601e54d8f27ab290ee6819f7e2127b7" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:aba7d3f2ac5d41b9040e7341cab21591b" > < td class = "memItemLeft" align = "right" valign = "top" > static int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#aba7d3f2ac5d41b9040e7341cab21591b" > list_empty_careful< / a > (const struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *head)< / td > < / tr >
< tr class = "separator:aba7d3f2ac5d41b9040e7341cab21591b" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a25979c80a2d71dd02ada121a46c71a59" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a25979c80a2d71dd02ada121a46c71a59" > __list_splice< / a > (struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *list, struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *head)< / td > < / tr >
< tr class = "separator:a25979c80a2d71dd02ada121a46c71a59" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a2c4399cfbde5e5d5eddf2e13c97bd5d5" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a2c4399cfbde5e5d5eddf2e13c97bd5d5" > list_splice< / a > (struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *list, struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *head)< / td > < / tr >
< tr class = "separator:a2c4399cfbde5e5d5eddf2e13c97bd5d5" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a948b15519bb72e3d42f3e56975580d30" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a948b15519bb72e3d42f3e56975580d30" > list_splice_init< / a > (struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *list, struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *head)< / td > < / tr >
< tr class = "separator:a948b15519bb72e3d42f3e56975580d30" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a7f946d296ab41ce808e96d529a4106d6" > < td class = "memItemLeft" align = "right" valign = "top" > static int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a7f946d296ab41ce808e96d529a4106d6" > hlist_unhashed< / a > (const struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *h)< / td > < / tr >
< tr class = "separator:a7f946d296ab41ce808e96d529a4106d6" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:af610dde21167bf116937c81c393a229f" > < td class = "memItemLeft" align = "right" valign = "top" > static int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#af610dde21167bf116937c81c393a229f" > hlist_empty< / a > (const struct < a class = "el" href = "../../df/d4d/structhlist__head.html" > hlist_head< / a > *h)< / td > < / tr >
< tr class = "separator:af610dde21167bf116937c81c393a229f" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a167c5c3fe3b88a3e499210033585c6d8" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a167c5c3fe3b88a3e499210033585c6d8" > __hlist_del< / a > (struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *n)< / td > < / tr >
< tr class = "separator:a167c5c3fe3b88a3e499210033585c6d8" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:aa7bb9806633e74fad4c0f4ba8d3ac850" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#aa7bb9806633e74fad4c0f4ba8d3ac850" > hlist_del< / a > (struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *n)< / td > < / tr >
< tr class = "separator:aa7bb9806633e74fad4c0f4ba8d3ac850" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a0f031846dfd044009602871bd965561c" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a0f031846dfd044009602871bd965561c" > hlist_del_rcu< / a > (struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *n)< / td > < / tr >
< tr class = "separator:a0f031846dfd044009602871bd965561c" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a2e00d6f98de0c25c46a7645a0b6f4d5f" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a2e00d6f98de0c25c46a7645a0b6f4d5f" > hlist_del_init< / a > (struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *n)< / td > < / tr >
< tr class = "separator:a2e00d6f98de0c25c46a7645a0b6f4d5f" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ad7a242949abf03ff2ae417686a4451cd" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#ad7a242949abf03ff2ae417686a4451cd" > hlist_add_head< / a > (struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *n, struct < a class = "el" href = "../../df/d4d/structhlist__head.html" > hlist_head< / a > *h)< / td > < / tr >
< tr class = "separator:ad7a242949abf03ff2ae417686a4451cd" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ad16ef5ef2d6e154c3e770176d8a6b5fd" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#ad16ef5ef2d6e154c3e770176d8a6b5fd" > hlist_add_head_rcu< / a > (struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *n, struct < a class = "el" href = "../../df/d4d/structhlist__head.html" > hlist_head< / a > *h)< / td > < / tr >
< tr class = "separator:ad16ef5ef2d6e154c3e770176d8a6b5fd" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a254a79dcc8e7dd5662a4e67fcd04ed10" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a254a79dcc8e7dd5662a4e67fcd04ed10" > hlist_add_before< / a > (struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *n, struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *next)< / td > < / tr >
< tr class = "separator:a254a79dcc8e7dd5662a4e67fcd04ed10" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a15ceaf3edb7fab6f0b2289cb8c0771c4" > < td class = "memItemLeft" align = "right" valign = "top" > static void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "../../da/d00/linux__list_8h.html#a15ceaf3edb7fab6f0b2289cb8c0771c4" > hlist_add_after< / a > (struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *n, struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *next)< / td > < / tr >
< tr class = "separator:a15ceaf3edb7fab6f0b2289cb8c0771c4" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table >
< h2 class = "groupheader" > Macro Definition Documentation< / h2 >
< a class = "anchor" id = "abfd5aa736021dace98d07ff2518a698d" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define __list_for_each< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > head  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td >       for (pos = (head)-> next; pos != (head); pos = pos-> next)< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > __list_for_each - iterate over a list : the & struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > to use as a loop counter. : the head for your list.< / p >
< p > This variant differs from < a class = "el" href = "../../da/d00/linux__list_8h.html#ab8b24e6660ab3760c923e4b4db3fa502" > list_for_each()< / a > in that it's the simplest possible list iteration code, no prefetching is done. Use this for code that knows the list to be very short (empty or 1 entry) most of the time. < / p >
< / div >
< / div >
< a class = "anchor" id = "abbf51eb5fa935cfe15fae7a37dd983fc" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define __list_for_each_rcu< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > head  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > for< / span > (pos = (head)-> next; pos != (head); \< / div >
< div class = "line" > pos = pos-> next, ({ smp_read_barrier_depends(); 0;}))< / div >
< / div > <!-- fragment -->
< / div >
< / div >
< a class = "anchor" id = "af8c317a42292b61c93aae91e59118a46" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define container_of< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > ptr, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > < a class = "el" href = "../../d8/d91/krnl__route_8c.html#ac765329451135abec74c45e1897abf26" > type< / a > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > member  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > ({ \< / div >
< div class = "line" > const typeof( ((< a class = "code" href = "../../d8/d91/krnl__route_8c.html#ac765329451135abec74c45e1897abf26" > type< / a > *)0)-> member ) *__mptr = (ptr); \< / div >
< div class = "line" > (< a class = "code" href = "../../d8/d91/krnl__route_8c.html#ac765329451135abec74c45e1897abf26" > type< / a > *)( (< span class = "keywordtype" > char< / span > *)__mptr - < a class = "code" href = "../../da/d00/linux__list_8h.html#a276e8a32e0bbf024aadd9420b8f2d3b3" > offsetof< / a > (< a class = "code" href = "../../d8/d91/krnl__route_8c.html#ac765329451135abec74c45e1897abf26" > type< / a > ,member) );})< / div >
< div class = "ttc" id = "krnl__route_8c_html_ac765329451135abec74c45e1897abf26" > < div class = "ttname" > < a href = "../../d8/d91/krnl__route_8c.html#ac765329451135abec74c45e1897abf26" > type< / a > < / div > < div class = "ttdeci" > int type< / div > < div class = "ttdef" > < b > Definition:< / b > krnl_route.c:49< / div > < / div >
< div class = "ttc" id = "linux__list_8h_html_a276e8a32e0bbf024aadd9420b8f2d3b3" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#a276e8a32e0bbf024aadd9420b8f2d3b3" > offsetof< / a > < / div > < div class = "ttdeci" > #define offsetof(TYPE, MEMBER)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:5< / div > < / div >
< / div > <!-- fragment --> < p > container_of - cast a member of a structure out to the containing structure< / p >
< p > : the pointer to the member. : the type of the container struct this is embedded in. : the name of the member within the struct. < / p >
< / div >
< / div >
< a class = "anchor" id = "a57c06f2da305f4a6e16d6a40b196b72e" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define hlist_del_rcu_init      < a class = "el" href = "../../da/d00/linux__list_8h.html#a2e00d6f98de0c25c46a7645a0b6f4d5f" > hlist_del_init< / a > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "ae6c5fc3a7207aad6b8ea756eaa8bb043" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define hlist_entry< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > ptr, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > < a class = "el" href = "../../d8/d91/krnl__route_8c.html#ac765329451135abec74c45e1897abf26" > type< / a > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > member  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td >       < a class = "el" href = "../../da/d00/linux__list_8h.html#af8c317a42292b61c93aae91e59118a46" > container_of< / a > (ptr,< a class = "el" href = "../../d8/d91/krnl__route_8c.html#ac765329451135abec74c45e1897abf26" > type< / a > ,member)< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "ac971440486bd1084a2b110f53a9ad3b7" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define hlist_for_each< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > head  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > for< / span > (pos = (head)-> first; pos & & ({ < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (pos-> next); 1; }); \< / div >
< div class = "line" > pos = pos-> next)< / div >
< div class = "ttc" id = "linux__list_8h_html_a004692feb1f91896c21a6d1644b54f2b" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > < / div > < div class = "ttdeci" > #define prefetch(x)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:30< / div > < / div >
< / div > <!-- fragment -->
< / div >
< / div >
< a class = "anchor" id = "a3758c38c0697ac740d62f4d4db56abb4" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define hlist_for_each_entry< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > tpos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > head, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > member  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > for< / span > (pos = (head)-> first; \< / div >
< div class = "line" > pos & & ({ < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (pos-> next); 1;}) & & \< / div >
< div class = "line" > ({ tpos = < a class = "code" href = "../../da/d00/linux__list_8h.html#ae6c5fc3a7207aad6b8ea756eaa8bb043" > hlist_entry< / a > (pos, typeof(*tpos), member); 1;}); \< / div >
< div class = "line" > pos = pos-> next)< / div >
< div class = "ttc" id = "linux__list_8h_html_ae6c5fc3a7207aad6b8ea756eaa8bb043" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#ae6c5fc3a7207aad6b8ea756eaa8bb043" > hlist_entry< / a > < / div > < div class = "ttdeci" > #define hlist_entry(ptr, type, member)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:646< / div > < / div >
< div class = "ttc" id = "linux__list_8h_html_a004692feb1f91896c21a6d1644b54f2b" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > < / div > < div class = "ttdeci" > #define prefetch(x)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:30< / div > < / div >
< / div > <!-- fragment --> < p > hlist_for_each_entry - iterate over list of given type : the type * to use as a loop counter. : the & struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > to use as a loop counter. : the head for your list. : the name of the < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > within the struct. < / p >
< / div >
< / div >
< a class = "anchor" id = "a28c9946e110bc7830cfaeef96e1306b4" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define hlist_for_each_entry_continue< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > tpos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > member  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > for< / span > (pos = (pos)-> next; \< / div >
< div class = "line" > pos & & ({ < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (pos-> next); 1;}) & & \< / div >
< div class = "line" > ({ tpos = < a class = "code" href = "../../da/d00/linux__list_8h.html#ae6c5fc3a7207aad6b8ea756eaa8bb043" > hlist_entry< / a > (pos, typeof(*tpos), member); 1;}); \< / div >
< div class = "line" > pos = pos-> next)< / div >
< div class = "ttc" id = "linux__list_8h_html_ae6c5fc3a7207aad6b8ea756eaa8bb043" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#ae6c5fc3a7207aad6b8ea756eaa8bb043" > hlist_entry< / a > < / div > < div class = "ttdeci" > #define hlist_entry(ptr, type, member)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:646< / div > < / div >
< div class = "ttc" id = "linux__list_8h_html_a004692feb1f91896c21a6d1644b54f2b" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > < / div > < div class = "ttdeci" > #define prefetch(x)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:30< / div > < / div >
< / div > <!-- fragment --> < p > hlist_for_each_entry_continue - iterate over a hlist continuing after existing point : the type * to use as a loop counter. : the & struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > to use as a loop counter. : the name of the < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > within the struct. < / p >
< / div >
< / div >
< a class = "anchor" id = "a587cf22c9b7f20e8a9e47f82dd1bc7bb" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define hlist_for_each_entry_from< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > tpos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > member  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > for< / span > (; pos & & ({ < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (pos-> next); 1;}) & & \< / div >
< div class = "line" > ({ tpos = < a class = "code" href = "../../da/d00/linux__list_8h.html#ae6c5fc3a7207aad6b8ea756eaa8bb043" > hlist_entry< / a > (pos, typeof(*tpos), member); 1;}); \< / div >
< div class = "line" > pos = pos-> next)< / div >
< div class = "ttc" id = "linux__list_8h_html_ae6c5fc3a7207aad6b8ea756eaa8bb043" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#ae6c5fc3a7207aad6b8ea756eaa8bb043" > hlist_entry< / a > < / div > < div class = "ttdeci" > #define hlist_entry(ptr, type, member)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:646< / div > < / div >
< div class = "ttc" id = "linux__list_8h_html_a004692feb1f91896c21a6d1644b54f2b" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > < / div > < div class = "ttdeci" > #define prefetch(x)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:30< / div > < / div >
< / div > <!-- fragment --> < p > hlist_for_each_entry_from - iterate over a hlist continuing from existing point : the type * to use as a loop counter. : the & struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > to use as a loop counter. : the name of the < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > within the struct. < / p >
< / div >
< / div >
< a class = "anchor" id = "ad4b9f81ad2c6b8d09c79a23ccd9771fe" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define hlist_for_each_entry_rcu< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > tpos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > head, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > member  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > for< / span > (pos = (head)-> first; \< / div >
< div class = "line" > pos & & ({ < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (pos-> next); 1;}) & & \< / div >
< div class = "line" > ({ tpos = < a class = "code" href = "../../da/d00/linux__list_8h.html#ae6c5fc3a7207aad6b8ea756eaa8bb043" > hlist_entry< / a > (pos, typeof(*tpos), member); 1;}); \< / div >
< div class = "line" > pos = pos-> next, ({ smp_read_barrier_depends(); 0; }) )< / div >
< div class = "ttc" id = "linux__list_8h_html_ae6c5fc3a7207aad6b8ea756eaa8bb043" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#ae6c5fc3a7207aad6b8ea756eaa8bb043" > hlist_entry< / a > < / div > < div class = "ttdeci" > #define hlist_entry(ptr, type, member)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:646< / div > < / div >
< div class = "ttc" id = "linux__list_8h_html_a004692feb1f91896c21a6d1644b54f2b" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > < / div > < div class = "ttdeci" > #define prefetch(x)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:30< / div > < / div >
< / div > <!-- fragment --> < p > hlist_for_each_entry_rcu - iterate over rcu list of given type : the type * to use as a loop counter. : the & struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > to use as a loop counter. : the head for your list. : the name of the < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > within the struct.< / p >
< p > This list-traversal primitive may safely run concurrently with the _rcu list-mutation primitives such as hlist_add_rcu() as long as the traversal is guarded by rcu_read_lock(). < / p >
< / div >
< / div >
< a class = "anchor" id = "a5c24f2d2ef4edd718fc7553bbdd22cb6" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define hlist_for_each_entry_safe< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > tpos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > n, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > head, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > member  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > for< / span > (pos = (head)-> first; \< / div >
< div class = "line" > pos & & ({ n = pos-> next; 1; }) & & \< / div >
< div class = "line" > ({ tpos = < a class = "code" href = "../../da/d00/linux__list_8h.html#ae6c5fc3a7207aad6b8ea756eaa8bb043" > hlist_entry< / a > (pos, typeof(*tpos), member); 1;}); \< / div >
< div class = "line" > pos = n)< / div >
< div class = "ttc" id = "linux__list_8h_html_ae6c5fc3a7207aad6b8ea756eaa8bb043" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#ae6c5fc3a7207aad6b8ea756eaa8bb043" > hlist_entry< / a > < / div > < div class = "ttdeci" > #define hlist_entry(ptr, type, member)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:646< / div > < / div >
< / div > <!-- fragment --> < p > hlist_for_each_entry_safe - iterate over list of given type safe against removal of list entry : the type * to use as a loop counter. : the & struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > to use as a loop counter. < br / >
: another & struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > to use as temporary storage : the head for your list. : the name of the < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > within the struct. < / p >
< / div >
< / div >
< a class = "anchor" id = "a0ac51eeb1d38e770546acbe88d566211" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define hlist_for_each_safe< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > n, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > head  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > for< / span > (pos = (head)-> first; pos & & ({ n = pos-> next; 1; }); \< / div >
< div class = "line" > pos = n)< / div >
< / div > <!-- fragment -->
< / div >
< / div >
< a class = "anchor" id = "a5110612fedc3e1b54fce4c2143c4c788" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define HLIST_HEAD< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > name< / td > < td > )< / td >
< td >       struct < a class = "el" href = "../../df/d4d/structhlist__head.html" > hlist_head< / a > name = { .first = NULL }< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "a68283f4abad271853d5b25ad697b1b06" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define HLIST_HEAD_INIT      { .first = NULL }< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "a502bdfb9a4a5a0d922363ea1708bf081" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define INIT_HLIST_HEAD< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > ptr< / td > < td > )< / td >
< td >       ((ptr)-> first = NULL)< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "a9d36ad2cdc5a41b254c71b707760bcce" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define INIT_HLIST_NODE< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > ptr< / td > < td > )< / td >
< td >       ((ptr)-> next = NULL, (ptr)-> pprev = NULL)< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "a0ffe9d28c36d7b018a9cfae33bae45c0" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define INIT_LIST_HEAD< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > ptr< / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > do< / span > { \< / div >
< div class = "line" > (ptr)-> next = (ptr); (ptr)-> prev = (ptr); \< / div >
< div class = "line" > } < span class = "keywordflow" > while< / span > (0)< / div >
< / div > <!-- fragment -->
< / div >
< / div >
< a class = "anchor" id = "a26c976b7f654e70df318c1843e5094de" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define list_entry< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > ptr, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > < a class = "el" href = "../../d8/d91/krnl__route_8c.html#ac765329451135abec74c45e1897abf26" > type< / a > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > member  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td >       < a class = "el" href = "../../da/d00/linux__list_8h.html#af8c317a42292b61c93aae91e59118a46" > container_of< / a > (ptr, < a class = "el" href = "../../d8/d91/krnl__route_8c.html#ac765329451135abec74c45e1897abf26" > type< / a > , member)< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > list_entry - get the struct for this entry : the & struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > pointer. : the type of the struct this is embedded in. : the name of the list_struct within the struct. < / p >
< / div >
< / div >
< a class = "anchor" id = "ab8b24e6660ab3760c923e4b4db3fa502" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define list_for_each< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > head  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > for< / span > (pos = (head)-> next, < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (pos-> next); pos != (head); \< / div >
< div class = "line" > pos = pos-> next, < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (pos-> next))< / div >
< div class = "ttc" id = "linux__list_8h_html_a004692feb1f91896c21a6d1644b54f2b" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > < / div > < div class = "ttdeci" > #define prefetch(x)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:30< / div > < / div >
< / div > <!-- fragment --> < p > list_for_each - iterate over a list : the & struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > to use as a loop counter. : the head for your list. < / p >
< / div >
< / div >
< a class = "anchor" id = "a3cd271ad1585a041358502377e8ae891" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define list_for_each_continue_rcu< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > head  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > for< / span > ((pos) = (pos)-> next, < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > ((pos)-> next); (pos) != (head); \< / div >
< div class = "line" > (pos) = (pos)-> next, ({ smp_read_barrier_depends(); 0;}), < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > ((pos)-> next))< / div >
< div class = "ttc" id = "linux__list_8h_html_a004692feb1f91896c21a6d1644b54f2b" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > < / div > < div class = "ttdeci" > #define prefetch(x)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:30< / div > < / div >
< / div > <!-- fragment --> < p > list_for_each_continue_rcu - iterate over an rcu-protected list continuing after existing point. : the & struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > to use as a loop counter. : the head for your list.< / p >
< p > This list-traversal primitive may safely run concurrently with the _rcu list-mutation primitives such as < a class = "el" href = "../../da/d00/linux__list_8h.html#a087d5457d659b54dafff3b729c867192" > list_add_rcu()< / a > as long as the traversal is guarded by rcu_read_lock(). < / p >
< / div >
< / div >
< a class = "anchor" id = "a9b782fefb5ab71ce9762182e45a615e1" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define list_for_each_entry< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > head, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > member  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > for< / span > (pos = < a class = "code" href = "../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de" > list_entry< / a > ((head)-> next, typeof(*pos), member), \< / div >
< div class = "line" > < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (pos-> member.next); \< / div >
< div class = "line" > & pos-> member != (head); \< / div >
< div class = "line" > pos = < a class = "code" href = "../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de" > list_entry< / a > (pos-> member.next, typeof(*pos), member), \< / div >
< div class = "line" > < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (pos-> member.next))< / div >
< div class = "ttc" id = "linux__list_8h_html_a004692feb1f91896c21a6d1644b54f2b" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > < / div > < div class = "ttdeci" > #define prefetch(x)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:30< / div > < / div >
< div class = "ttc" id = "linux__list_8h_html_a26c976b7f654e70df318c1843e5094de" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de" > list_entry< / a > < / div > < div class = "ttdeci" > #define list_entry(ptr, type, member)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:330< / div > < / div >
< / div > <!-- fragment --> < p > list_for_each_entry - iterate over list of given type : the type * to use as a loop counter. : the head for your list. : the name of the list_struct within the struct. < / p >
< / div >
< / div >
< a class = "anchor" id = "a91b31084b4ece72dbd75d2bb1f01d9ff" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define list_for_each_entry_continue< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > head, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > member  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > for< / span > (pos = < a class = "code" href = "../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de" > list_entry< / a > (pos-> member.next, typeof(*pos), member), \< / div >
< div class = "line" > < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (pos-> member.next); \< / div >
< div class = "line" > & pos-> member != (head); \< / div >
< div class = "line" > pos = < a class = "code" href = "../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de" > list_entry< / a > (pos-> member.next, typeof(*pos), member), \< / div >
< div class = "line" > < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (pos-> member.next))< / div >
< div class = "ttc" id = "linux__list_8h_html_a004692feb1f91896c21a6d1644b54f2b" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > < / div > < div class = "ttdeci" > #define prefetch(x)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:30< / div > < / div >
< div class = "ttc" id = "linux__list_8h_html_a26c976b7f654e70df318c1843e5094de" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de" > list_entry< / a > < / div > < div class = "ttdeci" > #define list_entry(ptr, type, member)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:330< / div > < / div >
< / div > <!-- fragment --> < p > list_for_each_entry_continue - iterate over list of given type continuing after existing point : the type * to use as a loop counter. : the head for your list. : the name of the list_struct within the struct. < / p >
< / div >
< / div >
< a class = "anchor" id = "a8f594017c381faadd03ff91037ef3490" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define list_for_each_entry_rcu< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > head, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > member  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > for< / span > (pos = < a class = "code" href = "../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de" > list_entry< / a > ((head)-> next, typeof(*pos), member), \< / div >
< div class = "line" > < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (pos-> member.next); \< / div >
< div class = "line" > & pos-> member != (head); \< / div >
< div class = "line" > pos = < a class = "code" href = "../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de" > list_entry< / a > (pos-> member.next, typeof(*pos), member), \< / div >
< div class = "line" > ({ smp_read_barrier_depends(); 0;}), \< / div >
< div class = "line" > < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (pos-> member.next))< / div >
< div class = "ttc" id = "linux__list_8h_html_a004692feb1f91896c21a6d1644b54f2b" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > < / div > < div class = "ttdeci" > #define prefetch(x)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:30< / div > < / div >
< div class = "ttc" id = "linux__list_8h_html_a26c976b7f654e70df318c1843e5094de" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de" > list_entry< / a > < / div > < div class = "ttdeci" > #define list_entry(ptr, type, member)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:330< / div > < / div >
< / div > <!-- fragment --> < p > list_for_each_entry_rcu - iterate over rcu list of given type : the type * to use as a loop counter. : the head for your list. : the name of the list_struct within the struct.< / p >
< p > This list-traversal primitive may safely run concurrently with the _rcu list-mutation primitives such as < a class = "el" href = "../../da/d00/linux__list_8h.html#a087d5457d659b54dafff3b729c867192" > list_add_rcu()< / a > as long as the traversal is guarded by rcu_read_lock(). < / p >
< / div >
< / div >
< a class = "anchor" id = "accc8d8e6c8ffe8ce964c5a1b59732cf3" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define list_for_each_entry_reverse< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > head, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > member  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > for< / span > (pos = < a class = "code" href = "../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de" > list_entry< / a > ((head)-> prev, typeof(*pos), member), \< / div >
< div class = "line" > < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (pos-> member.prev); \< / div >
< div class = "line" > & pos-> member != (head); \< / div >
< div class = "line" > pos = < a class = "code" href = "../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de" > list_entry< / a > (pos-> member.prev, typeof(*pos), member), \< / div >
< div class = "line" > < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (pos-> member.prev))< / div >
< div class = "ttc" id = "linux__list_8h_html_a004692feb1f91896c21a6d1644b54f2b" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > < / div > < div class = "ttdeci" > #define prefetch(x)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:30< / div > < / div >
< div class = "ttc" id = "linux__list_8h_html_a26c976b7f654e70df318c1843e5094de" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de" > list_entry< / a > < / div > < div class = "ttdeci" > #define list_entry(ptr, type, member)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:330< / div > < / div >
< / div > <!-- fragment --> < p > list_for_each_entry_reverse - iterate backwards over list of given type. : the type * to use as a loop counter. : the head for your list. : the name of the list_struct within the struct. < / p >
< / div >
< / div >
< a class = "anchor" id = "ac3f72d6bd5144c7970824813810d2da1" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define list_for_each_entry_safe< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > n, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > head, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > member  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > for< / span > (pos = < a class = "code" href = "../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de" > list_entry< / a > ((head)-> next, typeof(*pos), member), \< / div >
< div class = "line" > n = < a class = "code" href = "../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de" > list_entry< / a > (pos-> member.next, typeof(*pos), member); \< / div >
< div class = "line" > & pos-> member != (head); \< / div >
< div class = "line" > pos = n, n = < a class = "code" href = "../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de" > list_entry< / a > (n-> member.next, typeof(*n), member))< / div >
< div class = "ttc" id = "linux__list_8h_html_a26c976b7f654e70df318c1843e5094de" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de" > list_entry< / a > < / div > < div class = "ttdeci" > #define list_entry(ptr, type, member)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:330< / div > < / div >
< / div > <!-- fragment --> < p > list_for_each_entry_safe - iterate over list of given type safe against removal of list entry : the type * to use as a loop counter. < br / >
: another type * to use as temporary storage : the head for your list. : the name of the list_struct within the struct. < / p >
< / div >
< / div >
< a class = "anchor" id = "a19fc06b83f3502a83ce566b8887e6aec" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define list_for_each_prev< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > head  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > for< / span > (pos = (head)-> prev, < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (pos-> prev); pos != (head); \< / div >
< div class = "line" > pos = pos-> prev, < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (pos-> prev))< / div >
< div class = "ttc" id = "linux__list_8h_html_a004692feb1f91896c21a6d1644b54f2b" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > < / div > < div class = "ttdeci" > #define prefetch(x)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:30< / div > < / div >
< / div > <!-- fragment --> < p > list_for_each_prev - iterate over a list backwards : the & struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > to use as a loop counter. : the head for your list. < / p >
< / div >
< / div >
< a class = "anchor" id = "a01f08b212e62fb15eb21a3806fa7590c" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define list_for_each_rcu< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > head  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > for< / span > (pos = (head)-> next, < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (pos-> next); pos != (head); \< / div >
< div class = "line" > pos = pos-> next, ({ smp_read_barrier_depends(); 0;}), < a class = "code" href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > (pos-> next))< / div >
< div class = "ttc" id = "linux__list_8h_html_a004692feb1f91896c21a6d1644b54f2b" > < div class = "ttname" > < a href = "../../da/d00/linux__list_8h.html#a004692feb1f91896c21a6d1644b54f2b" > prefetch< / a > < / div > < div class = "ttdeci" > #define prefetch(x)< / div > < div class = "ttdef" > < b > Definition:< / b > linux_list.h:30< / div > < / div >
< / div > <!-- fragment --> < p > list_for_each_rcu - iterate over an rcu-protected list : the & struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > to use as a loop counter. : the head for your list.< / p >
< p > This list-traversal primitive may safely run concurrently with the _rcu list-mutation primitives such as < a class = "el" href = "../../da/d00/linux__list_8h.html#a087d5457d659b54dafff3b729c867192" > list_add_rcu()< / a > as long as the traversal is guarded by rcu_read_lock(). < / p >
< / div >
< / div >
< a class = "anchor" id = "a9e4b9328744994b9d3878f5dad75c09f" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define list_for_each_safe< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > n, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > head  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > for< / span > (pos = (head)-> next, n = pos-> next; pos != (head); \< / div >
< div class = "line" > pos = n, n = pos-> next)< / div >
< / div > <!-- fragment --> < p > list_for_each_safe - iterate over a list safe against removal of list entry : the & struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > to use as a loop counter. < br / >
: another & struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > to use as temporary storage : the head for your list. < / p >
< / div >
< / div >
< a class = "anchor" id = "a5d11673db9368e449f5cd52416fa1cf7" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define list_for_each_safe_rcu< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > n, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > head  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > < span class = "keywordflow" > for< / span > (pos = (head)-> next, n = pos-> next; pos != (head); \< / div >
< div class = "line" > pos = n, ({ smp_read_barrier_depends(); 0;}), n = pos-> next)< / div >
< / div > <!-- fragment --> < p > list_for_each_safe_rcu - iterate over an rcu-protected list safe against removal of list entry : the & struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > to use as a loop counter. < br / >
: another & struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > to use as temporary storage : the head for your list.< / p >
< p > This list-traversal primitive may safely run concurrently with the _rcu list-mutation primitives such as < a class = "el" href = "../../da/d00/linux__list_8h.html#a087d5457d659b54dafff3b729c867192" > list_add_rcu()< / a > as long as the traversal is guarded by rcu_read_lock(). < / p >
< / div >
< / div >
< a class = "anchor" id = "a42f0e72af970a790b60a740af8c9ecd0" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define LIST_HEAD< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > name< / td > < td > )< / td >
< td >       struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > name = < a class = "el" href = "../../da/d00/linux__list_8h.html#a4642d4b7df28478bb762fe43c85b5c63" > LIST_HEAD_INIT< / a > (name)< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "a4642d4b7df28478bb762fe43c85b5c63" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define LIST_HEAD_INIT< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > name< / td > < td > )< / td >
< td >       { & (name), & (name) }< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "a96b8b53821aa079fc5acc2ecac6a309f" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define LIST_POISON1      ((void *) 0x00100100)< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "a32e88152ac3cebc4352f9f6254e786ff" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define LIST_POISON2      ((void *) 0x00200200)< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "af6fc8bdd3ce7ee375e35baf9d2b2e62a" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define list_prepare_entry< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > pos, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > head, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > member  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td >       ((pos) ? : < a class = "el" href = "../../da/d00/linux__list_8h.html#a26c976b7f654e70df318c1843e5094de" > list_entry< / a > (head, typeof(*pos), member))< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > list_prepare_entry - prepare a pos entry for use as a start point in list_for_each_entry_continue : the type * to use as a start point : the head of the list : the name of the list_struct within the struct. < / p >
< / div >
< / div >
< a class = "anchor" id = "a276e8a32e0bbf024aadd9420b8f2d3b3" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define offsetof< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > TYPE, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > MEMBER  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td >       ((size_t) & ((TYPE *)0)-> MEMBER)< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "a004692feb1f91896c21a6d1644b54f2b" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define prefetch< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > x< / td > < td > )< / td >
< td >       1< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "af5af5daeacc75c413fb9a3f910e9fb32" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define smp_wmb< / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "a8b644e688b339331a7c1f93a39c379ad" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define typecheck< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > < a class = "el" href = "../../d8/d91/krnl__route_8c.html#ac765329451135abec74c45e1897abf26" > type< / a > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > x  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > ({ < a class = "code" href = "../../d8/d91/krnl__route_8c.html#ac765329451135abec74c45e1897abf26" > type< / a > __dummy; \< / div >
< div class = "line" > typeof(x) __dummy2; \< / div >
< div class = "line" > (< span class = "keywordtype" > void< / span > )(& __dummy == & __dummy2); \< / div >
< div class = "line" > 1; \< / div >
< div class = "line" > })< / div >
< div class = "ttc" id = "krnl__route_8c_html_ac765329451135abec74c45e1897abf26" > < div class = "ttname" > < a href = "../../d8/d91/krnl__route_8c.html#ac765329451135abec74c45e1897abf26" > type< / a > < / div > < div class = "ttdeci" > int type< / div > < div class = "ttdef" > < b > Definition:< / b > krnl_route.c:49< / div > < / div >
< / div > <!-- fragment -->
< / div >
< / div >
< h2 class = "groupheader" > Function Documentation< / h2 >
< a class = "anchor" id = "a167c5c3fe3b88a3e499210033585c6d8" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void __hlist_del < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *  < / td >
< td class = "paramname" > < em > n< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > < div class = "dynheader" >
Here is the caller graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_a167c5c3fe3b88a3e499210033585c6d8_icgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_a167c5c3fe3b88a3e499210033585c6d8_icgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_a167c5c3fe3b88a3e499210033585c6d8_icgraph" id = "da/d00/linux__list_8h_a167c5c3fe3b88a3e499210033585c6d8_icgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#aa7bb9806633e74fad4c0f4ba8d3ac850" title = "hlist_del" alt = "" coords = "152,5,221,35" / > < area shape = "rect" id = "node5" href = "../../da/d00/linux__list_8h.html#a0f031846dfd044009602871bd965561c" title = "hlist_del_rcu" alt = "" coords = "140,59,233,88" / > < area shape = "rect" id = "node7" href = "../../da/d00/linux__list_8h.html#a2e00d6f98de0c25c46a7645a0b6f4d5f" title = "hlist_del_init" alt = "" coords = "140,112,233,141" / > < / map >
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "a8a28f150a191624bf6923a48cdace7e3" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void __list_add < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > new< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > prev< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > next< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > < div class = "dynheader" >
Here is the caller graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_a8a28f150a191624bf6923a48cdace7e3_icgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_a8a28f150a191624bf6923a48cdace7e3_icgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_a8a28f150a191624bf6923a48cdace7e3_icgraph" id = "da/d00/linux__list_8h_a8a28f150a191624bf6923a48cdace7e3_icgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#a0373c4b3c8ce51a451a569ad978b32e1" title = "list_add" alt = "" coords = "148,57,215,87" / > < area shape = "rect" id = "node7" href = "../../da/d00/linux__list_8h.html#a588bec046f1e9797b33a5c5ab250f447" title = "list_add_tail" alt = "" coords = "136,161,227,191" / > < area shape = "rect" id = "node5" href = "../../da/d00/linux__list_8h.html#aee8df43e41969c2272acfd6ed6e75d4c" title = "list_move" alt = "" coords = "315,5,392,35" / > < area shape = "rect" id = "node9" href = "../../d6/dd7/libiptc_8c.html#af130614ad67e104ad214525f45dacc8f" title = "iptc_insert_chain" alt = "" coords = "293,59,413,88" / > < area shape = "rect" id = "node13" href = "../../d6/dd7/libiptc_8c.html#a7d354e9d7ffb0e9c1dd2da8dee8825a5" title = "cache_add_entry" alt = "" coords = "696,111,816,140" / > < area shape = "rect" id = "node22" href = "../../d6/dd7/libiptc_8c.html#aa9fc5848183e96cd3d8ccdbf7427750c" title = "TC_INSERT_ENTRY" alt = "" coords = "481,163,631,192" / > < area shape = "rect" id = "node25" href = "../../d6/dd7/libiptc_8c.html#a18298788b51418c936d6557e047951f9" title = "TC_APPEND_ENTRY" alt = "" coords = "276,213,431,243" / > < area shape = "rect" id = "node27" href = "../../d6/dd7/libiptc_8c.html#aa6d69e796c7f333c9b8906bf904cd85e" title = "TC_CREATE_CHAIN" alt = "" coords = "680,240,832,269" / > < area shape = "rect" id = "node30" href = "../../da/d00/linux__list_8h.html#a1c5ac6a6b04a03f5782e818daacf96e9" title = "list_move_tail" alt = "" coords = "303,317,404,347" / > < area shape = "rect" id = "node11" href = "../../d6/dd7/libiptc_8c.html#a027b4f4be877fb5fac76780fffd10416" title = "__iptcc_p_add_chain" alt = "" coords = "484,59,628,88" / > < area shape = "rect" id = "node15" href = "../../d6/dd7/libiptc_8c.html#a88b01c8f1765564781d4edc11a79ef02" title = "parse_table" alt = "" coords = "881,111,969,140" / > < area shape = "rect" id = "node17" href = "../../d6/dd7/libiptc_8c.html#afd58eb6a5f1ed0495ffdf844c35864b7" title = "TC_INIT" alt = "" coords = "1020,111,1092,140" / > < area shape = "rect" id = "node19" href = "../../d6/dd7/libiptc_8c.html#a62e972b7995de2ebbda29fcde37042da" title = "TC_STRERROR" alt = "" coords = "1141,163,1264,192" / > < / map >
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "a5f5c28e8a54fd6bfbe9a9419aefddb88" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void __list_add_rcu < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > new< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > prev< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > next< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > < div class = "dynheader" >
Here is the caller graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_a5f5c28e8a54fd6bfbe9a9419aefddb88_icgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_a5f5c28e8a54fd6bfbe9a9419aefddb88_icgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_a5f5c28e8a54fd6bfbe9a9419aefddb88_icgraph" id = "da/d00/linux__list_8h_a5f5c28e8a54fd6bfbe9a9419aefddb88_icgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#a087d5457d659b54dafff3b729c867192" title = "list_add_rcu" alt = "" coords = "173,5,264,35" / > < area shape = "rect" id = "node5" href = "../../da/d00/linux__list_8h.html#a9c0a5060da14beb9e5aac0333a0162e1" title = "list_add_tail_rcu" alt = "" coords = "161,59,276,88" / > < / map >
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "a24b474717d65a296695e8b79b4adefda" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void __list_del < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > prev< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > next< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > < div class = "dynheader" >
Here is the caller graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_a24b474717d65a296695e8b79b4adefda_icgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_a24b474717d65a296695e8b79b4adefda_icgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_a24b474717d65a296695e8b79b4adefda_icgraph" id = "da/d00/linux__list_8h_a24b474717d65a296695e8b79b4adefda_icgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#ab1708206f0f7e0a56550b35372203ba5" title = "list_del" alt = "" coords = "152,5,213,35" / > < area shape = "rect" id = "node5" href = "../../da/d00/linux__list_8h.html#a3495fef4758575d5f7524d1585043ff0" title = "list_del_rcu" alt = "" coords = "139,59,227,88" / > < area shape = "rect" id = "node7" href = "../../da/d00/linux__list_8h.html#ae1cde0f50b85945cfff23be4fc1586f4" title = "list_del_init" alt = "" coords = "140,112,225,141" / > < area shape = "rect" id = "node9" href = "../../da/d00/linux__list_8h.html#aee8df43e41969c2272acfd6ed6e75d4c" title = "list_move" alt = "" coords = "144,165,221,195" / > < area shape = "rect" id = "node11" href = "../../da/d00/linux__list_8h.html#a1c5ac6a6b04a03f5782e818daacf96e9" title = "list_move_tail" alt = "" coords = "132,219,233,248" / > < / map >
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "a25979c80a2d71dd02ada121a46c71a59" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void __list_splice < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > list< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > head< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > < div class = "dynheader" >
Here is the caller graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_a25979c80a2d71dd02ada121a46c71a59_icgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_a25979c80a2d71dd02ada121a46c71a59_icgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_a25979c80a2d71dd02ada121a46c71a59_icgraph" id = "da/d00/linux__list_8h_a25979c80a2d71dd02ada121a46c71a59_icgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#a2c4399cfbde5e5d5eddf2e13c97bd5d5" title = "list_splice" alt = "" coords = "161,5,241,35" / > < area shape = "rect" id = "node5" href = "../../da/d00/linux__list_8h.html#a948b15519bb72e3d42f3e56975580d30" title = "list_splice_init" alt = "" coords = "149,59,253,88" / > < / map >
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "a15ceaf3edb7fab6f0b2289cb8c0771c4" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void hlist_add_after < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *  < / td >
< td class = "paramname" > < em > n< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *  < / td >
< td class = "paramname" > < em > next< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "a254a79dcc8e7dd5662a4e67fcd04ed10" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void hlist_add_before < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *  < / td >
< td class = "paramname" > < em > n< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *  < / td >
< td class = "paramname" > < em > next< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "ad7a242949abf03ff2ae417686a4451cd" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void hlist_add_head < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *  < / td >
< td class = "paramname" > < em > n< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > struct < a class = "el" href = "../../df/d4d/structhlist__head.html" > hlist_head< / a > *  < / td >
< td class = "paramname" > < em > h< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "ad16ef5ef2d6e154c3e770176d8a6b5fd" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void hlist_add_head_rcu < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *  < / td >
< td class = "paramname" > < em > n< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > struct < a class = "el" href = "../../df/d4d/structhlist__head.html" > hlist_head< / a > *  < / td >
< td class = "paramname" > < em > h< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > hlist_add_head_rcu - adds the specified element to the specified hlist, while permitting racing traversals. < br / >
: the element to add to the hash list. : the list to add to.< / p >
< p > The caller must take whatever precautions are necessary (such as holding appropriate locks) to avoid racing with another list-mutation primitive, such as < a class = "el" href = "../../da/d00/linux__list_8h.html#ad16ef5ef2d6e154c3e770176d8a6b5fd" > hlist_add_head_rcu()< / a > or < a class = "el" href = "../../da/d00/linux__list_8h.html#a0f031846dfd044009602871bd965561c" > hlist_del_rcu()< / a > , running on this same list. However, it is perfectly legal to run concurrently with the _rcu list-traversal primitives, such as < a class = "el" href = "../../da/d00/linux__list_8h.html#a3758c38c0697ac740d62f4d4db56abb4" > hlist_for_each_entry()< / a > , but only if smp_read_barrier_depends() is used to prevent memory-consistency problems on Alpha CPUs. Regardless of the type of CPU, the list-traversal primitive must be guarded by rcu_read_lock().< / p >
< p > OK, so why don't we have an < a class = "el" href = "../../da/d00/linux__list_8h.html#ad4b9f81ad2c6b8d09c79a23ccd9771fe" > hlist_for_each_entry_rcu()< / a > ??? < / p >
< / div >
< / div >
< a class = "anchor" id = "aa7bb9806633e74fad4c0f4ba8d3ac850" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void hlist_del < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *  < / td >
< td class = "paramname" > < em > n< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_aa7bb9806633e74fad4c0f4ba8d3ac850_cgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_aa7bb9806633e74fad4c0f4ba8d3ac850_cgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_aa7bb9806633e74fad4c0f4ba8d3ac850_cgraph" id = "da/d00/linux__list_8h_aa7bb9806633e74fad4c0f4ba8d3ac850_cgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#a167c5c3fe3b88a3e499210033585c6d8" title = "__hlist_del" alt = "" coords = "127,5,209,35" / > < / map >
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "a2e00d6f98de0c25c46a7645a0b6f4d5f" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void hlist_del_init < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *  < / td >
< td class = "paramname" > < em > n< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_a2e00d6f98de0c25c46a7645a0b6f4d5f_cgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_a2e00d6f98de0c25c46a7645a0b6f4d5f_cgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_a2e00d6f98de0c25c46a7645a0b6f4d5f_cgraph" id = "da/d00/linux__list_8h_a2e00d6f98de0c25c46a7645a0b6f4d5f_cgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#a167c5c3fe3b88a3e499210033585c6d8" title = "__hlist_del" alt = "" coords = "151,5,233,35" / > < / map >
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "a0f031846dfd044009602871bd965561c" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void hlist_del_rcu < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *  < / td >
< td class = "paramname" > < em > n< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > hlist_del_rcu - deletes entry from hash list without re-initialization < br / >
: the element to delete from the hash list.< / p >
< p > Note: list_unhashed() on entry does not return true after this, the entry is in an undefined state. It is useful for RCU based lockfree traversal.< / p >
< p > In particular, it means that we can not poison the forward pointers that may still be used for walking the hash list.< / p >
< p > The caller must take whatever precautions are necessary (such as holding appropriate locks) to avoid racing with another list-mutation primitive, such as < a class = "el" href = "../../da/d00/linux__list_8h.html#ad16ef5ef2d6e154c3e770176d8a6b5fd" > hlist_add_head_rcu()< / a > or < a class = "el" href = "../../da/d00/linux__list_8h.html#a0f031846dfd044009602871bd965561c" > hlist_del_rcu()< / a > , running on this same list. However, it is perfectly legal to run concurrently with the _rcu list-traversal primitives, such as < a class = "el" href = "../../da/d00/linux__list_8h.html#a3758c38c0697ac740d62f4d4db56abb4" > hlist_for_each_entry()< / a > . < / p >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_a0f031846dfd044009602871bd965561c_cgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_a0f031846dfd044009602871bd965561c_cgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_a0f031846dfd044009602871bd965561c_cgraph" id = "da/d00/linux__list_8h_a0f031846dfd044009602871bd965561c_cgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#a167c5c3fe3b88a3e499210033585c6d8" title = "__hlist_del" alt = "" coords = "151,5,233,35" / > < / map >
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "af610dde21167bf116937c81c393a229f" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static int hlist_empty < / td >
< td > (< / td >
< td class = "paramtype" > const struct < a class = "el" href = "../../df/d4d/structhlist__head.html" > hlist_head< / a > *  < / td >
< td class = "paramname" > < em > h< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "a7f946d296ab41ce808e96d529a4106d6" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static int hlist_unhashed < / td >
< td > (< / td >
< td class = "paramtype" > const struct < a class = "el" href = "../../da/d12/structhlist__node.html" > hlist_node< / a > *  < / td >
< td class = "paramname" > < em > h< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "a0373c4b3c8ce51a451a569ad978b32e1" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void list_add < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > new< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > head< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > list_add - add a new entry : new entry to be added : list head to add it after< / p >
< p > Insert a new entry after the specified head. This is good for implementing stacks. < / p >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_a0373c4b3c8ce51a451a569ad978b32e1_cgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_a0373c4b3c8ce51a451a569ad978b32e1_cgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_a0373c4b3c8ce51a451a569ad978b32e1_cgraph" id = "da/d00/linux__list_8h_a0373c4b3c8ce51a451a569ad978b32e1_cgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#a8a28f150a191624bf6923a48cdace7e3" title = "__list_add" alt = "" coords = "121,5,201,35" / > < / map >
< / div >
< / p >
< p > < div class = "dynheader" >
Here is the caller graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_a0373c4b3c8ce51a451a569ad978b32e1_icgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_a0373c4b3c8ce51a451a569ad978b32e1_icgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_a0373c4b3c8ce51a451a569ad978b32e1_icgraph" id = "da/d00/linux__list_8h_a0373c4b3c8ce51a451a569ad978b32e1_icgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#aee8df43e41969c2272acfd6ed6e75d4c" title = "list_move" alt = "" coords = "121,5,199,35" / > < / map >
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "a087d5457d659b54dafff3b729c867192" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void list_add_rcu < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > new< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > head< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > list_add_rcu - add a new entry to rcu-protected list : new entry to be added : list head to add it after< / p >
< p > Insert a new entry after the specified head. This is good for implementing stacks.< / p >
< p > The caller must take whatever precautions are necessary (such as holding appropriate locks) to avoid racing with another list-mutation primitive, such as < a class = "el" href = "../../da/d00/linux__list_8h.html#a087d5457d659b54dafff3b729c867192" > list_add_rcu()< / a > or < a class = "el" href = "../../da/d00/linux__list_8h.html#a3495fef4758575d5f7524d1585043ff0" > list_del_rcu()< / a > , running on this same list. However, it is perfectly legal to run concurrently with the _rcu list-traversal primitives, such as < a class = "el" href = "../../da/d00/linux__list_8h.html#a8f594017c381faadd03ff91037ef3490" > list_for_each_entry_rcu()< / a > . < / p >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_a087d5457d659b54dafff3b729c867192_cgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_a087d5457d659b54dafff3b729c867192_cgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_a087d5457d659b54dafff3b729c867192_cgraph" id = "da/d00/linux__list_8h_a087d5457d659b54dafff3b729c867192_cgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#a5f5c28e8a54fd6bfbe9a9419aefddb88" title = "__list_add_rcu" alt = "" coords = "147,5,253,35" / > < / map >
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "a588bec046f1e9797b33a5c5ab250f447" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void list_add_tail < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > new< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > head< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > list_add_tail - add a new entry : new entry to be added : list head to add it before< / p >
< p > Insert a new entry before the specified head. This is useful for implementing queues. < / p >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_a588bec046f1e9797b33a5c5ab250f447_cgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_a588bec046f1e9797b33a5c5ab250f447_cgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_a588bec046f1e9797b33a5c5ab250f447_cgraph" id = "da/d00/linux__list_8h_a588bec046f1e9797b33a5c5ab250f447_cgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#a8a28f150a191624bf6923a48cdace7e3" title = "__list_add" alt = "" coords = "145,5,225,35" / > < / map >
< / div >
< / p >
< p > < div class = "dynheader" >
Here is the caller graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_a588bec046f1e9797b33a5c5ab250f447_icgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_a588bec046f1e9797b33a5c5ab250f447_icgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_a588bec046f1e9797b33a5c5ab250f447_icgraph" id = "da/d00/linux__list_8h_a588bec046f1e9797b33a5c5ab250f447_icgraph" >
< area shape = "rect" id = "node3" href = "../../d6/dd7/libiptc_8c.html#af130614ad67e104ad214525f45dacc8f" title = "iptc_insert_chain" alt = "" coords = "163,5,283,35" / > < area shape = "rect" id = "node7" href = "../../d6/dd7/libiptc_8c.html#a7d354e9d7ffb0e9c1dd2da8dee8825a5" title = "cache_add_entry" alt = "" coords = "565,57,685,87" / > < area shape = "rect" id = "node16" href = "../../d6/dd7/libiptc_8c.html#aa9fc5848183e96cd3d8ccdbf7427750c" title = "TC_INSERT_ENTRY" alt = "" coords = "351,109,500,139" / > < area shape = "rect" id = "node19" href = "../../d6/dd7/libiptc_8c.html#a18298788b51418c936d6557e047951f9" title = "TC_APPEND_ENTRY" alt = "" coords = "145,160,300,189" / > < area shape = "rect" id = "node21" href = "../../d6/dd7/libiptc_8c.html#aa6d69e796c7f333c9b8906bf904cd85e" title = "TC_CREATE_CHAIN" alt = "" coords = "549,187,701,216" / > < area shape = "rect" id = "node24" href = "../../da/d00/linux__list_8h.html#a1c5ac6a6b04a03f5782e818daacf96e9" title = "list_move_tail" alt = "" coords = "172,264,273,293" / > < area shape = "rect" id = "node5" href = "../../d6/dd7/libiptc_8c.html#a027b4f4be877fb5fac76780fffd10416" title = "__iptcc_p_add_chain" alt = "" coords = "353,5,497,35" / > < area shape = "rect" id = "node9" href = "../../d6/dd7/libiptc_8c.html#a88b01c8f1765564781d4edc11a79ef02" title = "parse_table" alt = "" coords = "751,57,839,87" / > < area shape = "rect" id = "node11" href = "../../d6/dd7/libiptc_8c.html#afd58eb6a5f1ed0495ffdf844c35864b7" title = "TC_INIT" alt = "" coords = "889,57,961,87" / > < area shape = "rect" id = "node13" href = "../../d6/dd7/libiptc_8c.html#a62e972b7995de2ebbda29fcde37042da" title = "TC_STRERROR" alt = "" coords = "1011,109,1133,139" / > < / map >
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "a9c0a5060da14beb9e5aac0333a0162e1" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void list_add_tail_rcu < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > new< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > head< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > list_add_tail_rcu - add a new entry to rcu-protected list : new entry to be added : list head to add it before< / p >
< p > Insert a new entry before the specified head. This is useful for implementing queues.< / p >
< p > The caller must take whatever precautions are necessary (such as holding appropriate locks) to avoid racing with another list-mutation primitive, such as < a class = "el" href = "../../da/d00/linux__list_8h.html#a9c0a5060da14beb9e5aac0333a0162e1" > list_add_tail_rcu()< / a > or < a class = "el" href = "../../da/d00/linux__list_8h.html#a3495fef4758575d5f7524d1585043ff0" > list_del_rcu()< / a > , running on this same list. However, it is perfectly legal to run concurrently with the _rcu list-traversal primitives, such as < a class = "el" href = "../../da/d00/linux__list_8h.html#a8f594017c381faadd03ff91037ef3490" > list_for_each_entry_rcu()< / a > . < / p >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_a9c0a5060da14beb9e5aac0333a0162e1_cgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_a9c0a5060da14beb9e5aac0333a0162e1_cgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_a9c0a5060da14beb9e5aac0333a0162e1_cgraph" id = "da/d00/linux__list_8h_a9c0a5060da14beb9e5aac0333a0162e1_cgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#a5f5c28e8a54fd6bfbe9a9419aefddb88" title = "__list_add_rcu" alt = "" coords = "171,5,277,35" / > < / map >
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "ab1708206f0f7e0a56550b35372203ba5" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void list_del < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > entry< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > list_del - deletes entry from list. : the element to delete from the list. Note: list_empty on entry does not return true after this, the entry is in an undefined state. < / p >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_ab1708206f0f7e0a56550b35372203ba5_cgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_ab1708206f0f7e0a56550b35372203ba5_cgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_ab1708206f0f7e0a56550b35372203ba5_cgraph" id = "da/d00/linux__list_8h_ab1708206f0f7e0a56550b35372203ba5_cgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#a24b474717d65a296695e8b79b4adefda" title = "__list_del" alt = "" coords = "117,5,195,35" / > < / map >
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "ae1cde0f50b85945cfff23be4fc1586f4" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void list_del_init < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > entry< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > list_del_init - deletes entry from list and reinitialize it. : the element to delete from the list. < / p >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_ae1cde0f50b85945cfff23be4fc1586f4_cgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_ae1cde0f50b85945cfff23be4fc1586f4_cgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_ae1cde0f50b85945cfff23be4fc1586f4_cgraph" id = "da/d00/linux__list_8h_ae1cde0f50b85945cfff23be4fc1586f4_cgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#a24b474717d65a296695e8b79b4adefda" title = "__list_del" alt = "" coords = "141,5,219,35" / > < / map >
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "a3495fef4758575d5f7524d1585043ff0" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void list_del_rcu < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > entry< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > list_del_rcu - deletes entry from list without re-initialization : the element to delete from the list.< / p >
< p > Note: list_empty on entry does not return true after this, the entry is in an undefined state. It is useful for RCU based lockfree traversal.< / p >
< p > In particular, it means that we can not poison the forward pointers that may still be used for walking the list.< / p >
< p > The caller must take whatever precautions are necessary (such as holding appropriate locks) to avoid racing with another list-mutation primitive, such as < a class = "el" href = "../../da/d00/linux__list_8h.html#a3495fef4758575d5f7524d1585043ff0" > list_del_rcu()< / a > or < a class = "el" href = "../../da/d00/linux__list_8h.html#a087d5457d659b54dafff3b729c867192" > list_add_rcu()< / a > , running on this same list. However, it is perfectly legal to run concurrently with the _rcu list-traversal primitives, such as < a class = "el" href = "../../da/d00/linux__list_8h.html#a8f594017c381faadd03ff91037ef3490" > list_for_each_entry_rcu()< / a > .< / p >
< p > Note that the caller is not permitted to immediately free the newly deleted entry. Instead, either synchronize_kernel() or call_rcu() must be used to defer freeing until an RCU grace period has elapsed. < / p >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_a3495fef4758575d5f7524d1585043ff0_cgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_a3495fef4758575d5f7524d1585043ff0_cgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_a3495fef4758575d5f7524d1585043ff0_cgraph" id = "da/d00/linux__list_8h_a3495fef4758575d5f7524d1585043ff0_cgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#a24b474717d65a296695e8b79b4adefda" title = "__list_del" alt = "" coords = "141,5,219,35" / > < / map >
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "a6601e54d8f27ab290ee6819f7e2127b7" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static int list_empty < / td >
< td > (< / td >
< td class = "paramtype" > const struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > head< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > list_empty - tests whether a list is empty : the list to test. < / p >
< p > < div class = "dynheader" >
Here is the caller graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_a6601e54d8f27ab290ee6819f7e2127b7_icgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_a6601e54d8f27ab290ee6819f7e2127b7_icgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_a6601e54d8f27ab290ee6819f7e2127b7_icgraph" id = "da/d00/linux__list_8h_a6601e54d8f27ab290ee6819f7e2127b7_icgraph" >
< area shape = "rect" id = "node3" href = "../../d6/dd7/libiptc_8c.html#a38af0a178e8c71ee018028ef407ed4ff" title = "iptcc_find_chain_by\l_offset" alt = "" coords = "137,87,273,134" / > < area shape = "rect" id = "node11" href = "../../d6/dd7/libiptc_8c.html#a537585c708e6440a6b4c76b0b72ce68e" title = "iptcc_find_label" alt = "" coords = "149,555,261,584" / > < area shape = "rect" id = "node15" href = "../../d6/dd7/libiptc_8c.html#a8aeefea6be57fb34e0113768d7eb43e3" title = "TC_FIRST_RULE" alt = "" coords = "347,59,475,88" / > < area shape = "rect" id = "node74" href = "../../d6/dd7/libiptc_8c.html#a821ea52a8a8e750fdc4d671b63079eab" title = "TC_FIRST_CHAIN" alt = "" coords = "137,608,273,637" / > < area shape = "rect" id = "node77" href = "../../da/d00/linux__list_8h.html#a2c4399cfbde5e5d5eddf2e13c97bd5d5" title = "list_splice" alt = "" coords = "165,661,245,691" / > < area shape = "rect" id = "node79" href = "../../da/d00/linux__list_8h.html#a948b15519bb72e3d42f3e56975580d30" title = "list_splice_init" alt = "" coords = "153,715,257,744" / > < area shape = "rect" id = "node5" href = "../../d6/dd7/libiptc_8c.html#a88b01c8f1765564781d4edc11a79ef02" title = "parse_table" alt = "" coords = "367,5,455,35" / > < area shape = "rect" id = "node7" href = "../../d6/dd7/libiptc_8c.html#afd58eb6a5f1ed0495ffdf844c35864b7" title = "TC_INIT" alt = "" coords = "607,59,679,88" / > < area shape = "rect" id = "node9" href = "../../d6/dd7/libiptc_8c.html#a62e972b7995de2ebbda29fcde37042da" title = "TC_STRERROR" alt = "" coords = "997,544,1120,573" / > < area shape = "rect" id = "node13" href = "../../d6/dd7/libiptc_8c.html#aaff5540b4263e466f559e566df6fa378" title = "TC_IS_CHAIN" alt = "" coords = "356,317,465,347" / > < area shape = "rect" id = "node17" href = "../../d6/dd7/libiptc_8c.html#a77212d99884f4e4586c7876cdc1a0589" title = "TC_NUM_RULES" alt = "" coords = "345,371,476,400" / > < area shape = "rect" id = "node19" href = "../../d6/dd7/libiptc_8c.html#a8226780614e4deca0a5ce9e95137fa74" title = "TC_GET_RULE" alt = "" coords = "352,424,469,453" / > < area shape = "rect" id = "node21" href = "../../d6/dd7/libiptc_8c.html#a4333074027c3913b1d64ea4173759658" title = "TC_BUILTIN" alt = "" coords = "361,632,460,661" / > < area shape = "rect" id = "node23" href = "../../d6/dd7/libiptc_8c.html#a91e987eb3d50439f529daa293072abae" title = "iptcc_map_target" alt = "" coords = "581,784,704,813" / > < area shape = "rect" id = "node25" href = "../../d6/dd7/libiptc_8c.html#aa9fc5848183e96cd3d8ccdbf7427750c" title = "TC_INSERT_ENTRY" alt = "" coords = "793,731,943,760" / > < area shape = "rect" id = "node28" href = "../../d6/dd7/libiptc_8c.html#ade0a6c01e729491188f70078cef806a3" title = "TC_REPLACE_ENTRY" alt = "" coords = "787,837,949,867" / > < area shape = "rect" id = "node31" href = "../../d6/dd7/libiptc_8c.html#a18298788b51418c936d6557e047951f9" title = "TC_APPEND_ENTRY" alt = "" coords = "791,784,945,813" / > < area shape = "rect" id = "node33" href = "../../d6/dd7/libiptc_8c.html#aebe11c9e250fe9cc800e331dde41f6d5" title = "TC_DELETE_ENTRY" alt = "" coords = "792,891,944,920" / > < area shape = "rect" id = "node36" href = "../../d6/dd7/libiptc_8c.html#a1d8401d070e298356e246974baa96a84" title = "TC_DELETE_CHAIN" alt = "" coords = "568,575,717,604" / > < area shape = "rect" id = "node39" href = "../../d6/dd7/libiptc_8c.html#ab9d1b99e0007fc1e8cdd1ce401e1f93e" title = "TC_RENAME_CHAIN" alt = "" coords = "565,651,720,680" / > < area shape = "rect" id = "node41" href = "../../d6/dd7/libiptc_8c.html#a2df96f156004ca01a55e776904426ec6" title = "TC_GET_POLICY" alt = "" coords = "345,888,476,917" / > < area shape = "rect" id = "node48" href = "../../d6/dd7/libiptc_8c.html#a272decda58f7f0b063934de1480a7006" title = "TC_DELETE_NUM_ENTRY" alt = "" coords = "548,1149,737,1179" / > < area shape = "rect" id = "node51" href = "../../d6/dd7/libiptc_8c.html#a9d8a4fce8561fd4d3ac9e3fa569c713c" title = "TC_FLUSH_ENTRIES" alt = "" coords = "332,992,489,1021" / > < area shape = "rect" id = "node53" href = "../../d6/dd7/libiptc_8c.html#ad51cc689978226dc859e567d8169f594" title = "TC_ZERO_ENTRIES" alt = "" coords = "336,1045,485,1075" / > < area shape = "rect" id = "node55" href = "../../d6/dd7/libiptc_8c.html#ababa17afed20e1cc5aeba658b7f97263" title = "TC_READ_COUNTER" alt = "" coords = "789,177,947,207" / > < area shape = "rect" id = "node58" href = "../../d6/dd7/libiptc_8c.html#a04fcf00be186cb2a9987f41ef75ea17f" title = "TC_ZERO_COUNTER" alt = "" coords = "564,216,721,245" / > < are
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "aba7d3f2ac5d41b9040e7341cab21591b" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static int list_empty_careful < / td >
< td > (< / td >
< td class = "paramtype" > const struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > head< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > list_empty_careful - tests whether a list is empty < em > and< / em > checks that no other CPU might be in the process of still modifying either member< / p >
< p > NOTE: using < a class = "el" href = "../../da/d00/linux__list_8h.html#aba7d3f2ac5d41b9040e7341cab21591b" > list_empty_careful()< / a > without synchronization can only be safe if the only activity that can happen to the list entry is < a class = "el" href = "../../da/d00/linux__list_8h.html#ae1cde0f50b85945cfff23be4fc1586f4" > list_del_init()< / a > . Eg. it cannot be used if another CPU could re-list_add() it.< / p >
< p > : the list to test. < / p >
< / div >
< / div >
< a class = "anchor" id = "aee8df43e41969c2272acfd6ed6e75d4c" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void list_move < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > list< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > head< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > list_move - delete from one list and add as another's head : the entry to move : the head that will precede our entry < / p >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_aee8df43e41969c2272acfd6ed6e75d4c_cgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_aee8df43e41969c2272acfd6ed6e75d4c_cgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_aee8df43e41969c2272acfd6ed6e75d4c_cgraph" id = "da/d00/linux__list_8h_aee8df43e41969c2272acfd6ed6e75d4c_cgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#a24b474717d65a296695e8b79b4adefda" title = "__list_del" alt = "" coords = "133,5,211,35" / > < area shape = "rect" id = "node5" href = "../../da/d00/linux__list_8h.html#a0373c4b3c8ce51a451a569ad978b32e1" title = "list_add" alt = "" coords = "139,59,205,88" / > < area shape = "rect" id = "node7" href = "../../da/d00/linux__list_8h.html#a8a28f150a191624bf6923a48cdace7e3" title = "__list_add" alt = "" coords = "260,59,340,88" / > < / map >
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "a1c5ac6a6b04a03f5782e818daacf96e9" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void list_move_tail < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > list< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > head< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > list_move_tail - delete from one list and add as another's tail : the entry to move : the head that will follow our entry < / p >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_a1c5ac6a6b04a03f5782e818daacf96e9_cgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_a1c5ac6a6b04a03f5782e818daacf96e9_cgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_a1c5ac6a6b04a03f5782e818daacf96e9_cgraph" id = "da/d00/linux__list_8h_a1c5ac6a6b04a03f5782e818daacf96e9_cgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#a24b474717d65a296695e8b79b4adefda" title = "__list_del" alt = "" coords = "164,5,241,35" / > < area shape = "rect" id = "node5" href = "../../da/d00/linux__list_8h.html#a588bec046f1e9797b33a5c5ab250f447" title = "list_add_tail" alt = "" coords = "157,59,248,88" / > < area shape = "rect" id = "node7" href = "../../da/d00/linux__list_8h.html#a8a28f150a191624bf6923a48cdace7e3" title = "__list_add" alt = "" coords = "297,59,377,88" / > < / map >
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "a2c4399cfbde5e5d5eddf2e13c97bd5d5" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void list_splice < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > list< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > head< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > list_splice - join two lists : the new list to add. : the place to add it in the first list. < / p >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_a2c4399cfbde5e5d5eddf2e13c97bd5d5_cgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_a2c4399cfbde5e5d5eddf2e13c97bd5d5_cgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_a2c4399cfbde5e5d5eddf2e13c97bd5d5_cgraph" id = "da/d00/linux__list_8h_a2c4399cfbde5e5d5eddf2e13c97bd5d5_cgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#a6601e54d8f27ab290ee6819f7e2127b7" title = "list_empty" alt = "" coords = "140,5,223,35" / > < area shape = "rect" id = "node5" href = "../../da/d00/linux__list_8h.html#a25979c80a2d71dd02ada121a46c71a59" title = "__list_splice" alt = "" coords = "135,59,228,88" / > < / map >
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "a948b15519bb72e3d42f3e56975580d30" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static void list_splice_init < / td >
< td > (< / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > list< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > struct < a class = "el" href = "../../d9/d93/structlist__head.html" > list_head< / a > *  < / td >
< td class = "paramname" > < em > head< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > list_splice_init - join two lists and reinitialise the emptied list. : the new list to add. : the place to add it in the first list.< / p >
< p > The list at is reinitialised < / p >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
< div class = "dyncontent" >
< div class = "center" > < img src = "../../da/d00/linux__list_8h_a948b15519bb72e3d42f3e56975580d30_cgraph.png" border = "0" usemap = "#da/d00/linux__list_8h_a948b15519bb72e3d42f3e56975580d30_cgraph" alt = "" / > < / div >
< map name = "da/d00/linux__list_8h_a948b15519bb72e3d42f3e56975580d30_cgraph" id = "da/d00/linux__list_8h_a948b15519bb72e3d42f3e56975580d30_cgraph" >
< area shape = "rect" id = "node3" href = "../../da/d00/linux__list_8h.html#a6601e54d8f27ab290ee6819f7e2127b7" title = "list_empty" alt = "" coords = "164,5,247,35" / > < area shape = "rect" id = "node5" href = "../../da/d00/linux__list_8h.html#a25979c80a2d71dd02ada121a46c71a59" title = "__list_splice" alt = "" coords = "159,59,252,88" / > < / map >
< / div >
< / p >
< / div >
< / div >
< / 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 >
2014-02-20 00:30:40 +00:00
< li class = "footer" > Generated on Wed Feb 19 2014 16:29:21 for The Netsukuku Project by
2014-02-19 23:45:00 +00:00
< 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 >