ia64/xen-unstable

view xen/include/asm-x86/types.h @ 17571:b6aa55ca599e

shadow: track video RAM dirty bits

This adds a new HVM op that enables tracking dirty bits of a range of
video RAM. The idea is to optimize just for the most common case
(only one guest mapping, with sometimes some temporary other
mappings), which permits to keep the overhead on shadow as low as
possible.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Fri May 02 15:08:27 2008 +0100 (2008-05-02)
parents 5a7eebbae5dc
children 8bd776540ab3
line source
1 #ifndef __X86_TYPES_H__
2 #define __X86_TYPES_H__
4 #ifndef __ASSEMBLY__
6 #include <xen/config.h>
8 typedef __signed__ char __s8;
9 typedef unsigned char __u8;
11 typedef __signed__ short __s16;
12 typedef unsigned short __u16;
14 typedef __signed__ int __s32;
15 typedef unsigned int __u32;
17 #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
18 #if defined(__i386__)
19 typedef __signed__ long long __s64;
20 typedef unsigned long long __u64;
21 #elif defined(__x86_64__)
22 typedef __signed__ long __s64;
23 typedef unsigned long __u64;
24 #endif
25 #endif
27 typedef signed char s8;
28 typedef unsigned char u8;
30 typedef signed short s16;
31 typedef unsigned short u16;
33 typedef signed int s32;
34 typedef unsigned int u32;
36 #if defined(__i386__)
37 typedef signed long long s64;
38 typedef unsigned long long u64;
39 #if defined(CONFIG_X86_PAE)
40 typedef u64 paddr_t;
41 #define INVALID_PADDR (~0ULL)
42 #define PRIpaddr "016llx"
43 #else
44 typedef unsigned long paddr_t;
45 #define INVALID_PADDR (~0UL)
46 #define PRIpaddr "08lx"
47 #endif
48 #elif defined(__x86_64__)
49 typedef signed long s64;
50 typedef unsigned long u64;
51 typedef unsigned long paddr_t;
52 #define INVALID_PADDR (~0UL)
53 #define PRIpaddr "016lx"
54 #endif
56 typedef unsigned long size_t;
58 typedef char bool_t;
59 #define test_and_set_bool(b) xchg(&(b), 1)
60 #define test_and_clear_bool(b) xchg(&(b), 0)
62 #endif /* __ASSEMBLY__ */
64 #if defined(__i386__)
65 #define BITS_PER_LONG 32
66 #define BYTES_PER_LONG 4
67 #define LONG_BYTEORDER 2
68 #elif defined(__x86_64__)
69 #define BITS_PER_LONG 64
70 #define BYTES_PER_LONG 8
71 #define LONG_BYTEORDER 3
72 #endif
74 #endif /* __X86_TYPES_H__ */