]> git.ipfire.org Git - thirdparty/bash.git/blob - lib/sh/clktck.c
Imported from ../bash-4.0-rc1.tar.gz.
[thirdparty/bash.git] / lib / sh / clktck.c
1 /* 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
7 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.
11
12 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.
16
17 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 */
20
21 #include <config.h>
22
23 #include <bashtypes.h>
24 #include <sys/param.h>
25
26 #if defined (HAVE_UNISTD_H)
27 # include <unistd.h>
28 #endif
29
30 #if defined (HAVE_LIMITS_H)
31 # include <limits.h>
32 #endif
33
34 #if !defined (HAVE_SYSCONF) || !defined (_SC_CLK_TCK)
35 # if !defined (CLK_TCK)
36 # if defined (HZ)
37 # define CLK_TCK HZ
38 # else
39 # define CLK_TCK 60
40 # endif
41 # endif /* !CLK_TCK */
42 #endif /* !HAVE_SYSCONF && !_SC_CLK_TCK */
43
44 long
45 get_clk_tck ()
46 {
47 static long retval = 0;
48
49 if (retval != 0)
50 return (retval);
51
52 #if defined (HAVE_SYSCONF) && defined (_SC_CLK_TCK)
53 retval = sysconf (_SC_CLK_TCK);
54 #else /* !SYSCONF || !_SC_CLK_TCK */
55 retval = CLK_TCK;
56 #endif /* !SYSCONF || !_SC_CLK_TCK */
57
58 return (retval);
59 }