<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.9.1" xml:lang="en-US">
  <compounddef id="filesystem_8h" kind="file" language="C++">
    <compoundname>filesystem.h</compoundname>
    <includedby refid="kernel_8h" local="yes">kernel.h</includedby>
    <invincdepgraph>
      <node id="28">
        <label>ramdisk.h</label>
        <link refid="ramdisk_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="3">
        <label>acpi.h</label>
        <link refid="acpi_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="5">
        <label>arp.h</label>
        <link refid="arp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="10">
        <label>dns.h</label>
        <link refid="dns_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="14">
        <label>fat32.h</label>
        <link refid="fat32_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="32">
        <label>udp.h</label>
        <link refid="udp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="31">
        <label>tcp.h</label>
        <link refid="tcp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="8">
        <label>devicename.h</label>
        <link refid="devicename_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="18">
        <label>idt.h</label>
        <link refid="idt_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="11">
        <label>drawing.h</label>
        <link refid="drawing_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="6">
        <label>basic_tokenizer.h</label>
        <link refid="basic__tokenizer_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="30">
        <label>rtl8139.h</label>
        <link refid="rtl8139_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="27">
        <label>printf.h</label>
        <link refid="printf_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="12">
        <label>e1000.h</label>
        <link refid="e1000_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="19">
        <label>initialisation-functions.h</label>
        <link refid="initialisation-functions_8h"/>
      </node>
      <node id="15">
        <label>fpu.h</label>
        <link refid="fpu_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="17">
        <label>icmp.h</label>
        <link refid="icmp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="21">
        <label>ip.h</label>
        <link refid="ip_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="1">
        <label>filesystem.h</label>
        <link refid="filesystem_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="22">
        <label>maths.h</label>
        <link refid="maths_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="13">
        <label>ethernet.h</label>
        <link refid="ethernet_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="2">
        <label>kernel.h</label>
        <link refid="kernel_8h"/>
        <childnode refid="3" relation="include">
        </childnode>
        <childnode refid="4" relation="include">
        </childnode>
        <childnode refid="5" relation="include">
        </childnode>
        <childnode refid="6" relation="include">
        </childnode>
        <childnode refid="7" relation="include">
        </childnode>
        <childnode refid="8" relation="include">
        </childnode>
        <childnode refid="9" relation="include">
        </childnode>
        <childnode refid="10" relation="include">
        </childnode>
        <childnode refid="11" relation="include">
        </childnode>
        <childnode refid="12" relation="include">
        </childnode>
        <childnode refid="13" relation="include">
        </childnode>
        <childnode refid="14" relation="include">
        </childnode>
        <childnode refid="15" relation="include">
        </childnode>
        <childnode refid="16" relation="include">
        </childnode>
        <childnode refid="17" relation="include">
        </childnode>
        <childnode refid="18" relation="include">
        </childnode>
        <childnode refid="19" relation="include">
        </childnode>
        <childnode refid="20" relation="include">
        </childnode>
        <childnode refid="21" relation="include">
        </childnode>
        <childnode refid="22" relation="include">
        </childnode>
        <childnode refid="23" relation="include">
        </childnode>
        <childnode refid="24" relation="include">
        </childnode>
        <childnode refid="25" relation="include">
        </childnode>
        <childnode refid="26" relation="include">
        </childnode>
        <childnode refid="27" relation="include">
        </childnode>
        <childnode refid="28" relation="include">
        </childnode>
        <childnode refid="29" relation="include">
        </childnode>
        <childnode refid="30" relation="include">
        </childnode>
        <childnode refid="31" relation="include">
        </childnode>
        <childnode refid="32" relation="include">
        </childnode>
      </node>
      <node id="23">
        <label>memcpy.h</label>
        <link refid="memcpy_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="25">
        <label>partition.h</label>
        <link refid="partition_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="29">
        <label>random.h</label>
        <link refid="random_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="16">
        <label>hashmap.h</label>
        <link refid="hashmap_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="24">
        <label>net.h</label>
        <link refid="net_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="20">
        <label>interrupt.h</label>
        <link refid="interrupt_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="26">
        <label>pci.h</label>
        <link refid="pci_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="4">
        <label>ahci.h</label>
        <link refid="ahci_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="9">
        <label>dhcp.h</label>
        <link refid="dhcp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="7">
        <label>clock.h</label>
        <link refid="clock_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
    </invincdepgraph>
    <innerclass refid="structfs__directory__entry__t" prot="public">fs_directory_entry_t</innerclass>
    <innerclass refid="structfilesystem__t" prot="public">filesystem_t</innerclass>
    <innerclass refid="structstorage__device__t" prot="public">storage_device_t</innerclass>
    <innerclass refid="structfs__tree__t" prot="public">fs_tree_t</innerclass>
    <innerclass refid="structfs__handle__t" prot="public">fs_handle_t</innerclass>
      <sectiondef kind="define">
      <memberdef kind="define" id="filesystem_8h_1a15392f5364f7425948d6c8ea0f13ac84" prot="public" static="no">
        <name>FD_MAX</name>
        <initializer>1024</initializer>
        <briefdescription>
