~ubuntu-branches/ubuntu/precise/eglibc/precise-201308281639

1 by Aurelien Jarno
Import upstream version 2.9
1
/* Selective file content synch'ing.
288.1.12 by Matthias Klose
Merge from Debian (r5151, 2.13-26).
2
   Copyright (C) 2006, 2007, 2011 Free Software Foundation, Inc.
1 by Aurelien Jarno
Import upstream version 2.9
3
   This file is part of the GNU C Library.
4
5
   The GNU C Library is free software; you can redistribute it and/or
6
   modify it under the terms of the GNU Lesser General Public
7
   License as published by the Free Software Foundation; either
8
   version 2.1 of the License, or (at your option) any later version.
9
10
   The GNU C Library is distributed in the hope that it will be useful,
11
   but WITHOUT ANY WARRANTY; without even the implied warranty of
12
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13
   Lesser General Public License for more details.
14
15
   You should have received a copy of the GNU Lesser General Public
1.5.3 by Matthias Klose
Import upstream version 2.15~pre6
16
   License along with the GNU C Library; if not, write to the Free
17
   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18
   02111-1307 USA.  */
1 by Aurelien Jarno
Import upstream version 2.9
19
20
#include <errno.h>
21
#include <fcntl.h>
22
#include <sys/types.h>
23
288.1.12 by Matthias Klose
Merge from Debian (r5151, 2.13-26).
24
#include <sysdep-cancel.h>
1 by Aurelien Jarno
Import upstream version 2.9
25
#include <sys/syscall.h>
26
27
28
#ifdef __NR_sync_file_range
29
int
30
sync_file_range (int fd, __off64_t from, __off64_t to, unsigned int flags)
31
{
288.1.12 by Matthias Klose
Merge from Debian (r5151, 2.13-26).
32
  if (SINGLE_THREAD_P)
33
    return INLINE_SYSCALL (sync_file_range, 7, fd, 0,
34
			   __LONG_LONG_PAIR ((long) (from >> 32), (long) from),
35
			   __LONG_LONG_PAIR ((long) (to >> 32), (long) to),
36
			   flags);
37
38
  int result;
39
  int oldtype = LIBC_CANCEL_ASYNC ();
40
41
  result = INLINE_SYSCALL (sync_file_range, 7, fd, 0,
42
			   __LONG_LONG_PAIR ((long) (from >> 32), (long) from),
43
			   __LONG_LONG_PAIR ((long) (to >> 32), (long) to),
44
			   flags);
45
46
  LIBC_CANCEL_RESET (oldtype);
47
48
  return result;
1 by Aurelien Jarno
Import upstream version 2.9
49
}
50
#else
51
int
52
sync_file_range (int fd, __off64_t from, __off64_t to, unsigned int flags)
53
{
54
  __set_errno (ENOSYS);
55
  return -1;
56
}
57
stub_warning (sync_file_range)
1.5.3 by Matthias Klose
Import upstream version 2.15~pre6
58
59
# include <stub-tag.h>
1 by Aurelien Jarno
Import upstream version 2.9
60
#endif