18#ifndef __VSF_LINUX_FS_INTERNAL_H__
19#define __VSF_LINUX_FS_INTERNAL_H__
30#if VSF_USE_LINUX == ENABLED
32#if VSF_LINUX_CFG_RELATIVE_PATH == ENABLED
33# include "../../include/termios.h"
40#if defined(__VSF_LINUX_FS_CLASS_IMPLEMENT)
41# define __VSF_CLASS_IMPLEMENT__
42#elif defined(__VSF_LINUX_FS_CLASS_INHERIT__)
43# define __VSF_CLASS_INHERIT__
54#if VSF_USE_FS != ENABLED
55# error VSF_USE_FS MUST be enabled to use fs in linux
126 void *mmapped_buffer;
141#if defined(__VSF_LINUX_FS_CLASS_IMPLEMENT) || defined(__VSF_LINUX_FS_CLASS_INHERIT__)
142# if VSF_LINUX_CFG_FS_CACHE_SIZE > 0
147typedef struct vsf_linux_fs_priv_t {
155# if VSF_LINUX_CFG_FS_CACHE_SIZE > 0
161} vsf_linux_fs_priv_t;
164typedef void (*vsf_linux_stream_on_evt_t)(vsf_linux_stream_priv_t *priv,
vsf_protect_t orig,
short event,
bool is_ready);
168 implement(vsf_linux_fs_priv_t)
173 vsf_linux_stream_on_evt_t on_evt;
174 bool stream_rx_allocated;
175 bool stream_tx_allocated;
181 implement(vsf_linux_stream_priv_t)
182 vsf_linux_pipe_priv_t *pipe_remote;
186typedef struct vsf_linux_term_priv_t {
187 implement(vsf_linux_pipe_priv_t)
193} vsf_linux_term_priv_t;
203 unsigned short *semadj_arr;
215#if defined(__VSF_LINUX_FS_CLASS_IMPLEMENT) || defined(__VSF_LINUX_FS_CLASS_INHERIT__)
226#if defined(__VSF_LINUX_FS_CLASS_IMPLEMENT) || defined(__VSF_LINUX_FS_CLASS_INHERIT__)
247typedef struct vk_vfs_file_t vk_vfs_file_t;
293#undef __VSF_LINUX_FS_CLASS_IMPLEMENT
294#undef __VSF_LINUX_FS_CLASS_INHERIT__
#define VSF_STATIC_ASSERT(__COND,...)
Definition __type.h:199
Definition vsf_linux_fs.h:94
Definition vsf_linux_fs.h:115
Definition vsf_linux.h:281
Definition vsf_linux.h:158
Definition vsf_queue_stream.h:60
Definition vsf_simple_stream.h:254
union @1017::@1028::@1029 u
int pid_t
Definition types.h:93
long long off64_t
Definition types.h:105
int ssize_t
Definition types.h:71
#define vsf_dcl_class
Definition ooc_class.h:50
#define vsf_class(__name)
Definition ooc_class.h:52
uint32_t uintptr_t
Definition stdint.h:38
unsigned short uint16_t
Definition stdint.h:7
unsigned int uint_fast32_t
Definition stdint.h:27
unsigned long long uint64_t
Definition stdint.h:11
unsigned char uint8_t
Definition stdint.h:5
Definition vsf_list.h:888
Definition vsf_linux_fs.h:70
int(* fn_setsize)(vsf_linux_fd_t *sfd, off64_t size)
Definition vsf_linux_fs.h:80
ssize_t(* fn_write)(vsf_linux_fd_t *sfd, const void *buf, size_t count)
Definition vsf_linux_fs.h:77
int feature
Definition vsf_linux_fs.h:72
int(* fn_msync)(vsf_linux_fd_t *sfd, void *buffer)
Definition vsf_linux_fs.h:85
int priv_size
Definition vsf_linux_fs.h:71
int(* fn_fcntl)(vsf_linux_fd_t *sfd, int cmd, uintptr_t arg)
Definition vsf_linux_fs.h:75
int(* fn_stat)(vsf_linux_fd_t *sfd, struct stat *buf)
Definition vsf_linux_fs.h:81
int(* fn_close)(vsf_linux_fd_t *sfd)
Definition vsf_linux_fs.h:78
int(* fn_eof)(vsf_linux_fd_t *sfd)
Definition vsf_linux_fs.h:79
ssize_t(* fn_read)(vsf_linux_fd_t *sfd, void *buf, size_t count)
Definition vsf_linux_fs.h:76
int(* fn_munmap)(vsf_linux_fd_t *sfd, void *buffer)
Definition vsf_linux_fs.h:84
void(* fn_init)(vsf_linux_fd_t *sfd)
Definition vsf_linux_fs.h:73
void(* fn_fini)(vsf_linux_fd_t *sfd)
Definition vsf_linux_fs.h:74
Definition vsf_linux_fs.h:88
short pendind_events
Definition vsf_linux_fs.h:89
void(* cb)(vsf_linux_fd_priv_t *priv, void *param, short events, vsf_protect_t orig)
Definition vsf_linux_fs.h:91
void * param
Definition vsf_linux_fs.h:90
Definition vsf_linux.h:128
uintalu_t vsf_protect_t
Definition vsf_arch_abstraction.h:53
void(* vsf_param_eda_evthandler_t)(uintptr_t target, vsf_evt_t evt)
Definition vsf_eda.h:658
#define VSF_LINUX_CFG_FS_CACHE_SIZE
Definition vsf_linux_cfg.h:42
int vsf_linux_fs_bind_target_relative(vk_vfs_file_t *dir, const char *pathname, void *target, const vsf_linux_fd_op_t *op, uint_fast32_t feature, uint64_t size)
Definition vsf_linux_fs.c:2803
int vsf_linux_fs_get_target(const char *pathname, void **target)
Definition vsf_linux_fs.c:2791
int vsf_linux_fs_bind_dir_target(const char *pathname, void *target)
Definition vsf_linux_fs.c:2856
vsf_linux_fd_t * vsf_linux_tx_pipe(vsf_linux_pipe_priv_t *priv_rx)
Definition vsf_linux_fs.c:3387
int vsf_linux_fd_bind_target_ex(int fd, void *target, const vsf_linux_fd_op_t *op, vsf_param_eda_evthandler_t peda_read, vsf_param_eda_evthandler_t peda_write, uint_fast32_t feature, uint64_t size)
Definition vsf_linux_fs.c:2764
void vsf_linux_fd_set_events(vsf_linux_fd_priv_t *priv, short events, vsf_protect_t orig)
Definition vsf_linux_fs.c:1209
int vsf_linux_fd_set_feature(int fd, uint_fast32_t feature)
Definition vsf_linux_fs.c:936
int vsf_linux_fs_bind_target(const char *pathname, void *target, vsf_param_eda_evthandler_t peda_read, vsf_param_eda_evthandler_t peda_write)
Definition vsf_linux_fs.c:2843
bool vsf_linux_fd_is_block(vsf_linux_fd_t *sfd)
Definition vsf_linux_fs.c:1132
const vsf_linux_fd_op_t __vsf_linux_stream_fdop
Definition vsf_linux_fs.c:232
int vsf_linux_fd_get_feature(int fd, uint_fast32_t *feature)
Definition vsf_linux_fs.c:924
int vsf_linux_create_pty(int num)
Definition vsf_linux_fs.c:3444
vsf_linux_fd_priv_callback_t * vsf_linux_fd_claim_calback(vsf_linux_fd_priv_t *priv)
Definition vsf_linux_fs.c:1157
int vsf_linux_fd_create(vsf_linux_fd_t **sfd, const vsf_linux_fd_op_t *op)
Definition vsf_linux_fs.c:1078
vsf_linux_fd_t * vsf_linux_rx_stream(vsf_stream_t *stream)
Definition vsf_linux_fs.c:3255
int vsf_linux_fs_bind_pipe(const char *pathname1, const char *pathname2, bool exclusive)
Definition vsf_linux_fs.c:3415
vsf_linux_fd_t * vsf_linux_fd_get(int fd)
Definition vsf_linux_fs.c:900
int vsf_linux_fd_bind_target(int fd, void *target, vsf_param_eda_evthandler_t peda_read, vsf_param_eda_evthandler_t peda_write)
Definition vsf_linux_fs.c:2784
const vsf_linux_fd_op_t vsf_linux_term_fdop
Definition vsf_linux_fs.c:253
int vsf_linux_fd_get_target(int fd, void **target)
Definition vsf_linux_fs.c:2751
void vsf_linux_fd_delete(int fd)
Definition vsf_linux_fs.c:1106
const vsf_linux_fd_op_t vsf_linux_pipe_fdop
Definition vsf_linux_fs.c:242
void vsf_linux_fd_clear_status(vsf_linux_fd_priv_t *priv, short status, vsf_protect_t orig)
Definition vsf_linux_fs.c:1235
int vsf_linux_fd_set_size(int fd, uint64_t size)
Definition vsf_linux_fs.c:955
void vsf_linux_fd_release_calback(vsf_linux_fd_priv_t *priv, vsf_linux_fd_priv_callback_t *callback)
Definition vsf_linux_fs.c:1171
int vsf_linux_fs_bind_target_ex(const char *pathname, void *target, const vsf_linux_fd_op_t *op, vsf_param_eda_evthandler_t peda_read, vsf_param_eda_evthandler_t peda_write, uint_fast32_t feature, uint64_t size)
Definition vsf_linux_fs.c:2825
short vsf_linux_fd_get_status(vsf_linux_fd_priv_t *priv, short status)
Definition vsf_linux_fs.c:1242
short vsf_linux_fd_pend_events(vsf_linux_fd_priv_t *priv, short events, vsf_linux_trigger_t *trig, vsf_protect_t orig)
Definition vsf_linux_fs.c:1176
void vsf_linux_fd_set_status(vsf_linux_fd_priv_t *priv, short status, vsf_protect_t orig)
Definition vsf_linux_fs.c:1224
vsf_linux_fd_t * vsf_linux_stream(vsf_stream_t *stream_rx, vsf_stream_t *stream_tx)
Definition vsf_linux_fs.c:3241
const vsf_linux_fd_op_t vsf_linux_key_fdop
Definition vsf_linux_fs.c:265
vsf_linux_fd_t * vsf_linux_rx_pipe(vsf_queue_stream_t *queue_stream)
Definition vsf_linux_fs.c:3358
vsf_linux_fd_t * vsf_linux_tx_stream(vsf_stream_t *stream)
Definition vsf_linux_fs.c:3260
const vsf_linux_fd_op_t __vsf_linux_fs_fdop
Definition vsf_linux_fs.c:201
int vsf_linux_fd_add_feature(int fd, uint_fast32_t feature)
Definition vsf_linux_fs.c:946
@ VSF_LINUX_FDOP_FEATURE_FS
Definition vsf_linux_fs.h:67
int vsf_linux_fs_bind_buffer(const char *pathname, void *buffer, uint_fast32_t feature, uint64_t size)
Definition vsf_linux_fs.c:2922
int vsf_linux_fs_bind_stream(const char *pathname, vsf_stream_t *stream_rx, vsf_stream_t *stream_tx)
Definition vsf_linux_fs.c:3265
uint64_t offset
Definition vsf_memfs.h:49
uint32_t size
Definition vsf_memfs.h:50
uint8_t status
Definition vsf_tgui.h:144
struct event_t events[32]
Definition vsf_xboot.c:36