<para>Maximum number of file descriptors which can be open at the same time. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="11" column="9" bodyfile="include/filesystem.h" bodystart="11" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="filesystem_8h_1afa125c2bcf72549ba6ccf3e4811c120f" prot="public" static="no">
        <name>IOBUFSZ</name>
        <initializer>8192</initializer>
        <briefdescription>
<para>Default size of IO buffer in open file. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="16" column="9" bodyfile="include/filesystem.h" bodystart="16" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="filesystem_8h_1a3639b6da1cf387c0af6a8a566a716062" prot="public" static="no">
        <name>_O_APPEND</name>
        <initializer>0x00000001</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="19" column="9" bodyfile="include/filesystem.h" bodystart="19" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="filesystem_8h_1a774664d26ae1b1d55902562af5f1ec28" prot="public" static="no">
        <name>_O_CREAT</name>
        <initializer>0x00000002</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="20" column="9" bodyfile="include/filesystem.h" bodystart="20" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="filesystem_8h_1a4d457d93039cb26f27461c4af5868309" prot="public" static="no">
        <name>_O_RDONLY</name>
        <initializer>0x00000004</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="21" column="9" bodyfile="include/filesystem.h" bodystart="21" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="filesystem_8h_1ac58f7734ab4dd8ae25bda2fba713ea56" prot="public" static="no">
        <name>_O_WRONLY</name>
        <initializer>0x00000008</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="22" column="9" bodyfile="include/filesystem.h" bodystart="22" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="filesystem_8h_1a010187fb7398870cb57af650e65bded1" prot="public" static="no">
        <name>_O_RDWR</name>
        <initializer>(<ref refid="filesystem_8h_1ac58f7734ab4dd8ae25bda2fba713ea56" kindref="member">_O_WRONLY</ref>|<ref refid="filesystem_8h_1a4d457d93039cb26f27461c4af5868309" kindref="member">_O_RDONLY</ref>)</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="23" column="9" bodyfile="include/filesystem.h" bodystart="23" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="filesystem_8h_1ad7b6b046dfb46cc575f4b9dd418df545" prot="public" static="no">
        <name>FS_DIRECTORY</name>
        <initializer>0x00000001	/* Entry <ref refid="ahci_8h_1ab21fab504791fdabfb4441c735452afb" kindref="member">is</ref> <ref refid="ahci_8h_1af4007aacd75b22aee32dba9ea96082c0" kindref="member">a</ref> directory */</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="26" column="9" bodyfile="include/filesystem.h" bodystart="26" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="filesystem_8h_1a5bc0261888d6a9d3b88c2d19693627bb" prot="public" static="no">
        <name>FS_MOUNTPOINT</name>
        <initializer>0x00000002	/* Entry <ref refid="ahci_8h_1ab21fab504791fdabfb4441c735452afb" kindref="member">is</ref> <ref refid="ahci_8h_1af4007aacd75b22aee32dba9ea96082c0" kindref="member">a</ref> mountpoint */</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="27" column="9" bodyfile="include/filesystem.h" bodystart="27" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="enum">
      <memberdef kind="enum" id="filesystem_8h_1a9d25bbf2120c5e2876b6c34e297336d3" prot="public" static="no" strong="no">
        <type></type>
        <name>fs_handle_type_t</name>
        <enumvalue id="filesystem_8h_1a9d25bbf2120c5e2876b6c34e297336d3a9287f360250a7c0e5085c332fdb7e195" prot="public">
          <name>file_input</name>
          <briefdescription>
<para>Open for input. </para>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="filesystem_8h_1a9d25bbf2120c5e2876b6c34e297336d3a81266c2a12fd55cac32299093ea2804c" prot="public">
          <name>file_output</name>
          <briefdescription>
<para>Open for output. </para>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="filesystem_8h_1a9d25bbf2120c5e2876b6c34e297336d3a5472096f60abca1be816da90d4062c3f" prot="public">
          <name>file_random</name>
          <briefdescription>
