OSDN Git Service

hidden_def/hidden_proto: convert all users (I hope) termios split, add some missing...
[uclinux-h8/uClibc.git] / libc / sysdeps / linux / common / clock_getres.c
1 /*
2  * clock_getres() for uClibc
3  *
4  * Copyright (C) 2005 by Peter Kjellerstedt <pkj@axis.com>
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU Library General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or (at your
9  * option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
14  * for more details.
15  *
16  * You should have received a copy of the GNU Library General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19  *
20  */
21
22 #define _GNU_SOURCE
23 #include "syscalls.h"
24 #include <time.h>
25 #include <unistd.h>
26
27 #ifdef __NR_clock_getres
28 _syscall2(int, clock_getres, clockid_t, clock_id, struct timespec*, res);
29 #else
30 libc_hidden_proto(sysconf)
31
32 int clock_getres(clockid_t clock_id, struct timespec* res)
33 {
34         long clk_tck;
35         int retval = -1;
36
37         switch (clock_id) {
38                 case CLOCK_REALTIME:
39                         if ((clk_tck = sysconf(_SC_CLK_TCK)) < 0)
40                                 clk_tck = 100;
41                         res->tv_sec = 0;
42                         res->tv_nsec = 1000000000 / clk_tck;
43                         retval = 0;
44                         break;
45
46                 default:
47                         errno = EINVAL;
48                         break;
49         }
50
51         return retval;
52 }
53 #endif