]> git.saurik.com Git - apple/xnu.git/blob - osfmk/kern/etimer.h
3b5c4bf518469a5c1ee11f43ac470c6759cc22a0
[apple/xnu.git] / osfmk / kern / etimer.h
1 /*
2 * Copyright (c) 2004-2005 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * The contents of this file constitute Original Code as defined in and
7 * are subject to the Apple Public Source License Version 1.1 (the
8 * "License"). You may not use this file except in compliance with the
9 * License. Please obtain a copy of the License at
10 * http://www.apple.com/publicsource and read it before using this file.
11 *
12 * This Original Code and all software distributed under the License are
13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17 * License for the specific language governing rights and limitations
18 * under the License.
19 *
20 * @APPLE_LICENSE_HEADER_END@
21 */
22 /*
23 * @OSF_COPYRIGHT@
24 */
25 /*
26 * @APPLE_FREE_COPYRIGHT@
27 */
28 /*
29 * File: etimer.h
30 * Purpose: Routines for handling the machine independent
31 * real-time clock.
32 */
33
34 #ifndef _ETIMER_H_
35 #define _ETIMER_H_
36
37 #define EndOfAllTime 0xFFFFFFFFFFFFFFFFULL
38
39 /* extern void rtclock_intr(int inuser, uint64_t iaddr); - this is currently MD */
40 typedef void (*etimer_intr_t)(int, uint64_t);
41
42 extern int setTimerReq(void);
43 extern void etimer_intr(int inuser, uint64_t iaddr);
44
45 extern void etimer_set_deadline(uint64_t deadline);
46 extern int setPop(uint64_t time);
47
48 extern void etimer_resync_deadlines(void);
49
50 extern uint32_t rtclock_tick_interval;
51
52 extern uint64_t tsc_to_nanoseconds(uint64_t abstime);
53
54 #if 0 /* this is currently still MD */
55 #pragma pack(push,4)
56 struct rtclock_timer_t {
57 uint64_t deadline;
58 uint32_t
59 /*boolean_t*/ is_set:1,
60 has_expired:1,
61 :0;
62 };
63 #pragma pack(pop)
64 typedef struct rtclock_timer_t rtclock_timer_t;
65 #endif /* MD */
66
67
68 #endif /* _ETIMER_H_ */