ia64/xen-unstable

annotate xen/include/xen/time.h @ 5940:ac7176771024

While merging my development tree with the latest hg tree I noticed that
VMX support was broken. When you boot an unmodified Linux kernel it gets
stuck in the "Calibrating delay" loop. The reason for this is that the
vmx code is repeatedly delivering timer interrupts.

Correcting the MILLISECS() and friends macros to return s_time_t instead
of ULL fixes this problem. The other changes are just to get rid of
redundant code and variables.

Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com>
author kaf24@firebug.cl.cam.ac.uk
date Mon Aug 01 09:16:25 2005 +0000 (2005-08-01)
parents 43564304cf94
children 0db6a59abb95
rev   line source
kaf24@3914 1 /****************************************************************************
kaf24@1210 2 * (C) 2002 - Rolf Neugebauer - Intel Research Cambridge
kaf24@1210 3 ****************************************************************************
kaf24@1210 4 *
kaf24@1210 5 * File: time.h
kaf24@1210 6 * Author: Rolf Neugebauer (neugebar@dcs.gla.ac.uk)
kaf24@1210 7 * Changes:
kaf24@1210 8 *
kaf24@1210 9 * Date: Nov 2002
kaf24@1210 10 *
kaf24@1210 11 * Environment: Xen Hypervisor
kaf24@1210 12 * Description: This file provides a one stop shop for all time related
kaf24@1210 13 * issues within the hypervisor.
kaf24@1210 14 *
kaf24@1210 15 * The Hypervisor provides the following notions of time:
kaf24@1210 16 * Cycle Counter Time, System Time, Wall Clock Time, and
kaf24@1210 17 * Domain Virtual Time.
kaf24@1210 18 *
kaf24@1210 19 ****************************************************************************
kaf24@1210 20 * $Id: h-insert.h,v 1.4 2002/11/08 16:03:55 rn Exp $
kaf24@1210 21 ****************************************************************************
kaf24@1210 22 */
kaf24@1210 23
kaf24@1210 24
kaf24@1210 25
kaf24@1211 26 #ifndef __XEN_TIME_H__
kaf24@1211 27 #define __XEN_TIME_H__
kaf24@1210 28
kaf24@1210 29 #include <xen/types.h>
kaf24@2789 30 #include <public/xen.h>
kaf24@3645 31 #include <asm/time.h>
kaf24@1210 32
kaf24@5828 33 extern int init_xen_time(void);
kaf24@5828 34 extern void init_percpu_time(void);
kaf24@1210 35
kaf24@1488 36 extern unsigned long cpu_khz;
kaf24@1210 37
cl349@2922 38 struct domain;
cl349@2922 39
kaf24@1210 40 /*
kaf24@1210 41 * System Time
kaf24@1210 42 * 64 bit value containing the nanoseconds elapsed since boot time.
kaf24@1210 43 * This value is adjusted by frequency drift.
kaf24@1210 44 * NOW() returns the current time.
kaf24@1210 45 * The other macros are for convenience to approximate short intervals
kaf24@1210 46 * of real time into system time
kaf24@1210 47 */
kaf24@1210 48
kaf24@1488 49 typedef s64 s_time_t;
kaf24@1488 50
kaf24@1210 51 s_time_t get_s_time(void);
kaf24@1210 52
kaf24@1486 53 #define NOW() ((s_time_t)get_s_time())
kaf24@5940 54 #define SECONDS(_s) ((s_time_t)((_s) * 1000000000ULL))
kaf24@5940 55 #define MILLISECS(_ms) ((s_time_t)((_ms) * 1000000ULL))
kaf24@5940 56 #define MICROSECS(_us) ((s_time_t)((_us) * 1000ULL))
kaf24@1210 57
kaf24@5289 58 extern void update_dom_time(struct vcpu *v);
kaf24@4294 59 extern void do_settime(
kaf24@4294 60 unsigned long secs, unsigned long usecs, u64 system_time_base);
kaf24@1210 61
kaf24@1211 62 #endif /* __XEN_TIME_H__ */
kaf24@3914 63
kaf24@3914 64 /*
kaf24@3914 65 * Local variables:
kaf24@3914 66 * mode: C
kaf24@3914 67 * c-set-style: "BSD"
kaf24@3914 68 * c-basic-offset: 4
kaf24@3914 69 * tab-width: 4
kaf24@3914 70 * indent-tabs-mode: nil
kaf24@3988 71 * End:
kaf24@3914 72 */