2026-03-06 20:17:23 +00:00
|
|
|
#ifndef FS_FILE_H_
|
|
|
|
|
#define FS_FILE_H_
|
|
|
|
|
|
|
|
|
|
#include <mango/types.h>
|
|
|
|
|
#include <stddef.h>
|
|
|
|
|
|
|
|
|
|
struct fs_file;
|
2026-03-10 19:15:26 +00:00
|
|
|
struct xpc_buffer;
|
2026-03-06 20:17:23 +00:00
|
|
|
|
|
|
|
|
struct fs_file_ops {
|
2026-03-10 19:15:26 +00:00
|
|
|
enum fs_status (*f_read)(
|
|
|
|
|
struct fs_file *,
|
|
|
|
|
struct xpc_buffer *,
|
|
|
|
|
size_t,
|
|
|
|
|
off_t *);
|
|
|
|
|
enum fs_status (*f_write)(
|
|
|
|
|
struct fs_file *,
|
|
|
|
|
const struct xpc_buffer *,
|
|
|
|
|
size_t,
|
|
|
|
|
off_t *);
|
|
|
|
|
enum fs_status (*f_seek)(struct fs_file *, off_t, int);
|
2026-03-06 20:17:23 +00:00
|
|
|
};
|
|
|
|
|
|
2026-03-10 19:15:26 +00:00
|
|
|
extern struct fs_inode *fs_file_get_inode(const struct fs_file *f);
|
|
|
|
|
extern size_t fs_file_get_cursor(const struct fs_file *f);
|
|
|
|
|
extern enum fs_status fs_file_read(
|
|
|
|
|
struct fs_file *f,
|
|
|
|
|
struct xpc_buffer *buf,
|
|
|
|
|
size_t count);
|
|
|
|
|
extern enum fs_status fs_file_write(
|
|
|
|
|
struct fs_file *f,
|
|
|
|
|
struct xpc_buffer *buf,
|
|
|
|
|
size_t count);
|
|
|
|
|
|
2026-03-06 20:17:23 +00:00
|
|
|
#endif
|