Newer
Older
UbixOS / doc / html / ufs_8h-source.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>UbixOS V2: src/sys/include/ufs/ufs.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
  <ul>
    <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
    <li id="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    <li><a href="globals.html"><span>Globals</span></a></li>
  </ul></div>
<div class="nav">
<a class="el" href="dir_897b6a2d7bab147dd1db58381aad3984.html">src</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_832905b1f7f5feaf61a306b40c0ac817.html">sys</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_caf4200c438ae9601464168e21e8e4d8.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_4d4c8e7174efe8ad5ca8ab494abe072d.html">ufs</a></div>
<h1>ufs.h</h1><a href="ufs_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*****************************************************************************************</span>
<a name="l00002"></a>00002 <span class="comment"> Copyright (c) 2002-2004 The UbixOS Project</span>
<a name="l00003"></a>00003 <span class="comment"> All rights reserved.</span>
<a name="l00004"></a>00004 <span class="comment"></span>
<a name="l00005"></a>00005 <span class="comment"> Redistribution and use in source and binary forms, with or without modification, are</span>
<a name="l00006"></a>00006 <span class="comment"> permitted provided that the following conditions are met:</span>
<a name="l00007"></a>00007 <span class="comment"></span>
<a name="l00008"></a>00008 <span class="comment"> Redistributions of source code must retain the above copyright notice, this list of</span>
<a name="l00009"></a>00009 <span class="comment"> conditions, the following disclaimer and the list of authors.  Redistributions in binary</span>
<a name="l00010"></a>00010 <span class="comment"> form must reproduce the above copyright notice, this list of conditions, the following</span>
<a name="l00011"></a>00011 <span class="comment"> disclaimer and the list of authors in the documentation and/or other materials provided</span>
<a name="l00012"></a>00012 <span class="comment"> with the distribution. Neither the name of the UbixOS Project nor the names of its</span>
<a name="l00013"></a>00013 <span class="comment"> contributors may be used to endorse or promote products derived from this software</span>
<a name="l00014"></a>00014 <span class="comment"> without specific prior written permission.</span>
<a name="l00015"></a>00015 <span class="comment"></span>
<a name="l00016"></a>00016 <span class="comment"> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY</span>
<a name="l00017"></a>00017 <span class="comment"> EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF</span>
<a name="l00018"></a>00018 <span class="comment"> MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL</span>
<a name="l00019"></a>00019 <span class="comment"> THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span>
<a name="l00020"></a>00020 <span class="comment"> SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT</span>
<a name="l00021"></a>00021 <span class="comment"> OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</span>
<a name="l00022"></a>00022 <span class="comment"> HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR</span>
<a name="l00023"></a>00023 <span class="comment"> TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span>
<a name="l00024"></a>00024 <span class="comment"> SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
<a name="l00025"></a>00025 <span class="comment"></span>
<a name="l00026"></a>00026 <span class="comment"> $Id: ufs_8h-source.html 88 2016-01-12 00:11:29Z reddawg $</span>
<a name="l00027"></a>00027 <span class="comment"></span>
<a name="l00028"></a>00028 <span class="comment">*****************************************************************************************/</span>
<a name="l00029"></a>00029 
<a name="l00030"></a>00030 <span class="preprocessor">#ifndef _UFS_H</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#define _UFS_H</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;<a class="code" href="types_8h.html">ubixos/types.h</a>&gt;</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;<a class="code" href="vfs_8h.html">vfs/vfs.h</a>&gt;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;<a class="code" href="device_8h.html">sys/device.h</a>&gt;</span>
<a name="l00036"></a>00036 
<a name="l00037"></a>00037 
<a name="l00038"></a><a class="code" href="ufs_8h.html#9973595cf6775b1b29d7274ab4c0d623">00038</a> <span class="preprocessor">#define      DT_REG           8</span>
<a name="l00039"></a><a class="code" href="ufs_8h.html#b347d7e5c2fdca2d28e693b2a508d76a">00039</a> <span class="preprocessor"></span><span class="preprocessor">#define      MAXNAMLEN       255</span>
<a name="l00040"></a><a class="code" href="ufs_8h.html#22c8ea96d09283ed6496347806cc72a0">00040</a> <span class="preprocessor"></span><span class="preprocessor">#define      ROOTINO ((ino_t)2)</span>
<a name="l00041"></a><a class="code" href="ufs_8h.html#1dcee67486bc4238096ecb61e2d9ffd1">00041</a> <span class="preprocessor"></span><span class="preprocessor">#define      DT_DIR           4</span>
<a name="l00042"></a><a class="code" href="ufs_8h.html#9734470bf89968d142073fd334bf9cb6">00042</a> <span class="preprocessor"></span><span class="preprocessor">#define      DEV_BSHIFT      9               </span><span class="comment">/* log2(DEV_BSIZE) */</span>
<a name="l00043"></a><a class="code" href="ufs_8h.html#9c8466b6111a11195a5cd2478c648e32">00043</a> <span class="preprocessor">#define      DEV_BSIZE       (1&lt;&lt;DEV_BSHIFT)</span>
<a name="l00044"></a><a class="code" href="ufs_8h.html#b6b633b015b70b15317113908ccc0a17">00044</a> <span class="preprocessor"></span><span class="preprocessor">#define SBLOCK_FLOPPY        0</span>
<a name="l00045"></a><a class="code" href="ufs_8h.html#d25e0f8e55fba4f0d670b43361e6b61e">00045</a> <span class="preprocessor"></span><span class="preprocessor">#define SBLOCK_UFS1       8192</span>
<a name="l00046"></a><a class="code" href="ufs_8h.html#7376590d1dfaa886ae6ac77649aaea52">00046</a> <span class="preprocessor"></span><span class="preprocessor">#define SBLOCK_UFS2      65536</span>
<a name="l00047"></a><a class="code" href="ufs_8h.html#fa52e1b5081edc4bbc9c7e29556bfc92">00047</a> <span class="preprocessor"></span><span class="preprocessor">#define SBLOCK_PIGGY    262144</span>
<a name="l00048"></a><a class="code" href="ufs_8h.html#b7ef7deca5409474c504d9c927e97249">00048</a> <span class="preprocessor"></span><span class="preprocessor">#define SBLOCKSIZE      8192</span>
<a name="l00049"></a><a class="code" href="ufs_8h.html#63f5b70b0dfe26fd775e89713f552e23">00049</a> <span class="preprocessor"></span><span class="preprocessor">#define SBLOCKSEARCH \</span>
<a name="l00050"></a>00050 <span class="preprocessor">        { SBLOCK_UFS2, SBLOCK_UFS1, SBLOCK_FLOPPY, SBLOCK_PIGGY, -1 }</span>
<a name="l00051"></a><a class="code" href="ufs_8h.html#ce25c7a73c514a8e575e1ba8c15c9a9e">00051</a> <span class="preprocessor"></span><span class="preprocessor">#define FS_UFS1_MAGIC   0x011954        </span><span class="comment">/* UFS1 fast filesystem magic number */</span>
<a name="l00052"></a><a class="code" href="ufs_8h.html#0b73b7456fc1dee932dc0c1056c613fc">00052</a> <span class="preprocessor">#define FS_UFS2_MAGIC   0x19540119      </span><span class="comment">/* UFS2 fast filesystem magic number */</span>
<a name="l00053"></a><a class="code" href="ufs_8h.html#0beb14d415a358b818cec76550e4fad1">00053</a> <span class="preprocessor">#define MAXMNTLEN       468</span>
<a name="l00054"></a><a class="code" href="ufs_8h.html#c5859c27029a47d17c1279cc197f05c3">00054</a> <span class="preprocessor"></span><span class="preprocessor">#define MAXVOLLEN       32</span>
<a name="l00055"></a><a class="code" href="ufs_8h.html#ca816b354128719c1523e33152a13637">00055</a> <span class="preprocessor"></span><span class="preprocessor">#define NOCSPTRS        ((128 / sizeof(void *)) - 4)</span>
<a name="l00056"></a><a class="code" href="ufs_8h.html#04c33da6605e73954cf2ff32c3f0f15a">00056</a> <span class="preprocessor"></span><span class="preprocessor">#define FSMAXSNAP 20</span>
<a name="l00057"></a><a class="code" href="ufs_8h.html#6e852e863e63ab118ec196d1157a1dbd">00057</a> <span class="preprocessor"></span><span class="preprocessor">#define MAXBSIZE       65536</span>
<a name="l00058"></a><a class="code" href="ufs_8h.html#6d58397786421684bb8db78f01e13ae6">00058</a> <span class="preprocessor"></span><span class="preprocessor">#define NINDIR(fs)      ((fs)-&gt;fs_nindir)</span>
<a name="l00059"></a>00059 <span class="preprocessor"></span>
<a name="l00060"></a>00060 <span class="comment">/*</span>
<a name="l00061"></a>00061 <span class="comment"> * Cylinder group macros to locate things in cylinder groups.</span>
<a name="l00062"></a>00062 <span class="comment"> * They calc filesystem addresses of cylinder group data structures.</span>
<a name="l00063"></a>00063 <span class="comment"> */</span>
<a name="l00064"></a><a class="code" href="ufs_8h.html#f7e946b674acc4ead5e3ae15317f52c0">00064</a> <span class="preprocessor">#define cgbase(fs, c)   (((ufs2_daddr_t)(fs)-&gt;fs_fpg) * (c))</span>
<a name="l00065"></a><a class="code" href="ufs_8h.html#03cdc9c21f1412b107d85751f275c208">00065</a> <span class="preprocessor"></span><span class="preprocessor">#define cgdmin(fs, c)   (cgstart(fs, c) + (fs)-&gt;fs_dblkno)      </span><span class="comment">/* 1st data */</span>
<a name="l00066"></a><a class="code" href="ufs_8h.html#f2bea0d775018173b6e6f5141f09bdd0">00066</a> <span class="preprocessor">#define cgimin(fs, c)   (cgstart(fs, c) + (fs)-&gt;fs_iblkno)      </span><span class="comment">/* inode blk */</span>
<a name="l00067"></a><a class="code" href="ufs_8h.html#6ccbaf50dd709f99482cafcbc427d834">00067</a> <span class="preprocessor">#define cgsblock(fs, c) (cgstart(fs, c) + (fs)-&gt;fs_sblkno)      </span><span class="comment">/* super blk */</span>
<a name="l00068"></a><a class="code" href="ufs_8h.html#5c527699eccebab4828fd122caea6cb7">00068</a> <span class="preprocessor">#define cgtod(fs, c)    (cgstart(fs, c) + (fs)-&gt;fs_cblkno)      </span><span class="comment">/* cg block */</span>
<a name="l00069"></a><a class="code" href="ufs_8h.html#1446925c904a61056fb611a539de03ca">00069</a> <span class="preprocessor">#define cgstart(fs, c)                                                  \</span>
<a name="l00070"></a>00070 <span class="preprocessor">       ((fs)-&gt;fs_magic == FS_UFS2_MAGIC ? cgbase(fs, c) :               \</span>
<a name="l00071"></a>00071 <span class="preprocessor">       (cgbase(fs, c) + (fs)-&gt;fs_old_cgoffset * ((c) &amp; ~((fs)-&gt;fs_old_cgmask))))</span>
<a name="l00072"></a>00072 <span class="preprocessor"></span>
<a name="l00073"></a>00073 
<a name="l00074"></a><a class="code" href="ufs_8h.html#e26526d0ac7505aae7345f0288c17fe6">00074</a> <span class="preprocessor">#define       fsbtodb(fs, b)  ((daddr_t)(b) &lt;&lt; (fs)-&gt;fs_fsbtodb)</span>
<a name="l00075"></a><a class="code" href="ufs_8h.html#7875100ca8ad379e53628cb7dec48ecd">00075</a> <span class="preprocessor"></span><span class="preprocessor">#define       dbtofsb(fs, b)  ((b) &gt;&gt; (fs)-&gt;fs_fsbtodb)</span>
<a name="l00076"></a>00076 <span class="preprocessor"></span>
<a name="l00077"></a>00077 <span class="comment">/*</span>
<a name="l00078"></a>00078 <span class="comment"> * Macros for handling inode numbers:</span>
<a name="l00079"></a>00079 <span class="comment"> *     inode number to filesystem block offset.</span>
<a name="l00080"></a>00080 <span class="comment"> *     inode number to cylinder group number.</span>
<a name="l00081"></a>00081 <span class="comment"> *     inode number to filesystem block address.</span>
<a name="l00082"></a>00082 <span class="comment"> */</span>
<a name="l00083"></a><a class="code" href="ufs_8h.html#22af882911b5ccb5c744257642089932">00083</a> <span class="preprocessor">#define ino_to_cg(fs, x)        ((x) / (fs)-&gt;fs_ipg)</span>
<a name="l00084"></a><a class="code" href="ufs_8h.html#ff52db23f4b31f920a657a75e0e5d58b">00084</a> <span class="preprocessor"></span><span class="preprocessor">#define ino_to_fsba(fs, x)                                              \</span>
<a name="l00085"></a>00085 <span class="preprocessor">        ((ufs2_daddr_t)(cgimin(fs, ino_to_cg(fs, x)) +                  \</span>
<a name="l00086"></a>00086 <span class="preprocessor">            (blkstofrags((fs), (((x) % (fs)-&gt;fs_ipg) / INOPB(fs))))))</span>
<a name="l00087"></a><a class="code" href="ufs_8h.html#a318a9ca261ab408a6df7949a593fb57">00087</a> <span class="preprocessor"></span><span class="preprocessor">#define ino_to_fsbo(fs, x)      ((x) % INOPB(fs))</span>
<a name="l00088"></a>00088 <span class="preprocessor"></span>
<a name="l00089"></a>00089 
<a name="l00090"></a><a class="code" href="ufs_8h.html#cd9d1b3e1eed7fc3850f8a78636dd5a7">00090</a> <span class="preprocessor">#define blkoff(fs, loc)         </span><span class="comment">/* calculates (loc % fs-&gt;fs_bsize) */</span> \
<a name="l00091"></a>00091         ((loc) &amp; (fs)-&gt;fs_qbmask)
<a name="l00092"></a><a class="code" href="ufs_8h.html#1ea09415cf1bc5de0d0d4a7158a5c736">00092</a> <span class="preprocessor">#define lblkno(fs, loc)         </span><span class="comment">/* calculates (loc / fs-&gt;fs_bsize) */</span> \
<a name="l00093"></a>00093         ((loc) &gt;&gt; (fs)-&gt;fs_bshift)
<a name="l00094"></a><a class="code" href="ufs_8h.html#1494995062a8a6dbbe60f8dc6a3e995d">00094</a> <span class="preprocessor">#define fragroundup(fs, size)   </span><span class="comment">/* calculates roundup(size, fs-&gt;fs_fsize) */</span> \
<a name="l00095"></a>00095         (((size) + (fs)-&gt;fs_qfmask) &amp; (fs)-&gt;fs_fmask)
<a name="l00096"></a>00096 
<a name="l00097"></a>00097 
<a name="l00098"></a><a class="code" href="ufs_8h.html#d35c4c33dc54a0b8db742e0b3b5f64aa">00098</a> <span class="preprocessor">#define sblksize(fs, size, lbn) \</span>
<a name="l00099"></a>00099 <span class="preprocessor">        (((lbn) &gt;= NDADDR || (size) &gt;= ((lbn) + 1) &lt;&lt; (fs)-&gt;fs_bshift) \</span>
<a name="l00100"></a>00100 <span class="preprocessor">          ? (fs)-&gt;fs_bsize \</span>
<a name="l00101"></a>00101 <span class="preprocessor">          : (fragroundup(fs, blkoff(fs, (size)))))</span>
<a name="l00102"></a>00102 <span class="preprocessor"></span>
<a name="l00103"></a>00103 
<a name="l00104"></a>00104 
<a name="l00105"></a>00105 
<a name="l00106"></a><a class="code" href="ufs_8h.html#6c4d2453c62592d30d9c981e4ee01323">00106</a> <span class="keyword">typedef</span> <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a> <a class="code" href="ufs_8h.html#6c4d2453c62592d30d9c981e4ee01323">ufs1_daddr_t</a>;
<a name="l00107"></a><a class="code" href="ufs_8h.html#d1d47f60518d845f7e798fa0f3458753">00107</a> <span class="keyword">typedef</span> <a class="code" href="types_8h.html#96411d49619f50e635418ee57651b95d">int64_t</a> <a class="code" href="ufs_8h.html#d1d47f60518d845f7e798fa0f3458753">ufs2_daddr_t</a>;
<a name="l00108"></a><a class="code" href="ufs_8h.html#cfdbacc42c74f81152f66f8f81316513">00108</a> <span class="keyword">typedef</span> <a class="code" href="types_8h.html#96411d49619f50e635418ee57651b95d">int64_t</a> <a class="code" href="ufs_8h.html#cfdbacc42c74f81152f66f8f81316513">ufs_lbn_t</a>;
<a name="l00109"></a><a class="code" href="ufs_8h.html#ec5bc03f68bf810247d604821ad95bb7">00109</a> <span class="keyword">typedef</span> <a class="code" href="types_8h.html#96411d49619f50e635418ee57651b95d">int64_t</a> <a class="code" href="ufs_8h.html#ec5bc03f68bf810247d604821ad95bb7">ufs_time_t</a>;
<a name="l00110"></a><a class="code" href="ufs_8h.html#b4b318e7a68f3cd77c42492443c59895">00110</a> <span class="keyword">typedef</span>        <a class="code" href="__types_8h.html#ee0edd064977857105b173face02e89a">__int64_t</a>       <a class="code" href="ufs_8h.html#b4b318e7a68f3cd77c42492443c59895">daddr_t</a>;
<a name="l00111"></a>00111 
<a name="l00112"></a><a class="code" href="structdirent.html">00112</a> <span class="keyword">struct </span><a class="code" href="structdirent.html">dirent</a> {
<a name="l00113"></a><a class="code" href="structdirent.html#0aa21d56704896b87f8a39ecba4f3731">00113</a>   <a class="code" href="__types_8h.html#caa96aed3d7fddac490800f166c2af02">__uint32_t</a> <a class="code" href="structdirent.html#0aa21d56704896b87f8a39ecba4f3731">d_fileno</a>;            <span class="comment">/* file number of entry */</span>
<a name="l00114"></a><a class="code" href="structdirent.html#6ca250ead8b04b71ea787acbd29b6b75">00114</a>   <a class="code" href="__types_8h.html#28989c8f3e511d5c6a9fd46b1adc1ee0">__uint16_t</a> <a class="code" href="structdirent.html#6ca250ead8b04b71ea787acbd29b6b75">d_reclen</a>;            <span class="comment">/* length of this record */</span>
<a name="l00115"></a><a class="code" href="structdirent.html#a850909d0a98e07d0ccd6232d28ed133">00115</a>   <a class="code" href="__types_8h.html#25875528640a3eee1a026956baa82249">__uint8_t</a>  <a class="code" href="structdirent.html#a850909d0a98e07d0ccd6232d28ed133">d_type</a>;              <span class="comment">/* file type, see below */</span>
<a name="l00116"></a><a class="code" href="structdirent.html#fd25358244d313ebc9a76cf6cdb4f36a">00116</a>   <a class="code" href="__types_8h.html#25875528640a3eee1a026956baa82249">__uint8_t</a>  <a class="code" href="structdirent.html#fd25358244d313ebc9a76cf6cdb4f36a">d_namlen</a>;            <span class="comment">/* length of string in d_name */</span>
<a name="l00117"></a><a class="code" href="structdirent.html#8cb13e39a90c43e6b180ff4f1614e4da">00117</a>   <span class="keywordtype">char</span>    <a class="code" href="structdirent.html#8cb13e39a90c43e6b180ff4f1614e4da">d_name</a>[<a class="code" href="ufs_8h.html#b347d7e5c2fdca2d28e693b2a508d76a">MAXNAMLEN</a> + 1];  <span class="comment">/* name must be no longer than this */</span>
<a name="l00118"></a>00118   };
<a name="l00119"></a>00119 
<a name="l00120"></a><a class="code" href="ufs_8h.html#9515cc7f95937a2fc426cefaf6577cd5">00120</a> <span class="preprocessor">#define NXADDR  2                       </span><span class="comment">/* External addresses in inode. */</span>
<a name="l00121"></a><a class="code" href="ufs_8h.html#0c136d7ef3223bdd2b6e7c83c65bb508">00121</a> <span class="preprocessor">#define NDADDR  12                      </span><span class="comment">/* Direct addresses in inode. */</span>
<a name="l00122"></a><a class="code" href="ufs_8h.html#4916bc50cb5cd1deaffe2c749d1559f8">00122</a> <span class="preprocessor">#define NIADDR  3                       </span><span class="comment">/* Indirect addresses in inode. */</span>
<a name="l00123"></a>00123 
<a name="l00124"></a><a class="code" href="structufs2__dinode.html">00124</a> <span class="keyword">struct </span><a class="code" href="structufs2__dinode.html">ufs2_dinode</a> {
<a name="l00125"></a><a class="code" href="structufs2__dinode.html#cb7ed3e4a81ba003ec405439d39a307c">00125</a>   <a class="code" href="types_8h.html#f7b042408b9b104606f8a9b5035329f3">u_int16_t</a>       <a class="code" href="structufs2__dinode.html#cb7ed3e4a81ba003ec405439d39a307c">di_mode</a>;        <span class="comment">/*   0: IFMT, permissions; see below. */</span>
<a name="l00126"></a><a class="code" href="structufs2__dinode.html#1398daf0dae2b3f39bc5f821e704ad89">00126</a>   <a class="code" href="types_8h.html#3542c6a0490e65fc4fc407273126e64f">int16_t</a>         <a class="code" href="structufs2__dinode.html#1398daf0dae2b3f39bc5f821e704ad89">di_nlink</a>;       <span class="comment">/*   2: File link count. */</span>
<a name="l00127"></a><a class="code" href="structufs2__dinode.html#1e7d5f15243f2c5cd9417275015133dc">00127</a>   <a class="code" href="types_8h.html#ba29fd78d95cce0ecb249c24b58d07da">u_int32_t</a>       <a class="code" href="structufs2__dinode.html#1e7d5f15243f2c5cd9417275015133dc">di_uid</a>;         <span class="comment">/*   4: File owner. */</span>
<a name="l00128"></a><a class="code" href="structufs2__dinode.html#472290444109405d763fbe118772b04a">00128</a>   <a class="code" href="types_8h.html#ba29fd78d95cce0ecb249c24b58d07da">u_int32_t</a>       <a class="code" href="structufs2__dinode.html#472290444109405d763fbe118772b04a">di_gid</a>;         <span class="comment">/*   8: File group. */</span>
<a name="l00129"></a><a class="code" href="structufs2__dinode.html#2d42d866db3eb9d62bfdcf6b0ec3656e">00129</a>   <a class="code" href="types_8h.html#ba29fd78d95cce0ecb249c24b58d07da">u_int32_t</a>       <a class="code" href="structufs2__dinode.html#2d42d866db3eb9d62bfdcf6b0ec3656e">di_blksize</a>;     <span class="comment">/*  12: Inode blocksize. */</span>
<a name="l00130"></a><a class="code" href="structufs2__dinode.html#d5993494c57c494293c25dc81ec3b154">00130</a>   <a class="code" href="types_8h.html#250ac047bf3984b5dae755276a305d64">u_int64_t</a>       <a class="code" href="structufs2__dinode.html#d5993494c57c494293c25dc81ec3b154">di_size</a>;        <span class="comment">/*  16: File byte count. */</span>
<a name="l00131"></a><a class="code" href="structufs2__dinode.html#d7506242ed5662a02fa2d5a56bc23d63">00131</a>   <a class="code" href="types_8h.html#250ac047bf3984b5dae755276a305d64">u_int64_t</a>       <a class="code" href="structufs2__dinode.html#d7506242ed5662a02fa2d5a56bc23d63">di_blocks</a>;      <span class="comment">/*  24: Bytes actually held. */</span>
<a name="l00132"></a><a class="code" href="structufs2__dinode.html#884a0a3cb517902f2648b51782f713ed">00132</a>   <a class="code" href="ufs_8h.html#ec5bc03f68bf810247d604821ad95bb7">ufs_time_t</a>      <a class="code" href="structufs2__dinode.html#884a0a3cb517902f2648b51782f713ed">di_atime</a>;       <span class="comment">/*  32: Last access time. */</span>
<a name="l00133"></a><a class="code" href="structufs2__dinode.html#891b9a4ebc71c40776c6af460ea8c5b6">00133</a>   <a class="code" href="ufs_8h.html#ec5bc03f68bf810247d604821ad95bb7">ufs_time_t</a>      <a class="code" href="structufs2__dinode.html#891b9a4ebc71c40776c6af460ea8c5b6">di_mtime</a>;       <span class="comment">/*  40: Last modified time. */</span>
<a name="l00134"></a><a class="code" href="structufs2__dinode.html#7faf94a254583325c1de14b3eedc4672">00134</a>   <a class="code" href="ufs_8h.html#ec5bc03f68bf810247d604821ad95bb7">ufs_time_t</a>      <a class="code" href="structufs2__dinode.html#7faf94a254583325c1de14b3eedc4672">di_ctime</a>;       <span class="comment">/*  48: Last inode change time. */</span>
<a name="l00135"></a><a class="code" href="structufs2__dinode.html#9f35ec73df44f2db3b400271930806dc">00135</a>   <a class="code" href="ufs_8h.html#ec5bc03f68bf810247d604821ad95bb7">ufs_time_t</a>      <a class="code" href="structufs2__dinode.html#9f35ec73df44f2db3b400271930806dc">di_birthtime</a>;   <span class="comment">/*  56: Inode creation time. */</span>
<a name="l00136"></a><a class="code" href="structufs2__dinode.html#6aa493a9beb9514ce29fab46c4dd9de2">00136</a>   <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>         <a class="code" href="structufs2__dinode.html#6aa493a9beb9514ce29fab46c4dd9de2">di_mtimensec</a>;   <span class="comment">/*  64: Last modified time. */</span>
<a name="l00137"></a><a class="code" href="structufs2__dinode.html#f66b1f8d1a7a8a8eeac1dceba64582f7">00137</a>   <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>         <a class="code" href="structufs2__dinode.html#f66b1f8d1a7a8a8eeac1dceba64582f7">di_atimensec</a>;   <span class="comment">/*  68: Last access time. */</span>
<a name="l00138"></a><a class="code" href="structufs2__dinode.html#264013dc040d9a1a4f940948bd78306d">00138</a>   <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>         <a class="code" href="structufs2__dinode.html#264013dc040d9a1a4f940948bd78306d">di_ctimensec</a>;   <span class="comment">/*  72: Last inode change time. */</span>
<a name="l00139"></a><a class="code" href="structufs2__dinode.html#a62f9cdee1b9d4f5b437e3fbd6dcc33a">00139</a>   <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>         <a class="code" href="structufs2__dinode.html#a62f9cdee1b9d4f5b437e3fbd6dcc33a">di_birthnsec</a>;   <span class="comment">/*  76: Inode creation time. */</span>
<a name="l00140"></a><a class="code" href="structufs2__dinode.html#4381e2835270fbbe32040beccd49453c">00140</a>   <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>         <a class="code" href="structufs2__dinode.html#4381e2835270fbbe32040beccd49453c">di_gen</a>;         <span class="comment">/*  80: Generation number. */</span>
<a name="l00141"></a><a class="code" href="structufs2__dinode.html#999f1d6844c5076d417dcd7eefd0c853">00141</a>   <a class="code" href="types_8h.html#ba29fd78d95cce0ecb249c24b58d07da">u_int32_t</a>       <a class="code" href="structufs2__dinode.html#999f1d6844c5076d417dcd7eefd0c853">di_kernflags</a>;   <span class="comment">/*  84: Kernel flags. */</span>
<a name="l00142"></a><a class="code" href="structufs2__dinode.html#679f34fcac6376db0f8307194a31de00">00142</a>   <a class="code" href="types_8h.html#ba29fd78d95cce0ecb249c24b58d07da">u_int32_t</a>       <a class="code" href="structufs2__dinode.html#679f34fcac6376db0f8307194a31de00">di_flags</a>;       <span class="comment">/*  88: Status flags (chflags). */</span>
<a name="l00143"></a><a class="code" href="structufs2__dinode.html#ebd41a6fb817a7a04b6cf9664c5fc1dd">00143</a>   <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>         <a class="code" href="structufs2__dinode.html#ebd41a6fb817a7a04b6cf9664c5fc1dd">di_extsize</a>;     <span class="comment">/*  92: External attributes block. */</span>
<a name="l00144"></a><a class="code" href="structufs2__dinode.html#ea6f036f1e38b4645ac4a72aaa2e7585">00144</a>   <a class="code" href="ufs_8h.html#d1d47f60518d845f7e798fa0f3458753">ufs2_daddr_t</a>    <a class="code" href="structufs2__dinode.html#ea6f036f1e38b4645ac4a72aaa2e7585">di_extb</a>[<a class="code" href="ufs_8h.html#9515cc7f95937a2fc426cefaf6577cd5">NXADDR</a>];<span class="comment">/*  96: External attributes block. */</span>
<a name="l00145"></a><a class="code" href="structufs2__dinode.html#667ab9837a0fd21d51108ca9dfd85f66">00145</a>   <a class="code" href="ufs_8h.html#d1d47f60518d845f7e798fa0f3458753">ufs2_daddr_t</a>    <a class="code" href="structufs2__dinode.html#667ab9837a0fd21d51108ca9dfd85f66">di_db</a>[<a class="code" href="ufs_8h.html#0c136d7ef3223bdd2b6e7c83c65bb508">NDADDR</a>];  <span class="comment">/* 112: Direct disk blocks. */</span>
<a name="l00146"></a><a class="code" href="structufs2__dinode.html#9eb4d981d19dd77fbde21e84fd4e2d5d">00146</a>   <a class="code" href="ufs_8h.html#d1d47f60518d845f7e798fa0f3458753">ufs2_daddr_t</a>    <a class="code" href="structufs2__dinode.html#9eb4d981d19dd77fbde21e84fd4e2d5d">di_ib</a>[<a class="code" href="ufs_8h.html#4916bc50cb5cd1deaffe2c749d1559f8">NIADDR</a>];  <span class="comment">/* 208: Indirect disk blocks. */</span>
<a name="l00147"></a><a class="code" href="structufs2__dinode.html#f548961233457327ec8ae47cba34faed">00147</a>   <a class="code" href="types_8h.html#96411d49619f50e635418ee57651b95d">int64_t</a>         <a class="code" href="structufs2__dinode.html#f548961233457327ec8ae47cba34faed">di_spare</a>[3];    <span class="comment">/* 232: Reserved; currently unused */</span>
<a name="l00148"></a>00148   };
<a name="l00149"></a>00149 
<a name="l00150"></a><a class="code" href="structufs1__dinode.html">00150</a> <span class="keyword">struct </span><a class="code" href="structufs1__dinode.html">ufs1_dinode</a> {
<a name="l00151"></a><a class="code" href="structufs1__dinode.html#1194f04404015f7da26bd1932773df6a">00151</a>   <a class="code" href="types_8h.html#f7b042408b9b104606f8a9b5035329f3">u_int16_t</a>       <a class="code" href="structufs1__dinode.html#1194f04404015f7da26bd1932773df6a">di_mode</a>;        <span class="comment">/*   0: IFMT, permissions; see below. */</span>
<a name="l00152"></a><a class="code" href="structufs1__dinode.html#588b5e9341bb7c148047efff0ee220a7">00152</a>   <a class="code" href="types_8h.html#3542c6a0490e65fc4fc407273126e64f">int16_t</a>         <a class="code" href="structufs1__dinode.html#588b5e9341bb7c148047efff0ee220a7">di_nlink</a>;       <span class="comment">/*   2: File link count. */</span>
<a name="l00153"></a>00153   <span class="keyword">union </span>{
<a name="l00154"></a><a class="code" href="structufs1__dinode.html#73e877b335388dfd98354ded9cc2e5ac">00154</a>     <a class="code" href="types_8h.html#f7b042408b9b104606f8a9b5035329f3">u_int16_t</a> <a class="code" href="structufs1__dinode.html#73e877b335388dfd98354ded9cc2e5ac">oldids</a>[2];    <span class="comment">/*   4: Ffs: old user and group ids. */</span>
<a name="l00155"></a>00155     } <a class="code" href="structufs1__dinode.html#a998fd67e30e27cbde8ec3cd82380390">di_u</a>;
<a name="l00156"></a><a class="code" href="structufs1__dinode.html#eb1915f50d8bd4ef7e10fc68a965bdc7">00156</a>   <a class="code" href="types_8h.html#250ac047bf3984b5dae755276a305d64">u_int64_t</a>       <a class="code" href="structufs1__dinode.html#eb1915f50d8bd4ef7e10fc68a965bdc7">di_size</a>;        <span class="comment">/*   8: File byte count. */</span>
<a name="l00157"></a><a class="code" href="structufs1__dinode.html#595f269b878c850fbe7970292fbf0ec2">00157</a>   <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>         <a class="code" href="structufs1__dinode.html#595f269b878c850fbe7970292fbf0ec2">di_atime</a>;       <span class="comment">/*  16: Last access time. */</span>
<a name="l00158"></a><a class="code" href="structufs1__dinode.html#deba42b56bad1b46746b76a261a28ef1">00158</a>   <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>         <a class="code" href="structufs1__dinode.html#deba42b56bad1b46746b76a261a28ef1">di_atimensec</a>;   <span class="comment">/*  20: Last access time. */</span>
<a name="l00159"></a><a class="code" href="structufs1__dinode.html#ddd8686290d360fe1ff97e47b25df5d6">00159</a>   <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>         <a class="code" href="structufs1__dinode.html#ddd8686290d360fe1ff97e47b25df5d6">di_mtime</a>;       <span class="comment">/*  24: Last modified time. */</span>
<a name="l00160"></a><a class="code" href="structufs1__dinode.html#e1a12b1b2308f6feb92b210b3fd32c37">00160</a>   <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>         <a class="code" href="structufs1__dinode.html#e1a12b1b2308f6feb92b210b3fd32c37">di_mtimensec</a>;   <span class="comment">/*  28: Last modified time. */</span>
<a name="l00161"></a><a class="code" href="structufs1__dinode.html#db27793d0c34f01326474401ddde1c43">00161</a>   <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>         <a class="code" href="structufs1__dinode.html#db27793d0c34f01326474401ddde1c43">di_ctime</a>;       <span class="comment">/*  32: Last inode change time. */</span>
<a name="l00162"></a><a class="code" href="structufs1__dinode.html#0094b1e1cac8ca65a970968ad2ad0237">00162</a>   <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>         <a class="code" href="structufs1__dinode.html#0094b1e1cac8ca65a970968ad2ad0237">di_ctimensec</a>;   <span class="comment">/*  36: Last inode change time. */</span>
<a name="l00163"></a><a class="code" href="structufs1__dinode.html#fba310e16ff4dd802733e9ea57c7ce25">00163</a>   <a class="code" href="ufs_8h.html#6c4d2453c62592d30d9c981e4ee01323">ufs1_daddr_t</a>    <a class="code" href="structufs1__dinode.html#fba310e16ff4dd802733e9ea57c7ce25">di_db</a>[<a class="code" href="ufs_8h.html#0c136d7ef3223bdd2b6e7c83c65bb508">NDADDR</a>];  <span class="comment">/*  40: Direct disk blocks. */</span>
<a name="l00164"></a><a class="code" href="structufs1__dinode.html#ea74a32cfbd55a50c23f779583bfb707">00164</a>   <a class="code" href="ufs_8h.html#6c4d2453c62592d30d9c981e4ee01323">ufs1_daddr_t</a>    <a class="code" href="structufs1__dinode.html#ea74a32cfbd55a50c23f779583bfb707">di_ib</a>[<a class="code" href="ufs_8h.html#4916bc50cb5cd1deaffe2c749d1559f8">NIADDR</a>];  <span class="comment">/*  88: Indirect disk blocks. */</span>
<a name="l00165"></a><a class="code" href="structufs1__dinode.html#de495b4b40c68ac16fa32c58befcd8c0">00165</a>   <a class="code" href="types_8h.html#ba29fd78d95cce0ecb249c24b58d07da">u_int32_t</a>       <a class="code" href="structufs1__dinode.html#de495b4b40c68ac16fa32c58befcd8c0">di_flags</a>;       <span class="comment">/* 100: Status flags (chflags). */</span>
<a name="l00166"></a><a class="code" href="structufs1__dinode.html#09bff0a0b5a439618e8893b4f5790368">00166</a>   <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>         <a class="code" href="structufs1__dinode.html#09bff0a0b5a439618e8893b4f5790368">di_blocks</a>;      <span class="comment">/* 104: Blocks actually held. */</span>
<a name="l00167"></a><a class="code" href="structufs1__dinode.html#0c83844df5375d0d7e3bf70b1fd20762">00167</a>   <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>         <a class="code" href="structufs1__dinode.html#0c83844df5375d0d7e3bf70b1fd20762">di_gen</a>;         <span class="comment">/* 108: Generation number. */</span>
<a name="l00168"></a><a class="code" href="structufs1__dinode.html#f748891980bbd2bd0d3eb22abca89688">00168</a>   <a class="code" href="types_8h.html#ba29fd78d95cce0ecb249c24b58d07da">u_int32_t</a>       <a class="code" href="structufs1__dinode.html#f748891980bbd2bd0d3eb22abca89688">di_uid</a>;         <span class="comment">/* 112: File owner. */</span>
<a name="l00169"></a><a class="code" href="structufs1__dinode.html#3bead46ad3a23368d9986df416d5c7e2">00169</a>   <a class="code" href="types_8h.html#ba29fd78d95cce0ecb249c24b58d07da">u_int32_t</a>       <a class="code" href="structufs1__dinode.html#3bead46ad3a23368d9986df416d5c7e2">di_gid</a>;         <span class="comment">/* 116: File group. */</span>
<a name="l00170"></a><a class="code" href="structufs1__dinode.html#91a277e4cb6f822b1bd692f5cd06fb97">00170</a>   <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>         <a class="code" href="structufs1__dinode.html#91a277e4cb6f822b1bd692f5cd06fb97">di_spare</a>[2];    <span class="comment">/* 120: Reserved; currently unused */</span>
<a name="l00171"></a>00171   };
<a name="l00172"></a>00172 
<a name="l00173"></a><a class="code" href="structcsum.html">00173</a> <span class="keyword">struct </span><a class="code" href="structcsum.html">csum</a> {
<a name="l00174"></a><a class="code" href="structcsum.html#910936b597b99baa5f64ddd5a15f6b70">00174</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a> <a class="code" href="structcsum.html#910936b597b99baa5f64ddd5a15f6b70">cs_ndir</a>;                <span class="comment">/* number of directories */</span>
<a name="l00175"></a><a class="code" href="structcsum.html#c77b40fc2a8d65ec266e9471fb96ed99">00175</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a> <a class="code" href="structcsum.html#c77b40fc2a8d65ec266e9471fb96ed99">cs_nbfree</a>;              <span class="comment">/* number of free blocks */</span>
<a name="l00176"></a><a class="code" href="structcsum.html#997edf4fbc43862abb72a4a7e411a51d">00176</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a> <a class="code" href="structcsum.html#997edf4fbc43862abb72a4a7e411a51d">cs_nifree</a>;              <span class="comment">/* number of free inodes */</span>
<a name="l00177"></a><a class="code" href="structcsum.html#4725bcc5b848a377eb7aeb181018405d">00177</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a> <a class="code" href="structcsum.html#4725bcc5b848a377eb7aeb181018405d">cs_nffree</a>;              <span class="comment">/* number of free frags */</span>
<a name="l00178"></a>00178 };
<a name="l00179"></a><a class="code" href="structcsum__total.html">00179</a> <span class="keyword">struct </span><a class="code" href="structcsum__total.html">csum_total</a> {
<a name="l00180"></a><a class="code" href="structcsum__total.html#ce49dca16f94651c7e9b1df65d8197d9">00180</a>         <a class="code" href="types_8h.html#96411d49619f50e635418ee57651b95d">int64_t</a> <a class="code" href="structcsum__total.html#ce49dca16f94651c7e9b1df65d8197d9">cs_ndir</a>;                <span class="comment">/* number of directories */</span>
<a name="l00181"></a><a class="code" href="structcsum__total.html#c41c6231e09b4ca0b7fd2fe16d73abee">00181</a>         <a class="code" href="types_8h.html#96411d49619f50e635418ee57651b95d">int64_t</a> <a class="code" href="structcsum__total.html#c41c6231e09b4ca0b7fd2fe16d73abee">cs_nbfree</a>;              <span class="comment">/* number of free blocks */</span>
<a name="l00182"></a><a class="code" href="structcsum__total.html#804f2ae79c647da155cbd6ea5952b3b3">00182</a>         <a class="code" href="types_8h.html#96411d49619f50e635418ee57651b95d">int64_t</a> <a class="code" href="structcsum__total.html#804f2ae79c647da155cbd6ea5952b3b3">cs_nifree</a>;              <span class="comment">/* number of free inodes */</span>
<a name="l00183"></a><a class="code" href="structcsum__total.html#6d734f6ae45524cb242fb899168cc1e6">00183</a>         <a class="code" href="types_8h.html#96411d49619f50e635418ee57651b95d">int64_t</a> <a class="code" href="structcsum__total.html#6d734f6ae45524cb242fb899168cc1e6">cs_nffree</a>;              <span class="comment">/* number of free frags */</span>
<a name="l00184"></a><a class="code" href="structcsum__total.html#89edf9903e16183ddc371bbbc7756217">00184</a>         <a class="code" href="types_8h.html#96411d49619f50e635418ee57651b95d">int64_t</a> <a class="code" href="structcsum__total.html#89edf9903e16183ddc371bbbc7756217">cs_numclusters</a>;         <span class="comment">/* number of free clusters */</span>
<a name="l00185"></a><a class="code" href="structcsum__total.html#6e76733a2d416280b344e40d33cf4e00">00185</a>         <a class="code" href="types_8h.html#96411d49619f50e635418ee57651b95d">int64_t</a> <a class="code" href="structcsum__total.html#6e76733a2d416280b344e40d33cf4e00">cs_spare</a>[3];            <span class="comment">/* future expansion */</span>
<a name="l00186"></a>00186 };
<a name="l00187"></a>00187 
<a name="l00188"></a>00188 
<a name="l00189"></a><a class="code" href="structfs.html">00189</a> <span class="keyword">struct </span><a class="code" href="structfs.html">fs</a> {
<a name="l00190"></a><a class="code" href="structfs.html#845f442a845714c10fff6d8b12c9eb9e">00190</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#845f442a845714c10fff6d8b12c9eb9e">fs_firstfield</a>;         <span class="comment">/* historic filesystem linked list, */</span>
<a name="l00191"></a><a class="code" href="structfs.html#7246de3f8042955f49127b1e656838f5">00191</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#7246de3f8042955f49127b1e656838f5">fs_unused_1</a>;           <span class="comment">/*     used for incore super blocks */</span>
<a name="l00192"></a><a class="code" href="structfs.html#b96f2622ae5d8b12c0ca31a210b3c58e">00192</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#b96f2622ae5d8b12c0ca31a210b3c58e">fs_sblkno</a>;             <span class="comment">/* offset of super-block in filesys */</span>
<a name="l00193"></a><a class="code" href="structfs.html#dedb82f28a6436a506aa3c47bdf49aa0">00193</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#dedb82f28a6436a506aa3c47bdf49aa0">fs_cblkno</a>;             <span class="comment">/* offset of cyl-block in filesys */</span>
<a name="l00194"></a><a class="code" href="structfs.html#680d9067242a7b551779146d839997f4">00194</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#680d9067242a7b551779146d839997f4">fs_iblkno</a>;             <span class="comment">/* offset of inode-blocks in filesys */</span>
<a name="l00195"></a><a class="code" href="structfs.html#fc80e8002a127f6e31ab675bc79d7466">00195</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#fc80e8002a127f6e31ab675bc79d7466">fs_dblkno</a>;             <span class="comment">/* offset of first data after cg */</span>
<a name="l00196"></a><a class="code" href="structfs.html#0e65a1457e48bf92c3ff9ed5de2d2f97">00196</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#0e65a1457e48bf92c3ff9ed5de2d2f97">fs_old_cgoffset</a>;       <span class="comment">/* cylinder group offset in cylinder */</span>
<a name="l00197"></a><a class="code" href="structfs.html#3372db524b01604405d0736d4c76ed88">00197</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#3372db524b01604405d0736d4c76ed88">fs_old_cgmask</a>;         <span class="comment">/* used to calc mod fs_ntrak */</span>
<a name="l00198"></a><a class="code" href="structfs.html#948e2a387ab0a3cfd674e93db8e9faf0">00198</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#948e2a387ab0a3cfd674e93db8e9faf0">fs_old_time</a>;           <span class="comment">/* last time written */</span>
<a name="l00199"></a><a class="code" href="structfs.html#d24dc27973a0594319921fe1aa0394d4">00199</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#d24dc27973a0594319921fe1aa0394d4">fs_old_size</a>;           <span class="comment">/* number of blocks in fs */</span>
<a name="l00200"></a><a class="code" href="structfs.html#07a13bddf97b62b08ec62f12f788be8a">00200</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#07a13bddf97b62b08ec62f12f788be8a">fs_old_dsize</a>;          <span class="comment">/* number of data blocks in fs */</span>
<a name="l00201"></a><a class="code" href="structfs.html#06f4cbb13f8a47c87f53f5b3a7d86340">00201</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#06f4cbb13f8a47c87f53f5b3a7d86340">fs_ncg</a>;                <span class="comment">/* number of cylinder groups */</span>
<a name="l00202"></a><a class="code" href="structfs.html#beaa37858276e7d7d7f8f4260bc53f6d">00202</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#beaa37858276e7d7d7f8f4260bc53f6d">fs_bsize</a>;              <span class="comment">/* size of basic blocks in fs */</span>
<a name="l00203"></a><a class="code" href="structfs.html#c2a347c2b6170615954aee791991f94d">00203</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#c2a347c2b6170615954aee791991f94d">fs_fsize</a>;              <span class="comment">/* size of frag blocks in fs */</span>
<a name="l00204"></a><a class="code" href="structfs.html#13aa148271139d206d6b778ac9b3ed09">00204</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#13aa148271139d206d6b778ac9b3ed09">fs_frag</a>;               <span class="comment">/* number of frags in a block in fs */</span>
<a name="l00205"></a>00205 <span class="comment">/* these are configuration parameters */</span>
<a name="l00206"></a><a class="code" href="structfs.html#3b39e3f97e0438ecbb1a953dec03a5c1">00206</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#3b39e3f97e0438ecbb1a953dec03a5c1">fs_minfree</a>;            <span class="comment">/* minimum percentage of free blocks */</span>
<a name="l00207"></a><a class="code" href="structfs.html#31507b3bebe2528e83e9eecadea5fca0">00207</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#31507b3bebe2528e83e9eecadea5fca0">fs_old_rotdelay</a>;       <span class="comment">/* num of ms for optimal next block */</span>
<a name="l00208"></a><a class="code" href="structfs.html#f615de722bf977da3bf0b21e99099358">00208</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#f615de722bf977da3bf0b21e99099358">fs_old_rps</a>;            <span class="comment">/* disk revolutions per second */</span>
<a name="l00209"></a>00209 <span class="comment">/* these fields can be computed from the others */</span>
<a name="l00210"></a><a class="code" href="structfs.html#9a6df636b99f001bb0fe96c2c567c3db">00210</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#9a6df636b99f001bb0fe96c2c567c3db">fs_bmask</a>;              <span class="comment">/* ``blkoff'' calc of blk offsets */</span>
<a name="l00211"></a><a class="code" href="structfs.html#f447cdadaacd96c24c81f7e34c0059f5">00211</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#f447cdadaacd96c24c81f7e34c0059f5">fs_fmask</a>;              <span class="comment">/* ``fragoff'' calc of frag offsets */</span>
<a name="l00212"></a><a class="code" href="structfs.html#664686425d41a31c188000518c356682">00212</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#664686425d41a31c188000518c356682">fs_bshift</a>;             <span class="comment">/* ``lblkno'' calc of logical blkno */</span>
<a name="l00213"></a><a class="code" href="structfs.html#c62c66d38fde6372b81e3cf8ef8ec6f2">00213</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#c62c66d38fde6372b81e3cf8ef8ec6f2">fs_fshift</a>;             <span class="comment">/* ``numfrags'' calc number of frags */</span>
<a name="l00214"></a>00214 <span class="comment">/* these are configuration parameters */</span>
<a name="l00215"></a><a class="code" href="structfs.html#78bdd388e46c8136e6f9e5b6b7a3f600">00215</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#78bdd388e46c8136e6f9e5b6b7a3f600">fs_maxcontig</a>;          <span class="comment">/* max number of contiguous blks */</span>
<a name="l00216"></a><a class="code" href="structfs.html#1236b6b674047859269b8df46a745aba">00216</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#1236b6b674047859269b8df46a745aba">fs_maxbpg</a>;             <span class="comment">/* max number of blks per cyl group */</span>
<a name="l00217"></a>00217 <span class="comment">/* these fields can be computed from the others */</span>
<a name="l00218"></a><a class="code" href="structfs.html#27f2b7e09b8716cf08237aba7529fbf7">00218</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#27f2b7e09b8716cf08237aba7529fbf7">fs_fragshift</a>;          <span class="comment">/* block to frag shift */</span>
<a name="l00219"></a><a class="code" href="structfs.html#420213fcd930d17a087a39fa48eab6bb">00219</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#420213fcd930d17a087a39fa48eab6bb">fs_fsbtodb</a>;            <span class="comment">/* fsbtodb and dbtofsb shift constant */</span>
<a name="l00220"></a><a class="code" href="structfs.html#60ddc7f4adc14ba5f09977808f93b124">00220</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#60ddc7f4adc14ba5f09977808f93b124">fs_sbsize</a>;             <span class="comment">/* actual size of super block */</span>
<a name="l00221"></a><a class="code" href="structfs.html#b3bce140bf4c56bf44bb2d19eed05a03">00221</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#b3bce140bf4c56bf44bb2d19eed05a03">fs_spare1</a>[2];          <span class="comment">/* old fs_csmask */</span>
<a name="l00222"></a>00222                                         <span class="comment">/* old fs_csshift */</span>
<a name="l00223"></a><a class="code" href="structfs.html#2d119c1181a7e3acad4d7705a589d20b">00223</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#2d119c1181a7e3acad4d7705a589d20b">fs_nindir</a>;             <span class="comment">/* value of NINDIR */</span>
<a name="l00224"></a><a class="code" href="structfs.html#09f5993f6a06c3a6543978b91da11826">00224</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#09f5993f6a06c3a6543978b91da11826">fs_inopb</a>;              <span class="comment">/* value of INOPB */</span>
<a name="l00225"></a><a class="code" href="structfs.html#7262744877dac1c79e119fab7ee3d67d">00225</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#7262744877dac1c79e119fab7ee3d67d">fs_old_nspf</a>;           <span class="comment">/* value of NSPF */</span>
<a name="l00226"></a>00226 <span class="comment">/* yet another configuration parameter */</span>
<a name="l00227"></a><a class="code" href="structfs.html#d2741b461acb83e521e8f094586e1f04">00227</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#d2741b461acb83e521e8f094586e1f04">fs_optim</a>;              <span class="comment">/* optimization preference, see below */</span>
<a name="l00228"></a><a class="code" href="structfs.html#aefee9a806967afe881a50fcbe391ff5">00228</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#aefee9a806967afe881a50fcbe391ff5">fs_old_npsect</a>;         <span class="comment">/* # sectors/track including spares */</span>
<a name="l00229"></a><a class="code" href="structfs.html#ffe7e7f7fcff6fab9079d83220e3e1cc">00229</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#ffe7e7f7fcff6fab9079d83220e3e1cc">fs_old_interleave</a>;     <span class="comment">/* hardware sector interleave */</span>
<a name="l00230"></a><a class="code" href="structfs.html#b013e02a3dd43b54edb8d17a6303987e">00230</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#b013e02a3dd43b54edb8d17a6303987e">fs_old_trackskew</a>;      <span class="comment">/* sector 0 skew, per track */</span>
<a name="l00231"></a><a class="code" href="structfs.html#b656ef66b4edf79aaf8def4739d65aa2">00231</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#b656ef66b4edf79aaf8def4739d65aa2">fs_id</a>[2];              <span class="comment">/* unique filesystem id */</span>
<a name="l00232"></a>00232 <span class="comment">/* sizes determined by number of cylinder groups and their sizes */</span>
<a name="l00233"></a><a class="code" href="structfs.html#1e5f3cc79f0589b713e56ae3f7892287">00233</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#1e5f3cc79f0589b713e56ae3f7892287">fs_old_csaddr</a>;         <span class="comment">/* blk addr of cyl grp summary area */</span>
<a name="l00234"></a><a class="code" href="structfs.html#8eba877a723ca9b8f9c762a1d65878e9">00234</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#8eba877a723ca9b8f9c762a1d65878e9">fs_cssize</a>;             <span class="comment">/* size of cyl grp summary area */</span>
<a name="l00235"></a><a class="code" href="structfs.html#1a500c66d35a8ae7875ae00c2a953eea">00235</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#1a500c66d35a8ae7875ae00c2a953eea">fs_cgsize</a>;             <span class="comment">/* cylinder group size */</span>
<a name="l00236"></a><a class="code" href="structfs.html#7cebf2cb358cde121c29269dbc20a1f3">00236</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#7cebf2cb358cde121c29269dbc20a1f3">fs_spare2</a>;             <span class="comment">/* old fs_ntrak */</span>
<a name="l00237"></a><a class="code" href="structfs.html#89b502e2bf515440bc150e8e4ebb12c9">00237</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#89b502e2bf515440bc150e8e4ebb12c9">fs_old_nsect</a>;          <span class="comment">/* sectors per track */</span>
<a name="l00238"></a><a class="code" href="structfs.html#ffb1c061e74f60407af46700f5394a0c">00238</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#ffb1c061e74f60407af46700f5394a0c">fs_old_spc</a>;            <span class="comment">/* sectors per cylinder */</span>
<a name="l00239"></a><a class="code" href="structfs.html#3b4d10d43d4175b9444ed73ddcf18140">00239</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#3b4d10d43d4175b9444ed73ddcf18140">fs_old_ncyl</a>;           <span class="comment">/* cylinders in filesystem */</span>
<a name="l00240"></a><a class="code" href="structfs.html#3059d11894848b96ae73618740f0dac6">00240</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#3059d11894848b96ae73618740f0dac6">fs_old_cpg</a>;            <span class="comment">/* cylinders per group */</span>
<a name="l00241"></a><a class="code" href="structfs.html#b9ac53ea2f7e8f218b48ce3d68245e12">00241</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#b9ac53ea2f7e8f218b48ce3d68245e12">fs_ipg</a>;                <span class="comment">/* inodes per group */</span>
<a name="l00242"></a><a class="code" href="structfs.html#8231c53c394bf5c523584dbe87295b03">00242</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#8231c53c394bf5c523584dbe87295b03">fs_fpg</a>;                <span class="comment">/* blocks per group * fs_frag */</span>
<a name="l00243"></a>00243 <span class="comment">/* this data must be re-computed after crashes */</span>
<a name="l00244"></a><a class="code" href="structfs.html#987656a71ddd126654688a50477b4757">00244</a>         <span class="keyword">struct  </span><a class="code" href="structcsum.html">csum</a> <a class="code" href="structfs.html#987656a71ddd126654688a50477b4757">fs_old_cstotal</a>;    <span class="comment">/* cylinder summary information */</span>
<a name="l00245"></a>00245 <span class="comment">/* these fields are cleared at mount time */</span>
<a name="l00246"></a><a class="code" href="structfs.html#685528bae5950f6dc8d7868ce1df2268">00246</a>         <a class="code" href="types_8h.html#06ffba8acf5d133104191f183e67ac8c">int8_t</a>   <a class="code" href="structfs.html#685528bae5950f6dc8d7868ce1df2268">fs_fmod</a>;               <span class="comment">/* super block modified flag */</span>
<a name="l00247"></a><a class="code" href="structfs.html#d70b3b14f20ee12639f774ce0a6817b0">00247</a>         <a class="code" href="types_8h.html#06ffba8acf5d133104191f183e67ac8c">int8_t</a>   <a class="code" href="structfs.html#d70b3b14f20ee12639f774ce0a6817b0">fs_clean</a>;              <span class="comment">/* filesystem is clean flag */</span>
<a name="l00248"></a><a class="code" href="structfs.html#c4a00ffe190e24cf27323062dd3c4b04">00248</a>         <a class="code" href="types_8h.html#06ffba8acf5d133104191f183e67ac8c">int8_t</a>   <a class="code" href="structfs.html#c4a00ffe190e24cf27323062dd3c4b04">fs_ronly</a>;              <span class="comment">/* mounted read-only flag */</span>
<a name="l00249"></a><a class="code" href="structfs.html#2eb4e28e41443e46d48f4b2d401fa61f">00249</a>         <a class="code" href="types_8h.html#06ffba8acf5d133104191f183e67ac8c">int8_t</a>   <a class="code" href="structfs.html#2eb4e28e41443e46d48f4b2d401fa61f">fs_old_flags</a>;          <span class="comment">/* old FS_ flags */</span>
<a name="l00250"></a><a class="code" href="structfs.html#286576f62e4a544a73a65c880189b838">00250</a>         <a class="code" href="types_8h.html#e2b02ed168fc99cff3851603910b1fb6">u_char</a>   <a class="code" href="structfs.html#286576f62e4a544a73a65c880189b838">fs_fsmnt</a>[<a class="code" href="ufs_8h.html#0beb14d415a358b818cec76550e4fad1">MAXMNTLEN</a>];   <span class="comment">/* name mounted on */</span>
<a name="l00251"></a><a class="code" href="structfs.html#9e02d1702d25282ad5ea637095372466">00251</a>         <a class="code" href="types_8h.html#e2b02ed168fc99cff3851603910b1fb6">u_char</a>   <a class="code" href="structfs.html#9e02d1702d25282ad5ea637095372466">fs_volname</a>[<a class="code" href="ufs_8h.html#c5859c27029a47d17c1279cc197f05c3">MAXVOLLEN</a>]; <span class="comment">/* volume name */</span>
<a name="l00252"></a><a class="code" href="structfs.html#582e900902af7c6ba9a7a837c61ce8b9">00252</a>         <a class="code" href="types_8h.html#250ac047bf3984b5dae755276a305d64">u_int64_t</a> <a class="code" href="structfs.html#582e900902af7c6ba9a7a837c61ce8b9">fs_swuid</a>;             <span class="comment">/* system-wide uid */</span>
<a name="l00253"></a><a class="code" href="structfs.html#2cb27fb4a6379e89a430db9f9d51eda5">00253</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#2cb27fb4a6379e89a430db9f9d51eda5">fs_pad</a>;                <span class="comment">/* due to alignment of fs_swuid */</span>
<a name="l00254"></a>00254 <span class="comment">/* these fields retain the current block allocation info */</span>
<a name="l00255"></a><a class="code" href="structfs.html#30411c307e72e31cec612a97b004453e">00255</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#30411c307e72e31cec612a97b004453e">fs_cgrotor</a>;            <span class="comment">/* last cg searched */</span>
<a name="l00256"></a><a class="code" href="structfs.html#a917d7ad714b69f2bd80b5bde291828c">00256</a>         <span class="keywordtype">void</span>    *<a class="code" href="structfs.html#a917d7ad714b69f2bd80b5bde291828c">fs_ocsp</a>[<a class="code" href="ufs_8h.html#ca816b354128719c1523e33152a13637">NOCSPTRS</a>];     <span class="comment">/* padding; was list of fs_cs buffers */</span>
<a name="l00257"></a><a class="code" href="structfs.html#d7440c4ded770a821535ad723d30f74a">00257</a>         <a class="code" href="types_8h.html#c7c42f52639b9aca7da966a0783996d7">u_int8_t</a> *<a class="code" href="structfs.html#d7440c4ded770a821535ad723d30f74a">fs_contigdirs</a>;        <span class="comment">/* (u) # of contig. allocated dirs */</span>
<a name="l00258"></a><a class="code" href="structfs.html#ec267ea11a6dd319fb4b484d555c1ed8">00258</a>         <span class="keyword">struct  </span><a class="code" href="structcsum.html">csum</a> *<a class="code" href="structfs.html#ec267ea11a6dd319fb4b484d555c1ed8">fs_csp</a>;           <span class="comment">/* (u) cg summary info buffer */</span>
<a name="l00259"></a><a class="code" href="structfs.html#50ffe84a85ce08275f6ca6f585cfe3c8">00259</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a> *<a class="code" href="structfs.html#50ffe84a85ce08275f6ca6f585cfe3c8">fs_maxcluster</a>;         <span class="comment">/* (u) max cluster in each cyl group */</span>
<a name="l00260"></a><a class="code" href="structfs.html#c1520bcda580bd3694fa7be346622285">00260</a>         <a class="code" href="types_8h.html#c319c165d52643e43249fe003e18bdf3">u_int</a>   *<a class="code" href="structfs.html#c1520bcda580bd3694fa7be346622285">fs_active</a>;             <span class="comment">/* (u) used by snapshots to track fs */</span>
<a name="l00261"></a><a class="code" href="structfs.html#da2826b8126cd04502a8d106d97f2feb">00261</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#da2826b8126cd04502a8d106d97f2feb">fs_old_cpc</a>;            <span class="comment">/* cyl per cycle in postbl */</span>
<a name="l00262"></a><a class="code" href="structfs.html#133f70897ddd802936d9f15f9c4f7b1d">00262</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#133f70897ddd802936d9f15f9c4f7b1d">fs_maxbsize</a>;           <span class="comment">/* maximum blocking factor permitted */</span>
<a name="l00263"></a><a class="code" href="structfs.html#aafbb9b21699c2a5f5ec95503454212c">00263</a>         <a class="code" href="types_8h.html#96411d49619f50e635418ee57651b95d">int64_t</a>  <a class="code" href="structfs.html#aafbb9b21699c2a5f5ec95503454212c">fs_sparecon64</a>[17];     <span class="comment">/* old rotation block list head */</span>
<a name="l00264"></a><a class="code" href="structfs.html#7f7bd1346fb9aa31b3509e7736b9c3c5">00264</a>         <a class="code" href="types_8h.html#96411d49619f50e635418ee57651b95d">int64_t</a>  <a class="code" href="structfs.html#7f7bd1346fb9aa31b3509e7736b9c3c5">fs_sblockloc</a>;          <span class="comment">/* byte offset of standard superblock */</span>
<a name="l00265"></a><a class="code" href="structfs.html#85a5dbf3800d9a52f02efc0367cf87f2">00265</a>         <span class="keyword">struct  </span><a class="code" href="structcsum__total.html">csum_total</a> <a class="code" href="structfs.html#85a5dbf3800d9a52f02efc0367cf87f2">fs_cstotal</a>;  <span class="comment">/* (u) cylinder summary information */</span>
<a name="l00266"></a><a class="code" href="structfs.html#05c9a84e408e2f7898dd0a83f7859112">00266</a>         <a class="code" href="ufs_8h.html#ec5bc03f68bf810247d604821ad95bb7">ufs_time_t</a> <a class="code" href="structfs.html#05c9a84e408e2f7898dd0a83f7859112">fs_time</a>;             <span class="comment">/* last time written */</span>
<a name="l00267"></a><a class="code" href="structfs.html#4f95748c8c7cc9e3e9ed007405b99761">00267</a>         <a class="code" href="types_8h.html#96411d49619f50e635418ee57651b95d">int64_t</a>  <a class="code" href="structfs.html#4f95748c8c7cc9e3e9ed007405b99761">fs_size</a>;               <span class="comment">/* number of blocks in fs */</span>
<a name="l00268"></a><a class="code" href="structfs.html#a8e6378d3a6150f5a1dc264cf2e306e6">00268</a>         <a class="code" href="types_8h.html#96411d49619f50e635418ee57651b95d">int64_t</a>  <a class="code" href="structfs.html#a8e6378d3a6150f5a1dc264cf2e306e6">fs_dsize</a>;              <span class="comment">/* number of data blocks in fs */</span>
<a name="l00269"></a><a class="code" href="structfs.html#d43582016bfc00268dbd3de5bdf63c56">00269</a>         <a class="code" href="ufs_8h.html#d1d47f60518d845f7e798fa0f3458753">ufs2_daddr_t</a> <a class="code" href="structfs.html#d43582016bfc00268dbd3de5bdf63c56">fs_csaddr</a>;         <span class="comment">/* blk addr of cyl grp summary area */</span>
<a name="l00270"></a><a class="code" href="structfs.html#716babdd931f0aae037a388a76fb0f5e">00270</a>         <a class="code" href="types_8h.html#96411d49619f50e635418ee57651b95d">int64_t</a>  <a class="code" href="structfs.html#716babdd931f0aae037a388a76fb0f5e">fs_pendingblocks</a>;      <span class="comment">/* (u) blocks being freed */</span>
<a name="l00271"></a><a class="code" href="structfs.html#2edcaaaf740c2737b958c8f0de0bafde">00271</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#2edcaaaf740c2737b958c8f0de0bafde">fs_pendinginodes</a>;      <span class="comment">/* (u) inodes being freed */</span>
<a name="l00272"></a><a class="code" href="structfs.html#c6261d52facc413146d79821e88c2df4">00272</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#c6261d52facc413146d79821e88c2df4">fs_snapinum</a>[<a class="code" href="ufs_8h.html#04c33da6605e73954cf2ff32c3f0f15a">FSMAXSNAP</a>];<span class="comment">/* list of snapshot inode numbers */</span>
<a name="l00273"></a><a class="code" href="structfs.html#3d750fecfb70d46d78e3964c0fc62db0">00273</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#3d750fecfb70d46d78e3964c0fc62db0">fs_avgfilesize</a>;        <span class="comment">/* expected average file size */</span>
<a name="l00274"></a><a class="code" href="structfs.html#4e27ad3d243d1868c517c7f50db36c68">00274</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#4e27ad3d243d1868c517c7f50db36c68">fs_avgfpdir</a>;           <span class="comment">/* expected # of files per directory */</span>
<a name="l00275"></a><a class="code" href="structfs.html#296f6ea58ab5171bb0cebf8d9e9759b9">00275</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#296f6ea58ab5171bb0cebf8d9e9759b9">fs_save_cgsize</a>;        <span class="comment">/* save real cg size to use fs_bsize */</span>
<a name="l00276"></a><a class="code" href="structfs.html#eaac93a705f4c2c2f2b194cc8772cc80">00276</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#eaac93a705f4c2c2f2b194cc8772cc80">fs_sparecon32</a>[26];     <span class="comment">/* reserved for future constants */</span>
<a name="l00277"></a><a class="code" href="structfs.html#3036cb913215b8925934f2d87792e75b">00277</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#3036cb913215b8925934f2d87792e75b">fs_flags</a>;              <span class="comment">/* see FS_ flags below */</span>
<a name="l00278"></a><a class="code" href="structfs.html#cdd52fe6ac532b73eb877c57b286dd93">00278</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#cdd52fe6ac532b73eb877c57b286dd93">fs_contigsumsize</a>;      <span class="comment">/* size of cluster summary array */</span>
<a name="l00279"></a><a class="code" href="structfs.html#bc0a279ec4d6a3f7a70e7078c9def3d3">00279</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#bc0a279ec4d6a3f7a70e7078c9def3d3">fs_maxsymlinklen</a>;      <span class="comment">/* max length of an internal symlink */</span>
<a name="l00280"></a><a class="code" href="structfs.html#8fd0d606db522d961af347195bb59909">00280</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#8fd0d606db522d961af347195bb59909">fs_old_inodefmt</a>;       <span class="comment">/* format of on-disk inodes */</span>
<a name="l00281"></a><a class="code" href="structfs.html#80705fcf0b5478639af84da1d4c24e72">00281</a>         <a class="code" href="types_8h.html#250ac047bf3984b5dae755276a305d64">u_int64_t</a> <a class="code" href="structfs.html#80705fcf0b5478639af84da1d4c24e72">fs_maxfilesize</a>;       <span class="comment">/* maximum representable file size */</span>
<a name="l00282"></a><a class="code" href="structfs.html#a771c09702d1e51ee526fb822e7230a5">00282</a>         <a class="code" href="types_8h.html#96411d49619f50e635418ee57651b95d">int64_t</a>  <a class="code" href="structfs.html#a771c09702d1e51ee526fb822e7230a5">fs_qbmask</a>;             <span class="comment">/* ~fs_bmask for use with 64-bit size */</span>
<a name="l00283"></a><a class="code" href="structfs.html#b48686a078d1a8410ec36696f0afeb05">00283</a>         <a class="code" href="types_8h.html#96411d49619f50e635418ee57651b95d">int64_t</a>  <a class="code" href="structfs.html#b48686a078d1a8410ec36696f0afeb05">fs_qfmask</a>;             <span class="comment">/* ~fs_fmask for use with 64-bit size */</span>
<a name="l00284"></a><a class="code" href="structfs.html#6c2e8cf33c773a90113fcc7fe9a75c51">00284</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#6c2e8cf33c773a90113fcc7fe9a75c51">fs_state</a>;              <span class="comment">/* validate fs_clean field */</span>
<a name="l00285"></a><a class="code" href="structfs.html#ff096e7b1228e1914b01a8b66e74b1b1">00285</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#ff096e7b1228e1914b01a8b66e74b1b1">fs_old_postblformat</a>;   <span class="comment">/* format of positional layout tables */</span>
<a name="l00286"></a><a class="code" href="structfs.html#ef6eb7c95acad0463084fc855e91c73d">00286</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#ef6eb7c95acad0463084fc855e91c73d">fs_old_nrpos</a>;          <span class="comment">/* number of rotational positions */</span>
<a name="l00287"></a><a class="code" href="structfs.html#a0a18ada28e13800a631dce1e2c4c54a">00287</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#a0a18ada28e13800a631dce1e2c4c54a">fs_spare5</a>[2];          <span class="comment">/* old fs_postbloff */</span>
<a name="l00288"></a>00288                                         <span class="comment">/* old fs_rotbloff */</span>
<a name="l00289"></a><a class="code" href="structfs.html#acc2f0aa6f3902f165c563ce5ba76373">00289</a>         <a class="code" href="types_8h.html#6f6221103820f185abcc62b874665a93">int32_t</a>  <a class="code" href="structfs.html#acc2f0aa6f3902f165c563ce5ba76373">fs_magic</a>;              <span class="comment">/* magic number */</span>
<a name="l00290"></a>00290 };
<a name="l00291"></a>00291 
<a name="l00292"></a>00292 
<a name="l00293"></a>00293 <span class="keywordtype">int</span> <a class="code" href="ufs_8h.html#349e4b7ceea770cd630e0297b693d59e">ufs_init</a>();
<a name="l00294"></a>00294 <span class="keywordtype">int</span> <a class="code" href="ufs_8h.html#b72f6c6236410bf9a029e7bc810eb609">ufs_initialize</a>();
<a name="l00295"></a>00295 
<a name="l00296"></a>00296 <span class="preprocessor">#endif</span>
<a name="l00297"></a>00297 <span class="preprocessor"></span>
<a name="l00298"></a>00298 <span class="comment">/***</span>
<a name="l00299"></a>00299 <span class="comment"> END</span>
<a name="l00300"></a>00300 <span class="comment"> ***/</span>
<a name="l00301"></a>00301 
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 15 11:18:55 2006 for UbixOS V2 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>