<para>Open for input and output. </para>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <briefdescription>
<para>File handle access type. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="268" column="1" bodyfile="include/filesystem.h" bodystart="268" bodyend="284"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="typedef">
      <memberdef kind="typedef" id="filesystem_8h_1af456ddc19314d0bde5426f9027e96b05" prot="public" static="no">
        <type>uint16_t</type>
        <definition>typedef uint16_t mode_t</definition>
        <argsstring></argsstring>
        <name>mode_t</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="30" column="18" bodyfile="include/filesystem.h" bodystart="30" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="filesystem_8h_1ab18ebf0ec55a45b557b2d6e1bdb2ef4d" prot="public" static="no">
        <type>void *(*</type>
        <definition>typedef void*(* get_directory) (void *)</definition>
        <argsstring>)(void *)</argsstring>
        <name>get_directory</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="33" column="9" bodyfile="include/filesystem.h" bodystart="33" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="filesystem_8h_1ad7b51a2acb80e5467b0e6fb6f0896f04" prot="public" static="no">
        <type>int(*</type>
        <definition>typedef int(* mount_volume) (const char *, const char *)</definition>
        <argsstring>)(const char *, const char *)</argsstring>
        <name>mount_volume</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="34" column="9" bodyfile="include/filesystem.h" bodystart="34" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="filesystem_8h_1a36870a32a443e38c76e0b99c80cfca28" prot="public" static="no">
        <type>bool(*</type>
        <definition>typedef bool(* read_file) (void *, uint64_t, uint32_t, unsigned char *)</definition>
        <argsstring>)(void *, uint64_t, uint32_t, unsigned char *)</argsstring>
        <name>read_file</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="35" column="9" bodyfile="include/filesystem.h" bodystart="35" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="filesystem_8h_1ad7fbb498b70c179339cf8354d37dce02" prot="public" static="no">
        <type>bool(*</type>
        <definition>typedef bool(* write_file) (void *, uint64_t, uint32_t, unsigned char *)</definition>
        <argsstring>)(void *, uint64_t, uint32_t, unsigned char *)</argsstring>
        <name>write_file</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="36" column="9" bodyfile="include/filesystem.h" bodystart="36" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="filesystem_8h_1ab8604c3a391dc804445cac78b86510b2" prot="public" static="no">
        <type>uint64_t(*</type>
        <definition>typedef uint64_t(* create_file) (void *, const char *, size_t)</definition>
        <argsstring>)(void *, const char *, size_t)</argsstring>
        <name>create_file</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="37" column="9" bodyfile="include/filesystem.h" bodystart="37" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="filesystem_8h_1afad152e2e2ae6fd9c67f6297507c1f17" prot="public" static="no">
        <type>bool(*</type>
        <definition>typedef bool(* truncate_file) (void *, size_t)</definition>
        <argsstring>)(void *, size_t)</argsstring>
        <name>truncate_file</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="38" column="9" bodyfile="include/filesystem.h" bodystart="38" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="filesystem_8h_1a9676f2719a89837cd7ad99e3671cda52" prot="public" static="no">
        <type>uint64_t(*</type>
        <definition>typedef uint64_t(* create_dir) (void *, const char *)</definition>
        <argsstring>)(void *, const char *)</argsstring>
        <name>create_dir</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="39" column="9" bodyfile="include/filesystem.h" bodystart="39" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="filesystem_8h_1a7beb244ba61211f68a03fdd32bb7ac43" prot="public" static="no">
        <type>bool(*</type>
        <definition>typedef bool(* delete_file) (void *, const char *)</definition>
        <argsstring>)(void *, const char *)</argsstring>
        <name>delete_file</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="40" column="9" bodyfile="include/filesystem.h" bodystart="40" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="filesystem_8h_1a8ec1bba1ee1bc3fe7b46f30eff181e3e" prot="public" static="no">
        <type>bool(*</type>
        <definition>typedef bool(* delete_dir) (void *, const char *)</definition>
        <argsstring>)(void *, const char *)</argsstring>
        <name>delete_dir</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="41" column="9" bodyfile="include/filesystem.h" bodystart="41" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="filesystem_8h_1aedade13300b3b7656d01691660c3d275" prot="public" static="no">
        <type>int(*</type>
        <definition>typedef int(* block_read) (void *, uint64_t, uint32_t, unsigned char *)</definition>
        <argsstring>)(void *, uint64_t, uint32_t, unsigned char *)</argsstring>
        <name>block_read</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="44" column="9" bodyfile="include/filesystem.h" bodystart="44" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="filesystem_8h_1afbf0a8246b98b1f4ddca666aeb3fae3d" prot="public" static="no">
        <type>int(*</type>
        <definition>typedef int(* block_write) (void *, uint64_t, uint32_t, const unsigned char *)</definition>
        <argsstring>)(void *, uint64_t, uint32_t, const unsigned char *)</argsstring>
        <name>block_write</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="45" column="9" bodyfile="include/filesystem.h" bodystart="45" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="filesystem_8h_1a90ae435cc1f4e6cccba5cc179c2bd81c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int register_filesystem</definition>
        <argsstring>(filesystem_t *newfs)</argsstring>
        <name>register_filesystem</name>
        <param>
          <type><ref refid="structfilesystem__t" kindref="compound">filesystem_t</ref> *</type>
          <declname>newfs</declname>
        </param>
        <briefdescription>
