Skip to content

Commit

Permalink
Deploying to gh-pages from @ 16d61f2 🚀
Browse files Browse the repository at this point in the history
  • Loading branch information
ClementNerma committed Oct 5, 2023
1 parent 607b296 commit f1db2b6
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 230 deletions.
125 changes: 11 additions & 114 deletions print.html
Original file line number Diff line number Diff line change
Expand Up @@ -1926,10 +1926,7 @@ <h3 id="filesystem-elements"><a class="header" href="#filesystem-elements">Files
<p>(S) <code>fs.items.write</code>: update an existing filesystem element's content</p>
</li>
<li>
<p>(S) <code>fs.items.lock</code>: lock an item to prevent modifications from other processes</p>
</li>
<li>
<p>(S) <code>fs.items.lock.full</code>: lock an item to prevent modifications and access from other processes</p>
<p>(S) <code>fs.items.lock</code>: lock an item to prevent access from other processes</p>
</li>
<li>
<p>(S) <code>fs.dir.read</code>: list items contained inside given directories</p>
Expand Down Expand Up @@ -7866,6 +7863,8 @@ <h2 id="list-of-system-services"><a class="header" href="#list-of-system-service
<div style="break-before: page; page-break-before: always;"></div><h1 id="sysfs-service"><a class="header" href="#sysfs-service"><code>sys::fs</code> service</a></h1>
<p>The <code>sys::fs</code> service is in charge of operations related to the <a href="specs/services/system/../../filesystem.html">filesystems</a>.</p>
<ul>
<li><a href="specs/services/system/fs.html#sysfs-service"><code>sys::fs</code> service</a>
<ul>
<li><a href="specs/services/system/fs.html#behaviour">Behaviour</a>
<ul>
<li><a href="specs/services/system/fs.html#operations-and-latency">Operations and latency</a></li>
Expand All @@ -7892,10 +7891,8 @@ <h2 id="list-of-system-services"><a class="header" href="#list-of-system-service
<li><a href="specs/services/system/fs.html#0x2000-create_directory"><code>0x2000</code> CREATE_DIRECTORY</a></li>
<li><a href="specs/services/system/fs.html#0x2001-read_directory"><code>0x2001</code> READ_DIRECTORY</a></li>
<li><a href="specs/services/system/fs.html#0x3000-create_file"><code>0x3000</code> CREATE_FILE</a></li>
<li><a href="specs/services/system/fs.html#0x3001-read_file_sync"><code>0x3001</code> READ_FILE_SYNC</a></li>
<li><a href="specs/services/system/fs.html#0x3002-read_file_async"><code>0x3002</code> READ_FILE_ASYNC</a></li>
<li><a href="specs/services/system/fs.html#0x3003-write_file_sync"><code>0x3003</code> WRITE_FILE_SYNC</a></li>
<li><a href="specs/services/system/fs.html#0x3004-write_file_async"><code>0x3004</code> WRITE_FILE_ASYNC</a></li>
<li><a href="specs/services/system/fs.html#0x3001-read_file"><code>0x3001</code> READ_FILE</a></li>
<li><a href="specs/services/system/fs.html#0x3101-write_file"><code>0x3101</code> WRITE_FILE</a></li>
<li><a href="specs/services/system/fs.html#0x4000-create_symlink"><code>0x4000</code> CREATE_SYMLINK</a></li>
<li><a href="specs/services/system/fs.html#0x4001-update_symlink"><code>0x4001</code> UPDATE_SYMLINK</a></li>
<li><a href="specs/services/system/fs.html#0x4002-read_symlink"><code>0x4002</code> READ_SYMLINK</a></li>
Expand All @@ -7910,14 +7907,14 @@ <h2 id="list-of-system-services"><a class="header" href="#list-of-system-service
<li><a href="specs/services/system/fs.html#notifications">Notifications</a>
<ul>
<li><a href="specs/services/system/fs.html#0x0006-fs_changed"><code>0x0006</code> FS_CHANGED</a></li>
<li><a href="specs/services/system/fs.html#0x3002-file_read"><code>0x3002</code> FILE_READ</a></li>
<li><a href="specs/services/system/fs.html#0x3004-file_written"><code>0x3004</code> FILE_WRITTEN</a></li>
<li><a href="specs/services/system/fs.html#0xa000-item_changed"><code>0xA000</code> ITEM_CHANGED</a></li>
<li><a href="specs/services/system/fs.html#0xa001-dir_content_changed"><code>0xA001</code> DIR_CONTENT_CHANGED</a></li>
<li><a href="specs/services/system/fs.html#0xf000-formatted"><code>0xF000</code> FORMATTED</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="behaviour"><a class="header" href="#behaviour">Behaviour</a></h2>
<h3 id="operations-and-latency"><a class="header" href="#operations-and-latency">Operations and latency</a></h3>
<p>A single filesystem operation request from a client process up to the hardware device traverses:</p>
Expand Down Expand Up @@ -8272,7 +8269,7 @@ <h3 id="0x3000-create_file-1"><a class="header" href="#0x3000-create_file-1"><co
<li><code>0x4005</code>: Filesystem's free space exceeded</li>
<li><code>0x4FFF</code>: Unspecified filesystem error</li>
</ul>
<h3 id="0x3001-read_file_sync-1"><a class="header" href="#0x3001-read_file_sync-1"><code>0x3001</code> READ_FILE_SYNC</a></h3>
<h3 id="0x3001-read_file"><a class="header" href="#0x3001-read_file"><code>0x3001</code> READ_FILE</a></h3>
<p>Read a file synchronously.</p>
<p>If no read length is provided, the whole file must be read.</p>
<p><strong>Required permissions:</strong></p>
Expand All @@ -8298,34 +8295,7 @@ <h3 id="0x3001-read_file_sync-1"><a class="header" href="#0x3001-read_file_sync-
<li><code>0x3002</code>: Start offset is out-of-range</li>
<li><code>0x4FFF</code>: Unspecified filesystem error</li>
</ul>
<h3 id="0x3002-read_file_async-1"><a class="header" href="#0x3002-read_file_async-1"><code>0x3002</code> READ_FILE_ASYNC</a></h3>
<p>Asynchronously read a file to a writable <a href="specs/services/system/../../kernel/memory.html#abstract-memory-segments">abstract memory segment (AMS)</a>.</p>
<p>THe number of bytes to read is always provided to ensure it does not accidentally exceed the AMS's size.</p>
<p>When the read is complete, a <a href="specs/services/system/fs.html#0x3002-file_read"><code>FILE_READ</code></a> notification must be sent to the client.</p>
<p><strong>Required permissions:</strong></p>
<ul>
<li><code>fs.items.read</code></li>
</ul>
<p><strong>Arguments:</strong></p>
<ul>
<li><a href="specs/services/system/../../filesystem.html#filesystem-unique-identifier">FSID</a> (40 bytes)</li>
<li>File's <a href="specs/services/system/../integration/filesystem-interfaces.html#filesystem-paths">path</a></li>
<li>Start offset address (8 bytes)</li>
<li>Number of bytes to read (8 bytes)</li>
<li>AMS identifier (8 bytes)</li>
</ul>
<p><strong>Return value:</strong></p>
<ul>
<li>Generated task identifier (8 bytes)</li>
</ul>
<p><strong>Errors:</strong></p>
<ul>
<li><code>0x3000</code>: Invalid FSID provided</li>
<li><code>0x3001</code>: Requested filesystem is currently not mounted</li>
<li><code>0x3002</code>: Invalid AMS ID provided</li>
<li><code>0x4FFF</code>: Unspecified filesystem error</li>
</ul>
<h3 id="0x3003-write_file_sync-1"><a class="header" href="#0x3003-write_file_sync-1"><code>0x3003</code> WRITE_FILE_SYNC</a></h3>
<h3 id="0x3101-write_file"><a class="header" href="#0x3101-write_file"><code>0x3101</code> WRITE_FILE</a></h3>
<p>Synchronously write a buffer to a file.</p>
<p>If no offset address is provided, the file's content must be completely overriden with the provided buffer.</p>
<p><strong>Required permissions:</strong></p>
Expand All @@ -8352,33 +8322,6 @@ <h3 id="0x3003-write_file_sync-1"><a class="header" href="#0x3003-write_file_syn
<li><code>0x4002</code>: Filesystem's free space exceeded</li>
<li><code>0x4FFF</code>: Unspecified filesystem error</li>
</ul>
<h3 id="0x3004-write_file_async-1"><a class="header" href="#0x3004-write_file_async-1"><code>0x3004</code> WRITE_FILE_ASYNC</a></h3>
<p>Asynchronously write a readable <a href="specs/services/system/../../kernel/memory.html#abstract-memory-segments">abstract memory segment (AMS)</a> to a file.</p>
<p>If no offset address is provided, the file's content must be completely overriden with the provided buffer.</p>
<p>When the writing is complete, a <a href="specs/services/system/fs.html#0x3004-file_written"><code>FILE_WRITTEN</code></a> notification must be sent to the client. The notification <strong>must not</strong> be sent before the current method returned successfully.</p>
<p><strong>Required permissions:</strong></p>
<ul>
<li><code>fs.items.write</code></li>
</ul>
<p><strong>Arguments:</strong></p>
<ul>
<li><a href="specs/services/system/../../filesystem.html#filesystem-unique-identifier">FSID</a> (40 bytes)</li>
<li>File's <a href="specs/services/system/../integration/filesystem-interfaces.html#filesystem-paths">path</a></li>
<li><a href="specs/services/system/../../kernel/data-structures.html#options">Optional</a> write offset address (1 + 8 bytes)</li>
<li>Number of bytes to write (8 bytes)</li>
<li>AMS identifier (8 bytes)</li>
</ul>
<p><strong>Return value:</strong></p>
<ul>
<li>Generated task identifier (8 bytes)</li>
</ul>
<p><strong>Errors:</strong></p>
<ul>
<li><code>0x3000</code>: Invalid FSID provided</li>
<li><code>0x3001</code>: Requested filesystem is currently not mounted</li>
<li><code>0x3002</code>: Invalid AMS ID provided</li>
<li><code>0x4FFF</code>: Unspecified filesystem error</li>
</ul>
<h3 id="0x4000-create_symlink-1"><a class="header" href="#0x4000-create_symlink-1"><code>0x4000</code> CREATE_SYMLINK</a></h3>
<p>Create a <a href="specs/services/system/../../filesystem.html#symbolic-links">symbolic link</a>.</p>
<p><strong>Required permissions:</strong></p>
Expand Down Expand Up @@ -8501,34 +8444,24 @@ <h3 id="0xa002-unwatch"><a class="header" href="#0xa002-unwatch"><code>0xA002</c
<li><code>0x3000</code>: Provided watch identifier was not found</li>
</ul>
<h3 id="0xaa00-lock_item"><a class="header" href="#0xaa00-lock_item"><code>0xAA00</code> LOCK_ITEM</a></h3>
<p>Lock an item to prevent modifications and/or complete access from other processes.</p>
<p>No-modification mode will prevent changing the item's data and metadata (except timestamps).</p>
<p><a href="specs/services/system/fs.html#0xa000-item_changed"><code>ITEM_CHANGED</code></a> and <a href="specs/services/system/fs.html#0xa001-dir_content_changed"><code>DIR_CONTENT_CHANGED</code></a> notifications won't be triggered for the locking process.</p>
<p>Lock an item to prevent modifications, access, renaming and removal from other processes.</p>
<p><strong>Required permissions:</strong></p>
<ul>
<li><code>fs.items.lock</code>: lock a single item</li>
<li><code>fs.items.lock.full</code>: lock a single item with exclusive mode</li>
<li><code>fs.dir.lock</code>: lock a full directory's content</li>
<li><code>fs.dir.lock.full</code>: lock a full directory's content with exclusive mode</li>
<li><code>fs.items.lock</code></li>
</ul>
<p><strong>Arguments:</strong></p>
<ul>
<li><a href="specs/services/system/../../filesystem.html#filesystem-unique-identifier">FSID</a> (8 bytes)</li>
<li>Item's <a href="specs/services/system/../integration/filesystem-interfaces.html#filesystem-paths">path</a></li>
<li>Recursive mode (1 byte): <code>0x01</code> if the item is a directory and all its content should be locked, <code>0x00</code> otherwise</li>
<li>Exclusive move (1 byte): <code>0x01</code> to prevent access from other processes, <code>0x00</code> otherwise</li>
</ul>
<p><strong>Return value:</strong></p>
<ul>
<li>Generated lock identifier (8 bytes)</li>
</ul>
<p><strong>Errors:</strong></p>
<ul>
<li><code>0x1000</code>: Invalid recursive mode</li>
<li><code>0x1001</code>: Invalid exclude mode</li>
<li><code>0x3000</code>: Provided FSID was not found</li>
<li><code>0x3001</code>: Provided item was not found</li>
<li><code>0x3002</code>: Cannot lock in recursive mode as the item is not a directory</li>
<li><code>0x4000</code>: A lock is already in place on this item</li>
</ul>
<h3 id="0xaa01-unlock_item"><a class="header" href="#0xaa01-unlock_item"><code>0xAA01</code> UNLOCK_ITEM</a></h3>
Expand Down Expand Up @@ -8572,42 +8505,6 @@ <h3 id="0x0006-fs_changed"><a class="header" href="#0x0006-fs_changed"><code>0x0
<li>Mount status (1 byte): <code>0x01</code> if the filesystem was mounted, <code>0x02</code> if it was unmounted</li>
<li><a href="specs/services/system/../../filesystem.html#filesystem-unique-identifier">FSID</a> (8 bytes)</li>
</ul>
<h3 id="0x3002-file_read-1"><a class="header" href="#0x3002-file_read-1"><code>0x3002</code> FILE_READ</a></h3>
<p>Sent to a client after an asynchronous file reading requested using the <a href="specs/services/system/fs.html#0x3002-read_file_async"><code>READ_FILE_ASYNC</code></a> method completed.</p>
<p><strong>Datafield:</strong></p>
<ul>
<li>Task identifier (8 bytes)</li>
<li><a href="specs/services/system/../../kernel/data-structures.html#fallible-results">Fallible result</a> with:
<ul>
<li>Success data: number of bytes read (8 bytes)</li>
<li>Error code (1 byte)
<ul>
<li><code>0x20</code>: Start offset is out-of-range</li>
<li><code>0x40</code>: Unspecified filesystem error</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="0x3004-file_written-1"><a class="header" href="#0x3004-file_written-1"><code>0x3004</code> FILE_WRITTEN</a></h3>
<p>Sent to a client after an asynchronous file writing requested using the <a href="specs/services/system/fs.html#0x3004-write_file_async"><code>WRITE_FILE_ASYNC</code></a> method completed.</p>
<p><strong>Datafield:</strong></p>
<ul>
<li>Task identifier (8 bytes)</li>
<li><a href="specs/services/system/../../kernel/data-structures.html#fallible-results">Fallible result</a> with:
<ul>
<li>Success data: <em>None</em></li>
<li>Error code (1 byte):
<ul>
<li><code>0x20</code>: Start offset is out-of-range</li>
<li><code>0x31</code>: Maximum individual file size exceeded</li>
<li><code>0x32</code>: Filesystem's free space exceeded</li>
<li><code>0x40</code>: Unspecified filesystem error</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="0xa000-item_changed"><a class="header" href="#0xa000-item_changed"><code>0xA000</code> ITEM_CHANGED</a></h3>
<p>Notification sent to clients watching an item through the <a href="specs/services/system/fs.html#0xa000-watch_item"><code>WATCH_ITEM</code></a> method.</p>
<p><strong>Datafield:</strong></p>
Expand Down
2 changes: 1 addition & 1 deletion searchindex.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion searchindex.json

Large diffs are not rendered by default.

5 changes: 1 addition & 4 deletions specs/permissions.html
Original file line number Diff line number Diff line change
Expand Up @@ -258,10 +258,7 @@ <h3 id="filesystem-elements"><a class="header" href="#filesystem-elements">Files
<p>(S) <code>fs.items.write</code>: update an existing filesystem element's content</p>
</li>
<li>
<p>(S) <code>fs.items.lock</code>: lock an item to prevent modifications from other processes</p>
</li>
<li>
<p>(S) <code>fs.items.lock.full</code>: lock an item to prevent modifications and access from other processes</p>
<p>(S) <code>fs.items.lock</code>: lock an item to prevent access from other processes</p>
</li>
<li>
<p>(S) <code>fs.dir.read</code>: list items contained inside given directories</p>
Expand Down
Loading

0 comments on commit f1db2b6

Please sign in to comment.