From b7639e84dc99082c866842f78616e8939b4644bd Mon Sep 17 00:00:00 2001 From: Jozef Nagy Date: Sun, 26 Jan 2025 00:18:53 +0100 Subject: [PATCH] Start working on VFS --- boot/common/vfs/vfs.c | 45 ++++++++++++++++++++++++++++++++++++++++ boot/include/vfs/drive.h | 35 +++++++++++++++++++++++++++++++ boot/include/vfs/vfs.h | 43 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+) create mode 100644 boot/common/vfs/vfs.c create mode 100644 boot/include/vfs/drive.h create mode 100644 boot/include/vfs/vfs.h diff --git a/boot/common/vfs/vfs.c b/boot/common/vfs/vfs.c new file mode 100644 index 0000000..46b52bd --- /dev/null +++ b/boot/common/vfs/vfs.c @@ -0,0 +1,45 @@ +/*********************************************************************************/ +/* Module Name: vfs.c */ +/* Project: AurixOS */ +/* */ +/* Copyright (c) 2024-2025 Jozef Nagy */ +/* */ +/* This source is subject to the MIT License. */ +/* See License.txt in the root of this repository. */ +/* All other rights reserved. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR */ +/* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, */ +/* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE */ +/* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER */ +/* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, */ +/* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE */ +/* SOFTWARE. */ +/*********************************************************************************/ + +#include +#include +#include + +void vfs_init(void) +{ +} + +int vfs_read(char *filename, char *buf, size_t len) + +{ + (void)filename; + (void)buf; + (void)len; + + return 0; +} + +int vfs_write(char *filename, char *buf, size_t len) +{ + (void)filename; + (void)buf; + (void)len; + + return 0; +} \ No newline at end of file diff --git a/boot/include/vfs/drive.h b/boot/include/vfs/drive.h new file mode 100644 index 0000000..29859e8 --- /dev/null +++ b/boot/include/vfs/drive.h @@ -0,0 +1,35 @@ +/*********************************************************************************/ +/* Module Name: drive.h */ +/* Project: AurixOS */ +/* */ +/* Copyright (c) 2024-2025 Jozef Nagy */ +/* */ +/* This source is subject to the MIT License. */ +/* See License.txt in the root of this repository. */ +/* All other rights reserved. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR */ +/* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, */ +/* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE */ +/* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER */ +/* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, */ +/* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE */ +/* SOFTWARE. */ +/*********************************************************************************/ + +#ifndef _VFS_DRIVE_H +#define _VFS_DRIVE_H + +#include +#include + +struct vfs_filesystem; + +struct vfs_drive { + struct vfs_filesystem *fs; + + char (*read)(char *buffer, uint32_t offset, size_t len, void *dev); + char (*write)(char *buffer, uint32_t offset, size_t len, void *dev); +}; + +#endif /* _VFS_DRIVE_H */ diff --git a/boot/include/vfs/vfs.h b/boot/include/vfs/vfs.h new file mode 100644 index 0000000..3a921a2 --- /dev/null +++ b/boot/include/vfs/vfs.h @@ -0,0 +1,43 @@ +/*********************************************************************************/ +/* Module Name: vfs.h */ +/* Project: AurixOS */ +/* */ +/* Copyright (c) 2024-2025 Jozef Nagy */ +/* */ +/* This source is subject to the MIT License. */ +/* See License.txt in the root of this repository. */ +/* All other rights reserved. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR */ +/* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, */ +/* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE */ +/* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER */ +/* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, */ +/* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE */ +/* SOFTWARE. */ +/*********************************************************************************/ + +#ifndef _VFS_VFS_H +#define _VFS_VFS_H + +#include +#include + +struct vfs_drive; + +struct vfs_filesystem { + int (*read_file)(struct vfs_drive *drive, char *filename, char *buf, size_t len); + int (*write_file)(struct vfs_drive *drive, char *filename, char *buf, size_t len); +}; + +struct vfs_mount { + char *mountpoint; + struct vfs_drive *drive; +}; + +void vfs_init(void); + +int vfs_read(char *filename, char *buf, size_t len); +int vfs_write(char *filename, char *buf, size_t len); + +#endif /* _VFS_VFS_H */