<para>Register a new filesystem. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>newfs</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to new filesystem information to register </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int nonzero on success </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="312" column="5" declfile="include/filesystem.h" declline="312" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1a86db0085cc6c14e76ac68e70b79b3a32" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structfilesystem__t" kindref="compound">filesystem_t</ref> *</type>
        <definition>filesystem_t* find_filesystem</definition>
        <argsstring>(const char *name)</argsstring>
        <name>find_filesystem</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Find a filesystem by name. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>Name of filesystem to find </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>filesystem_t* Pointer to filesystem if found, or NULL </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="320" column="14" declfile="include/filesystem.h" declline="320" declcolumn="14"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1a1c947f6ecb49c4c29193dbfb80f48913" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int register_storage_device</definition>
        <argsstring>(storage_device_t *newdev)</argsstring>
        <name>register_storage_device</name>
        <param>
          <type><ref refid="structstorage__device__t" kindref="compound">storage_device_t</ref> *</type>
          <declname>newdev</declname>
        </param>
        <briefdescription>
<para>Register a new storage device. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>newdev</parametername>
</parameternamelist>
<parameterdescription>
<para>New storage device information to register </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int nonzero on success </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="328" column="5" declfile="include/filesystem.h" declline="328" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1a1a11d52abe39eec5ff5057fb568abcaa" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structstorage__device__t" kindref="compound">storage_device_t</ref> *</type>
        <definition>storage_device_t* find_storage_device</definition>
        <argsstring>(const char *name)</argsstring>
        <name>find_storage_device</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Find a storage device by name. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>Name of storage device to find </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>storage_device_t* Pointer to storage device if found, or NULL </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="336" column="18" declfile="include/filesystem.h" declline="336" declcolumn="18"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1a8261f6e5dfde2a376851ee5e1d60798a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int read_storage_device</definition>
        <argsstring>(const char *name, uint64_t start_block, uint32_t bytes, unsigned char *data)</argsstring>
        <name>read_storage_device</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type>uint64_t</type>
          <declname>start_block</declname>
        </param>
        <param>
          <type>uint32_t</type>
          <declname>bytes</declname>
        </param>
        <param>
          <type>unsigned char *</type>
          <declname>data</declname>
        </param>
        <briefdescription>
<para>Read blocks from storage device by name. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>Name of storage device registered by <ref refid="filesystem_8h_1a1c947f6ecb49c4c29193dbfb80f48913" kindref="member">register_storage_device()</ref> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>start_block</parametername>
</parameternamelist>
<parameterdescription>
<para>Starting block number </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>bytes</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of bytes to read (should be modulus of block size) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>data</parametername>
</parameternamelist>
<parameterdescription>
<para>Buffer to receive read data </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int nonzero on success </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="347" column="5" declfile="include/filesystem.h" declline="347" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1af0bd536bc656fb56dab8eb32e721375b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int write_storage_device</definition>
        <argsstring>(const char *name, uint64_t start_block, uint32_t bytes, const unsigned char *data)</argsstring>
        <name>write_storage_device</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type>uint64_t</type>
          <declname>start_block</declname>
        </param>
        <param>
          <type>uint32_t</type>
          <declname>bytes</declname>
        </param>
        <param>
          <type>const unsigned char *</type>
          <declname>data</declname>
        </param>
        <briefdescription>
