VSF Documented
file.h
Go to the documentation of this file.
1#ifndef __VSF_LINUX_SYS_FILE_H__
2#define __VSF_LINUX_SYS_FILE_H__
3
5
6#if VSF_LINUX_CFG_RELATIVE_PATH == ENABLED
7# include "../sys/types.h"
8#else
9# include <sys/types.h>
10#endif
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16#if VSF_LINUX_CFG_WRAPPER == ENABLED
17#define flock VSF_LINUX_WRAPPER(flock)
18#endif
19
20#define LOCK_SH (1 << 0)
21#define LOCK_EX (1 << 1)
22#define LOCK_UN (1 << 2)
23
24#if VSF_LINUX_APPLET_USE_SYS_FILE == ENABLED
27
30# ifndef __VSF_APPLET__
32# endif
33#endif
34
35#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_SYS_FILE_LIB__))\
36 && VSF_APPLET_CFG_ABI_PATCH != ENABLED && VSF_LINUX_APPLET_USE_SYS_FILE == ENABLED
37
38#ifndef VSF_LINUX_APPLET_SYS_FILE_VPLT
39# if VSF_LINUX_USE_APPLET == ENABLED
40# define VSF_LINUX_APPLET_SYS_FILE_VPLT \
41 ((vsf_linux_sys_file_vplt_t *)(VSF_LINUX_APPLET_VPLT->sys_file_vplt))
42# else
43# define VSF_LINUX_APPLET_SYS_FILE_VPLT \
44 ((vsf_linux_sys_file_vplt_t *)vsf_vplt((void *)0))
45# endif
46#endif
47
48#define VSF_LINUX_APPLET_SYS_FILE_ENTRY(__NAME) \
49 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_SYS_FILE_VPLT, __NAME)
50#define VSF_LINUX_APPLET_SYS_FILE_IMP(...) \
51 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_SYS_FILE_VPLT, __VA_ARGS__)
52
53VSF_LINUX_APPLET_SYS_FILE_IMP(flock, int, int fd, int operation) {
55 return VSF_LINUX_APPLET_SYS_FILE_ENTRY(flock)(fd, operation);
56}
57
58#else // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_SYS_FILE
59
60int flock(int fd, int operation);
61
62#endif // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_SYS_FILE
63
64#ifdef __cplusplus
65}
66#endif
67
68#endif // __VSF_LINUX_SYS_FILE_H__
#define flock
Definition file.h:17
__VSF_VPLT_DECORATOR__ vsf_linux_sys_file_vplt_t vsf_linux_sys_file_vplt
Definition vsf_linux_fs.c:3674
Definition fcntl.h:97
Definition file.h:25
vsf_vplt_info_t info
Definition file.h:26
Definition vsf_cfg.h:95
#define __VSF_VPLT_DECORATOR__
Definition vsf_cfg.h:93
#define VSF_APPLET_VPLT_ENTRY_FUNC_TRACE()
Definition vsf_cfg.h:165