亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? c-filesys4.html

?? this about vxworks operations systems
?? HTML
?? 第 1 頁 / 共 2 頁
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html><head><link rel="STYLESHEET" type="text/css" href="wrs.css"><title>    Local File Systems   </title></head><body bgcolor="FFFFFF"><p class="navbar" align="right"><a href="index.html"><img border="0" alt="[Contents]" src="icons/contents.gif"></a><a href="GuideIX.html"><img border="0" alt="[Index]" src="icons/index.gif"></a><a href="c-filesys.html"><img border="0" alt="[Top]" src="icons/top.gif"></a><a href="c-filesys3.html"><img border="0" alt="[Prev]" src="icons/prev.gif"></a><a href="c-filesys5.html"><img border="0" alt="[Next]" src="icons/next.gif"></a></p><font face="Helvetica, sans-serif" class="sans"><h3 class="H2"><i><a name="85833">4.4  &nbsp;&nbsp;Raw File System: rawFs</a></i></h3></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="85835"> </a>VxWorks provides a minimal "file system," rawFs, for use in systems that require only the most basic disk I/O functions. The rawFs file system, implemented in <b class="library">rawFsLib</b>, treats the entire disk volume much like a single large file. Although the dosFs and rt11Fs file systems do provide this ability to varying degrees, the rawFs file system offers advantages in size and performance if more complex functions are not required.</p></dl></dl><font face="Helvetica, sans-serif" class="sans"><h4 class="H3"><i><a name="85837">4.4.1  &nbsp;&nbsp;Disk Organization</a></i></h4></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="85839"> </a>As mentioned previously, rawFs imposes no organization of the data on the disk.</p><dd><p class="Body"><a name="85840"> </a>The rawFs file system maintains no directory information; thus there is no division of the disk area into specific files, and no file names are used. All <b class="routine"><i class="routine">open</i></b><b>(&nbsp;)</b> operations on rawFs devices specify only the device name; no additional file names are allowed.</p><dd><p class="Body"><a name="85841"> </a>The entire disk area is available to any file descriptor that is open for the device. All read and write operations to the disk use a byte-offset relative to the start of the first block on the disk.</p></dl></dl><font face="Helvetica, sans-serif" class="sans"><h4 class="H3"><i><a name="85842">4.4.2  &nbsp;&nbsp;Initializing the rawFs File System</a></i></h4></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="85844"> </a>Before any other operations can be performed, the rawFs library, <b class="library">rawFsLib</b>, must be initialized by calling <b class="routine"><i class="routine">rawFsInit</i></b><b>(&nbsp;)</b>. This routine takes a single parameter, the maximum number of rawFs file descriptors that can be open at one time. This count is used to allocate a set of descriptors; a descriptor is used each time a rawFs device is opened.</p><dd><p class="Body"><a name="85846"> </a>The <b class="routine"><i class="routine">rawFsInit</i></b><b>(&nbsp;)</b> routine also makes an entry for the rawFs file system in the I/O system driver table (with <b class="routine"><i class="routine">iosDrvInstall</i></b><b>(&nbsp;)</b>). This entry specifies the entry points for rawFs file operations and is for all devices that use the rawFs file system. The driver number assigned to the rawFs file systems is placed in a global variable <b class="symbol_lc">rawFsDrvNum</b>.</p><dd><p class="Body"><a name="85848"> </a>The <b class="routine"><i class="routine">rawFsInit</i></b><b>(&nbsp;)</b> routine is normally called by the <b class="routine"><i class="routine">usrRoot</i></b><b>(&nbsp;)</b> task after starting the VxWorks system. To use this initialization, define <b class="symbol_UC">INCLUDE_RAWFS</b> in the project facility VxWorks view, and set <b class="symbol_UC">NUM_RAWFS_FILES</b> to the desired maximum open file descriptor count on the <b class="guiLabel"><font face="Helvetica, sans-serif" size="-1" class="sans">Params</font></b> tab of the properties window.</p></dl></dl><font face="Helvetica, sans-serif" class="sans"><h4 class="H3"><i><a name="85851">4.4.3  &nbsp;&nbsp;Initializing a Device for Use with the rawFs File System</a></i></h4></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="85853"> </a>After the rawFs file system is initialized, the next step is to create one or more devices. Devices are created by the device driver's device creation routine (<i class="textVariable">xx</i><b class="routine"><i class="routine">DevCreate</i></b><b>(&nbsp;)</b>). The driver routine returns a pointer to a block device descriptor structure (<b class="symbol_UC">BLK_DEV</b>). The <b class="symbol_UC">BLK_DEV</b> structure describes the physical aspects of the device and specifies the routines in the device driver that a file system can call. For more information on block devices, see <a href="c-iosys9.html#85946"><i class="title">3.9.4&nbsp;Block Devices</i></a>.</p><dd><p class="Body"><a name="85858"> </a>Immediately after its creation, the block device has neither a name nor a file system associated with it. To initialize a block device for use with rawFs, the already-created block device must be associated with rawFs and a name must be assigned to it. This is done with the <b class="routine"><i class="routine">rawFsDevInit</i></b><b>(&nbsp;)</b> routine. Its parameters are the name to be used to identify the device and a pointer to the block device descriptor structure (<b class="symbol_UC">BLK_DEV</b>):</p><dl class="margin"><dd><pre class="Code2"><b><a name="85860">RAW_VOL_DESC&nbsp;*pVolDesc; BLK_DEV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*pBlkDev; pVolDesc = rawFsDevInit ("DEV1:", pBlkDev); </a></b></pre></dl><dd><p class="Body"><a name="85864"> </a>The <b class="routine"><i class="routine">rawFsDevInit</i></b><b>(&nbsp;)</b> call assigns the specified name to the device and enters the device in the I/O system device table (with <b class="routine"><i class="routine">iosDevAdd</i></b><b>(&nbsp;)</b>). It also allocates and initializes the file system's volume descriptor for the device. It returns a pointer to the volume descriptor to the caller; this pointer is used to identify the volume during certain file system calls.</p><dd><p class="Body"><a name="85865"> </a>Note that initializing the device for use with rawFs does not format the disk. That is done using an <b class="routine"><i class="routine">ioctl</i></b><b>(&nbsp;)</b> call with the <b class="symbol_UC">FIODISKFORMAT</b> function.</p><dd><p class="Body"><a name="85867"> </a>No disk initialization (<b class="symbol_UC">FIODISKINIT</b>) is required, because there are no file system structures on the disk. Note, however, that rawFs accepts that <b class="routine"><i class="routine">ioctl</i></b><b>(&nbsp;)</b> function code for compatibility with other file systems; in such cases, it performs no action and always returns <b class="symbol_UC">OK</b>.</p></dl></dl><font face="Helvetica, sans-serif" class="sans"><h4 class="H3"><i><a name="85869">4.4.4  &nbsp;&nbsp;Mounting Volumes</a></i></h4></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="85871"> </a>A disk volume is <i class="term">mounted</i> automatically, generally during the first <b class="routine"><i class="routine">open</i></b><b>(&nbsp;)</b> or <b class="routine"><i class="routine">creat</i></b><b>(&nbsp;)</b> operation. (Certain <b class="routine"><i class="routine">ioctl</i></b><b>(&nbsp;)</b> functions also cause the disk to be mounted.) The volume is again mounted automatically on the first disk access following a ready-change operation (see <a href="c-filesys4.html#85885"><i class="title">4.4.6&nbsp;Changing Disks</i></a>).</p></dl></dl><dl class="margin"><dd><p class="table" callout><table border="0" cellpadding="0" cellspacing="0"><tr valign="top"><td valign="top" width="40"><br><img border="0" alt="*" src="icons/caution.gif"></td><td><hr><div class="CalloutCell"><a name="87183"><b class="symbol_UC"><font face="Helvetica, sans-serif" size="-1" class="sans">CAUTION:  </font></b></a>Because device names are recognized by the I/O system using simple substring matching, file systems should not use a slash (<b>/</b>) alone as a name; unexpected results may occur.</div></td></tr><tr valign="top"><td></td><td><hr></td></tr><tr valign="middle"><td colspan="20"></td></tr></table></p callout></dl><font face="Helvetica, sans-serif" class="sans"><h4 class="H3"><i><a name="85875">4.4.5  &nbsp;&nbsp;File I/O</a></i></h4></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="85877"> </a>To begin I/O to a rawFs device, first open the device using the standard <b class="routine"><i class="routine">open</i></b><b>(&nbsp;)</b> function. (The <b class="routine"><i class="routine">creat</i></b><b>(&nbsp;)</b> function can be used instead, although nothing is actually "created.") Data on the rawFs device is written and read using the standard I/O routines <b class="routine"><i class="routine">write</i></b><b>(&nbsp;)</b> and <b class="routine"><i class="routine">read</i></b><b>(&nbsp;)</b>. For more information, see <a href="c-iosys3.html#83659"><i class="title">3.3&nbsp;Basic I/O</i></a>.</p><dd><p class="Body"><a name="85881"> </a>The character pointer associated with a file descriptor (that is, the byte offset where reads and writes take place) can be set by using <b class="routine"><i class="routine">ioctl</i></b><b>(&nbsp;)</b> with the <b class="symbol_UC">FIOSEEK</b> function.</p><dd><p class="Body"><a name="85882"> </a>Multiple file descriptors can be open simultaneously for a single device. These must be carefully managed to avoid modifying data that is also being used by another file descriptor. In most cases, such multiple open descriptors use <b class="symbol_UC">FIOSEEK</b> to set their character pointers to separate disk areas.</p></dl></dl><font face="Helvetica, sans-serif" class="sans"><h4 class="H3"><i><a name="85885">4.4.6  &nbsp;&nbsp;Changing Disks</a></i></h4></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="85887"> </a>The rawFs file system must be notified when removable disks are changed (for example, when floppies are swapped). Two different notification methods are provided: (1)&nbsp;<b class="routine"><i class="routine">rawFsVolUnmount</i></b><b>(&nbsp;)</b> and (2) the ready-change mechanism.</p></dl></dl><font face="Helvetica, sans-serif" class="sans"><h4 class="H4"><i><a name="85890">Unmounting Volumes</a></i></h4></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="85891"> </a>The first method of announcing a disk change is to call <b class="routine"><i class="routine">rawFsVolUnmount</i></b><b>(&nbsp;)</b> prior to removing the disk. This call flushes all modified file descriptor buffers if possible (see <a href="c-filesys4.html#85933"><i class="title">Synchronizing Volumes</i></a>) and also marks any open file descriptors as obsolete. The next I/O operation remounts the disk. Calling <b class="routine"><i class="routine">ioctl</i></b><b>(&nbsp;)</b> with <b class="symbol_UC">FIOUNMOUNT</b> is equivalent to using <b class="routine"><i class="routine">rawFsVolUnmount</i></b><b>(&nbsp;)</b>. Any open file descriptor to the device can be used in the <b class="routine"><i class="routine">ioctl</i></b><b>(&nbsp;)</b> call.</p><dd><p class="Body"><a name="85896"> </a>Attempts to use obsolete file descriptors for further I/O operations produce an <b class="symbol_UC">S_rawFsLib_FD_OBSOLETE</b> error. To free an obsolete descriptor, use <b class="routine"><i class="routine">close</i></b><b>(&nbsp;)</b>, as usual. This frees the descriptor even though it produces the same error.</p><dd><p class="Body"><a name="85901"> </a>ISRs must not call <b class="routine"><i class="routine">rawFsVolUnmount</i></b><b>(&nbsp;)</b> directly, because the call can pend while the device becomes available. The ISR can instead give a semaphore that prompts a task to unmount the volume. (Note that <b class="routine"><i class="routine">rawFsReadyChange</i></b><b>(&nbsp;)</b> can be called directly from ISRs; see <a href="c-filesys4.html#85914"><i class="title">Announcing Disk Changes with Ready-Change</i></a>.)</p><dd><p class="Body"><a name="85905"> </a>When <b class="routine"><i class="routine">rawFsVolUnmount</i></b><b>(&nbsp;)</b> is called, it attempts to write buffered data out to the disk. Its use is therefore inappropriate for situations where the disk-change notification does not occur until a new disk is inserted, because the old buffered data would be written to the new disk. In this case, use <b class="routine"><i class="routine">rawFsReadyChange</i></b><b>(&nbsp;)</b>, which is described in <a href="c-filesys4.html#85914"><i class="title">Announcing Disk Changes with Ready-Change</i></a>.</p><dd><p class="Body"><a name="85909"> </a>If <b class="routine"><i class="routine">rawFsVolUnmount</i></b><b>(&nbsp;)</b> is called after the disk is physically removed, the data flushing portion of its operation fails. However, the file descriptors are still marked as obsolete, and the disk is marked as requiring remounting. An error is <i class="emphasis">not</i> returned by <b class="routine"><i class="routine">rawFsVolUnmount</i></b><b>(&nbsp;)</b>; to avoid lost data in this situation, explicitly synchronize the disk before removing it (see <a href="c-filesys4.html#85933"><i class="title">Synchronizing Volumes</i></a>).</p></dl></dl><font face="Helvetica, sans-serif" class="sans"><h4 class="H4"><i><a name="85914">Announcing Disk Changes with Ready-Change</a></i></h4></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="85916"> </a><b><i></i></b>The second method of announcing that a disk change is taking place is with the <i class="term">ready-change</i> mechanism. A change in the disk's ready-status is interpreted by <b class="library">rawFsLib</b> to indicate that the disk must be remounted during the next I/O call.</p><dd><p class="Body"><a name="85917"> </a>There are three ways to announce a ready-change:</p></dl><dl class="margin"><p class="listspace"><ul class="Bullet" type="disc"><li><a name="85919"> </a>By calling <b class="routine"><i class="routine">rawFsReadyChange</i></b><b>(&nbsp;)</b> directly.</li></ul></p><p class="listspace"><ul class="Bullet" type="disc"><li><a name="85921"> </a>By calling <b class="routine"><i class="routine">ioctl</i></b><b>(&nbsp;)</b> with <b class="symbol_UC">FIODISKCHANGE</b>.</li></ul></p><p class="listspace"><ul class="Bullet" type="disc"><li><a name="85922"> </a>By having the device driver set the <b class="symbol_lc">bd_readyChanged</b> field in the <b class="symbol_UC">BLK_DEV</b> structure to TRUE; this has the same effect as notifying <b class="library">rawFsLib</b> directly.</li></ul></p></dl><dl class="margin"><dd><p class="Body"><a name="85923"> </a>The ready-change announcement does not cause buffered data to be flushed to the disk. It merely marks the volume as needing remounting. As a result, data written to files can be lost. This can be avoided by synchronizing the disk before asserting ready-change. The combination of synchronizing and asserting ready-change provides all the functionality of <b class="routine"><i class="routine">rawFsVolUnmount</i></b><b>(&nbsp;)</b> except for marking file descriptors as obsolete.</p><dd><p class="Body"><a name="85925"> </a>Ready-change can be used in ISRs, because it does not attempt to flush data or perform other operations that could cause delay.</p><dd><p class="Body"><a name="85926"> </a>The block device driver status-check routine (identified by the <b class="symbol_lc">bd_statusChk</b> field in the <b class="symbol_UC">BLK_DEV</b> structure) is useful for asserting ready-change for devices that only detect a disk change after the new disk is inserted. This routine is called at the beginning of each <b class="routine"><i class="routine">open</i></b><b>(&nbsp;)</b> or <b class="routine"><i class="routine">creat</i></b><b>(&nbsp;)</b>, before the file system checks for ready-change.</p></dl></dl><font face="Helvetica, sans-serif" class="sans"><h4 class="H4"><i><a name="85929">Disks with No Change Notification</a></i></h4></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="85930"> </a>If it is not possible for a ready-change to be announced each time the disk is changed, close all file descriptors for the volume before changing the disk.</p></dl>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久国产97色综合| 高清国产午夜精品久久久久久| 97精品久久久午夜一区二区三区| 国产丝袜美腿一区二区三区| 国产综合色产在线精品| 日韩精品一区二区三区老鸭窝| 精品亚洲成a人| 欧美国产一区二区| 91麻豆精品秘密| 亚洲va韩国va欧美va| 91精品蜜臀在线一区尤物| 麻豆国产一区二区| 久久精品人人爽人人爽| www.欧美.com| 亚洲国产视频一区| 精品日产卡一卡二卡麻豆| 国产精品系列在线观看| 亚洲欧洲韩国日本视频| 欧美性生活大片视频| 麻豆国产欧美日韩综合精品二区 | 久久av中文字幕片| 久久久99久久| 91啪亚洲精品| 免费美女久久99| 成人欧美一区二区三区黑人麻豆 | 成年人午夜久久久| 亚洲一二三四久久| 精品不卡在线视频| 91久久香蕉国产日韩欧美9色| 蜜臀av性久久久久蜜臀aⅴ| 中文字幕国产一区| 欧美日韩精品三区| 国产高清精品在线| 午夜精品福利一区二区蜜股av| 精品久久久久久无| 色中色一区二区| 国产在线视频一区二区| 一区二区国产视频| 久久久久久麻豆| 欧美日韩一区二区在线视频| 激情五月婷婷综合| 香港成人在线视频| 国产精品乱码人人做人人爱 | 久久九九99视频| 在线免费不卡视频| aaa欧美日韩| 国产伦精品一区二区三区免费迷 | 日韩午夜中文字幕| 在线亚洲高清视频| 成人av片在线观看| 国内一区二区在线| 午夜伊人狠狠久久| 亚洲摸摸操操av| 国产欧美日韩视频一区二区| 欧美一区二区三区小说| 欧美亚州韩日在线看免费版国语版| 国产在线精品一区二区三区不卡| 亚洲成人久久影院| 亚洲欧美激情在线| 中文字幕乱码日本亚洲一区二区 | 久久久美女毛片| 欧美精品xxxxbbbb| 在线免费不卡视频| 欧美性色欧美a在线播放| 97超碰欧美中文字幕| 成人在线一区二区三区| 粉嫩av一区二区三区在线播放 | 午夜激情综合网| 亚洲中国最大av网站| 综合欧美亚洲日本| 中文字幕一区二区三区乱码在线 | 亚洲精品成a人| 亚洲手机成人高清视频| 国产精品传媒入口麻豆| 国产午夜亚洲精品羞羞网站| 日韩视频在线你懂得| 欧美日韩国产高清一区二区三区 | 美脚の诱脚舐め脚责91 | 在线成人高清不卡| 色婷婷一区二区| 成人福利视频在线看| 国产成人h网站| 久久99精品久久久久久动态图| 亚洲在线一区二区三区| 亚洲色图在线视频| 亚洲欧美色一区| 亚洲人xxxx| 中文字幕亚洲欧美在线不卡| 欧美欧美欧美欧美| 国产精品一二三区在线| 成人手机电影网| 国产精品亚洲视频| 韩国三级在线一区| 九九国产精品视频| 久久机这里只有精品| 精品一区二区在线视频| 蜜桃视频一区二区三区| 免费欧美在线视频| 久久66热偷产精品| 国产专区综合网| 国产精品1区2区| 国产一区二区三区在线观看免费视频 | 日本高清成人免费播放| 97se狠狠狠综合亚洲狠狠| 菠萝蜜视频在线观看一区| 国产成人免费视频一区| 丁香网亚洲国际| 91浏览器打开| 成人福利电影精品一区二区在线观看| 久久99日本精品| 国产成人在线视频播放| 成人免费观看av| 在线观看国产一区二区| 欧美日韩高清不卡| 精品国产乱码久久久久久闺蜜| 日韩精品在线网站| 精品粉嫩aⅴ一区二区三区四区| 国产精品萝li| 亚洲高清中文字幕| 久久精品免费看| 国产不卡一区视频| 99国内精品久久| 欧美色爱综合网| 欧美大片在线观看| 国产精品久久久久久久久动漫 | 久久综合九色综合欧美亚洲| 中文字幕第一区二区| 亚洲精品视频在线| 日韩高清在线一区| 国产精品18久久久久久久久| 91日韩在线专区| 日韩欧美高清在线| 国产片一区二区三区| √…a在线天堂一区| 亚洲激情在线激情| 久久精品国产精品青草| 99久久久国产精品| 9191成人精品久久| 久久久久久日产精品| 三级久久三级久久久| 粉嫩aⅴ一区二区三区四区五区| 在线观看一区日韩| 久久精品亚洲一区二区三区浴池| 伊人性伊人情综合网| 激情国产一区二区| 成人av在线资源网站| 国产亚洲精品免费| 日韩电影一二三区| 91色|porny| 久久久精品综合| 日日摸夜夜添夜夜添国产精品| 国产成人精品免费在线| 欧美精品久久天天躁| 国产精品免费久久| 韩国av一区二区三区在线观看| 在线观看www91| 国产精品久久久久9999吃药| 免费观看在线综合| 99久久亚洲一区二区三区青草| 日韩欧美一卡二卡| 亚洲福利国产精品| 床上的激情91.| 久久久久久一二三区| 日本免费新一区视频| 欧美日韩色一区| 亚洲欧美日韩小说| av欧美精品.com| 欧美一区二区三区色| 午夜精品在线看| 在线国产亚洲欧美| 国产精品短视频| 国产成人午夜高潮毛片| 日韩欧美成人激情| 国产成人免费在线| 久久精品亚洲精品国产欧美kt∨| 麻豆免费看一区二区三区| 欧美精品 国产精品| 亚洲国产精品综合小说图片区| 国产成人aaa| 日本一区二区三区四区| 国产主播一区二区三区| 精品久久久久久综合日本欧美| 奇米影视一区二区三区小说| 欧美日韩中文字幕精品| 亚洲欧洲av在线| 欧洲精品在线观看| 亚洲一区二区av在线| 日本大香伊一区二区三区| 亚洲综合无码一区二区| 欧洲精品在线观看| 青娱乐精品在线视频| 欧美一区二区日韩一区二区| 日韩和欧美的一区| 91精品国产欧美一区二区成人 | 日韩精品一区二区三区在线| 国产精品99久久久久| 国产色一区二区| 成人黄色在线视频| 亚洲青青青在线视频| 色噜噜狠狠一区二区三区果冻|