<para>Write blocks to storage device by name. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>Name of storage device registered by <ref refid="filesystem_8h_1a1c947f6ecb49c4c29193dbfb80f48913" kindref="member">register_storage_device()</ref> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>start_block</parametername>
</parameternamelist>
<parameterdescription>
<para>Starting block number </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>bytes</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of bytes to write (should be modulus of block size) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>data</parametername>
</parameternamelist>
<parameterdescription>
<para>Data to write </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int nonzero on success </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="358" column="5" declfile="include/filesystem.h" declline="358" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1a603ea722512b12288aaddd6081501dcf" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int attach_filesystem</definition>
        <argsstring>(const char *virtual_path, filesystem_t *fs, void *opaque)</argsstring>
        <name>attach_filesystem</name>
        <param>
          <type>const char *</type>
          <declname>virtual_path</declname>
        </param>
        <param>
          <type><ref refid="structfilesystem__t" kindref="compound">filesystem_t</ref> *</type>
          <declname>fs</declname>
        </param>
        <param>
          <type>void *</type>
          <declname>opaque</declname>
        </param>
        <briefdescription>
<para>Attach a filesystem to a VFS directory. Do not use this function for end user features, use <ref refid="filesystem_8h_1a7277c11237470183b5d22fc977185169" kindref="member">filesystem_mount()</ref> instead. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="note"><para>The opaque data is optional and if included is driver-specific.</para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>virtual_path</parametername>
</parameternamelist>
<parameterdescription>
<para>virtual pathname in the VFS </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>fs</parametername>
</parameternamelist>
<parameterdescription>
<para>Filesystem driver name </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>opaque</parametername>
</parameternamelist>
<parameterdescription>
<para>Opaque data used by the filesystem driver </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int nonzero on success </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="371" column="5" declfile="include/filesystem.h" declline="371" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1a7277c11237470183b5d22fc977185169" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int filesystem_mount</definition>
        <argsstring>(const char *pathname, const char *device, const char *filesystem_driver)</argsstring>
        <name>filesystem_mount</name>
        <param>
          <type>const char *</type>
          <declname>pathname</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>device</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>filesystem_driver</declname>
        </param>
        <briefdescription>
<para>High level mount function. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>pathname</parametername>
</parameternamelist>
<parameterdescription>
<para>VFS path to mount device/driver to </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>device</parametername>
</parameternamelist>
<parameterdescription>
<para>block device name </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>filesystem_driver</parametername>
</parameternamelist>
<parameterdescription>
<para>filesystem driver name </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int 1 for success, 0 for failure </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="381" column="5" declfile="include/filesystem.h" declline="381" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1a47cfa7087b707560af1b5a669dfc69b3" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void init_filesystem</definition>
        <argsstring>()</argsstring>
        <name>init_filesystem</name>
        <briefdescription>
<para>Initialise the filesystem This loads the DummyFS filesystem which manages the root directory until any other driver is loaded. DummyFS is a dummy and does nothing. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="388" column="6" declfile="include/filesystem.h" declline="388" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1aeea14dbba6f8453923e288ece85cf6df" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structfs__directory__entry__t" kindref="compound">fs_directory_entry_t</ref> *</type>
        <definition>fs_directory_entry_t* fs_get_items</definition>
        <argsstring>(const char *pathname)</argsstring>
        <name>fs_get_items</name>
        <param>
          <type>const char *</type>
          <declname>pathname</declname>
        </param>
        <briefdescription>
<para>Get a list of files in a directory. The directory path must be fully qualified from the root directory and must contain no trailing slash. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>pathname</parametername>
</parameternamelist>
<parameterdescription>
<para>fully qualified directory name </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>fs_directory_entry_t* linked list of items, or NULL if empty directory </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="397" column="22" declfile="include/filesystem.h" declline="397" declcolumn="22"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1aba196fffbbe3a92cf3d5d4c7372539ab" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>bool</type>
        <definition>bool fs_is_directory</definition>
        <argsstring>(const char *pathname)</argsstring>
        <name>fs_is_directory</name>
        <param>
          <type>const char *</type>
          <declname>pathname</declname>
        </param>
        <briefdescription>
<para>Returns true if the given path is a directory, false if it is a file. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>pathname</parametername>
</parameternamelist>
<parameterdescription>
<para>full qualified vfs path </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>true is a directory </para>
</simplesect>
<simplesect kind="return"><para>false is a file </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="406" column="6" declfile="include/filesystem.h" declline="406" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1a93b69bf53951ce16a8e648f238631696" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structfs__directory__entry__t" kindref="compound">fs_directory_entry_t</ref> *</type>
        <definition>fs_directory_entry_t* fs_get_file_info</definition>
        <argsstring>(const char *pathandfile)</argsstring>
        <name>fs_get_file_info</name>
        <param>
          <type>const char *</type>
          <declname>pathandfile</declname>
        </param>
        <briefdescription>
