<!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/sys/kern_descrip.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="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_d26f37d6397a53073c964316867e8d67.html">sys</a></div> <h1>kern_descrip.h</h1><a href="kern__descrip_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$</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 _KERN_DESCRIP_H</span> <a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#define _KERN_DESCRIP_H</span> <a name="l00032"></a>00032 <span class="preprocessor"></span> <a name="l00033"></a>00033 <span class="preprocessor">#include <<a class="code" href="thread_8h.html">sys/thread.h</a>></span> <a name="l00034"></a>00034 <span class="preprocessor">#include <<a class="code" href="sysproto_8h.html">sys/sysproto.h</a>></span> <a name="l00035"></a>00035 <a name="l00036"></a>00036 <span class="preprocessor">#include <<a class="code" href="file_8h.html">vfs/file.h</a>></span> <a name="l00037"></a>00037 <a name="l00038"></a><a class="code" href="kern__descrip_8h.html#e9f148ba55d84268ecb6f8031ab45076">00038</a> <span class="keyword">typedef</span> <a class="code" href="__types_8h.html#633606f8a0f9a59b300c4947280d816f">__mode_t</a> <a class="code" href="kern__descrip_8h.html#e9f148ba55d84268ecb6f8031ab45076">mode_t</a>; <a name="l00039"></a><a class="code" href="kern__descrip_8h.html#e6b499a9e117ca8d1d165c847c872cc0">00039</a> <span class="keyword">typedef</span> <a class="code" href="__types_8h.html#c1789b464296a1bd0de1734e17d0a146">__nlink_t</a> <a class="code" href="kern__descrip_8h.html#e6b499a9e117ca8d1d165c847c872cc0">nlink_t</a>; <a name="l00040"></a>00040 <a name="l00041"></a>00041 <span class="comment">/* command values */</span> <a name="l00042"></a><a class="code" href="kern__descrip_8h.html#b93a8621587aba90181efd7d3aeea67e">00042</a> <span class="preprocessor">#define F_DUPFD 0 </span><span class="comment">/* duplicate file descriptor */</span> <a name="l00043"></a><a class="code" href="kern__descrip_8h.html#bc11141031604fb22b8e3a201155cbb3">00043</a> <span class="preprocessor">#define F_GETFD 1 </span><span class="comment">/* get file descriptor flags */</span> <a name="l00044"></a><a class="code" href="kern__descrip_8h.html#d27227e8d87b844648f07d66da38bb3f">00044</a> <span class="preprocessor">#define F_SETFD 2 </span><span class="comment">/* set file descriptor flags */</span> <a name="l00045"></a><a class="code" href="kern__descrip_8h.html#025fad21a889c79f02ec53abe3526c32">00045</a> <span class="preprocessor">#define F_GETFL 3 </span><span class="comment">/* get file status flags */</span> <a name="l00046"></a><a class="code" href="kern__descrip_8h.html#f2939853c650561d3495ed40f68f6249">00046</a> <span class="preprocessor">#define F_SETFL 4 </span><span class="comment">/* set file status flags */</span> <a name="l00047"></a><a class="code" href="kern__descrip_8h.html#a76959dcf54457a81c4cdf7789ba73e4">00047</a> <span class="preprocessor">#define F_GETOWN 5 </span><span class="comment">/* get SIGIO/SIGURG proc/pgrp */</span> <a name="l00048"></a><a class="code" href="kern__descrip_8h.html#10e6ca002b56361c5adb1e66a8a4917d">00048</a> <span class="preprocessor">#define F_SETOWN 6 </span><span class="comment">/* set SIGIO/SIGURG proc/pgrp */</span> <a name="l00049"></a><a class="code" href="kern__descrip_8h.html#2c3005e07f9aedb5d77856d13c3e40c4">00049</a> <span class="preprocessor">#define F_GETLK 7 </span><span class="comment">/* get record locking information */</span> <a name="l00050"></a><a class="code" href="kern__descrip_8h.html#68a7fc570f2fc271acc5358a6418504e">00050</a> <span class="preprocessor">#define F_SETLK 8 </span><span class="comment">/* set record locking information */</span> <a name="l00051"></a><a class="code" href="kern__descrip_8h.html#abb866cd0cf7ed3544dfc335e0e360fd">00051</a> <span class="preprocessor">#define F_SETLKW 9 </span><span class="comment">/* F_SETLK; wait if blocked */</span> <a name="l00052"></a>00052 <a name="l00053"></a>00053 <span class="comment">/* Flag Values */</span> <a name="l00054"></a><a class="code" href="kern__descrip_8h.html#3252b359359dea1efa45bb87c4499acd">00054</a> <span class="preprocessor">#define FREAD 0x0001</span> <a name="l00055"></a><a class="code" href="kern__descrip_8h.html#171aed9ee8e3ec0a65cedfb9a2626499">00055</a> <span class="preprocessor"></span><span class="preprocessor">#define FWRITE 0x0002</span> <a name="l00056"></a><a class="code" href="kern__descrip_8h.html#39d33ce33804efd4d52606d59071c6d8">00056</a> <span class="preprocessor"></span><span class="preprocessor">#define O_NONBLOCK 0x0004 </span><span class="comment">/* no delay */</span> <a name="l00057"></a><a class="code" href="kern__descrip_8h.html#e036f789407d21f07b211552d67b3214">00057</a> <span class="preprocessor">#define O_APPEND 0x0008 </span><span class="comment">/* set append mode */</span> <a name="l00058"></a><a class="code" href="kern__descrip_8h.html#8234597f4e8a183770c5f5d94ba8562a">00058</a> <span class="preprocessor">#define O_SHLOCK 0x0010 </span><span class="comment">/* open with shared file lock */</span> <a name="l00059"></a><a class="code" href="kern__descrip_8h.html#d041d863b473edbd26926d2fad250384">00059</a> <span class="preprocessor">#define O_EXLOCK 0x0020 </span><span class="comment">/* open with exclusive file lock */</span> <a name="l00060"></a><a class="code" href="kern__descrip_8h.html#c5d0c9848f853f8b026b1211b93f78b1">00060</a> <span class="preprocessor">#define O_ASYNC 0x0040 </span><span class="comment">/* signal pgrp when data ready */</span> <a name="l00061"></a><a class="code" href="kern__descrip_8h.html#c683f821c3bf7ce4752ff436733cd715">00061</a> <span class="preprocessor">#define O_FSYNC 0x0080 </span><span class="comment">/* synchronous writes */</span> <a name="l00062"></a><a class="code" href="kern__descrip_8h.html#ae85139bfa94236d126bb1e3b772998f">00062</a> <span class="preprocessor">#define O_SYNC 0x0080 </span><span class="comment">/* POSIX synonym for O_FSYNC */</span> <a name="l00063"></a><a class="code" href="kern__descrip_8h.html#82d4d551b214905742c9e045185d352a">00063</a> <span class="preprocessor">#define O_NOFOLLOW 0x0100 </span><span class="comment">/* don't follow symlinks */</span> <a name="l00064"></a><a class="code" href="kern__descrip_8h.html#1cf6b1de1fffedaa1d26b189e9a8d2cc">00064</a> <span class="preprocessor">#define O_CREAT 0x0200 </span><span class="comment">/* create if nonexistent */</span> <a name="l00065"></a><a class="code" href="kern__descrip_8h.html#d1d67e453fb3031f40f8cd3403773813">00065</a> <span class="preprocessor">#define O_TRUNC 0x0400 </span><span class="comment">/* truncate to zero length */</span> <a name="l00066"></a><a class="code" href="kern__descrip_8h.html#9f5acfe79fafe14b6694447bd0e9f10b">00066</a> <span class="preprocessor">#define O_EXCL 0x0800 </span><span class="comment">/* error if already exists */</span> <a name="l00067"></a><a class="code" href="kern__descrip_8h.html#d28ccbf6f0a42c91c160ac5ada0c8429">00067</a> <span class="preprocessor">#define O_DIRECT 0x00010000</span> <a name="l00068"></a><a class="code" href="kern__descrip_8h.html#7a68c9ffaac7dbcd652225dd7c06a54b">00068</a> <span class="preprocessor"></span><span class="preprocessor">#define O_RDONLY 0x0000 </span><span class="comment">/* open for reading only */</span> <a name="l00069"></a><a class="code" href="kern__descrip_8h.html#11b644a8526139c4cc1850dac1271ced">00069</a> <span class="preprocessor">#define O_WRONLY 0x0001 </span><span class="comment">/* open for writing only */</span> <a name="l00070"></a><a class="code" href="kern__descrip_8h.html#bb0586253488ee61072b73557eeb873b">00070</a> <span class="preprocessor">#define O_RDWR 0x0002 </span><span class="comment">/* open for reading and writing */</span> <a name="l00071"></a><a class="code" href="kern__descrip_8h.html#4dc4d45e07d2abc899bcaf04b2846a87">00071</a> <span class="preprocessor">#define O_ACCMODE 0x0003 </span><span class="comment">/* mask for above modes */</span> <a name="l00072"></a>00072 <a name="l00073"></a>00073 <a name="l00074"></a><a class="code" href="kern__descrip_8h.html#5e502663ed8d9bf975848f5464c3f516">00074</a> <span class="preprocessor">#define FHASLOCK 0x4000 </span><span class="comment">/* descriptor holds advisory lock */</span> <a name="l00075"></a>00075 <a name="l00076"></a>00076 <a name="l00077"></a>00077 <span class="comment">/* F MAPPERS */</span> <a name="l00078"></a><a class="code" href="kern__descrip_8h.html#a336842f710119bfdab086f34efac63c">00078</a> <span class="preprocessor">#define FAPPEND O_APPEND </span><span class="comment">/* kernel/compat */</span> <a name="l00079"></a><a class="code" href="kern__descrip_8h.html#1c28a43c30721462ad7e40f37051c9ca">00079</a> <span class="preprocessor">#define FASYNC O_ASYNC </span><span class="comment">/* kernel/compat */</span> <a name="l00080"></a><a class="code" href="kern__descrip_8h.html#ee6e522943bfde38729955245588808c">00080</a> <span class="preprocessor">#define FFSYNC O_FSYNC </span><span class="comment">/* kernel */</span> <a name="l00081"></a><a class="code" href="kern__descrip_8h.html#a7660d77d1097779b6b790cb4d89f56c">00081</a> <span class="preprocessor">#define FNONBLOCK O_NONBLOCK </span><span class="comment">/* kernel */</span> <a name="l00082"></a><a class="code" href="kern__descrip_8h.html#71a490d1088a9c5f120f3a59e2a4599f">00082</a> <span class="preprocessor">#define FNDELAY O_NONBLOCK </span><span class="comment">/* compat */</span> <a name="l00083"></a><a class="code" href="kern__descrip_8h.html#63ba256ec18f373817941d5a4d0e2d5e">00083</a> <span class="preprocessor">#define O_NDELAY O_NONBLOCK </span><span class="comment">/* compat */</span> <a name="l00084"></a><a class="code" href="kern__descrip_8h.html#ed6c61cad1ddb572aae570ca0a7cb6f8">00084</a> <span class="preprocessor">#define FPOSIXSHM O_NOFOLLOW</span> <a name="l00085"></a>00085 <span class="preprocessor"></span> <a name="l00086"></a>00086 <a name="l00087"></a>00087 <a name="l00088"></a><a class="code" href="kern__descrip_8h.html#e145197023ee3530510eaa80446eef77">00088</a> <span class="preprocessor">#define FCNTLFLAGS (FAPPEND|FASYNC|FFSYNC|FNONBLOCK|FPOSIXSHM|O_DIRECT)</span> <a name="l00089"></a>00089 <span class="preprocessor"></span> <a name="l00090"></a><a class="code" href="kern__descrip_8h.html#3c28c97a69c6ce8f87cac54a7c91f9db">00090</a> <span class="preprocessor">#define FFLAGS(oflags) ((oflags) + 1)</span> <a name="l00091"></a><a class="code" href="kern__descrip_8h.html#9b5b463dd687798c592fd23584869cc8">00091</a> <span class="preprocessor"></span><span class="preprocessor">#define OFLAGS(fflags) ((fflags) - 1)</span> <a name="l00092"></a>00092 <span class="preprocessor"></span> <a name="l00093"></a><a class="code" href="structfile.html">00093</a> <span class="keyword">struct </span><a class="code" href="structfile.html">file</a> { <a name="l00094"></a><a class="code" href="structfile.html#314e5cc77afefbebb7f5e7d197b089ab">00094</a> <span class="keywordtype">int</span> <a class="code" href="structfile.html#314e5cc77afefbebb7f5e7d197b089ab">f_flag</a>; <a name="l00095"></a><a class="code" href="structfile.html#48952da96dfce82445b051d594d7bbf6">00095</a> <span class="keywordtype">char</span> <a class="code" href="structfile.html#48952da96dfce82445b051d594d7bbf6">path</a>[1024]; <a name="l00096"></a><a class="code" href="structfile.html#5a1b356e191a81d71a02560074aacd2a">00096</a> <a class="code" href="structfileDescriptorStruct.html">fileDescriptor</a> *<a class="code" href="structfile.html#5a1b356e191a81d71a02560074aacd2a">fd</a>; <a name="l00097"></a>00097 }; <a name="l00098"></a>00098 <a name="l00099"></a>00099 <span class="comment">/* TEMP */</span> <a name="l00100"></a><a class="code" href="struct____timespec.html">00100</a> <span class="keyword">struct </span><a class="code" href="struct____timespec.html">__timespec</a> { <a name="l00101"></a><a class="code" href="struct____timespec.html#6a0ca86f02964fe2543f06311b0ba5fd">00101</a> <a class="code" href="__types_8h.html#c9fb8d211b39b07df423f5c3238c5f5d">__time_t</a> <a class="code" href="struct____timespec.html#6a0ca86f02964fe2543f06311b0ba5fd">tv_sec</a>; <span class="comment">/* seconds */</span> <a name="l00102"></a><a class="code" href="struct____timespec.html#22ce93092f3583d4b7045e8bafb84994">00102</a> <span class="keywordtype">long</span> <a class="code" href="struct____timespec.html#22ce93092f3583d4b7045e8bafb84994">tv_nsec</a>; <span class="comment">/* and nanoseconds */</span> <a name="l00103"></a>00103 }; <a name="l00104"></a>00104 <a name="l00105"></a><a class="code" href="structstat.html">00105</a> <span class="keyword">struct </span><a class="code" href="structstat.html">stat</a> { <a name="l00106"></a><a class="code" href="structstat.html#fb143a1534bf763afd6b353ea3cad102">00106</a> <a class="code" href="__types_8h.html#45c90547fafad0ff956b06bb5245cdcf">__dev_t</a> <a class="code" href="structstat.html#fb143a1534bf763afd6b353ea3cad102">st_dev</a>; <span class="comment">/* inode's device */</span> <a name="l00107"></a><a class="code" href="structstat.html#9769ed8f0d4c5a9f329c32bc92479d56">00107</a> <a class="code" href="types_8h.html#73341b7381d39d6e5b80ff9f23379dbd">ino_t</a> <a class="code" href="structstat.html#9769ed8f0d4c5a9f329c32bc92479d56">st_ino</a>; <span class="comment">/* inode's number */</span> <a name="l00108"></a><a class="code" href="structstat.html#5cbdd829011af82ba61e83773bbcbc7d">00108</a> <a class="code" href="kern__descrip_8h.html#e9f148ba55d84268ecb6f8031ab45076">mode_t</a> <a class="code" href="structstat.html#5cbdd829011af82ba61e83773bbcbc7d">st_mode</a>; <span class="comment">/* inode protection mode */</span> <a name="l00109"></a><a class="code" href="structstat.html#0ed9092fa6c77a3251b9b9a4738ef84f">00109</a> <a class="code" href="kern__descrip_8h.html#e6b499a9e117ca8d1d165c847c872cc0">nlink_t</a> <a class="code" href="structstat.html#0ed9092fa6c77a3251b9b9a4738ef84f">st_nlink</a>; <span class="comment">/* number of hard links */</span> <a name="l00110"></a><a class="code" href="structstat.html#4a8708a3d18be60ee7b2f06c4cab0c70">00110</a> <a class="code" href="types_8h.html#1844226d778badcda0a21b28310830ea">uid_t</a> <a class="code" href="structstat.html#4a8708a3d18be60ee7b2f06c4cab0c70">st_uid</a>; <span class="comment">/* user ID of the file's owner */</span> <a name="l00111"></a><a class="code" href="structstat.html#b864f16f436cec370f0ced585d897698">00111</a> <a class="code" href="types_8h.html#9520fe38856d436aa8c5850ff21839ec">gid_t</a> <a class="code" href="structstat.html#b864f16f436cec370f0ced585d897698">st_gid</a>; <span class="comment">/* group ID of the file's group */</span> <a name="l00112"></a><a class="code" href="structstat.html#19878d2506fccbada6f99ff8351e54fc">00112</a> <a class="code" href="__types_8h.html#45c90547fafad0ff956b06bb5245cdcf">__dev_t</a> <a class="code" href="structstat.html#19878d2506fccbada6f99ff8351e54fc">st_rdev</a>; <span class="comment">/* device type */</span> <a name="l00113"></a>00113 <span class="preprocessor">#if __BSD_VISIBLE</span> <a name="l00114"></a>00114 <span class="preprocessor"></span> <span class="keyword">struct </span><a class="code" href="structtimespec.html">timespec</a> st_atimespec; <span class="comment">/* time of last access */</span> <a name="l00115"></a>00115 <span class="keyword">struct </span><a class="code" href="structtimespec.html">timespec</a> st_mtimespec; <span class="comment">/* time of last data modification */</span> <a name="l00116"></a>00116 <span class="keyword">struct </span><a class="code" href="structtimespec.html">timespec</a> st_ctimespec; <span class="comment">/* time of last file status change */</span> <a name="l00117"></a>00117 <span class="preprocessor">#else</span> <a name="l00118"></a><a class="code" href="structstat.html#b74d1e7e345e88b9d0fb2688a97cba64">00118</a> <span class="preprocessor"></span> <a class="code" href="time_8h.html#c8234dac99fc3a2dcc8b7998afd40d49">time_t</a> <a class="code" href="structstat.html#b74d1e7e345e88b9d0fb2688a97cba64">st_atime</a>; <span class="comment">/* time of last access */</span> <a name="l00119"></a><a class="code" href="structstat.html#8e7af7908cc5409963de8c2af581070c">00119</a> <span class="keywordtype">long</span> <a class="code" href="structstat.html#8e7af7908cc5409963de8c2af581070c">__st_atimensec</a>; <span class="comment">/* nsec of last access */</span> <a name="l00120"></a><a class="code" href="structstat.html#77e235090f8cb6897f1c0ce65689006b">00120</a> <a class="code" href="time_8h.html#c8234dac99fc3a2dcc8b7998afd40d49">time_t</a> <a class="code" href="structstat.html#77e235090f8cb6897f1c0ce65689006b">st_mtime</a>; <span class="comment">/* time of last data modification */</span> <a name="l00121"></a><a class="code" href="structstat.html#d35fc3a664184cdc617b114cd25f5f67">00121</a> <span class="keywordtype">long</span> <a class="code" href="structstat.html#d35fc3a664184cdc617b114cd25f5f67">__st_mtimensec</a>; <span class="comment">/* nsec of last data modification */</span> <a name="l00122"></a><a class="code" href="structstat.html#1b4b858db1ebe79c3d6e0fc1ef721024">00122</a> <a class="code" href="time_8h.html#c8234dac99fc3a2dcc8b7998afd40d49">time_t</a> <a class="code" href="structstat.html#1b4b858db1ebe79c3d6e0fc1ef721024">st_ctime</a>; <span class="comment">/* time of last file status change */</span> <a name="l00123"></a><a class="code" href="structstat.html#68a4709b4a992cd2e1dfdfb630bfe6cb">00123</a> <span class="keywordtype">long</span> <a class="code" href="structstat.html#68a4709b4a992cd2e1dfdfb630bfe6cb">__st_ctimensec</a>; <span class="comment">/* nsec of last file status change */</span> <a name="l00124"></a>00124 <span class="preprocessor">#endif</span> <a name="l00125"></a><a class="code" href="structstat.html#040e19c8b9766f841fde8786ce9297bf">00125</a> <span class="preprocessor"></span> <a class="code" href="types_8h.html#fa178be408981cc5edd64227b6332fc6">off_t</a> <a class="code" href="structstat.html#040e19c8b9766f841fde8786ce9297bf">st_size</a>; <span class="comment">/* file size, in bytes */</span> <a name="l00126"></a><a class="code" href="structstat.html#42dd716b2f9234f961d949fc9500eefb">00126</a> <a class="code" href="types_8h.html#7da4753cd6945c5ad91f41c00b474b3f">blkcnt_t</a> <a class="code" href="structstat.html#42dd716b2f9234f961d949fc9500eefb">st_blocks</a>; <span class="comment">/* blocks allocated for file */</span> <a name="l00127"></a><a class="code" href="structstat.html#38d474e1ae3cf6fbdde89ac3c3e308f1">00127</a> <a class="code" href="types_8h.html#cac8eacbbc225743e88f8e5e8bf93581">blksize_t</a> <a class="code" href="structstat.html#38d474e1ae3cf6fbdde89ac3c3e308f1">st_blksize</a>; <span class="comment">/* optimal blocksize for I/O */</span> <a name="l00128"></a><a class="code" href="structstat.html#34bffc74ecab7594299064e953e5b20b">00128</a> <a class="code" href="types_8h.html#ee689fd681d6f52c910a90af380155af">fflags_t</a> <a class="code" href="structstat.html#34bffc74ecab7594299064e953e5b20b">st_flags</a>; <span class="comment">/* user defined flags for file */</span> <a name="l00129"></a><a class="code" href="structstat.html#96a89f0335e054637efa0eb7487e0682">00129</a> <a class="code" href="__types_8h.html#caa96aed3d7fddac490800f166c2af02">__uint32_t</a> <a class="code" href="structstat.html#96a89f0335e054637efa0eb7487e0682">st_gen</a>; <span class="comment">/* file generation number */</span> <a name="l00130"></a><a class="code" href="structstat.html#1823e5f33a019b1bdeb7a000d0d202fd">00130</a> <a class="code" href="__types_8h.html#479ed1d22a5d4badec9d1fa7246d05bf">__int32_t</a> <a class="code" href="structstat.html#1823e5f33a019b1bdeb7a000d0d202fd">st_lspare</a>; <a name="l00131"></a>00131 <span class="preprocessor">#if __BSD_VISIBLE</span> <a name="l00132"></a>00132 <span class="preprocessor"></span> <span class="keyword">struct </span><a class="code" href="structtimespec.html">timespec</a> st_birthtimespec; <span class="comment">/* time of file creation */</span> <a name="l00133"></a>00133 <span class="comment">/*</span> <a name="l00134"></a>00134 <span class="comment"> * Explicitly pad st_birthtimespec to 16 bytes so that the size of</span> <a name="l00135"></a>00135 <span class="comment"> * struct stat is backwards compatible. We use bitfields instead</span> <a name="l00136"></a>00136 <span class="comment"> * of an array of chars so that this doesn't require a C99 compiler</span> <a name="l00137"></a>00137 <span class="comment"> * to compile if the size of the padding is 0. We use 2 bitfields</span> <a name="l00138"></a>00138 <span class="comment"> * to cover up to 64 bits on 32-bit machines. We assume that</span> <a name="l00139"></a>00139 <span class="comment"> * CHAR_BIT is 8...</span> <a name="l00140"></a>00140 <span class="comment"> */</span> <a name="l00141"></a>00141 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> :(8 / 2) * (16 - (<span class="keywordtype">int</span>)<span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structtimespec.html">timespec</a>)); <a name="l00142"></a>00142 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> :(8 / 2) * (16 - (<span class="keywordtype">int</span>)<span class="keyword">sizeof</span>(<span class="keyword">struct</span> timespec)); <a name="l00143"></a>00143 <span class="preprocessor">#else</span> <a name="l00144"></a><a class="code" href="structstat.html#a7c8627ac57ce82bccc0b261d56a25e5">00144</a> <span class="preprocessor"></span> <a class="code" href="time_8h.html#c8234dac99fc3a2dcc8b7998afd40d49">time_t</a> <a class="code" href="structstat.html#a7c8627ac57ce82bccc0b261d56a25e5">st_birthtime</a>; <span class="comment">/* time of file creation */</span> <a name="l00145"></a><a class="code" href="structstat.html#0e919848cf78f7aacb30a7fb13e81acc">00145</a> <span class="keywordtype">long</span> <a class="code" href="structstat.html#0e919848cf78f7aacb30a7fb13e81acc">st_birthtimensec</a>; <span class="comment">/* nsec of file creation */</span> <a name="l00146"></a><a class="code" href="structstat.html#eadf0ca7bfa140ac64fa582f7765066b">00146</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> :(8 / 2) * (16 - (<span class="keywordtype">int</span>)<span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="struct____timespec.html">__timespec</a>)); <a name="l00147"></a>00147 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> :(8 / 2) * (16 - (<span class="keywordtype">int</span>)<span class="keyword">sizeof</span>(<span class="keyword">struct</span> __timespec)); <a name="l00148"></a>00148 <span class="preprocessor">#endif</span> <a name="l00149"></a>00149 <span class="preprocessor"></span>}; <a name="l00150"></a>00150 <a name="l00151"></a>00151 <a name="l00152"></a>00152 <span class="keywordtype">int</span> <a class="code" href="kern__descrip_8h.html#791e8d3090dc6573a9faa0a64ec696d3">fcntl</a>(<span class="keyword">struct</span> <a class="code" href="structthread.html">thread</a> *, <span class="keyword">struct</span> <a class="code" href="structfcntl__args.html">fcntl_args</a> *); <a name="l00153"></a>00153 <span class="keywordtype">int</span> <a class="code" href="kern__descrip_8h.html#39808045c1781393e845fa51fd2db6e0">close</a>(<span class="keyword">struct</span> <a class="code" href="structthread.html">thread</a> *,<span class="keyword">struct</span> <a class="code" href="structclose__args.html">close_args</a> *); <a name="l00154"></a>00154 <span class="keywordtype">int</span> <a class="code" href="kern__descrip_8h.html#434fb15226182b0ee879a5afe9a8c190">falloc</a>(<span class="keyword">struct</span> <a class="code" href="structthread.html">thread</a> *, <span class="keyword">struct</span> <a class="code" href="structfile.html">file</a> **, <span class="keywordtype">int</span> *); <a name="l00155"></a>00155 <span class="keywordtype">int</span> <a class="code" href="kern__descrip_8h.html#ec82fd17dad5642277af6dc43f9893c5">getdtablesize</a>(<span class="keyword">struct</span> <a class="code" href="structthread.html">thread</a> *, <span class="keyword">struct</span> <a class="code" href="structgetdtablesize__args.html">getdtablesize_args</a> *); <a name="l00156"></a>00156 <span class="keywordtype">int</span> <a class="code" href="kern__descrip_8h.html#8216f802387d3e6eded7f31568d741ff">fstat</a>(<span class="keyword">struct</span> <a class="code" href="structthread.html">thread</a> *, <span class="keyword">struct</span> <a class="code" href="structfstat__args.html">fstat_args</a> *); <a name="l00157"></a>00157 <span class="keywordtype">int</span> <a class="code" href="kern__descrip_8h.html#dd9e21938f9a168f9be49ddbfe03fed1">ioctl</a>(<span class="keyword">struct</span> <a class="code" href="structthread.html">thread</a> *, <span class="keyword">struct</span> <a class="code" href="structioctl__args.html">ioctl_args</a> *); <a name="l00158"></a>00158 <span class="keywordtype">int</span> <a class="code" href="kern__descrip_8h.html#14e228d6e5391a882d3b20ff2466b2ac">getfd</a>(<span class="keyword">struct</span> <a class="code" href="structthread.html">thread</a> *td,<span class="keyword">struct</span> <a class="code" href="structfile.html">file</a> **fp,<span class="keywordtype">int</span> fd); <a name="l00159"></a>00159 <a name="l00160"></a>00160 <a name="l00161"></a>00161 <span class="preprocessor">#endif</span> <a name="l00162"></a>00162 <span class="preprocessor"></span> <a name="l00163"></a>00163 <span class="comment">/***</span> <a name="l00164"></a>00164 <span class="comment"> END</span> <a name="l00165"></a>00165 <span class="comment"> ***/</span> </pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 15 11:18:54 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>