blob: 8b9b5b325366559be05c84642173fdf570e63334 [file] [log] [blame]
Jari Aaltocce855b1998-04-17 19:52:44 +00001/* clktck.c - get the value of CLK_TCK. */
2
3/* Copyright (C) 1997 Free Software Foundation, Inc.
4
5 This file is part of GNU Bash, the Bourne Again SHell.
6
Jari Aalto31859422009-01-12 13:36:28 +00007 Bash is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
Jari Aaltocce855b1998-04-17 19:52:44 +000011
Jari Aalto31859422009-01-12 13:36:28 +000012 Bash is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
Jari Aaltocce855b1998-04-17 19:52:44 +000016
Jari Aalto31859422009-01-12 13:36:28 +000017 You should have received a copy of the GNU General Public License
18 along with Bash. If not, see <http://www.gnu.org/licenses/>.
19*/
Jari Aaltocce855b1998-04-17 19:52:44 +000020
21#include <config.h>
22
23#include <bashtypes.h>
Chet Rameyac50fba2014-02-26 09:36:43 -050024#if defined (HAVE_SYS_PARAM_H)
25# include <sys/param.h>
26#endif
Jari Aaltocce855b1998-04-17 19:52:44 +000027
28#if defined (HAVE_UNISTD_H)
29# include <unistd.h>
30#endif
31
Jari Aalto7117c2d2002-07-17 14:10:11 +000032#if defined (HAVE_LIMITS_H)
33# include <limits.h>
34#endif
35
Jari Aaltocce855b1998-04-17 19:52:44 +000036#if !defined (HAVE_SYSCONF) || !defined (_SC_CLK_TCK)
37# if !defined (CLK_TCK)
38# if defined (HZ)
39# define CLK_TCK HZ
40# else
41# define CLK_TCK 60
42# endif
43# endif /* !CLK_TCK */
44#endif /* !HAVE_SYSCONF && !_SC_CLK_TCK */
45
46long
47get_clk_tck ()
48{
49 static long retval = 0;
50
51 if (retval != 0)
52 return (retval);
53
54#if defined (HAVE_SYSCONF) && defined (_SC_CLK_TCK)
55 retval = sysconf (_SC_CLK_TCK);
56#else /* !SYSCONF || !_SC_CLK_TCK */
57 retval = CLK_TCK;
58#endif /* !SYSCONF || !_SC_CLK_TCK */
59
60 return (retval);
61}