VSF Documented
sendfile.h
Go to the documentation of this file.
1#ifndef __VSF_LINUX_SYS_SENDFILE_H__
2#define __VSF_LINUX_SYS_SENDFILE_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 sendfile VSF_LINUX_WRAPPER(sendfile)
18#endif
19
20#if VSF_LINUX_APPLET_USE_SYS_SENDFILE == ENABLED
23
26# ifndef __VSF_APPLET__
28# endif
29#endif
30
31#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_SYS_SENDFILE_LIB__))\
32 && VSF_APPLET_CFG_ABI_PATCH != ENABLED && VSF_LINUX_APPLET_USE_SYS_SENDFILE == ENABLED
33
34#ifndef VSF_LINUX_APPLET_SYS_SENDFILE_VPLT
35# if VSF_LINUX_USE_APPLET == ENABLED
36# define VSF_LINUX_APPLET_SYS_SENDFILE_VPLT \
37 ((vsf_linux_sys_sendfile_vplt_t *)(VSF_LINUX_APPLET_VPLT->sys_sendfile_vplt))
38# else
39# define VSF_LINUX_APPLET_SYS_SENDFILE_VPLT \
40 ((vsf_linux_sys_sendfile_vplt_t *)vsf_vplt((void *)0))
41# endif
42#endif
43
44#define VSF_LINUX_APPLET_SYS_SENDFILE_ENTRY(__NAME) \
45 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_SYS_SENDFILE_VPLT, __NAME)
46#define VSF_LINUX_APPLET_SYS_SENDFILE_IMP(...) \
47 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_SYS_SENDFILE_VPLT, __VA_ARGS__)
48
49VSF_LINUX_APPLET_SYS_SENDFILE_IMP(sendfile, ssize_t, int out_fd, int in_fd, off_t *offset, size_t count) {
50 return VSF_LINUX_APPLET_SYS_SENDFILE_ENTRY(sendfile)(out_fd, in_fd, offset, count);
51}
52
53#else // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_SYS_SENDFILE
54
55ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count);
56
57#endif // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_SYS_SENDFILE
58
59#ifdef __cplusplus
60}
61#endif
62
63#endif // __VSF_LINUX_SYS_SENDFILE_H__
int ssize_t
Definition types.h:68
long off_t
Definition types.h:95
#define sendfile
Definition sendfile.h:17
__VSF_VPLT_DECORATOR__ vsf_linux_sys_sendfile_vplt_t vsf_linux_sys_sendfile_vplt
Definition vsf_linux_fs.c:3655
Definition sendfile.h:21
vsf_vplt_info_t info
Definition sendfile.h:22
Definition vsf_cfg.h:95
#define __VSF_VPLT_DECORATOR__
Definition vsf_cfg.h:93
uint64_t offset
Definition vsf_memfs.h:49