<!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/ubixfs/ubixfs.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 Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="classes.html"><span>Data 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> <u>S</u>earch for </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 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> » <a class="el" href="dir_832905b1f7f5feaf61a306b40c0ac817.html">sys</a> » <a class="el" href="dir_caf4200c438ae9601464168e21e8e4d8.html">include</a> » <a class="el" href="dir_0da430bc12a622a01803598a1e7c0e05.html">ubixfs</a></div> <h1>ubixfs.h</h1><a href="include_2ubixfs_2ubixfs_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: include_2ubixfs_2ubixfs_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 _UBIXFS_H</span> <a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#define _UBIXFS_H</span> <a name="l00032"></a>00032 <span class="preprocessor"></span> <a name="l00033"></a>00033 <span class="preprocessor">#include <<a class="code" href="include_2ubixos_2types_8h.html">ubixos/types.h</a>></span> <a name="l00034"></a>00034 <span class="preprocessor">#include <<a class="code" href="include_2vfs_2vfs_8h.html">vfs/vfs.h</a>></span> <a name="l00035"></a>00035 <span class="preprocessor">#include <<a class="code" href="include_2sys_2device_8h.html">sys/device.h</a>></span> <a name="l00036"></a>00036 <span class="preprocessor">#include <<a class="code" href="mpi_8h.html">mpi/mpi.h</a>></span> <a name="l00037"></a>00037 <span class="preprocessor">#include <<a class="code" href="dirCache_8h.html">ubixfs/dirCache.h</a>></span> <a name="l00038"></a>00038 <a name="l00039"></a>00039 <a name="l00040"></a><a class="code" href="include_2ubixfs_2ubixfs_8h.html#dab92bc23023fba8f349eb34bf5acf46">00040</a> <span class="preprocessor">#define UBIXFS_BLOCKSIZE_BYTES blockSize*512</span> <a name="l00041"></a><a class="code" href="include_2ubixfs_2ubixfs_8h.html#bd7a711afb8ae672c3e08a9308d06c5b">00041</a> <span class="preprocessor"></span><span class="preprocessor">#define UBIXFS_ALIGN(size) (size + ((((size) % (UBIXFS_BLOCKSIZE_BYTES)) == 0)? 0 : ((UBIXFS_BLOCKSIZE_BYTES) - ((size) % (UBIXFS_BLOCKSIZE_BYTES)))))</span> <a name="l00042"></a>00042 <span class="preprocessor"></span> <a name="l00043"></a><a class="code" href="include_2ubixfs_2ubixfs_8h.html#1b1ab97d6d5dfbfb20f0f80d7c625941">00043</a> <span class="preprocessor">#define UBIXDISKMAGIC ((uInt32)0x45) </span><span class="comment">/* The disk magic number */</span> <a name="l00044"></a><a class="code" href="include_2ubixfs_2ubixfs_8h.html#e5bdc5213c0fa1f31c2ff20c158e7c97">00044</a> <span class="preprocessor">#define MAXUBIXPARTITIONS 16</span> <a name="l00045"></a><a class="code" href="include_2ubixfs_2ubixfs_8h.html#d4eebb29e7c75230c032b1e6f71e061d">00045</a> <span class="preprocessor"></span><span class="preprocessor">#define blockSize 8</span> <a name="l00046"></a>00046 <span class="preprocessor"></span> <a name="l00047"></a>00047 <a name="l00048"></a><a class="code" href="include_2ubixfs_2ubixfs_8h.html#9c66702437ce6449d7886b4dbaad3c02">00048</a> <span class="preprocessor">#define EOBC -1</span> <a name="l00049"></a>00049 <span class="preprocessor"></span> <a name="l00050"></a>00050 <a name="l00051"></a><a class="code" href="include_2ubixfs_2ubixfs_8h.html#e1596b995fc42be2fe1cfbe0ee9b8d61">00051</a> <span class="preprocessor">#define typeFile 1</span> <a name="l00052"></a><a class="code" href="include_2ubixfs_2ubixfs_8h.html#beed60f8493a7dd3bfdfc2e41c1d700c">00052</a> <span class="preprocessor"></span><span class="preprocessor">#define typeContainer 2</span> <a name="l00053"></a><a class="code" href="include_2ubixfs_2ubixfs_8h.html#c3414f1c06fc8a9d01787cde437ec5b9">00053</a> <span class="preprocessor"></span><span class="preprocessor">#define typeDirectory 4</span> <a name="l00054"></a><a class="code" href="include_2ubixfs_2ubixfs_8h.html#b0df352296e0f22896675aba0aa11b6e">00054</a> <span class="preprocessor"></span><span class="preprocessor">#define typeDeleted 8</span> <a name="l00055"></a>00055 <span class="preprocessor"></span> <a name="l00056"></a>00056 <span class="comment">/* Start */</span> <a name="l00057"></a><a class="code" href="structdirectoryList.html">00057</a> <span class="keyword">struct </span><a class="code" href="structdirectoryList.html">directoryList</a> { <a name="l00058"></a><a class="code" href="structdirectoryList.html#15d4445988606706d7d28c6b5957b03f">00058</a> <span class="keywordtype">char</span> <a class="code" href="structdirectoryList.html#15d4445988606706d7d28c6b5957b03f">dirName</a>[256]; <a name="l00059"></a><a class="code" href="structdirectoryList.html#3dcc1ef7098c5f3718dd1f61b485a43a">00059</a> <span class="keywordtype">char</span> *<a class="code" href="structdirectoryList.html#3dcc1ef7098c5f3718dd1f61b485a43a">dirCache</a>; <a name="l00060"></a><a class="code" href="structdirectoryList.html#314f7553c3282d3247b35909e18b4bb3">00060</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structdirectoryList.html#314f7553c3282d3247b35909e18b4bb3">dirBlock</a>; <a name="l00061"></a><a class="code" href="structdirectoryList.html#2b552b5117f837b6165f1c5355d65ae8">00061</a> <span class="keyword">struct </span><a class="code" href="structdirectoryList.html">directoryList</a> *<a class="code" href="structdirectoryList.html#2b552b5117f837b6165f1c5355d65ae8">next</a>; <a name="l00062"></a><a class="code" href="structdirectoryList.html#752b12564cb98504c28f81adda2c3620">00062</a> <span class="keyword">struct </span><a class="code" href="structdirectoryList.html">directoryList</a> *<a class="code" href="structdirectoryList.html#752b12564cb98504c28f81adda2c3620">prev</a>; <a name="l00063"></a>00063 }; <a name="l00064"></a>00064 <a name="l00065"></a><a class="code" href="include_2ubixfs_2ubixfs_8h.html#d04230b24061b77cd5971ef2ce2b2b1d">00065</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structdirectoryList.html">directoryList</a> * <a class="code" href="structdirectoryList.html">dirList_t</a>; <a name="l00066"></a>00066 <a name="l00067"></a>00067 <a class="code" href="include_2ubixfs_2ubixfs_8h.html#d04230b24061b77cd5971ef2ce2b2b1d">dirList_t</a> <a class="code" href="include_2ubixfs_2ubixfs_8h.html#3f7a88e7f709a200096c93c0deb13ec2">ubixFSLoadDir</a>(<span class="keywordtype">char</span> *); <a name="l00068"></a>00068 <span class="comment">/* End */</span> <a name="l00069"></a>00069 <a name="l00070"></a>00070 <span class="comment">//Partition Information</span> <a name="l00071"></a><a class="code" href="structubixDiskLabel.html">00071</a> <span class="keyword">struct </span><a class="code" href="structubixDiskLabel.html">ubixDiskLabel</a> { <a name="l00072"></a><a class="code" href="structubixDiskLabel.html#2eea14a0546c7de19d53b3784e623463">00072</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structubixDiskLabel.html#2eea14a0546c7de19d53b3784e623463">magicNum</a>; <a name="l00073"></a><a class="code" href="structubixDiskLabel.html#95fd8a0ea36a8b3de597b92c8ebe0dce">00073</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structubixDiskLabel.html#95fd8a0ea36a8b3de597b92c8ebe0dce">magicNum2</a>; <a name="l00074"></a><a class="code" href="structubixDiskLabel.html#4cec34076d7ba1fad99374ee56ef0edc">00074</a> <a class="code" href="include_2ubixos_2types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a> <a class="code" href="structubixDiskLabel.html#4cec34076d7ba1fad99374ee56ef0edc">driveType</a>; <a name="l00075"></a><a class="code" href="structubixDiskLabel.html#d29421729264aaa7082d9bd00f7c2c85">00075</a> <a class="code" href="include_2ubixos_2types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a> <a class="code" href="structubixDiskLabel.html#d29421729264aaa7082d9bd00f7c2c85">numPartitions</a>; <a name="l00076"></a><a class="code" href="structubixDiskLabel_1_1ubixPartitions.html">00076</a> <span class="keyword">struct </span><a class="code" href="structubixDiskLabel_1_1ubixPartitions.html">ubixPartitions</a> { <span class="comment">//the partition table</span> <a name="l00077"></a><a class="code" href="structubixDiskLabel_1_1ubixPartitions.html#6bad338fb9fa2f078c2e5d29024face4">00077</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structubixDiskLabel_1_1ubixPartitions.html#6bad338fb9fa2f078c2e5d29024face4">pSize</a>; <span class="comment">//number of sectors in partition</span> <a name="l00078"></a><a class="code" href="structubixDiskLabel_1_1ubixPartitions.html#a4f5df0b0d915aae3fe2f53449395065">00078</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structubixDiskLabel_1_1ubixPartitions.html#a4f5df0b0d915aae3fe2f53449395065">pOffset</a>; <span class="comment">//starting sector</span> <a name="l00079"></a><a class="code" href="structubixDiskLabel_1_1ubixPartitions.html#3caf99d21233870afbcfe3062e249c8d">00079</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structubixDiskLabel_1_1ubixPartitions.html#3caf99d21233870afbcfe3062e249c8d">pFsSize</a>; <span class="comment">//filesystem basic fragment size</span> <a name="l00080"></a><a class="code" href="structubixDiskLabel_1_1ubixPartitions.html#6a02392928bd127ff780dd656dc88203">00080</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structubixDiskLabel_1_1ubixPartitions.html#6a02392928bd127ff780dd656dc88203">pBatSize</a>; <span class="comment">//BAT size</span> <a name="l00081"></a><a class="code" href="structubixDiskLabel_1_1ubixPartitions.html#89ee9b3f4b6564feda17f3b6b9297135">00081</a> <a class="code" href="include_2ubixos_2types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> <a class="code" href="structubixDiskLabel_1_1ubixPartitions.html#89ee9b3f4b6564feda17f3b6b9297135">pFsType</a>; <span class="comment">//filesystem type, see below</span> <a name="l00082"></a><a class="code" href="structubixDiskLabel_1_1ubixPartitions.html#075ed7afefb5a3523a090971e3d3c3d9">00082</a> <a class="code" href="include_2ubixos_2types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> <a class="code" href="structubixDiskLabel_1_1ubixPartitions.html#075ed7afefb5a3523a090971e3d3c3d9">pFrag</a>; <span class="comment">//filesystem fragments per block</span> <a name="l00083"></a>00083 } <a class="code" href="structubixDiskLabel.html#ff8b4b31a8831b4cbc95c86745313895">partitions</a>[<a class="code" href="include_2ubixfs_2ubixfs_8h.html#e5bdc5213c0fa1f31c2ff20c158e7c97">MAXUBIXPARTITIONS</a>]; <a name="l00084"></a>00084 }; <a name="l00085"></a>00085 <a name="l00086"></a>00086 <a name="l00087"></a><a class="code" href="structpartitionInformation.html">00087</a> <span class="keyword">struct </span><a class="code" href="structpartitionInformation.html">partitionInformation</a> { <a name="l00088"></a><a class="code" href="structpartitionInformation.html#bdfd7fa7f5f6fb27516f07590a56f806">00088</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structpartitionInformation.html#bdfd7fa7f5f6fb27516f07590a56f806">size</a>; <span class="comment">//Size In Sectors</span> <a name="l00089"></a><a class="code" href="structpartitionInformation.html#cd3dbb24d1a864968aba02edda70a777">00089</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structpartitionInformation.html#cd3dbb24d1a864968aba02edda70a777">startSector</a>; <span class="comment">//Base Sector Of Partition</span> <a name="l00090"></a><a class="code" href="structpartitionInformation.html#d3d33c51fecdc57b01f0577076f5888b">00090</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structpartitionInformation.html#d3d33c51fecdc57b01f0577076f5888b">blockAllocationTable</a>; <span class="comment">//Base Sector Of BAT</span> <a name="l00091"></a><a class="code" href="structpartitionInformation.html#0077f37eb5dd106e56f69e046cf21b11">00091</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structpartitionInformation.html#0077f37eb5dd106e56f69e046cf21b11">rootDirectory</a>; <span class="comment">//Base Sector Of Root Directory</span> <a name="l00092"></a>00092 }; <a name="l00093"></a>00093 <a name="l00094"></a>00094 <span class="comment">//Block Allocation Table Entry</span> <a name="l00095"></a><a class="code" href="structblockAllocationTableEntry.html">00095</a> <span class="keyword">struct </span><a class="code" href="structblockAllocationTableEntry.html">blockAllocationTableEntry</a> { <a name="l00096"></a><a class="code" href="structblockAllocationTableEntry.html#b650496bc3011796ef8b6897f424601c">00096</a> <span class="keywordtype">long</span> <a class="code" href="structblockAllocationTableEntry.html#b650496bc3011796ef8b6897f424601c">attributes</a>; <span class="comment">//Block Attributes</span> <a name="l00097"></a><a class="code" href="structblockAllocationTableEntry.html#47b0210bbfb05977d7d5fed3b24718b4">00097</a> <span class="keywordtype">long</span> <a class="code" href="structblockAllocationTableEntry.html#47b0210bbfb05977d7d5fed3b24718b4">realSector</a>; <span class="comment">//Real Sector </span> <a name="l00098"></a><a class="code" href="structblockAllocationTableEntry.html#db5281b505d283f4d43d09e327b63c63">00098</a> <span class="keywordtype">long</span> <a class="code" href="structblockAllocationTableEntry.html#db5281b505d283f4d43d09e327b63c63">nextBlock</a>; <span class="comment">//Sector Of Next Block</span> <a name="l00099"></a><a class="code" href="structblockAllocationTableEntry.html#efc436025c53dd0dbfc412df01c35544">00099</a> <span class="keywordtype">long</span> <a class="code" href="structblockAllocationTableEntry.html#efc436025c53dd0dbfc412df01c35544">reserved</a>; <span class="comment">//Reserved</span> <a name="l00100"></a>00100 }; <a name="l00101"></a>00101 <a name="l00102"></a>00102 <span class="comment">//UbixFS Directory Entry</span> <a name="l00103"></a><a class="code" href="structdirectoryEntry.html">00103</a> <span class="keyword">struct </span><a class="code" href="structdirectoryEntry.html">directoryEntry</a> { <a name="l00104"></a><a class="code" href="structdirectoryEntry.html#83e91977e7db1dc36d3e81183ac8965c">00104</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structdirectoryEntry.html#83e91977e7db1dc36d3e81183ac8965c">startCluster</a>; <span class="comment">//Starting Cluster Of File</span> <a name="l00105"></a><a class="code" href="structdirectoryEntry.html#9571030f709f6926b925e552660a65ab">00105</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structdirectoryEntry.html#9571030f709f6926b925e552660a65ab">size</a>; <span class="comment">//Size Of File</span> <a name="l00106"></a><a class="code" href="structdirectoryEntry.html#1daf9472a2fd74cb5ff8cacae052a140">00106</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structdirectoryEntry.html#1daf9472a2fd74cb5ff8cacae052a140">creationDate</a>; <span class="comment">//Date Created</span> <a name="l00107"></a><a class="code" href="structdirectoryEntry.html#9fd8ddf94af123a6b8209fe59aabe7ef">00107</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structdirectoryEntry.html#9fd8ddf94af123a6b8209fe59aabe7ef">lastModified</a>; <span class="comment">//Date Last Modified</span> <a name="l00108"></a><a class="code" href="structdirectoryEntry.html#55932700e138f68b3b27d2a2bca923fa">00108</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structdirectoryEntry.html#55932700e138f68b3b27d2a2bca923fa">uid</a>; <span class="comment">//UID Of Owner</span> <a name="l00109"></a><a class="code" href="structdirectoryEntry.html#35604b07f0b9c9230ca2c0566132e661">00109</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structdirectoryEntry.html#35604b07f0b9c9230ca2c0566132e661">gid</a>; <span class="comment">//GID Of Owner</span> <a name="l00110"></a><a class="code" href="structdirectoryEntry.html#eb3d1582fa3240c4847e52b7142ab801">00110</a> <a class="code" href="include_2ubixos_2types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a> <a class="code" href="structdirectoryEntry.html#eb3d1582fa3240c4847e52b7142ab801">attributes</a>; <span class="comment">//Files Attributes</span> <a name="l00111"></a><a class="code" href="structdirectoryEntry.html#a948f64fa7c34827ef1eca6c044002df">00111</a> <a class="code" href="include_2ubixos_2types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a> <a class="code" href="structdirectoryEntry.html#a948f64fa7c34827ef1eca6c044002df">permissions</a>; <span class="comment">//Files Permissions</span> <a name="l00112"></a><a class="code" href="structdirectoryEntry.html#61e77c256eaf6c4e7fe56d2574f16f98">00112</a> <span class="keywordtype">char</span> <a class="code" href="structdirectoryEntry.html#61e77c256eaf6c4e7fe56d2574f16f98">fileName</a>[256]; <span class="comment">//File Name</span> <a name="l00113"></a>00113 }; <a name="l00114"></a>00114 <a name="l00115"></a><a class="code" href="structbootSect.html">00115</a> <span class="keyword">struct </span><a class="code" href="structbootSect.html">bootSect</a> { <a name="l00116"></a><a class="code" href="structbootSect.html#5f089b32a62e159d1f84019db8bd8101">00116</a> <a class="code" href="include_2ubixos_2types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> <a class="code" href="structbootSect.html#5f089b32a62e159d1f84019db8bd8101">jmp</a>[4]; <a name="l00117"></a><a class="code" href="structbootSect.html#ae85f3c98c364997d5cb5144eba908d8">00117</a> <a class="code" href="include_2ubixos_2types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> <span class="keywordtype">id</span>[6]; <a name="l00118"></a><a class="code" href="structbootSect.html#298f3862fbde8f187294d7b7bdbbd749">00118</a> <a class="code" href="include_2ubixos_2types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a> <a class="code" href="structbootSect.html#298f3862fbde8f187294d7b7bdbbd749">version</a>; <a name="l00119"></a><a class="code" href="structbootSect.html#5c5732429c667eb3d5a7bc728f0c753e">00119</a> <a class="code" href="include_2ubixos_2types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a> <a class="code" href="structbootSect.html#5c5732429c667eb3d5a7bc728f0c753e">tmp</a>; <a name="l00120"></a><a class="code" href="structbootSect.html#24ab1c78d0eca12bf9192e59cff2bbee">00120</a> <a class="code" href="include_2ubixos_2types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a> <a class="code" href="structbootSect.html#24ab1c78d0eca12bf9192e59cff2bbee">fsStart</a>; <a name="l00121"></a><a class="code" href="structbootSect.html#926adbd4bc2bf0bbf37a1d4bab8610b6">00121</a> <a class="code" href="include_2ubixos_2types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a> <a class="code" href="structbootSect.html#926adbd4bc2bf0bbf37a1d4bab8610b6">tmp2</a>; <a name="l00122"></a><a class="code" href="structbootSect.html#d4072a8017255d8c119817bb4d8e7d7d">00122</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structbootSect.html#d4072a8017255d8c119817bb4d8e7d7d">krnl_start</a>; <a name="l00123"></a><a class="code" href="structbootSect.html#d3b694978c9b506183a7ee72a03c11e0">00123</a> <a class="code" href="include_2ubixos_2types_8h.html#87d141052bcd5ec8a80812a565c70369">uInt</a> <a class="code" href="structbootSect.html#d3b694978c9b506183a7ee72a03c11e0">BytesPerSector</a>; <a name="l00124"></a><a class="code" href="structbootSect.html#4c97c815867ef4a889e2def80c02d78c">00124</a> <a class="code" href="include_2ubixos_2types_8h.html#87d141052bcd5ec8a80812a565c70369">uInt</a> <a class="code" href="structbootSect.html#4c97c815867ef4a889e2def80c02d78c">SectersPerTrack</a>; <a name="l00125"></a><a class="code" href="structbootSect.html#125732168630ba5fe8f06ebf563d29db">00125</a> <a class="code" href="include_2ubixos_2types_8h.html#87d141052bcd5ec8a80812a565c70369">uInt</a> <a class="code" href="structbootSect.html#125732168630ba5fe8f06ebf563d29db">TotalHeads</a>; <a name="l00126"></a><a class="code" href="structbootSect.html#af4c006531ad59c8995b10ac165a50fc">00126</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structbootSect.html#af4c006531ad59c8995b10ac165a50fc">TotalSectors</a>; <a name="l00127"></a><a class="code" href="structbootSect.html#98509ae091dcf3f2786f81ff247132e6">00127</a> <a class="code" href="include_2ubixos_2types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> <a class="code" href="structbootSect.html#98509ae091dcf3f2786f81ff247132e6">code</a>[479]; <a name="l00128"></a>00128 }; <a name="l00129"></a>00129 <a name="l00130"></a><a class="code" href="structubixFSInfo.html">00130</a> <span class="keyword">struct </span><a class="code" href="structubixFSInfo.html">ubixFSInfo</a> { <a name="l00131"></a><a class="code" href="structubixFSInfo.html#03867f147dbbdf3c1d6cdd16a7a33097">00131</a> <span class="keyword">struct </span><a class="code" href="structblockAllocationTableEntry.html">blockAllocationTableEntry</a> *<a class="code" href="structubixFSInfo.html#03867f147dbbdf3c1d6cdd16a7a33097">blockAllocationTable</a>; <a name="l00132"></a><a class="code" href="structubixFSInfo.html#6f64ea0bc1a21fca92dde6228bb194fc">00132</a> <span class="keyword">struct </span><a class="code" href="structcacheNode.html">cacheNode</a> * <a class="code" href="structubixFSInfo.html#6f64ea0bc1a21fca92dde6228bb194fc">dirCache</a>; <a name="l00133"></a><a class="code" href="structubixFSInfo.html#4f530e266f49e0310c763653399dafa2">00133</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structubixFSInfo.html#4f530e266f49e0310c763653399dafa2">batEntries</a>; <a name="l00134"></a><a class="code" href="structubixFSInfo.html#8c58076e25df4115ed42bebce08d5181">00134</a> <a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="code" href="structubixFSInfo.html#8c58076e25df4115ed42bebce08d5181">rootDir</a>; <a name="l00135"></a>00135 }; <span class="comment">/* ubixFSInfo */</span> <a name="l00136"></a>00136 <a name="l00137"></a>00137 <span class="keywordtype">int</span> <a class="code" href="include_2ubixfs_2ubixfs_8h.html#173757dd173062c905191b7897737f5b">readFile</a>(<span class="keywordtype">char</span> *<a class="code" href="structfile.html">file</a>); <a name="l00138"></a>00138 <span class="keywordtype">int</span> <a class="code" href="include_2ubixfs_2ubixfs_8h.html#4c7f9c50f698ab4cdde8655aaf6363aa">writeFileByte</a>(<span class="keywordtype">int</span> ch,<a class="code" href="structfileDescriptor.html">fileDescriptor</a> *fd,<span class="keywordtype">long</span> offset); <a name="l00139"></a>00139 <span class="comment">//int openFileUbixFS(char *file,fileDescriptor *fd);</span> <a name="l00140"></a>00140 <span class="keywordtype">int</span> <a class="code" href="include_2ubixfs_2ubixfs_8h.html#d2880707d0f942f5119f946db4e13e4e">getFreeBlocks</a>(<span class="keywordtype">int</span> count,<a class="code" href="structfileDescriptor.html">fileDescriptor</a> *fd); <a name="l00141"></a>00141 <span class="comment">//extern struct ubixDiskLabel *diskLabel;</span> <a name="l00142"></a>00142 <a name="l00143"></a>00143 <span class="comment">//Good Functions</span> <a name="l00144"></a>00144 <span class="comment">//void initUbixFS(struct mountPoints *mp);</span> <a name="l00145"></a>00145 <a name="l00146"></a>00146 <span class="keywordtype">int</span> <a class="code" href="include_2ubixfs_2ubixfs_8h.html#3882cc85dc373eba13315dfb0da4c578">readUbixFS</a>(<a class="code" href="structfileDescriptor.html">fileDescriptor</a> *fd,<span class="keywordtype">char</span> *data,<a class="code" href="include_2ubixos_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a>,<span class="keywordtype">long</span> <a class="code" href="structcacheNode.html#81d33d36c4163308906d9a48ea0f9eab">size</a>); <a name="l00147"></a>00147 <span class="keywordtype">int</span> <a class="code" href="include_2ubixfs_2ubixfs_8h.html#ba0435c266346dd10ac3cbc68655b20c">writeUbixFS</a>(<a class="code" href="structfileDescriptor.html">fileDescriptor</a> *fd,<span class="keywordtype">char</span> *data,<span class="keywordtype">long</span> offset,<span class="keywordtype">long</span> <a class="code" href="structcacheNode.html#81d33d36c4163308906d9a48ea0f9eab">size</a>); <a name="l00148"></a>00148 <span class="keywordtype">void</span> <a class="code" href="include_2ubixfs_2ubixfs_8h.html#99dfa2e54401fafb70357a6632c4ef10">syncBat</a>(<span class="keyword">struct</span> <a class="code" href="structvfs__mountPoint.html">vfs_mountPoint</a> *mp); <a name="l00149"></a>00149 <span class="keywordtype">int</span> <a class="code" href="include_2ubixfs_2ubixfs_8h.html#182b9be545371d2fcda6981134de2b44">freeBlocks</a>(<span class="keywordtype">int</span> block,<a class="code" href="structfileDescriptor.html">fileDescriptor</a> *fd); <a name="l00150"></a>00150 <span class="keywordtype">int</span> <a class="code" href="include_2ubixfs_2ubixfs_8h.html#756e1f497c4d9fed64ac0a2256f9fa46">addDirEntry</a>(<span class="keyword">struct</span> <a class="code" href="structdirectoryEntry.html">directoryEntry</a> *dir,<a class="code" href="structfileDescriptor.html">fileDescriptor</a> *fd); <a name="l00151"></a>00151 <span class="keywordtype">void</span> <a class="code" href="include_2ubixfs_2ubixfs_8h.html#dfbafb62e063e24f4df09029862ba9d0">ubixFSUnlink</a>(<span class="keywordtype">char</span> *path,<span class="keyword">struct</span> <a class="code" href="structvfs__mountPoint.html">vfs_mountPoint</a> *mp); <a name="l00152"></a>00152 <span class="keywordtype">int</span> <a class="code" href="include_2ubixfs_2ubixfs_8h.html#a3a7f1d4d6f7d2477798e933acf2cb3f">ubixFSmkDir</a>(<span class="keywordtype">char</span> *dir,<a class="code" href="structfileDescriptor.html">fileDescriptor</a> *fd); <a name="l00153"></a>00153 <a name="l00154"></a>00154 <span class="keywordtype">int</span> <a class="code" href="include_2ubixfs_2ubixfs_8h.html#1d4159e0eb816b6b23c214d7c601dcb4">ubixfs_init</a>(); <a name="l00155"></a>00155 <span class="keywordtype">int</span> <a class="code" href="include_2ubixfs_2ubixfs_8h.html#2c53ad6e6ce2e149eec9b5361dd10eda">ubixfs_initialize</a>(); <a name="l00156"></a>00156 <span class="keywordtype">void</span> <a class="code" href="include_2ubixfs_2ubixfs_8h.html#7400c9aaa5ced0d1c81ac05a129cfb20">ubixfs_thread</a>(); <a name="l00157"></a>00157 <a name="l00158"></a>00158 <a name="l00159"></a>00159 <span class="preprocessor">#endif</span> <a name="l00160"></a>00160 <span class="preprocessor"></span> <a name="l00161"></a>00161 <span class="comment">/***</span> <a name="l00162"></a>00162 <span class="comment"> $Log: include_2ubixfs_2ubixfs_8h-source.html,v $ <a name="l00162"></a>00162 <span class="comment"> Revision 1.4 2006/12/06 04:40:59 reddawg <a name="l00162"></a>00162 <span class="comment"> More syscalls implimented <a name="l00162"></a>00162 <span class="comment"></span> <a name="l00163"></a>00163 <span class="comment"> Revision 1.2 2006/12/05 14:10:21 reddawg</span> <a name="l00164"></a>00164 <span class="comment"> Workign Distro</span> <a name="l00165"></a>00165 <span class="comment"></span> <a name="l00166"></a>00166 <span class="comment"> Revision 1.1.1.1 2006/06/01 12:46:14 reddawg</span> <a name="l00167"></a>00167 <span class="comment"> ubix2</span> <a name="l00168"></a>00168 <span class="comment"></span> <a name="l00169"></a>00169 <span class="comment"> Revision 1.2 2005/10/12 00:13:37 reddawg</span> <a name="l00170"></a>00170 <span class="comment"> Removed</span> <a name="l00171"></a>00171 <span class="comment"></span> <a name="l00172"></a>00172 <span class="comment"> Revision 1.1.1.1 2005/09/26 17:23:53 reddawg</span> <a name="l00173"></a>00173 <span class="comment"> no message</span> <a name="l00174"></a>00174 <span class="comment"></span> <a name="l00175"></a>00175 <span class="comment"> Revision 1.21 2004/09/14 20:57:01 reddawg</span> <a name="l00176"></a>00176 <span class="comment"> Bug fixes: macro problem over opt a multiply</span> <a name="l00177"></a>00177 <span class="comment"></span> <a name="l00178"></a>00178 <span class="comment"> Revision 1.20 2004/08/01 17:58:39 flameshadow</span> <a name="l00179"></a>00179 <span class="comment"> chg: fixed string allocation bug in ubixfs_cacheNew()</span> <a name="l00180"></a>00180 <span class="comment"></span> <a name="l00181"></a>00181 <span class="comment"> Revision 1.19 2004/07/27 12:02:01 reddawg</span> <a name="l00182"></a>00182 <span class="comment"> chg: fixed marks bug readFile did a lookup which is why it looked like it was loopping so much</span> <a name="l00183"></a>00183 <span class="comment"></span> <a name="l00184"></a>00184 <span class="comment"> Revision 1.18 2004/07/23 09:10:06 reddawg</span> <a name="l00185"></a>00185 <span class="comment"> ubixfs: cleaned up some functions played with the caching a bit</span> <a name="l00186"></a>00186 <span class="comment"> vfs: renamed a bunch of functions</span> <a name="l00187"></a>00187 <span class="comment"> cleaned up a few misc bugs</span> <a name="l00188"></a>00188 <span class="comment"></span> <a name="l00189"></a>00189 <span class="comment"> Revision 1.17 2004/07/22 22:37:03 reddawg</span> <a name="l00190"></a>00190 <span class="comment"> Caching is working now the FS is extremely fast but needs to be optimized to do 32bit copies over 8bit</span> <a name="l00191"></a>00191 <span class="comment"></span> <a name="l00192"></a>00192 <span class="comment"> Revision 1.16 2004/07/20 21:28:16 flameshadow</span> <a name="l00193"></a>00193 <span class="comment"> oops</span> <a name="l00194"></a>00194 <span class="comment"></span> <a name="l00195"></a>00195 <span class="comment"> Revision 1.14 2004/07/20 19:36:49 reddawg</span> <a name="l00196"></a>00196 <span class="comment"> UBU Tags</span> <a name="l00197"></a>00197 <span class="comment"></span> <a name="l00198"></a>00198 <span class="comment"> Revision 1.13 2004/07/14 12:21:49 reddawg</span> <a name="l00199"></a>00199 <span class="comment"> ubixfs: enableUbixFs to ubixfs_init</span> <a name="l00200"></a>00200 <span class="comment"> Changed Startup Routines</span> <a name="l00201"></a>00201 <span class="comment"></span> <a name="l00202"></a>00202 <span class="comment"> END</span> <a name="l00203"></a>00203 <span class="comment"> ***/</span> </pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Dec 5 23:34:57 2006 for UbixOS V2 by <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>