|
XenevaOS
|
#include <Fs/vfs.h>#include <Mm/kmalloc.h>#include <Fs/Dev/devfs.h>#include <_null.h>#include <aucon.h>#include <string.h>#include <Hal/serial.h>#include <Fs/pipe.h>
Functions | |
| void | AuVFSInitialise () |
| AuVFSInitialise – initialise the virtual file system. | |
| AuVFSNode * | AuVFSFind (char *path) |
| AuVFSFind – Searches a filesystem an return it to the caller. | |
| AU_EXTERN AU_EXPORT void | AuVFSAddFileSystem (AuVFSNode *node) |
| AuVFSAddFileSystem – adds a file system to the vfs list. | |
| void | AuVFSRegisterRoot (AuVFSNode *fs) |
| AuVFSRegisterRoot – register the root file system. | |
| AU_EXTERN AU_EXPORT AuVFSNode * | AuVFSOpen (char *path) |
| AuVFSOpen – Opens a file. | |
| AU_EXTERN AU_EXPORT int | AuVFSNodeIOControl (AuVFSNode *node, int code, void *arg) |
| AuVFSNodeIOControl – Calls node's iocontrol pointer. | |
| AU_EXTERN AU_EXPORT size_t | AuVFSNodeRead (AuVFSNode *node, AuVFSNode *file, uint64_t *buffer, uint32_t length) |
| AuVFSNodeRead – read from file system. | |
| AU_EXTERN AU_EXPORT void | AuVFSNodeWrite (AuVFSNode *node, AuVFSNode *file, uint64_t *buffer, uint32_t length) |
| AuVFSNodeWrite – write to file system. | |
| AU_EXTERN AU_EXPORT size_t | AuVFSNodeReadBlock (AuVFSNode *node, AuVFSNode *file, uint64_t *buffer) |
| AuVFSNodeReadBlock – read a block size data from file system. | |
| AU_EXTERN AU_EXPORT AuVFSNode * | AuVFSCreateDir (AuVFSNode *fsys, char *dirname) |
| AuVFSCreateDir – creates a new dir. | |
| AU_EXTERN AU_EXPORT AuVFSNode * | AuVFSCreateFile (AuVFSNode *fsys, char *filename) |
| AuVFSCreateFile – create a new file. | |
| int | AuVFSRemoveFile (AuVFSNode *fsys, AuVFSNode *file) |
| AuVFSRemoveFile –remove a file from a file system. | |
| int | AuVFSRemoveDir (AuVFSNode *fsys, AuVFSNode *file) |
| AuVFSRemoveFile –remove a file from a file system. | |
| AU_EXTERN AU_EXPORT void | AuVFSNodeClose (AuVFSNode *node, AuVFSNode *file) |
| AuVFSNodeClose – close a file system or file. | |
| AU_EXTERN AU_EXPORT int | AuVFSRemoveFileSystem (AuVFSNode *node) |
| AU_EXTERN AU_EXPORT size_t | AuVFSGetBlockFor (AuVFSNode *node, AuVFSNode *file, uint64_t offset) |
| AuVFSGetBlockFor – returns a block number for certain byte offset of file. | |
Variables | |
| AuVFSContainer * | __RootContainer |
| AuVFSNode * | __RootFS |
| bool | _vfs_debug_on |
AuVFSAddFileSystem – adds a file system to the vfs list.
| node | – file system node to add |
AuVFSCreateDir – creates a new dir.
| fsys | – Pointer to file system |
| dirname | – directory name |
AuVFSCreateFile – create a new file.
| fsys | – Pointer to file system |
| filename | – filename |
| AuVFSNode * AuVFSFind | ( | char * | path | ) |
AuVFSFind – Searches a filesystem an return it to the caller.
| path | – path of the file system |
AuVFSGetBlockFor – returns a block number for certain byte offset of file.
| node | – file system node |
| file | – pointer to file structure |
| offset | – byte offset |
| void AuVFSInitialise | ( | ) |
AuVFSInitialise – initialise the virtual file system.
AuVFSNodeClose – close a file system or file.
| node | – file system node to use |
| file | – file to close |
AuVFSNodeIOControl – Calls node's iocontrol pointer.
| node | – pointer to fsnode |
| code | – code to pass |
| arg | – extra arguments |
| AU_EXTERN AU_EXPORT size_t AuVFSNodeRead | ( | AuVFSNode * | node, |
| AuVFSNode * | file, | ||
| uint64_t * | buffer, | ||
| uint32_t | length | ||
| ) |
AuVFSNodeRead – read from file system.
| node | – file system node to use |
| file | – file information to use |
| buffer | – buffer to write to |
| length | – length of the file |
| AU_EXTERN AU_EXPORT size_t AuVFSNodeReadBlock | ( | AuVFSNode * | node, |
| AuVFSNode * | file, | ||
| uint64_t * | buffer | ||
| ) |
AuVFSNodeReadBlock – read a block size data from file system.
| node | – file system node to use |
| file | – file node to use |
| buffer | – buffer area to read to |
| AU_EXTERN AU_EXPORT void AuVFSNodeWrite | ( | AuVFSNode * | node, |
| AuVFSNode * | file, | ||
| uint64_t * | buffer, | ||
| uint32_t | length | ||
| ) |
AuVFSNodeWrite – write to file system.
| node | – file system node to use |
| file | – file node to use |
| buffer | – buffer to write |
| length | – length of the data |
AuVFSOpen – Opens a file.
| path | – path to open |
| void AuVFSRegisterRoot | ( | AuVFSNode * | fs | ) |
AuVFSRegisterRoot – register the root file system.
| fs | – fsnode to add |
AuVFSRemoveFile –remove a file from a file system.
| fsys | – Pointer to file system |
| file | – Pointer to file to remove |
AuVFSRemoveFile –remove a file from a file system.
| fsys | – Pointer to file system |
| file | – Pointer to file to remove |
| AuVFSContainer* __RootContainer |
BSD 2-Clause License
Copyright (c) 2022-2023, Manas Kamal Choudhury All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
| AuVFSNode* __RootFS |
| bool _vfs_debug_on |
BSD 2-Clause License
Copyright (c) 2023-2024, Manas Kamal Choudhury All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.