<para>Retrieve file information on any arbitrary filename. The item requested can be a file, or a directory. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>pathandfile</parametername>
</parameternamelist>
<parameterdescription>
<para>Path to file or directory </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>fs_directory_entry_t* information on the file. </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="414" column="22" declfile="include/filesystem.h" declline="414" declcolumn="22"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1af29b0affdc800f4d78ab5e9c60a1726a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structfs__directory__entry__t" kindref="compound">fs_directory_entry_t</ref> *</type>
        <definition>fs_directory_entry_t* fs_create_file</definition>
        <argsstring>(const char *pathandfile, size_t bytes)</argsstring>
        <name>fs_create_file</name>
        <param>
          <type>const char *</type>
          <declname>pathandfile</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>bytes</declname>
        </param>
        <briefdescription>
<para>Create a new empty file. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>pathandfile</parametername>
</parameternamelist>
<parameterdescription>
<para>fully qualified path to new file to create </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>bytes</parametername>
</parameternamelist>
<parameterdescription>
<para>size in bytes of file to create </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>fs_directory_entry_t* information on new file on success or NULL </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="423" column="22" declfile="include/filesystem.h" declline="423" declcolumn="22"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1ade4787d5728ce138b4f86eae5efe000b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structfs__directory__entry__t" kindref="compound">fs_directory_entry_t</ref> *</type>
        <definition>fs_directory_entry_t* fs_create_directory</definition>
        <argsstring>(const char *pathandfile)</argsstring>
        <name>fs_create_directory</name>
        <param>
          <type>const char *</type>
          <declname>pathandfile</declname>
        </param>
        <briefdescription>
<para>Create a new empty directory. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>pathandfile</parametername>
</parameternamelist>
<parameterdescription>
<para>fully qualified path to new directory to create </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>bytes</parametername>
</parameternamelist>
<parameterdescription>
<para>size in bytes of directory to create </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>fs_directory_entry_t* information on new directory on success or NULL </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="432" column="22" declfile="include/filesystem.h" declline="432" declcolumn="22"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1a3692a5983409c6e8f74cbe0c5c3435f4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int fs_truncate_file</definition>
        <argsstring>(fs_directory_entry_t *file, uint32_t length)</argsstring>
        <name>fs_truncate_file</name>
        <param>
          <type><ref refid="structfs__directory__entry__t" kindref="compound">fs_directory_entry_t</ref> *</type>
          <declname>file</declname>
        </param>
        <param>
          <type>uint32_t</type>
          <declname>length</declname>
        </param>
        <briefdescription>
<para>Truncate an existing file to new length. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="note"><para>Any data beyond the new length is discarded and may not be recoverable.</para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>file</parametername>
</parameternamelist>
<parameterdescription>
<para>File to truncate </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>length</parametername>
</parameternamelist>
<parameterdescription>
<para>New length, should be &lt;= current file size </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int nonzero on success </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="443" column="5" declfile="include/filesystem.h" declline="443" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1ab6174ea1e5338a32b45778cb26b7ebc4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int fs_read_file</definition>
        <argsstring>(fs_directory_entry_t *file, uint32_t start, uint32_t length, unsigned char *buffer)</argsstring>
        <name>fs_read_file</name>
        <param>
          <type><ref refid="structfs__directory__entry__t" kindref="compound">fs_directory_entry_t</ref> *</type>
          <declname>file</declname>
        </param>
        <param>
          <type>uint32_t</type>
          <declname>start</declname>
        </param>
        <param>
          <type>uint32_t</type>
          <declname>length</declname>
        </param>
        <param>
          <type>unsigned char *</type>
          <declname>buffer</declname>
        </param>
        <briefdescription>
<para>Read raw bytes from any arbitrary file. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>file</parametername>
</parameternamelist>
<parameterdescription>
<para>File to read from </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>start</parametername>
</parameternamelist>
<parameterdescription>
<para>starting byte position </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>length</parametername>
</parameternamelist>
<parameterdescription>
<para>length of data to read, starting at the starting position </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>buffer</parametername>
</parameternamelist>
<parameterdescription>
<para>Buffer to receive read data </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int nonzero on error </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="454" column="5" declfile="include/filesystem.h" declline="454" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1ab58b880337bae46decb3c6dd1ad1b285" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int _open</definition>
        <argsstring>(const char *filename, int oflag)</argsstring>
        <name>_open</name>
        <param>
          <type>const char *</type>
          <declname>filename</declname>
        </param>
        <param>
          <type>int</type>
          <declname>oflag</declname>
        </param>
        <briefdescription>
