Start working on VFS

This commit is contained in:
Jozef Nagy 2025-01-26 00:18:53 +01:00
parent 12c9b4fdcc
commit b7639e84dc
Signed by untrusted user who does not match committer: crz
GPG key ID: 459A4811CEAC7068
3 changed files with 123 additions and 0 deletions

45
boot/common/vfs/vfs.c Normal file
View file

@ -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 <vfs/vfs.h>
#include <stdint.h>
#include <stddef.h>
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;
}

35
boot/include/vfs/drive.h Normal file
View file

@ -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 <stdint.h>
#include <stddef.h>
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 */

43
boot/include/vfs/vfs.h Normal file
View file

@ -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 <stdint.h>
#include <stddef.h>
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 */