diff options
Diffstat (limited to 'support/sys-sendfile.c')
-rw-r--r-- | support/sys-sendfile.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/support/sys-sendfile.c b/support/sys-sendfile.c new file mode 100644 index 00000000000..0a6c7f6d59f --- /dev/null +++ b/support/sys-sendfile.c @@ -0,0 +1,43 @@ +/* + * <sys/sendfile.h> wrapper functions. + * + * Authors: + * Jonathan Pryor (jonpryor@vt.edu) + * + * Copyright (C) 2004 Jonathan Pryor + */ + +#include <sys/types.h> +#include <errno.h> + +#ifdef HAVE_SYS_SENDFILE_H +#include <sys/sendfile.h> +#endif /* ndef HAVE_SYS_SENDFILE_H */ + +#include "mph.h" + +G_BEGIN_DECLS + +#ifdef HAVE_SENDFILE +mph_ssize_t +Mono_Posix_Syscall_sendfile (int out_fd, int in_fd, mph_off_t *offset, mph_size_t count) +{ + off_t _offset; + ssize_t r; + mph_return_if_off_t_overflow (*offset); + + _offset = *offset; + + r = sendfile (out_fd, in_fd, &_offset, (size_t) count); + + *offset = _offset; + + return r; +} +#endif /* ndef HAVE_SENDFILE */ + +G_END_DECLS + +/* + * vim: noexpandtab + */ |