1 /* time system call for Linux/PowerPC.
2 Copyright (C) 2013-2014 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
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.
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.
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <http://www.gnu.org/licenses/>. */
24 # include <bits/libc-vdso.h>
25 # include <dl-machine.h>
27 void *time_ifunc (void) asm ("time");
30 time_syscall (time_t *t)
35 if (INLINE_VSYSCALL (gettimeofday, 2, &tv, NULL) < 0)
38 result = (time_t) tv.tv_sec;
48 /* If the vDSO is not available we fall back to the syscall. */
49 return (__vdso_time ? VDSO_IFUNC_RET (__vdso_time)
52 asm (".type time, %gnu_indirect_function");
54 /* This is doing "libc_hidden_def (time)" but the compiler won't
55 * let us do it in C because it doesn't know we're defining time
56 * here in this file. */
57 asm (".globl __GI_time\n"
62 #include <sysdeps/posix/time.c>