New test.
[mono.git] / support / sys-sendfile.c
1 /*
2  * <sys/sendfile.h> wrapper functions.
3  *
4  * Authors:
5  *   Jonathan Pryor (jonpryor@vt.edu)
6  *
7  * Copyright (C) 2004 Jonathan Pryor
8  */
9
10 #include <sys/types.h>
11 #include <errno.h>
12
13 #include "mph.h"
14
15 #ifdef HAVE_SYS_SENDFILE_H
16 #include <sys/sendfile.h>
17 #endif /* ndef HAVE_SYS_SENDFILE_H */
18
19 G_BEGIN_DECLS
20
21 #ifdef HAVE_SENDFILE
22 mph_ssize_t
23 Mono_Posix_Syscall_sendfile (int out_fd, int in_fd, mph_off_t *offset, mph_size_t count)
24 {
25         off_t _offset;
26         ssize_t r;
27         mph_return_if_off_t_overflow (*offset);
28
29         _offset = *offset;
30
31         r = sendfile (out_fd, in_fd, &_offset, (size_t) count);
32
33         *offset = _offset;
34
35         return r;
36 }
37 #endif /* ndef HAVE_SENDFILE */
38
39 G_END_DECLS
40
41 /*
42  * vim: noexpandtab
43  */