<para>POSIX style _open function. </para>
        </briefdescription>
        <detaileddescription>
<para>opens a file for read or write access, or creates a new file.</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>filename</parametername>
</parameternamelist>
<parameterdescription>
<para>Filename to create (fully qualified name) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>oflag</parametername>
</parameternamelist>
<parameterdescription>
<para>open state for the file </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int zero on success, -1 on error </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="465" column="5" declfile="include/filesystem.h" declline="465" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1a0fd47ee5cad0fcaf36712977a860833f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int _read</definition>
        <argsstring>(int fd, void *buffer, unsigned int count)</argsstring>
        <name>_read</name>
        <param>
          <type>int</type>
          <declname>fd</declname>
        </param>
        <param>
          <type>void *</type>
          <declname>buffer</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>count</declname>
        </param>
        <briefdescription>
<para>POSIX _read function, reads bytes from an open file. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>fd</parametername>
</parameternamelist>
<parameterdescription>
<para>file descriptor </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>buffer</parametername>
</parameternamelist>
<parameterdescription>
<para>buffer to receive data </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>count</parametername>
</parameternamelist>
<parameterdescription>
<para>count of bytes to read </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int zero on success, -1 on error </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="475" column="5" declfile="include/filesystem.h" declline="475" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1af53712a23d902e214c27f686f016e8c9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int _write</definition>
        <argsstring>(int fd, void *buffer, unsigned int count)</argsstring>
        <name>_write</name>
        <param>
          <type>int</type>
          <declname>fd</declname>
        </param>
        <param>
          <type>void *</type>
          <declname>buffer</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>count</declname>
        </param>
        <briefdescription>
<para>POSIX _write function, writes bytes to an open file. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>fd</parametername>
</parameternamelist>
<parameterdescription>
<para>file descriptor </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>buffer</parametername>
</parameternamelist>
<parameterdescription>
<para>buffer containing data to write </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>count</parametername>
</parameternamelist>
<parameterdescription>
<para>count of bytes to write </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int zero on success, -1 on error </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="485" column="5" declfile="include/filesystem.h" declline="485" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1a72e233ba0f8c1bbcae1d64cd59fa659e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int _close</definition>
        <argsstring>(uint32_t fd)</argsstring>
        <name>_close</name>
        <param>
          <type>uint32_t</type>
          <declname>fd</declname>
        </param>
        <briefdescription>
<para>POSIX _close function, closes an open file. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>fd</parametername>
</parameternamelist>
<parameterdescription>
<para>file descriptor </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int zero on success, -1 on error </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="493" column="5" declfile="include/filesystem.h" declline="493" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1af06efedfd44e65f4272f81cfce654e0b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int _eof</definition>
        <argsstring>(int fd)</argsstring>
        <name>_eof</name>
        <param>
          <type>int</type>
          <declname>fd</declname>
        </param>
        <briefdescription>
<para>POSIX _eof function. </para>
        </briefdescription>
        <detaileddescription>
<para>reports if we have reached the end of file marker on any open file.</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>fd</parametername>
</parameternamelist>
<parameterdescription>
<para>file descriptor </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int zero if not EOF, 1 if EOF, -1 on error </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="504" column="5" declfile="include/filesystem.h" declline="504" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1a5c84815714d467e6850288b4581b4070" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int64_t</type>
        <definition>int64_t _lseek</definition>
        <argsstring>(int fd, uint64_t offset, uint64_t origin)</argsstring>
        <name>_lseek</name>
        <param>
          <type>int</type>
          <declname>fd</declname>
        </param>
        <param>
          <type>uint64_t</type>
          <declname>offset</declname>
        </param>
        <param>
          <type>uint64_t</type>
          <declname>origin</declname>
        </param>
        <briefdescription>
<para>Seek to given position in a file. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="note"><para>offset + origin should be &lt;= current file size</para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>fd</parametername>
</parameternamelist>
<parameterdescription>
<para>file descriptor </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>offset</parametername>
</parameternamelist>
<parameterdescription>
<para>offset from origin point </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>origin</parametername>
</parameternamelist>
<parameterdescription>
<para>origin point in file </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int64_t new file position </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="515" column="9" declfile="include/filesystem.h" declline="515" declcolumn="9"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1a38ca3552bb9bdb4c6069381307431fc0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int64_t</type>
        <definition>int64_t _tell</definition>
        <argsstring>(int fd)</argsstring>
        <name>_tell</name>
        <param>
          <type>int</type>
          <declname>fd</declname>
        </param>
        <briefdescription>
