Fennix/docs/df/d26/fs_8h_source.html

504 lines
97 KiB
HTML

<!-- HTML header for doxygen 1.9.1-->
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.9.1" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Fennix: Kernel/include/interface/fs.h Source File</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
<link href="../../doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="../../custom.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../doxygen-awesome-darkmode-toggle.js"></script>
<script type="text/javascript" src="../../doxygen-awesome-fragment-copy-button.js"></script>
<script type="text/javascript" src="../../doxygen-awesome-paragraph-link.js"></script>
<script type="text/javascript" src="../../doxygen-awesome-interactive-toc.js"></script>
<script type="text/javascript" src="../../doxygen-awesome-tabs.js"></script>
<script type="text/javascript">
DoxygenAwesomeDarkModeToggle.init()
DoxygenAwesomeFragmentCopyButton.init()
DoxygenAwesomeParagraphLink.init()
DoxygenAwesomeInteractiveToc.init()
DoxygenAwesomeTabs.init()
</script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="../../favicon.ico" /></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Fennix
&#160;<span
id="projectnumber">1.0.0</span>
</div>
<div id="projectbrief">Full Documentation</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part --><!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></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">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('df/d26/fs_8h_source.html','../../'); initResizable(); });
/* @license-end */
</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)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">fs.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="../../df/d26/fs_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a2e6d2e5dc031b51fc6f466515b4d3b3e"> 1</a></span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#ac3e60a9fc42fb6c0b656191ebb1d658b"> 2</a></span>&#160;<span class="comment"> This file is part of Fennix Kernel.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a9441374ba1bef439109da976a8048bb9"> 3</a></span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00004"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#ac4f4d1e97ef1b104e09abccb641e530e"> 4</a></span>&#160;<span class="comment"> Fennix Kernel is free software: you can redistribute it and/or</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a5f5c45d347b3cbe34597e57c04967e8b"> 5</a></span>&#160;<span class="comment"> modify it under the terms of the GNU General Public License as</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a8baefdd84470e9a546535750762743b1"> 6</a></span>&#160;<span class="comment"> published by the Free Software Foundation, either version 3 of</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a38e8576cf8a6210b386212d7b80f42a0"> 7</a></span>&#160;<span class="comment"> the License, or (at your option) any later version.</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a00f03806ee4724ff3e44372909ab378b"> 8</a></span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a114cd797c14098cceaf2a3dd64629250"> 9</a></span>&#160;<span class="comment"> Fennix Kernel is distributed in the hope that it will be useful,</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a0a6fc17bb00ffe199d7899d5ce623be4"> 10</a></span>&#160;<span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a3fbe554d6691bfb88f5b700eb5e2205f"> 11</a></span>&#160;<span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a33b8cee8134eca08e6820a62d0dad656"> 12</a></span>&#160;<span class="comment"> GNU General Public License for more details.</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a9ca9828444d899586f97c6c9a4d5d5f0"> 13</a></span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a06cb5aab7b0f464f7575b57ddce54f25"> 14</a></span>&#160;<span class="comment"> You should have received a copy of the GNU General Public License</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#aec9bda2590b6b4ff6433991c57ce60a3"> 15</a></span>&#160;<span class="comment"> along with Fennix Kernel. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a98adbbae239ee188f2a5cb61d1564ad1"> 16</a></span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; </div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef __FENNIX_API_FILESYSTEM_H__</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define __FENNIX_API_FILESYSTEM_H__</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;types.h&gt;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a0d112bae8fd35be772185b6ec6bcbe64"> 23</a></span>&#160;<span class="preprocessor">#define SEEK_SET 0</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a30c9c281e5b2134cc2e763eac5290c61"> 24</a></span>&#160;<span class="preprocessor">#define SEEK_CUR 1</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#ad2a2e6c114780c3071efd24f16c7f7d8"> 25</a></span>&#160;<span class="preprocessor">#define SEEK_END 2</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; </div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a01110bf8f909d84aac57bc6c3caf1e11"> 32</a></span>&#160;<span class="preprocessor">#define S_IFMT32 037777600000</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#ab5bee51e9ee68b83ab11d4b340f7200b"> 48</a></span>&#160;<span class="preprocessor">#define S_IFMT 0170000</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">/* Whiteout */</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a9a122a1f26859b9f6e865623b06b5512"> 51</a></span>&#160;<span class="preprocessor">#define S_IFWHT 0160000</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">/* Socket */</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a28e80cd43106882904be148b2a397d42"> 53</a></span>&#160;<span class="preprocessor">#define S_IFSOCK 0140000</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">/* Symbolic link */</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#afef163ce62372757e84bd9fc88c07aad"> 55</a></span>&#160;<span class="preprocessor">#define S_IFLNK 0120000</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">/* Regular file */</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a1aaa48b192a5dd3b6d7ee91fc98cd17d"> 57</a></span>&#160;<span class="preprocessor">#define S_IFREG 0100000</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">/* Block device */</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a5c5b74a1cb1a1ae83572500b94e1938f"> 59</a></span>&#160;<span class="preprocessor">#define S_IFBLK 0060000</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment">/* Directory */</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a11fb0652b963a735f3377eb1c9239f2d"> 61</a></span>&#160;<span class="preprocessor">#define S_IFDIR 0040000</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment">/* Character device */</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#aef3a1d1ba22c83e30b5c834dd343b2a8"> 63</a></span>&#160;<span class="preprocessor">#define S_IFCHR 0020000</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment">/* FIFO */</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a4966f25d9f03a7a06bc47ac729fd86cf"> 65</a></span>&#160;<span class="preprocessor">#define S_IFIFO 0010000</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a30384a8cd2feb1615efd5eadc243684b"> 67</a></span>&#160;<span class="preprocessor">#define S_ISUID 04000</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a9c9e4cc0a8acc43c99ae6c3d972ae2d8"> 68</a></span>&#160;<span class="preprocessor">#define S_ISGID 02000</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a97b5e445a72c99b37dc5b8d620fbd14e"> 69</a></span>&#160;<span class="preprocessor">#define S_ISVTX 01000</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#afe3da42e762f6362c93454682fad5eb5"> 72</a></span>&#160;<span class="preprocessor">#define S_IRWXU 0700</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a84c7dbf5cf2fdfb690f76348b60a8cb7"> 74</a></span>&#160;<span class="preprocessor">#define S_IRUSR 0400</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#ad70001754261c15a1bdc8e876c6d09d7"> 76</a></span>&#160;<span class="preprocessor">#define S_IWUSR 0200</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#af10a35e3950795d6ee4e07157d000131"> 78</a></span>&#160;<span class="preprocessor">#define S_IXUSR 0100</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a230c642d2bb81f15f85c122b1883de5c"> 81</a></span>&#160;<span class="preprocessor">#define S_IRWXG 0070</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a4f5f280b929768113739fb34d6f7be8a"> 83</a></span>&#160;<span class="preprocessor">#define S_IRGRP 0040</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#ae6774871a90d9442f00abe18b87fee6e"> 85</a></span>&#160;<span class="preprocessor">#define S_IWGRP 0020</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a042e69ac0e7dd56e5cfcd9e97d010323"> 87</a></span>&#160;<span class="preprocessor">#define S_IXGRP 0010</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; </div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a5b93e0da7fe32bbd4926626bffad96b1"> 90</a></span>&#160;<span class="preprocessor">#define S_IRWXO 0007</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a071147a0cb995036967c80f64b1f74b9"> 92</a></span>&#160;<span class="preprocessor">#define S_IROTH 0004</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a5303f49f26293acdb9533756c78322fb"> 94</a></span>&#160;<span class="preprocessor">#define S_IWOTH 0002</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a40223db1b95a04f5b28cceb3c34cfebd"> 96</a></span>&#160;<span class="preprocessor">#define S_IXOTH 0001</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a7a68c9ffaac7dbcd652225dd7c06a54b"> 98</a></span>&#160;<span class="preprocessor">#define O_RDONLY 00</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a11b644a8526139c4cc1850dac1271ced"> 99</a></span>&#160;<span class="preprocessor">#define O_WRONLY 01</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#abb0586253488ee61072b73557eeb873b"> 100</a></span>&#160;<span class="preprocessor">#define O_RDWR 02</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a1cf6b1de1fffedaa1d26b189e9a8d2cc"> 101</a></span>&#160;<span class="preprocessor">#define O_CREAT 0100</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a9f5acfe79fafe14b6694447bd0e9f10b"> 102</a></span>&#160;<span class="preprocessor">#define O_EXCL 0200</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#ad1d67e453fb3031f40f8cd3403773813"> 103</a></span>&#160;<span class="preprocessor">#define O_TRUNC 01000</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#ae036f789407d21f07b211552d67b3214"> 104</a></span>&#160;<span class="preprocessor">#define O_APPEND 02000</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a82d4d551b214905742c9e045185d352a"> 105</a></span>&#160;<span class="preprocessor">#define O_NOFOLLOW 0400000</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#ad6d8fbe4e494b4dbe051612572d3f757"> 106</a></span>&#160;<span class="preprocessor">#define O_CLOEXEC 02000000</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; </div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a3746cdc5aac871e6f6504fbcbd29ef1d"> 108</a></span>&#160;<span class="preprocessor">#define S_ISDIR(mode) (((mode) &amp; S_IFMT) == S_IFDIR)</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#aae33be85d242a1317f972cf2b189f03d"> 109</a></span>&#160;<span class="preprocessor">#define S_ISCHR(mode) (((mode) &amp; S_IFMT) == S_IFCHR)</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a8b86a24d84c3cfce39cc832a017656ba"> 110</a></span>&#160;<span class="preprocessor">#define S_ISBLK(mode) (((mode) &amp; S_IFMT) == S_IFBLK)</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#aad0f32c2c182238f2ff71c83e6ab65a0"> 111</a></span>&#160;<span class="preprocessor">#define S_ISREG(mode) (((mode) &amp; S_IFMT) == S_IFREG)</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a8ae224a2b1fa6eba69bb2bc34b864a24"> 112</a></span>&#160;<span class="preprocessor">#define S_ISFIFO(mode) (((mode) &amp; S_IFMT) == S_IFIFO)</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a765eef536bcb3bd7bacdd675dc2fba13"> 113</a></span>&#160;<span class="preprocessor">#define S_ISLNK(mode) (((mode) &amp; S_IFMT) == S_IFLNK)</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a397ddd128980f1ee034653da2e9d8f6e"> 114</a></span>&#160;<span class="preprocessor">#define S_ISSOCK(mode) (((mode) &amp; S_IFMT) == S_IFSOCK)</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a293ce58a2d39f35c52f7f4516a857057"> 116</a></span>&#160;<span class="preprocessor">#define DT_UNKNOWN 0x0</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a6fabe696c35bf34daa67931b4c245c7d"> 117</a></span>&#160;<span class="preprocessor">#define DT_FIFO 0x1</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a7d0095c3caf2c334bf222608d02576d7"> 118</a></span>&#160;<span class="preprocessor">#define DT_CHR 0x2</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a1dcee67486bc4238096ecb61e2d9ffd1"> 119</a></span>&#160;<span class="preprocessor">#define DT_DIR 0x4</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a212cebbaad682bc6c3bf798c8749abc5"> 120</a></span>&#160;<span class="preprocessor">#define DT_BLK 0x6</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a9973595cf6775b1b29d7274ab4c0d623"> 121</a></span>&#160;<span class="preprocessor">#define DT_REG 0x8</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#aa70b5cb1d9c30b1830cb6a5e835231c6"> 122</a></span>&#160;<span class="preprocessor">#define DT_LNK 0xA</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#aaa6ed2fc54836a2c7d9b698923705f5e"> 123</a></span>&#160;<span class="preprocessor">#define DT_SOCK 0xC</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a9584ba1798d7454f4f63433418ba8798"> 124</a></span>&#160;<span class="preprocessor">#define DT_WHT 0xE</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; </div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#ac1304650d387faf30d7831d2f9f4db3d"> 126</a></span>&#160;<span class="preprocessor">#define IFTODT(x) ((x) &gt;&gt; 12 &amp; 0xF)</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a1cfeb034d04c92d5f0a185217edfb37f"> 127</a></span>&#160;<span class="preprocessor">#define DTTOIF(x) ((x) &lt;&lt; 12)</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a41170bbc4e205b3bc9c2b06033aecc17"> 129</a></span>&#160;<span class="preprocessor">#define SYMLOOP_MAX 40</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; </div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor">#ifndef __cplusplus</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98"> 132</a></span>&#160;<span class="preprocessor">#define static_assert _Static_assert</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor">#ifdef __LP64__</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(dev_t) == 8, <span class="stringliteral">&quot;dev_t must be 64 bits&quot;</span>);</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(ino_t) == 8, <span class="stringliteral">&quot;ino_t must be 64 bits&quot;</span>);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(mode_t) == 4, <span class="stringliteral">&quot;mode_t must be 32 bits&quot;</span>);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(nlink_t) == 4, <span class="stringliteral">&quot;nlink_t must be 32 bits&quot;</span>);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(uid_t) == 4, <span class="stringliteral">&quot;uid_t must be 32 bits&quot;</span>);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(gid_t) == 4, <span class="stringliteral">&quot;gid_t must be 32 bits&quot;</span>);</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(off_t) == 8, <span class="stringliteral">&quot;off_t must be 64 bits&quot;</span>);</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(time_t) == 8, <span class="stringliteral">&quot;time_t must be 64 bits&quot;</span>);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(blksize_t) == 8, <span class="stringliteral">&quot;blksize_t must be 64 bits&quot;</span>);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(blkcnt_t) == 8, <span class="stringliteral">&quot;blkcnt_t must be 64 bits&quot;</span>);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(dev_t) == 4, <span class="stringliteral">&quot;dev_t must be 32 bits&quot;</span>);</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(ino_t) == 4, <span class="stringliteral">&quot;ino_t must be 32 bits&quot;</span>);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(mode_t) == 2, <span class="stringliteral">&quot;mode_t must be 16 bits&quot;</span>);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(nlink_t) == 2, <span class="stringliteral">&quot;nlink_t must be 16 bits&quot;</span>);</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(uid_t) == 2, <span class="stringliteral">&quot;uid_t must be 16 bits&quot;</span>);</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(gid_t) == 2, <span class="stringliteral">&quot;gid_t must be 16 bits&quot;</span>);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(off_t) == 4, <span class="stringliteral">&quot;off_t must be 32 bits&quot;</span>);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(time_t) == 4, <span class="stringliteral">&quot;time_t must be 32 bits&quot;</span>);</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(blksize_t) == 4, <span class="stringliteral">&quot;blksize_t must be 32 bits&quot;</span>);</div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#ae9d1c84bd8c5ad87f19dc53750668f1b"> 156</a></span>&#160;<a class="code" href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a>(<span class="keyword">sizeof</span>(blkcnt_t) == 4, <span class="stringliteral">&quot;blkcnt_t must be 32 bits&quot;</span>);</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#undef static_assert</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html"> 161</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d5/df1/structkstat">kstat</a></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;{</div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a564f699164b986ac3358ce6acde557e5"> 164</a></span>&#160; dev_t <a class="code" href="../../df/d26/fs_8h.html#a564f699164b986ac3358ce6acde557e5">Device</a>;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#ab513d931acdad2f26554dbcc31fe90e4"> 167</a></span>&#160; ino_t <a class="code" href="../../df/d26/fs_8h.html#ab513d931acdad2f26554dbcc31fe90e4">Index</a>;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#af45191ed8ad28ab7a58ee02287609808"> 170</a></span>&#160; mode_t <a class="code" href="../../df/d26/fs_8h.html#af45191ed8ad28ab7a58ee02287609808">Mode</a>;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a90cbd8716158e3d6c367080d81e7327e"> 173</a></span>&#160; nlink_t <a class="code" href="../../df/d26/fs_8h.html#a90cbd8716158e3d6c367080d81e7327e">HardLinks</a>;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; </div>
<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a640517af38108c7ece215fe6789b497a"> 176</a></span>&#160; uid_t <a class="code" href="../../df/d26/fs_8h.html#a640517af38108c7ece215fe6789b497a">UserID</a>;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; </div>
<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a6df31642b52e126ee6433ae83c5c7df8"> 179</a></span>&#160; gid_t <a class="code" href="../../df/d26/fs_8h.html#a6df31642b52e126ee6433ae83c5c7df8">GroupID</a>;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a0894ecf497e1e426853b876a47459280"> 182</a></span>&#160; dev_t <a class="code" href="../../df/d26/fs_8h.html#a0894ecf497e1e426853b876a47459280">RawDevice</a>;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div>
<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a5f3da9475a138d8a510be43e53dd20b6"> 185</a></span>&#160; off_t <a class="code" href="../../df/d26/fs_8h.html#a5f3da9475a138d8a510be43e53dd20b6">Size</a>;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; </div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#af0d5a9e82aa0ece31db45ae57b97b5d9"> 188</a></span>&#160; time_t <a class="code" href="../../df/d26/fs_8h.html#af0d5a9e82aa0ece31db45ae57b97b5d9">AccessTime</a>;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; </div>
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a9f1f01620d0175f71eff75e384cd9042"> 191</a></span>&#160; time_t <a class="code" href="../../df/d26/fs_8h.html#a9f1f01620d0175f71eff75e384cd9042">ModifyTime</a>;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; </div>
<div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a3d80694a7ef662e6e37ef68a5490f6ae"> 194</a></span>&#160; time_t <a class="code" href="../../df/d26/fs_8h.html#a3d80694a7ef662e6e37ef68a5490f6ae">ChangeTime</a>;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; </div>
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#aac2e36f2ffad2d048f6d1d3f988765ef"> 197</a></span>&#160; blksize_t <a class="code" href="../../df/d26/fs_8h.html#aac2e36f2ffad2d048f6d1d3f988765ef">BlockSize</a>;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; </div>
<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a4e032619e90e03194c162718a33f09a0"> 200</a></span>&#160; blkcnt_t <a class="code" href="../../df/d26/fs_8h.html#a4e032619e90e03194c162718a33f09a0">Blocks</a>;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; </div>
<div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a733e07be0afb4a7a10555436d8deb100"> 203</a></span>&#160; mode_t <a class="code" href="../../df/d26/fs_8h.html#a733e07be0afb4a7a10555436d8deb100">Attribute</a>;</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; </div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; </div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; dev_t MakeDevice(<span class="keywordtype">int</span> Major, <span class="keywordtype">int</span> Minor)</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> ((Major &amp; 0xFFF) &lt;&lt; 8) |</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; (Minor &amp; 0xFF);</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; </div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordtype">int</span> GetMajor()</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> ((<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)(<a class="code" href="../../df/d26/fs_8h.html#a564f699164b986ac3358ce6acde557e5">Device</a>) &gt;&gt; 8) &amp; 0xFFF;</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; </div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordtype">int</span> GetMinor()</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> <a class="code" href="../../df/d26/fs_8h.html#a564f699164b986ac3358ce6acde557e5">Device</a> &amp; 0xFF;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; </div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordtype">void</span> SetFileType(mode_t Type)</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; {</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="../../df/d26/fs_8h.html#af45191ed8ad28ab7a58ee02287609808">Mode</a> = (<a class="code" href="../../df/d26/fs_8h.html#af45191ed8ad28ab7a58ee02287609808">Mode</a> &amp; ~<a class="code" href="../../df/d26/fs_8h.html#ab5bee51e9ee68b83ab11d4b340f7200b">S_IFMT</a>) |</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; (Type &amp; <a class="code" href="../../df/d26/fs_8h.html#ab5bee51e9ee68b83ab11d4b340f7200b">S_IFMT</a>);</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; </div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; mode_t GetFileType() { <span class="keywordflow">return</span> <a class="code" href="../../df/d26/fs_8h.html#af45191ed8ad28ab7a58ee02287609808">Mode</a> &amp; <a class="code" href="../../df/d26/fs_8h.html#ab5bee51e9ee68b83ab11d4b340f7200b">S_IFMT</a>; }</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordtype">void</span> ClearFileType() { <a class="code" href="../../df/d26/fs_8h.html#af45191ed8ad28ab7a58ee02287609808">Mode</a> = <a class="code" href="../../df/d26/fs_8h.html#af45191ed8ad28ab7a58ee02287609808">Mode</a> &amp; ~<a class="code" href="../../df/d26/fs_8h.html#ab5bee51e9ee68b83ab11d4b340f7200b">S_IFMT</a>; }</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordtype">bool</span> IsType(mode_t Type) { <span class="keywordflow">return</span> (<a class="code" href="../../df/d26/fs_8h.html#af45191ed8ad28ab7a58ee02287609808">Mode</a> &amp; <a class="code" href="../../df/d26/fs_8h.html#ab5bee51e9ee68b83ab11d4b340f7200b">S_IFMT</a>) == Type; }</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; </div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordtype">void</span> SetPermissions(mode_t Permissions)</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; {</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="../../df/d26/fs_8h.html#af45191ed8ad28ab7a58ee02287609808">Mode</a> = (<a class="code" href="../../df/d26/fs_8h.html#af45191ed8ad28ab7a58ee02287609808">Mode</a> &amp; <a class="code" href="../../df/d26/fs_8h.html#ab5bee51e9ee68b83ab11d4b340f7200b">S_IFMT</a>) |</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; (Permissions &amp; ~<a class="code" href="../../df/d26/fs_8h.html#ab5bee51e9ee68b83ab11d4b340f7200b">S_IFMT</a>);</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; </div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; mode_t GetPermissions() { <span class="keywordflow">return</span> <a class="code" href="../../df/d26/fs_8h.html#af45191ed8ad28ab7a58ee02287609808">Mode</a> &amp; ~<a class="code" href="../../df/d26/fs_8h.html#ab5bee51e9ee68b83ab11d4b340f7200b">S_IFMT</a>; }</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordtype">void</span> ClearPermissions() { <a class="code" href="../../df/d26/fs_8h.html#af45191ed8ad28ab7a58ee02287609808">Mode</a> = <a class="code" href="../../df/d26/fs_8h.html#af45191ed8ad28ab7a58ee02287609808">Mode</a> &amp; <a class="code" href="../../df/d26/fs_8h.html#ab5bee51e9ee68b83ab11d4b340f7200b">S_IFMT</a>; }</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; </div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// __cplusplus</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;};</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; </div>
<div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html"> 245</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d9/ddf/structkdirent">kdirent</a></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;{</div>
<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#aaf47378e1023c469b361bfbfe1e68ec4"> 247</a></span>&#160; ino_t <a class="code" href="../../df/d26/fs_8h.html#aaf47378e1023c469b361bfbfe1e68ec4">d_ino</a>;</div>
<div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a883eee0b0e9bc85a6a4c0b81c12d59b4"> 248</a></span>&#160; off_t <a class="code" href="../../df/d26/fs_8h.html#a883eee0b0e9bc85a6a4c0b81c12d59b4">d_off</a>;</div>
<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#ab16632cca111e54cdbcb1e3ce465ed3c"> 249</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="../../df/d26/fs_8h.html#ab16632cca111e54cdbcb1e3ce465ed3c">d_reclen</a>;</div>
<div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#ae62da46e9487a67427fad586aa96806a"> 250</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="../../df/d26/fs_8h.html#ae62da46e9487a67427fad586aa96806a">d_type</a>;</div>
<div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a5a9f69f32f7f6d41513d7093cd06b27b"> 251</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="../../df/d26/fs_8h.html#a5a9f69f32f7f6d41513d7093cd06b27b">d_name</a>[];</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;};</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; </div>
<div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html"> 254</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;{</div>
<div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a596b05c30fb6356f46f6c827bdac7fc6"> 256</a></span>&#160; dev_t <a class="code" href="../../df/d26/fs_8h.html#a596b05c30fb6356f46f6c827bdac7fc6">Device</a>, <a class="code" href="../../df/d26/fs_8h.html#a138b2f9d3133d7b3aeeec3986d064a7a">RawDevice</a>;</div>
<div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a594a4636414d0b19f3b08860c0121a66"> 257</a></span>&#160; ino_t <a class="code" href="../../df/d26/fs_8h.html#a594a4636414d0b19f3b08860c0121a66">Index</a>;</div>
<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a667a06765053832b0e364d352d331481"> 258</a></span>&#160; mode_t <a class="code" href="../../df/d26/fs_8h.html#a667a06765053832b0e364d352d331481">Mode</a>;</div>
<div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#ab5bfae4f7951e37243599de928130341"> 259</a></span>&#160; uint32_t <a class="code" href="../../df/d26/fs_8h.html#ab5bfae4f7951e37243599de928130341">Flags</a>;</div>
<div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#ac7fd076e6f0290af80aee31a0af35b4a"> 260</a></span>&#160; off_t <a class="code" href="../../df/d26/fs_8h.html#ac7fd076e6f0290af80aee31a0af35b4a">Offset</a>;</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; </div>
<div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a866fcc7922cd6949f8ee7e41b270fde6"> 262</a></span>&#160; uintptr_t <a class="code" href="../../df/d26/fs_8h.html#a866fcc7922cd6949f8ee7e41b270fde6">KernelData</a>;</div>
<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#ad5d7f7b9b3133592e590d5e9b5173425"> 263</a></span>&#160; <span class="keywordtype">void</span> *<a class="code" href="../../df/d26/fs_8h.html#ad5d7f7b9b3133592e590d5e9b5173425">PrivateData</a>;</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; </div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; </div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="comment">/* ... */</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; </div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordtype">void</span> SetDevice(<span class="keywordtype">int</span> Major, <span class="keywordtype">int</span> Minor)</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; {</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; this-&gt;RawDevice = ((Major &amp; 0xFFF) &lt;&lt; 8) |</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; (Minor &amp; 0xFF);</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; </div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordtype">int</span> GetMajor()</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; {</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">return</span> ((<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)(this-&gt;RawDevice) &gt;&gt; 8) &amp; 0xFFF;</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; }</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; </div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordtype">int</span> GetMinor()</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; {</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> this-&gt;RawDevice &amp; 0xFF;</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; </div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a>()</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; {</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="../../df/d26/fs_8h.html#a596b05c30fb6356f46f6c827bdac7fc6">Device</a> = 0;</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="../../df/d26/fs_8h.html#a138b2f9d3133d7b3aeeec3986d064a7a">RawDevice</a> = 0;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="../../df/d26/fs_8h.html#a594a4636414d0b19f3b08860c0121a66">Index</a> = 0;</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="../../df/d26/fs_8h.html#a667a06765053832b0e364d352d331481">Mode</a> = 0;</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="../../df/d26/fs_8h.html#ab5bfae4f7951e37243599de928130341">Flags</a> = 0;</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="../../df/d26/fs_8h.html#ac7fd076e6f0290af80aee31a0af35b4a">Offset</a> = 0;</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="../../df/d26/fs_8h.html#a866fcc7922cd6949f8ee7e41b270fde6">KernelData</a> = 0x0;</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="../../df/d26/fs_8h.html#ad5d7f7b9b3133592e590d5e9b5173425">PrivateData</a> = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; </div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; ~<a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; </div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor">#else </span><span class="comment">// __cplusplus</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; </div>
<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#ad0d8f5f25260c684d5194149d51bdab4"> 301</a></span>&#160;<span class="preprocessor">#define INODE_MAKEDEV(major, minor) \</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor"> ((dev_t)(((major &amp; 0xFFF) &lt;&lt; 8) | \</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor"> (minor &amp; 0xFF)))</span></div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; </div>
<div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a270b0fbec1ed39659f47894e379126c8"> 305</a></span>&#160;<span class="preprocessor">#define INODE_MAJOR(rdev) \</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor"> ((int)(((rdev) &gt;&gt; 8) &amp; 0xFFF))</span></div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; </div>
<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a6b01f8d41285666c43e975064fb65d40"> 308</a></span>&#160;<span class="preprocessor">#define INODE_MINOR(rdev) \</span></div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor"> ((int)((rdev) &amp; 0xFF))</span></div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; </div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// __cplusplus</span></div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;};</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; </div>
<div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="../../db/de6/structInodeOperations.html"> 314</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../db/de6/structInodeOperations.html">InodeOperations</a></div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;{</div>
<div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="../../db/de6/structInodeOperations.html#a7f143243e5be1fc608f99072d3c93cb5"> 316</a></span>&#160; int (*<a class="code" href="../../db/de6/structInodeOperations.html#a7f143243e5be1fc608f99072d3c93cb5">Lookup</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Parent, <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="../../df/d26/fs_8h.html#a760b4e07b204e4852e7fb55e25567623">Name</a>, <span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> **Result);</div>
<div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="../../db/de6/structInodeOperations.html#abed9ba869733a00a02a41a3ea9765bda"> 317</a></span>&#160; int (*<a class="code" href="../../db/de6/structInodeOperations.html#abed9ba869733a00a02a41a3ea9765bda">Create</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Parent, <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="../../df/d26/fs_8h.html#a760b4e07b204e4852e7fb55e25567623">Name</a>, mode_t <a class="code" href="../../df/d26/fs_8h.html#a667a06765053832b0e364d352d331481">Mode</a>, <span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> **Result);</div>
<div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="../../db/de6/structInodeOperations.html#a229c34e01b322f1b9533a049ff1f5cc9"> 318</a></span>&#160; int (*<a class="code" href="../../db/de6/structInodeOperations.html#a229c34e01b322f1b9533a049ff1f5cc9">Remove</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Parent, <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="../../df/d26/fs_8h.html#a760b4e07b204e4852e7fb55e25567623">Name</a>);</div>
<div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="../../db/de6/structInodeOperations.html#a54bbd07bcb9a6143867be3aa05577413"> 319</a></span>&#160; int (*<a class="code" href="../../db/de6/structInodeOperations.html#a54bbd07bcb9a6143867be3aa05577413">Rename</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Parent, <span class="keyword">const</span> <span class="keywordtype">char</span> *OldName, <span class="keyword">const</span> <span class="keywordtype">char</span> *NewName);</div>
<div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="../../db/de6/structInodeOperations.html#a1b8ac7df82a22e9ee822c240a79076b4"> 320</a></span>&#160; ssize_t (*<a class="code" href="../../db/de6/structInodeOperations.html#a1b8ac7df82a22e9ee822c240a79076b4">Read</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Node, <span class="keywordtype">void</span> *Buffer, <span class="keywordtype">size_t</span> Size, off_t <a class="code" href="../../df/d26/fs_8h.html#ac7fd076e6f0290af80aee31a0af35b4a">Offset</a>);</div>
<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="../../db/de6/structInodeOperations.html#adb7eaaee195090e8d618a6e9c3ca507a"> 321</a></span>&#160; ssize_t (*<a class="code" href="../../db/de6/structInodeOperations.html#adb7eaaee195090e8d618a6e9c3ca507a">Write</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Node, <span class="keyword">const</span> <span class="keywordtype">void</span> *Buffer, <span class="keywordtype">size_t</span> Size, off_t <a class="code" href="../../df/d26/fs_8h.html#ac7fd076e6f0290af80aee31a0af35b4a">Offset</a>);</div>
<div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="../../db/de6/structInodeOperations.html#a1636030e07da14031506e2ec85fae4c6"> 322</a></span>&#160; int (*<a class="code" href="../../db/de6/structInodeOperations.html#a1636030e07da14031506e2ec85fae4c6">Truncate</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Node, off_t Size);</div>
<div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="../../db/de6/structInodeOperations.html#a869200a6c684532a9a75a05bca1e9270"> 323</a></span>&#160; int (*<a class="code" href="../../db/de6/structInodeOperations.html#a869200a6c684532a9a75a05bca1e9270">Open</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Node, <span class="keywordtype">int</span> <a class="code" href="../../df/d26/fs_8h.html#ac3e60a9fc42fb6c0b656191ebb1d658b">Flags</a>, mode_t <a class="code" href="../../df/d26/fs_8h.html#a667a06765053832b0e364d352d331481">Mode</a>);</div>
<div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="../../db/de6/structInodeOperations.html#ab9c62336bdce356caa7d165b86371e7f"> 324</a></span>&#160; int (*<a class="code" href="../../db/de6/structInodeOperations.html#ab9c62336bdce356caa7d165b86371e7f">Close</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Node);</div>
<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="../../db/de6/structInodeOperations.html#a0df9d6741496cdbe9d25d4d80d06f509"> 325</a></span>&#160; int (*<a class="code" href="../../db/de6/structInodeOperations.html#a0df9d6741496cdbe9d25d4d80d06f509">Ioctl</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Node, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> Request, <span class="keywordtype">void</span> *Argp);</div>
<div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="../../db/de6/structInodeOperations.html#a033b7baebdcfa352b4d84e4e3c9cee80"> 326</a></span>&#160; ssize_t (*<a class="code" href="../../db/de6/structInodeOperations.html#a033b7baebdcfa352b4d84e4e3c9cee80">ReadDir</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Node, <span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d9/ddf/structkdirent">kdirent</a> *Buffer, <span class="keywordtype">size_t</span> Size, off_t Offset, off_t Entries);</div>
<div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="../../db/de6/structInodeOperations.html#a490a002f55d3f99697641d2de8e62ae9"> 327</a></span>&#160; int (*<a class="code" href="../../db/de6/structInodeOperations.html#a490a002f55d3f99697641d2de8e62ae9">MkDir</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Parent, <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="../../df/d26/fs_8h.html#a760b4e07b204e4852e7fb55e25567623">Name</a>, mode_t <a class="code" href="../../df/d26/fs_8h.html#a667a06765053832b0e364d352d331481">Mode</a>, <span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> **Result);</div>
<div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="../../db/de6/structInodeOperations.html#afb5728ae092216ddd3db335d1173e687"> 328</a></span>&#160; int (*<a class="code" href="../../db/de6/structInodeOperations.html#afb5728ae092216ddd3db335d1173e687">RmDir</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Parent, <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="../../df/d26/fs_8h.html#a760b4e07b204e4852e7fb55e25567623">Name</a>);</div>
<div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="../../db/de6/structInodeOperations.html#a530732a5e449903291a39f37b066befd"> 329</a></span>&#160; int (*<a class="code" href="../../db/de6/structInodeOperations.html#a530732a5e449903291a39f37b066befd">SymLink</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Parent, <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="../../df/d26/fs_8h.html#a760b4e07b204e4852e7fb55e25567623">Name</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *Target, <span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> **Result);</div>
<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="../../db/de6/structInodeOperations.html#abf61f594d2b1d2a10a995329372c9ed9"> 330</a></span>&#160; ssize_t (*<a class="code" href="../../db/de6/structInodeOperations.html#abf61f594d2b1d2a10a995329372c9ed9">ReadLink</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Node, <span class="keywordtype">char</span> *Buffer, <span class="keywordtype">size_t</span> Size);</div>
<div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="../../db/de6/structInodeOperations.html#ae49064b9b56c095e3104fd73e19e7c7e"> 331</a></span>&#160; off_t (*<a class="code" href="../../db/de6/structInodeOperations.html#ae49064b9b56c095e3104fd73e19e7c7e">Seek</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Node, off_t <a class="code" href="../../df/d26/fs_8h.html#ac7fd076e6f0290af80aee31a0af35b4a">Offset</a>);</div>
<div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="../../db/de6/structInodeOperations.html#ace503c1be6e9452757578cad84370016"> 332</a></span>&#160; int (*<a class="code" href="../../db/de6/structInodeOperations.html#ace503c1be6e9452757578cad84370016">Stat</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Node, <span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d5/df1/structkstat">kstat</a> *<a class="code" href="../../db/de6/structInodeOperations.html#ace503c1be6e9452757578cad84370016">Stat</a>);</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;} <a class="code" href="../../df/d26/fs_8h.html#ae9d1c84bd8c5ad87f19dc53750668f1b">__attribute__</a>((packed));</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; </div>
<div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a9efe129617fc26d8dd0a23a07460a6ff"> 335</a></span>&#160;<span class="preprocessor">#define I_FLAG_ROOT 0x1</span></div>
<div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a86bf9184c4383bd89d2bf950152ca0ab"> 336</a></span>&#160;<span class="preprocessor">#define I_FLAG_MOUNTPOINT 0x2</span></div>
<div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a97c949be3248687daddc322afd1b04cf"> 337</a></span>&#160;<span class="preprocessor">#define I_FLAG_CACHE_KEEP 0x4</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; </div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#de/d99/structFileSystemInfo">FileSystemInfo</a>;</div>
<div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="../../d2/d55/structSuperBlockOperations.html"> 340</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../d2/d55/structSuperBlockOperations.html">SuperBlockOperations</a></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;{</div>
<div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="../../d2/d55/structSuperBlockOperations.html#a9b919eaba70c8e9d020930ba97b7df68"> 342</a></span>&#160; int (*<a class="code" href="../../d2/d55/structSuperBlockOperations.html#a9b919eaba70c8e9d020930ba97b7df68">AllocateInode</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#de/d99/structFileSystemInfo">FileSystemInfo</a> *Info, <span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> **Result);</div>
<div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="../../d2/d55/structSuperBlockOperations.html#a91b8a508085e42bcf27a06058a0fd2f7"> 343</a></span>&#160; int (*<a class="code" href="../../d2/d55/structSuperBlockOperations.html#a91b8a508085e42bcf27a06058a0fd2f7">DeleteInode</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#de/d99/structFileSystemInfo">FileSystemInfo</a> *Info, <span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Node);</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; </div>
<div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="../../d2/d55/structSuperBlockOperations.html#ac57a866f55ed08d2dd2897b27a541eb2"> 355</a></span>&#160; int (*<a class="code" href="../../d2/d55/structSuperBlockOperations.html#ac57a866f55ed08d2dd2897b27a541eb2">Synchronize</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#de/d99/structFileSystemInfo">FileSystemInfo</a> *Info, <span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Node);</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; </div>
<div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="../../d2/d55/structSuperBlockOperations.html#ac5d91cc844c75e8d58ef124a9b2c8722"> 366</a></span>&#160; int (*<a class="code" href="../../d2/d55/structSuperBlockOperations.html#ac5d91cc844c75e8d58ef124a9b2c8722">Destroy</a>)(<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#de/d99/structFileSystemInfo">FileSystemInfo</a> *Info);</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;} <a class="code" href="../../df/d26/fs_8h.html#ae9d1c84bd8c5ad87f19dc53750668f1b">__attribute__</a>((packed));</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; </div>
<div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html"> 369</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../df/d26/fs_8h.html#de/d99/structFileSystemInfo">FileSystemInfo</a></div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;{</div>
<div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a445b70dc0c2908c5f600c6bc4f60c387"> 371</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="../../df/d26/fs_8h.html#a445b70dc0c2908c5f600c6bc4f60c387">Name</a>;</div>
<div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#ac03af40bdb9327cdf8a3c1c3d8bc4990"> 372</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="../../df/d26/fs_8h.html#ac03af40bdb9327cdf8a3c1c3d8bc4990">RootName</a>;</div>
<div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a3790269ab0eed561191ef95d65747e82"> 373</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="../../df/d26/fs_8h.html#a3790269ab0eed561191ef95d65747e82">Flags</a>;</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keyword">struct </span><a class="code" href="../../d2/d55/structSuperBlockOperations.html">SuperBlockOperations</a> <a class="code" href="../../df/d26/fs_8h.html#a2b23f750051678a50319f21d04541d66">SuperOps</a>;</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keyword">struct </span><a class="code" href="../../db/de6/structInodeOperations.html">InodeOperations</a> <a class="code" href="../../df/d26/fs_8h.html#a2e69ea86f5e1537c9173b961a03bdc0c">Ops</a>;</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; </div>
<div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#afed4851539e0eb74fbd4cc4c0dca8abd"> 377</a></span>&#160; <span class="keywordtype">void</span> *<a class="code" href="../../df/d26/fs_8h.html#afed4851539e0eb74fbd4cc4c0dca8abd">PrivateData</a>;</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;} <a class="code" href="../../df/d26/fs_8h.html#ae9d1c84bd8c5ad87f19dc53750668f1b">__attribute__</a>((packed));</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; </div>
<div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a75f4deeb21caf3c4150e515e19913349"> 380</a></span>&#160;dev_t <a class="code" href="../../df/d26/fs_8h.html#a75f4deeb21caf3c4150e515e19913349">RegisterFileSystem</a>(<span class="keyword">struct</span> <a class="code" href="../../df/d26/fs_8h.html#de/d99/structFileSystemInfo">FileSystemInfo</a> *Info, <span class="keyword">struct</span> <a class="code" href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a> *Root);</div>
<div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="../../df/d26/fs_8h.html#a41338d5d4b70d416fb956287f27773a8"> 381</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../df/d26/fs_8h.html#a41338d5d4b70d416fb956287f27773a8">UnregisterFileSystem</a>(dev_t Device);</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; </div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// !__FENNIX_API_FILESYSTEM_H__</span></div>
<div class="ttc" id="afs_8h_html_a0894ecf497e1e426853b876a47459280"><div class="ttname"><a href="../../df/d26/fs_8h.html#a0894ecf497e1e426853b876a47459280">kstat::RawDevice</a></div><div class="ttdeci">dev_t RawDevice</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00182">fs.h:182</a></div></div>
<div class="ttc" id="afs_8h_html_a138b2f9d3133d7b3aeeec3986d064a7a"><div class="ttname"><a href="../../df/d26/fs_8h.html#a138b2f9d3133d7b3aeeec3986d064a7a">Inode::RawDevice</a></div><div class="ttdeci">dev_t RawDevice</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00256">fs.h:256</a></div></div>
<div class="ttc" id="afs_8h_html_a2b23f750051678a50319f21d04541d66"><div class="ttname"><a href="../../df/d26/fs_8h.html#a2b23f750051678a50319f21d04541d66">FileSystemInfo::SuperOps</a></div><div class="ttdeci">struct SuperBlockOperations SuperOps</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00373">fs.h:374</a></div></div>
<div class="ttc" id="afs_8h_html_a2e69ea86f5e1537c9173b961a03bdc0c"><div class="ttname"><a href="../../df/d26/fs_8h.html#a2e69ea86f5e1537c9173b961a03bdc0c">FileSystemInfo::Ops</a></div><div class="ttdeci">struct InodeOperations Ops</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00373">fs.h:375</a></div></div>
<div class="ttc" id="afs_8h_html_a3790269ab0eed561191ef95d65747e82"><div class="ttname"><a href="../../df/d26/fs_8h.html#a3790269ab0eed561191ef95d65747e82">FileSystemInfo::Flags</a></div><div class="ttdeci">int Flags</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00373">fs.h:373</a></div></div>
<div class="ttc" id="afs_8h_html_a3d80694a7ef662e6e37ef68a5490f6ae"><div class="ttname"><a href="../../df/d26/fs_8h.html#a3d80694a7ef662e6e37ef68a5490f6ae">kstat::ChangeTime</a></div><div class="ttdeci">time_t ChangeTime</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00194">fs.h:194</a></div></div>
<div class="ttc" id="afs_8h_html_a41338d5d4b70d416fb956287f27773a8"><div class="ttname"><a href="../../df/d26/fs_8h.html#a41338d5d4b70d416fb956287f27773a8">UnregisterFileSystem</a></div><div class="ttdeci">int UnregisterFileSystem(dev_t Device)</div></div>
<div class="ttc" id="afs_8h_html_a445b70dc0c2908c5f600c6bc4f60c387"><div class="ttname"><a href="../../df/d26/fs_8h.html#a445b70dc0c2908c5f600c6bc4f60c387">FileSystemInfo::Name</a></div><div class="ttdeci">const char * Name</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00371">fs.h:371</a></div></div>
<div class="ttc" id="afs_8h_html_a4e032619e90e03194c162718a33f09a0"><div class="ttname"><a href="../../df/d26/fs_8h.html#a4e032619e90e03194c162718a33f09a0">kstat::Blocks</a></div><div class="ttdeci">blkcnt_t Blocks</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00200">fs.h:200</a></div></div>
<div class="ttc" id="afs_8h_html_a564f699164b986ac3358ce6acde557e5"><div class="ttname"><a href="../../df/d26/fs_8h.html#a564f699164b986ac3358ce6acde557e5">kstat::Device</a></div><div class="ttdeci">dev_t Device</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00164">fs.h:164</a></div></div>
<div class="ttc" id="afs_8h_html_a594a4636414d0b19f3b08860c0121a66"><div class="ttname"><a href="../../df/d26/fs_8h.html#a594a4636414d0b19f3b08860c0121a66">Inode::Index</a></div><div class="ttdeci">ino_t Index</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00257">fs.h:257</a></div></div>
<div class="ttc" id="afs_8h_html_a596b05c30fb6356f46f6c827bdac7fc6"><div class="ttname"><a href="../../df/d26/fs_8h.html#a596b05c30fb6356f46f6c827bdac7fc6">Inode::Device</a></div><div class="ttdeci">dev_t Device</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00256">fs.h:256</a></div></div>
<div class="ttc" id="afs_8h_html_a5a9f69f32f7f6d41513d7093cd06b27b"><div class="ttname"><a href="../../df/d26/fs_8h.html#a5a9f69f32f7f6d41513d7093cd06b27b">kdirent::d_name</a></div><div class="ttdeci">char d_name[]</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00251">fs.h:251</a></div></div>
<div class="ttc" id="afs_8h_html_a5f3da9475a138d8a510be43e53dd20b6"><div class="ttname"><a href="../../df/d26/fs_8h.html#a5f3da9475a138d8a510be43e53dd20b6">kstat::Size</a></div><div class="ttdeci">off_t Size</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00185">fs.h:185</a></div></div>
<div class="ttc" id="afs_8h_html_a640517af38108c7ece215fe6789b497a"><div class="ttname"><a href="../../df/d26/fs_8h.html#a640517af38108c7ece215fe6789b497a">kstat::UserID</a></div><div class="ttdeci">uid_t UserID</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00176">fs.h:176</a></div></div>
<div class="ttc" id="afs_8h_html_a667a06765053832b0e364d352d331481"><div class="ttname"><a href="../../df/d26/fs_8h.html#a667a06765053832b0e364d352d331481">Inode::Mode</a></div><div class="ttdeci">mode_t Mode</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00258">fs.h:258</a></div></div>
<div class="ttc" id="afs_8h_html_a6df31642b52e126ee6433ae83c5c7df8"><div class="ttname"><a href="../../df/d26/fs_8h.html#a6df31642b52e126ee6433ae83c5c7df8">kstat::GroupID</a></div><div class="ttdeci">gid_t GroupID</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00179">fs.h:179</a></div></div>
<div class="ttc" id="afs_8h_html_a733e07be0afb4a7a10555436d8deb100"><div class="ttname"><a href="../../df/d26/fs_8h.html#a733e07be0afb4a7a10555436d8deb100">kstat::Attribute</a></div><div class="ttdeci">mode_t Attribute</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00203">fs.h:203</a></div></div>
<div class="ttc" id="afs_8h_html_a75f4deeb21caf3c4150e515e19913349"><div class="ttname"><a href="../../df/d26/fs_8h.html#a75f4deeb21caf3c4150e515e19913349">RegisterFileSystem</a></div><div class="ttdeci">dev_t RegisterFileSystem(struct FileSystemInfo *Info, struct Inode *Root)</div></div>
<div class="ttc" id="afs_8h_html_a760b4e07b204e4852e7fb55e25567623"><div class="ttname"><a href="../../df/d26/fs_8h.html#a760b4e07b204e4852e7fb55e25567623">Name</a></div><div class="ttdeci">const char * Name</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00000">fs.h:0</a></div></div>
<div class="ttc" id="afs_8h_html_a866fcc7922cd6949f8ee7e41b270fde6"><div class="ttname"><a href="../../df/d26/fs_8h.html#a866fcc7922cd6949f8ee7e41b270fde6">Inode::KernelData</a></div><div class="ttdeci">uintptr_t KernelData</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00262">fs.h:262</a></div></div>
<div class="ttc" id="afs_8h_html_a883eee0b0e9bc85a6a4c0b81c12d59b4"><div class="ttname"><a href="../../df/d26/fs_8h.html#a883eee0b0e9bc85a6a4c0b81c12d59b4">kdirent::d_off</a></div><div class="ttdeci">off_t d_off</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00248">fs.h:248</a></div></div>
<div class="ttc" id="afs_8h_html_a8a8f6bdc98a851b29a69b484cb1bad98"><div class="ttname"><a href="../../df/d26/fs_8h.html#a8a8f6bdc98a851b29a69b484cb1bad98">static_assert</a></div><div class="ttdeci">#define static_assert</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00132">fs.h:132</a></div></div>
<div class="ttc" id="afs_8h_html_a90cbd8716158e3d6c367080d81e7327e"><div class="ttname"><a href="../../df/d26/fs_8h.html#a90cbd8716158e3d6c367080d81e7327e">kstat::HardLinks</a></div><div class="ttdeci">nlink_t HardLinks</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00173">fs.h:173</a></div></div>
<div class="ttc" id="afs_8h_html_a9f1f01620d0175f71eff75e384cd9042"><div class="ttname"><a href="../../df/d26/fs_8h.html#a9f1f01620d0175f71eff75e384cd9042">kstat::ModifyTime</a></div><div class="ttdeci">time_t ModifyTime</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00191">fs.h:191</a></div></div>
<div class="ttc" id="afs_8h_html_aac2e36f2ffad2d048f6d1d3f988765ef"><div class="ttname"><a href="../../df/d26/fs_8h.html#aac2e36f2ffad2d048f6d1d3f988765ef">kstat::BlockSize</a></div><div class="ttdeci">blksize_t BlockSize</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00197">fs.h:197</a></div></div>
<div class="ttc" id="afs_8h_html_aaf47378e1023c469b361bfbfe1e68ec4"><div class="ttname"><a href="../../df/d26/fs_8h.html#aaf47378e1023c469b361bfbfe1e68ec4">kdirent::d_ino</a></div><div class="ttdeci">ino_t d_ino</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00247">fs.h:247</a></div></div>
<div class="ttc" id="afs_8h_html_ab16632cca111e54cdbcb1e3ce465ed3c"><div class="ttname"><a href="../../df/d26/fs_8h.html#ab16632cca111e54cdbcb1e3ce465ed3c">kdirent::d_reclen</a></div><div class="ttdeci">unsigned short d_reclen</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00249">fs.h:249</a></div></div>
<div class="ttc" id="afs_8h_html_ab513d931acdad2f26554dbcc31fe90e4"><div class="ttname"><a href="../../df/d26/fs_8h.html#ab513d931acdad2f26554dbcc31fe90e4">kstat::Index</a></div><div class="ttdeci">ino_t Index</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00167">fs.h:167</a></div></div>
<div class="ttc" id="afs_8h_html_ab5bee51e9ee68b83ab11d4b340f7200b"><div class="ttname"><a href="../../df/d26/fs_8h.html#ab5bee51e9ee68b83ab11d4b340f7200b">S_IFMT</a></div><div class="ttdeci">#define S_IFMT</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00048">fs.h:48</a></div></div>
<div class="ttc" id="afs_8h_html_ab5bfae4f7951e37243599de928130341"><div class="ttname"><a href="../../df/d26/fs_8h.html#ab5bfae4f7951e37243599de928130341">Inode::Flags</a></div><div class="ttdeci">uint32_t Flags</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00259">fs.h:259</a></div></div>
<div class="ttc" id="afs_8h_html_ac03af40bdb9327cdf8a3c1c3d8bc4990"><div class="ttname"><a href="../../df/d26/fs_8h.html#ac03af40bdb9327cdf8a3c1c3d8bc4990">FileSystemInfo::RootName</a></div><div class="ttdeci">const char * RootName</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00372">fs.h:372</a></div></div>
<div class="ttc" id="afs_8h_html_ac3e60a9fc42fb6c0b656191ebb1d658b"><div class="ttname"><a href="../../df/d26/fs_8h.html#ac3e60a9fc42fb6c0b656191ebb1d658b">Flags</a></div><div class="ttdeci">int Flags</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00002">fs.h:2</a></div></div>
<div class="ttc" id="afs_8h_html_ac7fd076e6f0290af80aee31a0af35b4a"><div class="ttname"><a href="../../df/d26/fs_8h.html#ac7fd076e6f0290af80aee31a0af35b4a">Inode::Offset</a></div><div class="ttdeci">off_t Offset</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00260">fs.h:260</a></div></div>
<div class="ttc" id="afs_8h_html_ad5d7f7b9b3133592e590d5e9b5173425"><div class="ttname"><a href="../../df/d26/fs_8h.html#ad5d7f7b9b3133592e590d5e9b5173425">Inode::PrivateData</a></div><div class="ttdeci">void * PrivateData</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00263">fs.h:263</a></div></div>
<div class="ttc" id="afs_8h_html_ae62da46e9487a67427fad586aa96806a"><div class="ttname"><a href="../../df/d26/fs_8h.html#ae62da46e9487a67427fad586aa96806a">kdirent::d_type</a></div><div class="ttdeci">unsigned char d_type</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00250">fs.h:250</a></div></div>
<div class="ttc" id="afs_8h_html_ae9d1c84bd8c5ad87f19dc53750668f1b"><div class="ttname"><a href="../../df/d26/fs_8h.html#ae9d1c84bd8c5ad87f19dc53750668f1b">__attribute__</a></div><div class="ttdeci">struct InodeOperations __attribute__((packed))</div></div>
<div class="ttc" id="afs_8h_html_af0d5a9e82aa0ece31db45ae57b97b5d9"><div class="ttname"><a href="../../df/d26/fs_8h.html#af0d5a9e82aa0ece31db45ae57b97b5d9">kstat::AccessTime</a></div><div class="ttdeci">time_t AccessTime</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00188">fs.h:188</a></div></div>
<div class="ttc" id="afs_8h_html_af45191ed8ad28ab7a58ee02287609808"><div class="ttname"><a href="../../df/d26/fs_8h.html#af45191ed8ad28ab7a58ee02287609808">kstat::Mode</a></div><div class="ttdeci">mode_t Mode</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00170">fs.h:170</a></div></div>
<div class="ttc" id="afs_8h_html_afed4851539e0eb74fbd4cc4c0dca8abd"><div class="ttname"><a href="../../df/d26/fs_8h.html#afed4851539e0eb74fbd4cc4c0dca8abd">FileSystemInfo::PrivateData</a></div><div class="ttdeci">void * PrivateData</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00377">fs.h:377</a></div></div>
<div class="ttc" id="afs_8h_html_d5/df1/structkstat"><div class="ttname"><a href="../../df/d26/fs_8h.html#d5/df1/structkstat">kstat</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00161">fs.h:162</a></div></div>
<div class="ttc" id="afs_8h_html_d6/d59/structInode"><div class="ttname"><a href="../../df/d26/fs_8h.html#d6/d59/structInode">Inode</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00254">fs.h:255</a></div></div>
<div class="ttc" id="afs_8h_html_d9/ddf/structkdirent"><div class="ttname"><a href="../../df/d26/fs_8h.html#d9/ddf/structkdirent">kdirent</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00245">fs.h:246</a></div></div>
<div class="ttc" id="afs_8h_html_de/d99/structFileSystemInfo"><div class="ttname"><a href="../../df/d26/fs_8h.html#de/d99/structFileSystemInfo">FileSystemInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00369">fs.h:370</a></div></div>
<div class="ttc" id="astructInodeOperations_html"><div class="ttname"><a href="../../db/de6/structInodeOperations.html">InodeOperations</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00314">fs.h:315</a></div></div>
<div class="ttc" id="astructInodeOperations_html_a033b7baebdcfa352b4d84e4e3c9cee80"><div class="ttname"><a href="../../db/de6/structInodeOperations.html#a033b7baebdcfa352b4d84e4e3c9cee80">InodeOperations::ReadDir</a></div><div class="ttdeci">ssize_t(* ReadDir)(struct Inode *Node, struct kdirent *Buffer, size_t Size, off_t Offset, off_t Entries)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00326">fs.h:326</a></div></div>
<div class="ttc" id="astructInodeOperations_html_a0df9d6741496cdbe9d25d4d80d06f509"><div class="ttname"><a href="../../db/de6/structInodeOperations.html#a0df9d6741496cdbe9d25d4d80d06f509">InodeOperations::Ioctl</a></div><div class="ttdeci">int(* Ioctl)(struct Inode *Node, unsigned long Request, void *Argp)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00325">fs.h:325</a></div></div>
<div class="ttc" id="astructInodeOperations_html_a1636030e07da14031506e2ec85fae4c6"><div class="ttname"><a href="../../db/de6/structInodeOperations.html#a1636030e07da14031506e2ec85fae4c6">InodeOperations::Truncate</a></div><div class="ttdeci">int(* Truncate)(struct Inode *Node, off_t Size)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00322">fs.h:322</a></div></div>
<div class="ttc" id="astructInodeOperations_html_a1b8ac7df82a22e9ee822c240a79076b4"><div class="ttname"><a href="../../db/de6/structInodeOperations.html#a1b8ac7df82a22e9ee822c240a79076b4">InodeOperations::Read</a></div><div class="ttdeci">ssize_t(* Read)(struct Inode *Node, void *Buffer, size_t Size, off_t Offset)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00320">fs.h:320</a></div></div>
<div class="ttc" id="astructInodeOperations_html_a229c34e01b322f1b9533a049ff1f5cc9"><div class="ttname"><a href="../../db/de6/structInodeOperations.html#a229c34e01b322f1b9533a049ff1f5cc9">InodeOperations::Remove</a></div><div class="ttdeci">int(* Remove)(struct Inode *Parent, const char *Name)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00318">fs.h:318</a></div></div>
<div class="ttc" id="astructInodeOperations_html_a490a002f55d3f99697641d2de8e62ae9"><div class="ttname"><a href="../../db/de6/structInodeOperations.html#a490a002f55d3f99697641d2de8e62ae9">InodeOperations::MkDir</a></div><div class="ttdeci">int(* MkDir)(struct Inode *Parent, const char *Name, mode_t Mode, struct Inode **Result)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00327">fs.h:327</a></div></div>
<div class="ttc" id="astructInodeOperations_html_a530732a5e449903291a39f37b066befd"><div class="ttname"><a href="../../db/de6/structInodeOperations.html#a530732a5e449903291a39f37b066befd">InodeOperations::SymLink</a></div><div class="ttdeci">int(* SymLink)(struct Inode *Parent, const char *Name, const char *Target, struct Inode **Result)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00329">fs.h:329</a></div></div>
<div class="ttc" id="astructInodeOperations_html_a54bbd07bcb9a6143867be3aa05577413"><div class="ttname"><a href="../../db/de6/structInodeOperations.html#a54bbd07bcb9a6143867be3aa05577413">InodeOperations::Rename</a></div><div class="ttdeci">int(* Rename)(struct Inode *Parent, const char *OldName, const char *NewName)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00319">fs.h:319</a></div></div>
<div class="ttc" id="astructInodeOperations_html_a7f143243e5be1fc608f99072d3c93cb5"><div class="ttname"><a href="../../db/de6/structInodeOperations.html#a7f143243e5be1fc608f99072d3c93cb5">InodeOperations::Lookup</a></div><div class="ttdeci">int(* Lookup)(struct Inode *Parent, const char *Name, struct Inode **Result)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00316">fs.h:316</a></div></div>
<div class="ttc" id="astructInodeOperations_html_a869200a6c684532a9a75a05bca1e9270"><div class="ttname"><a href="../../db/de6/structInodeOperations.html#a869200a6c684532a9a75a05bca1e9270">InodeOperations::Open</a></div><div class="ttdeci">int(* Open)(struct Inode *Node, int Flags, mode_t Mode)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00323">fs.h:323</a></div></div>
<div class="ttc" id="astructInodeOperations_html_ab9c62336bdce356caa7d165b86371e7f"><div class="ttname"><a href="../../db/de6/structInodeOperations.html#ab9c62336bdce356caa7d165b86371e7f">InodeOperations::Close</a></div><div class="ttdeci">int(* Close)(struct Inode *Node)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00324">fs.h:324</a></div></div>
<div class="ttc" id="astructInodeOperations_html_abed9ba869733a00a02a41a3ea9765bda"><div class="ttname"><a href="../../db/de6/structInodeOperations.html#abed9ba869733a00a02a41a3ea9765bda">InodeOperations::Create</a></div><div class="ttdeci">int(* Create)(struct Inode *Parent, const char *Name, mode_t Mode, struct Inode **Result)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00317">fs.h:317</a></div></div>
<div class="ttc" id="astructInodeOperations_html_abf61f594d2b1d2a10a995329372c9ed9"><div class="ttname"><a href="../../db/de6/structInodeOperations.html#abf61f594d2b1d2a10a995329372c9ed9">InodeOperations::ReadLink</a></div><div class="ttdeci">ssize_t(* ReadLink)(struct Inode *Node, char *Buffer, size_t Size)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00330">fs.h:330</a></div></div>
<div class="ttc" id="astructInodeOperations_html_ace503c1be6e9452757578cad84370016"><div class="ttname"><a href="../../db/de6/structInodeOperations.html#ace503c1be6e9452757578cad84370016">InodeOperations::Stat</a></div><div class="ttdeci">int(* Stat)(struct Inode *Node, struct kstat *Stat)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00332">fs.h:332</a></div></div>
<div class="ttc" id="astructInodeOperations_html_adb7eaaee195090e8d618a6e9c3ca507a"><div class="ttname"><a href="../../db/de6/structInodeOperations.html#adb7eaaee195090e8d618a6e9c3ca507a">InodeOperations::Write</a></div><div class="ttdeci">ssize_t(* Write)(struct Inode *Node, const void *Buffer, size_t Size, off_t Offset)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00321">fs.h:321</a></div></div>
<div class="ttc" id="astructInodeOperations_html_ae49064b9b56c095e3104fd73e19e7c7e"><div class="ttname"><a href="../../db/de6/structInodeOperations.html#ae49064b9b56c095e3104fd73e19e7c7e">InodeOperations::Seek</a></div><div class="ttdeci">off_t(* Seek)(struct Inode *Node, off_t Offset)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00331">fs.h:331</a></div></div>
<div class="ttc" id="astructInodeOperations_html_afb5728ae092216ddd3db335d1173e687"><div class="ttname"><a href="../../db/de6/structInodeOperations.html#afb5728ae092216ddd3db335d1173e687">InodeOperations::RmDir</a></div><div class="ttdeci">int(* RmDir)(struct Inode *Parent, const char *Name)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00328">fs.h:328</a></div></div>
<div class="ttc" id="astructSuperBlockOperations_html"><div class="ttname"><a href="../../d2/d55/structSuperBlockOperations.html">SuperBlockOperations</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00340">fs.h:341</a></div></div>
<div class="ttc" id="astructSuperBlockOperations_html_a91b8a508085e42bcf27a06058a0fd2f7"><div class="ttname"><a href="../../d2/d55/structSuperBlockOperations.html#a91b8a508085e42bcf27a06058a0fd2f7">SuperBlockOperations::DeleteInode</a></div><div class="ttdeci">int(* DeleteInode)(struct FileSystemInfo *Info, struct Inode *Node)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00343">fs.h:343</a></div></div>
<div class="ttc" id="astructSuperBlockOperations_html_a9b919eaba70c8e9d020930ba97b7df68"><div class="ttname"><a href="../../d2/d55/structSuperBlockOperations.html#a9b919eaba70c8e9d020930ba97b7df68">SuperBlockOperations::AllocateInode</a></div><div class="ttdeci">int(* AllocateInode)(struct FileSystemInfo *Info, struct Inode **Result)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00342">fs.h:342</a></div></div>
<div class="ttc" id="astructSuperBlockOperations_html_ac57a866f55ed08d2dd2897b27a541eb2"><div class="ttname"><a href="../../d2/d55/structSuperBlockOperations.html#ac57a866f55ed08d2dd2897b27a541eb2">SuperBlockOperations::Synchronize</a></div><div class="ttdeci">int(* Synchronize)(struct FileSystemInfo *Info, struct Inode *Node)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00355">fs.h:355</a></div></div>
<div class="ttc" id="astructSuperBlockOperations_html_ac5d91cc844c75e8d58ef124a9b2c8722"><div class="ttname"><a href="../../d2/d55/structSuperBlockOperations.html#ac5d91cc844c75e8d58ef124a9b2c8722">SuperBlockOperations::Destroy</a></div><div class="ttdeci">int(* Destroy)(struct FileSystemInfo *Info)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d26/fs_8h_source.html#l00366">fs.h:366</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_52bed8acfaac088d5968cb2c84d7645d.html">Kernel</a></li><li class="navelem"><a class="el" href="../../dir_2c335c1ccbf6ef7c89cc08c9ed88be2e.html">include</a></li><li class="navelem"><a class="el" href="../../dir_811a06ffcfc34bd0f88967f0406a39f5.html">interface</a></li><li class="navelem"><a class="el" href="../../df/d26/fs_8h.html">fs.h</a></li>
<li class="footer">Generated on Sat Jan 4 2025 16:50:09 for Fennix by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>