Annotation of src/usr.bin/gprof/hertz.c, Revision 1.7
1.7 ! deraadt 1: /* $OpenBSD: hertz.c,v 1.6 2006/03/25 19:06:36 espie Exp $ */
1.1 deraadt 2:
3: /*
1.5 art 4: * Copyright (c) 2005 Artur Grabowski <art@openbsd.org>
1.1 deraadt 5: *
1.5 art 6: * Permission to use, copy, modify, and distribute this software for any
7: * purpose with or without fee is hereby granted, provided that the above
8: * copyright notice and this permission notice appear in all copies.
1.1 deraadt 9: *
1.5 art 10: * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11: * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12: * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13: * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14: * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15: * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16: * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1.1 deraadt 17: */
18:
19:
20: #include <sys/time.h>
1.5 art 21: #include <sys/sysctl.h>
1.6 espie 22:
23: #include "gprof.h"
1.1 deraadt 24:
1.5 art 25: /*
26: * Return the tick frequency on the machine or 0 if we can't find out.
27: */
1.1 deraadt 28:
1.3 mickey 29: int
1.5 art 30: hertz(void)
1.1 deraadt 31: {
1.5 art 32: struct clockinfo cinfo;
33: int mib[2];
34: size_t len;
35:
36: mib[0] = CTL_KERN;
37: mib[1] = KERN_CLOCKRATE;
38: len = sizeof(cinfo);
39: if (sysctl(mib, 2, &cinfo, &len, NULL, 0) == -1)
40: return (0);
1.1 deraadt 41:
1.5 art 42: return (cinfo.hz);
1.1 deraadt 43: }