ia64/xen-unstable

annotate xen/include/xen/time.h @ 15948:2477e94450aa

cpufreq: Support cpufreq updates on AMD hardware by dom0 kernel.
Signed-off-by: Mark Langsdorf <mark.langsdorf@amd.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
author Keir Fraser <keir@xensource.com>
date Thu Sep 20 14:15:45 2007 +0100 (2007-09-20)
parents 35e38c9048c8
children becd9b77f951
rev   line source
keir@15948 1 /******************************************************************************
keir@15948 2 * time.h
kaf24@1210 3 *
keir@15948 4 * Copyright (c) 2002-2003 Rolf Neugebauer
keir@15948 5 * Copyright (c) 2002-2005 K A Fraser
kaf24@1210 6 */
kaf24@1210 7
kaf24@1211 8 #ifndef __XEN_TIME_H__
kaf24@1211 9 #define __XEN_TIME_H__
kaf24@1210 10
kaf24@1210 11 #include <xen/types.h>
kaf24@2789 12 #include <public/xen.h>
kaf24@3645 13 #include <asm/time.h>
kaf24@1210 14
kaf24@5828 15 extern int init_xen_time(void);
kaf24@1210 16
kaf24@1488 17 extern unsigned long cpu_khz;
kaf24@1210 18
cl349@2922 19 struct domain;
cl349@2922 20
kaf24@1210 21 /*
kaf24@1210 22 * System Time
kaf24@1210 23 * 64 bit value containing the nanoseconds elapsed since boot time.
kaf24@1210 24 * This value is adjusted by frequency drift.
kaf24@1210 25 * NOW() returns the current time.
kaf24@1210 26 * The other macros are for convenience to approximate short intervals
kaf24@1210 27 * of real time into system time
kaf24@1210 28 */
kaf24@1210 29
kaf24@1488 30 typedef s64 s_time_t;
kaf24@1488 31
kaf24@1210 32 s_time_t get_s_time(void);
kfraser@11890 33 unsigned long get_localtime(struct domain *d);
kfraser@11890 34
kfraser@11890 35 struct tm {
kfraser@11890 36 int tm_sec; /* seconds */
kfraser@11890 37 int tm_min; /* minutes */
kfraser@11890 38 int tm_hour; /* hours */
kfraser@11890 39 int tm_mday; /* day of the month */
kfraser@11890 40 int tm_mon; /* month */
kfraser@11890 41 int tm_year; /* year */
kfraser@11890 42 int tm_wday; /* day of the week */
kfraser@11890 43 int tm_yday; /* day in the year */
kfraser@11890 44 int tm_isdst; /* daylight saving time */
kfraser@11890 45 };
kfraser@11890 46 struct tm gmtime(unsigned long t);
kaf24@1210 47
kaf24@1486 48 #define NOW() ((s_time_t)get_s_time())
kaf24@5940 49 #define SECONDS(_s) ((s_time_t)((_s) * 1000000000ULL))
kaf24@5940 50 #define MILLISECS(_ms) ((s_time_t)((_ms) * 1000000ULL))
kaf24@5940 51 #define MICROSECS(_us) ((s_time_t)((_us) * 1000ULL))
kaf24@1210 52
kaf24@9592 53 extern void update_vcpu_system_time(struct vcpu *v);
kaf24@9592 54 extern void update_domain_wallclock_time(struct domain *d);
kaf24@9592 55
kaf24@4294 56 extern void do_settime(
kaf24@6048 57 unsigned long secs, unsigned long nsecs, u64 system_time_base);
kaf24@1210 58
kaf24@9284 59 extern void send_timer_event(struct vcpu *v);
kaf24@9284 60
kaf24@1211 61 #endif /* __XEN_TIME_H__ */
kaf24@3914 62
kaf24@3914 63 /*
kaf24@3914 64 * Local variables:
kaf24@3914 65 * mode: C
kaf24@3914 66 * c-set-style: "BSD"
kaf24@3914 67 * c-basic-offset: 4
kaf24@3914 68 * tab-width: 4
kaf24@3914 69 * indent-tabs-mode: nil
kaf24@3988 70 * End:
kaf24@3914 71 */