<para>Obtain current file position. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>fd</parametername>
</parameternamelist>
<parameterdescription>
<para>file descriptor </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int64_t position in file </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="523" column="9" declfile="include/filesystem.h" declline="523" declcolumn="9"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1af3cee068f32a919cdd638e0578c1e5f8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int unlink</definition>
        <argsstring>(const char *pathname)</argsstring>
        <name>unlink</name>
        <param>
          <type>const char *</type>
          <declname>pathname</declname>
        </param>
        <briefdescription>
<para>Delete a file (not a directory) </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>pathname</parametername>
</parameternamelist>
<parameterdescription>
<para>Fully qualified pathname </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int zero on success, -1 on error </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="531" column="5" declfile="include/filesystem.h" declline="531" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1aee98bbe743c2d14dbaa67f01c3fb9ed5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int mkdir</definition>
        <argsstring>(const char *pathname, mode_t mode)</argsstring>
        <name>mkdir</name>
        <param>
          <type>const char *</type>
          <declname>pathname</declname>
        </param>
        <param>
          <type><ref refid="filesystem_8h_1af456ddc19314d0bde5426f9027e96b05" kindref="member">mode_t</ref></type>
          <declname>mode</declname>
        </param>
        <briefdescription>
<para>Make a directory. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>pathname</parametername>
</parameternamelist>
<parameterdescription>
<para>Fully qualified pathname </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>mode</parametername>
</parameternamelist>
<parameterdescription>
<para>UNIX permission mode, ignored </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int zero on success, -1 on error </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="540" column="5" declfile="include/filesystem.h" declline="540" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1a570282ae7ba596263ec812b368d99b34" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int rmdir</definition>
        <argsstring>(const char *pathname)</argsstring>
        <name>rmdir</name>
        <param>
          <type>const char *</type>
          <declname>pathname</declname>
        </param>
        <briefdescription>
<para>Remove a directory. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>pathname</parametername>
</parameternamelist>
<parameterdescription>
<para>Fully qualified pathname </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int zero on success, -1 on error </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="548" column="5" declfile="include/filesystem.h" declline="548" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1ab7aad6d7661082e4aa5ec28badba8ca5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int ftruncate</definition>
        <argsstring>(int fd, uint32_t length)</argsstring>
        <name>ftruncate</name>
        <param>
          <type>int</type>
          <declname>fd</declname>
        </param>
        <param>
          <type>uint32_t</type>
          <declname>length</declname>
        </param>
        <briefdescription>
<para>Truncate a file to the new length. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="note"><para>any data past the new length may not be recoverable.</para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>fd</parametername>
</parameternamelist>
<parameterdescription>
<para>file descriptor of an open file </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>length</parametername>
</parameternamelist>
<parameterdescription>
<para>New file length </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int zero on success, -1 on error </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="559" column="5" declfile="include/filesystem.h" declline="559" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1af54d35de43947f1e7e1a86eed9270a6d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>bool</type>
        <definition>bool fs_delete_file</definition>
        <argsstring>(const char *pathandfile)</argsstring>
        <name>fs_delete_file</name>
        <param>
          <type>const char *</type>
          <declname>pathandfile</declname>
        </param>
        <briefdescription>
<para>Low level delete file. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>pathandfile</parametername>
</parameternamelist>
<parameterdescription>
<para>path and filename </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>true if file was deleted </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="567" column="6" declfile="include/filesystem.h" declline="567" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="filesystem_8h_1ae475207338a0787caf15949e45badfe8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>bool</type>
        <definition>bool fs_delete_directory</definition>
        <argsstring>(const char *pathandfile)</argsstring>
        <name>fs_delete_directory</name>
        <param>
          <type>const char *</type>
          <declname>pathandfile</declname>
        </param>
        <briefdescription>
<para>Delete a directory. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>pathandfile</parametername>
</parameternamelist>
<parameterdescription>
<para>fully qualified path to file </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>true if directory was deleted </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/filesystem.h" line="575" column="6" declfile="include/filesystem.h" declline="575" declcolumn="6"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
<para><simplesect kind="author"><para>Craig Edwards (<ulink url="mailto:craigedwards@brainbox.cc">craigedwards@brainbox.cc</ulink>) </para>
</simplesect>
<simplesect kind="copyright"><para>Copyright (c) 2012-2023 </para>
</simplesect>
</para>
    </detaileddescription>
    <location file="include/filesystem.h"/>
  </compounddef>
</doxygen>
