win-pvdrivers

changeset 146:b474e898b409

patches to change 'long' types in the headers to something that is the same as sizeof(void *) under i386 and amd64 architectures
author James Harper <james.harper@bendigoit.com.au>
date Wed Jan 23 13:01:20 2008 +1100 (2008-01-23)
parents e1ec2bacd4b0
children 2efec00dd95f
files common/include/public/arch-ia64.h common/include/public/arch-powerpc.h common/include/public/arch-x86/xen-x86_32.h common/include/public/arch-x86/xen-x86_64.h common/include/public/arch-x86/xen.h common/include/public/io/fbif.h common/include/public/io/tpmif.h common/include/public/kexec.h common/include/public/libelf.h common/include/public/nmi.h common/include/public/physdev.h common/include/public/sched.h common/include/public/trace.h common/include/public/version.h common/include/public/xen.h
line diff
     1.1 --- a/common/include/public/arch-ia64.h	Wed Jan 23 13:00:43 2008 +1100
     1.2 +++ b/common/include/public/arch-ia64.h	Wed Jan 23 13:01:20 2008 +1100
     1.3 @@ -48,14 +48,14 @@
     1.4  /* Guest handles for primitive C types. */
     1.5  __DEFINE_XEN_GUEST_HANDLE(uchar, unsigned char);
     1.6  __DEFINE_XEN_GUEST_HANDLE(uint,  unsigned int);
     1.7 -__DEFINE_XEN_GUEST_HANDLE(ulong, unsigned long);
     1.8 -__DEFINE_XEN_GUEST_HANDLE(u64,   unsigned long);
     1.9 +__DEFINE_XEN_GUEST_HANDLE(ulong, xen_ulong_t);
    1.10 +__DEFINE_XEN_GUEST_HANDLE(u64,   xen_ulong_t);
    1.11  DEFINE_XEN_GUEST_HANDLE(char);
    1.12  DEFINE_XEN_GUEST_HANDLE(int);
    1.13  DEFINE_XEN_GUEST_HANDLE(long);
    1.14  DEFINE_XEN_GUEST_HANDLE(void);
    1.15  
    1.16 -typedef unsigned long xen_pfn_t;
    1.17 +typedef xen_ulong_t xen_pfn_t;
    1.18  DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
    1.19  #define PRI_xen_pfn "lx"
    1.20  #endif
    1.21 @@ -71,7 +71,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
    1.22  
    1.23  #ifndef __ASSEMBLY__
    1.24  
    1.25 -typedef unsigned long xen_ulong_t;
    1.26 +typedef xen_ulong_t xen_ulong_t;
    1.27  
    1.28  #define INVALID_MFN       (~0UL)
    1.29  
    1.30 @@ -115,74 +115,74 @@ typedef unsigned long xen_ulong_t;
    1.31  
    1.32  #define NVRAM_VALID_SIG 0x4650494e45584948 		// "HIXENIPF"
    1.33  struct nvram_save_addr {
    1.34 -    unsigned long addr;
    1.35 -    unsigned long signature;
    1.36 +    xen_ulong_t addr;
    1.37 +    xen_ulong_t signature;
    1.38  };
    1.39  
    1.40  struct pt_fpreg {
    1.41      union {
    1.42 -        unsigned long bits[2];
    1.43 +        xen_ulong_t bits[2];
    1.44          long double __dummy;    /* force 16-byte alignment */
    1.45      } u;
    1.46  };
    1.47  
    1.48  struct cpu_user_regs {
    1.49      /* The following registers are saved by SAVE_MIN: */
    1.50 -    unsigned long b6;  /* scratch */
    1.51 -    unsigned long b7;  /* scratch */
    1.52 -
    1.53 -    unsigned long ar_csd; /* used by cmp8xchg16 (scratch) */
    1.54 -    unsigned long ar_ssd; /* reserved for future use (scratch) */
    1.55 -
    1.56 -    unsigned long r8;  /* scratch (return value register 0) */
    1.57 -    unsigned long r9;  /* scratch (return value register 1) */
    1.58 -    unsigned long r10; /* scratch (return value register 2) */
    1.59 -    unsigned long r11; /* scratch (return value register 3) */
    1.60 -
    1.61 -    unsigned long cr_ipsr; /* interrupted task's psr */
    1.62 -    unsigned long cr_iip;  /* interrupted task's instruction pointer */
    1.63 -    unsigned long cr_ifs;  /* interrupted task's function state */
    1.64 +    xen_ulong_t b6;  /* scratch */
    1.65 +    xen_ulong_t b7;  /* scratch */
    1.66  
    1.67 -    unsigned long ar_unat; /* interrupted task's NaT register (preserved) */
    1.68 -    unsigned long ar_pfs;  /* prev function state  */
    1.69 -    unsigned long ar_rsc;  /* RSE configuration */
    1.70 -    /* The following two are valid only if cr_ipsr.cpl > 0: */
    1.71 -    unsigned long ar_rnat;  /* RSE NaT */
    1.72 -    unsigned long ar_bspstore; /* RSE bspstore */
    1.73 +    xen_ulong_t ar_csd; /* used by cmp8xchg16 (scratch) */
    1.74 +    xen_ulong_t ar_ssd; /* reserved for future use (scratch) */
    1.75  
    1.76 -    unsigned long pr;  /* 64 predicate registers (1 bit each) */
    1.77 -    unsigned long b0;  /* return pointer (bp) */
    1.78 -    unsigned long loadrs;  /* size of dirty partition << 16 */
    1.79 +    xen_ulong_t r8;  /* scratch (return value register 0) */
    1.80 +    xen_ulong_t r9;  /* scratch (return value register 1) */
    1.81 +    xen_ulong_t r10; /* scratch (return value register 2) */
    1.82 +    xen_ulong_t r11; /* scratch (return value register 3) */
    1.83  
    1.84 -    unsigned long r1;  /* the gp pointer */
    1.85 -    unsigned long r12; /* interrupted task's memory stack pointer */
    1.86 -    unsigned long r13; /* thread pointer */
    1.87 +    xen_ulong_t cr_ipsr; /* interrupted task's psr */
    1.88 +    xen_ulong_t cr_iip;  /* interrupted task's instruction pointer */
    1.89 +    xen_ulong_t cr_ifs;  /* interrupted task's function state */
    1.90  
    1.91 -    unsigned long ar_fpsr;  /* floating point status (preserved) */
    1.92 -    unsigned long r15;  /* scratch */
    1.93 +    xen_ulong_t ar_unat; /* interrupted task's NaT register (preserved) */
    1.94 +    xen_ulong_t ar_pfs;  /* prev function state  */
    1.95 +    xen_ulong_t ar_rsc;  /* RSE configuration */
    1.96 +    /* The following two are valid only if cr_ipsr.cpl > 0: */
    1.97 +    xen_ulong_t ar_rnat;  /* RSE NaT */
    1.98 +    xen_ulong_t ar_bspstore; /* RSE bspstore */
    1.99 +
   1.100 +    xen_ulong_t pr;  /* 64 predicate registers (1 bit each) */
   1.101 +    xen_ulong_t b0;  /* return pointer (bp) */
   1.102 +    xen_ulong_t loadrs;  /* size of dirty partition << 16 */
   1.103 +
   1.104 +    xen_ulong_t r1;  /* the gp pointer */
   1.105 +    xen_ulong_t r12; /* interrupted task's memory stack pointer */
   1.106 +    xen_ulong_t r13; /* thread pointer */
   1.107 +
   1.108 +    xen_ulong_t ar_fpsr;  /* floating point status (preserved) */
   1.109 +    xen_ulong_t r15;  /* scratch */
   1.110  
   1.111   /* The remaining registers are NOT saved for system calls.  */
   1.112  
   1.113 -    unsigned long r14;  /* scratch */
   1.114 -    unsigned long r2;  /* scratch */
   1.115 -    unsigned long r3;  /* scratch */
   1.116 -    unsigned long r16;  /* scratch */
   1.117 -    unsigned long r17;  /* scratch */
   1.118 -    unsigned long r18;  /* scratch */
   1.119 -    unsigned long r19;  /* scratch */
   1.120 -    unsigned long r20;  /* scratch */
   1.121 -    unsigned long r21;  /* scratch */
   1.122 -    unsigned long r22;  /* scratch */
   1.123 -    unsigned long r23;  /* scratch */
   1.124 -    unsigned long r24;  /* scratch */
   1.125 -    unsigned long r25;  /* scratch */
   1.126 -    unsigned long r26;  /* scratch */
   1.127 -    unsigned long r27;  /* scratch */
   1.128 -    unsigned long r28;  /* scratch */
   1.129 -    unsigned long r29;  /* scratch */
   1.130 -    unsigned long r30;  /* scratch */
   1.131 -    unsigned long r31;  /* scratch */
   1.132 -    unsigned long ar_ccv;  /* compare/exchange value (scratch) */
   1.133 +    xen_ulong_t r14;  /* scratch */
   1.134 +    xen_ulong_t r2;  /* scratch */
   1.135 +    xen_ulong_t r3;  /* scratch */
   1.136 +    xen_ulong_t r16;  /* scratch */
   1.137 +    xen_ulong_t r17;  /* scratch */
   1.138 +    xen_ulong_t r18;  /* scratch */
   1.139 +    xen_ulong_t r19;  /* scratch */
   1.140 +    xen_ulong_t r20;  /* scratch */
   1.141 +    xen_ulong_t r21;  /* scratch */
   1.142 +    xen_ulong_t r22;  /* scratch */
   1.143 +    xen_ulong_t r23;  /* scratch */
   1.144 +    xen_ulong_t r24;  /* scratch */
   1.145 +    xen_ulong_t r25;  /* scratch */
   1.146 +    xen_ulong_t r26;  /* scratch */
   1.147 +    xen_ulong_t r27;  /* scratch */
   1.148 +    xen_ulong_t r28;  /* scratch */
   1.149 +    xen_ulong_t r29;  /* scratch */
   1.150 +    xen_ulong_t r30;  /* scratch */
   1.151 +    xen_ulong_t r31;  /* scratch */
   1.152 +    xen_ulong_t ar_ccv;  /* compare/exchange value (scratch) */
   1.153  
   1.154      /*
   1.155       * Floating point registers that the kernel considers scratch:
   1.156 @@ -193,18 +193,18 @@ struct cpu_user_regs {
   1.157      struct pt_fpreg f9;  /* scratch */
   1.158      struct pt_fpreg f10;  /* scratch */
   1.159      struct pt_fpreg f11;  /* scratch */
   1.160 -    unsigned long r4;  /* preserved */
   1.161 -    unsigned long r5;  /* preserved */
   1.162 -    unsigned long r6;  /* preserved */
   1.163 -    unsigned long r7;  /* preserved */
   1.164 -    unsigned long eml_unat;    /* used for emulating instruction */
   1.165 -    unsigned long pad0;     /* alignment pad */
   1.166 +    xen_ulong_t r4;  /* preserved */
   1.167 +    xen_ulong_t r5;  /* preserved */
   1.168 +    xen_ulong_t r6;  /* preserved */
   1.169 +    xen_ulong_t r7;  /* preserved */
   1.170 +    xen_ulong_t eml_unat;    /* used for emulating instruction */
   1.171 +    xen_ulong_t pad0;     /* alignment pad */
   1.172  
   1.173  };
   1.174  typedef struct cpu_user_regs cpu_user_regs_t;
   1.175  
   1.176  union vac {
   1.177 -    unsigned long value;
   1.178 +    xen_ulong_t value;
   1.179      struct {
   1.180          int a_int:1;
   1.181          int a_from_int_cr:1;
   1.182 @@ -219,7 +219,7 @@ union vac {
   1.183  typedef union vac vac_t;
   1.184  
   1.185  union vdc {
   1.186 -    unsigned long value;
   1.187 +    xen_ulong_t value;
   1.188      struct {
   1.189          int d_vmsw:1;
   1.190          int d_extint:1;
   1.191 @@ -235,64 +235,64 @@ typedef union vdc vdc_t;
   1.192  struct mapped_regs {
   1.193      union vac   vac;
   1.194      union vdc   vdc;
   1.195 -    unsigned long  virt_env_vaddr;
   1.196 -    unsigned long  reserved1[29];
   1.197 -    unsigned long  vhpi;
   1.198 -    unsigned long  reserved2[95];
   1.199 +    xen_ulong_t  virt_env_vaddr;
   1.200 +    xen_ulong_t  reserved1[29];
   1.201 +    xen_ulong_t  vhpi;
   1.202 +    xen_ulong_t  reserved2[95];
   1.203      union {
   1.204 -        unsigned long  vgr[16];
   1.205 -        unsigned long bank1_regs[16]; // bank1 regs (r16-r31) when bank0 active
   1.206 +        xen_ulong_t  vgr[16];
   1.207 +        xen_ulong_t bank1_regs[16]; // bank1 regs (r16-r31) when bank0 active
   1.208      };
   1.209      union {
   1.210 -        unsigned long  vbgr[16];
   1.211 -        unsigned long bank0_regs[16]; // bank0 regs (r16-r31) when bank1 active
   1.212 +        xen_ulong_t  vbgr[16];
   1.213 +        xen_ulong_t bank0_regs[16]; // bank0 regs (r16-r31) when bank1 active
   1.214      };
   1.215 -    unsigned long  vnat;
   1.216 -    unsigned long  vbnat;
   1.217 -    unsigned long  vcpuid[5];
   1.218 -    unsigned long  reserved3[11];
   1.219 -    unsigned long  vpsr;
   1.220 -    unsigned long  vpr;
   1.221 -    unsigned long  reserved4[76];
   1.222 +    xen_ulong_t  vnat;
   1.223 +    xen_ulong_t  vbnat;
   1.224 +    xen_ulong_t  vcpuid[5];
   1.225 +    xen_ulong_t  reserved3[11];
   1.226 +    xen_ulong_t  vpsr;
   1.227 +    xen_ulong_t  vpr;
   1.228 +    xen_ulong_t  reserved4[76];
   1.229      union {
   1.230 -        unsigned long  vcr[128];
   1.231 +        xen_ulong_t  vcr[128];
   1.232          struct {
   1.233 -            unsigned long dcr;  // CR0
   1.234 -            unsigned long itm;
   1.235 -            unsigned long iva;
   1.236 -            unsigned long rsv1[5];
   1.237 -            unsigned long pta;  // CR8
   1.238 -            unsigned long rsv2[7];
   1.239 -            unsigned long ipsr;  // CR16
   1.240 -            unsigned long isr;
   1.241 -            unsigned long rsv3;
   1.242 -            unsigned long iip;
   1.243 -            unsigned long ifa;
   1.244 -            unsigned long itir;
   1.245 -            unsigned long iipa;
   1.246 -            unsigned long ifs;
   1.247 -            unsigned long iim;  // CR24
   1.248 -            unsigned long iha;
   1.249 -            unsigned long rsv4[38];
   1.250 -            unsigned long lid;  // CR64
   1.251 -            unsigned long ivr;
   1.252 -            unsigned long tpr;
   1.253 -            unsigned long eoi;
   1.254 -            unsigned long irr[4];
   1.255 -            unsigned long itv;  // CR72
   1.256 -            unsigned long pmv;
   1.257 -            unsigned long cmcv;
   1.258 -            unsigned long rsv5[5];
   1.259 -            unsigned long lrr0;  // CR80
   1.260 -            unsigned long lrr1;
   1.261 -            unsigned long rsv6[46];
   1.262 +            xen_ulong_t dcr;  // CR0
   1.263 +            xen_ulong_t itm;
   1.264 +            xen_ulong_t iva;
   1.265 +            xen_ulong_t rsv1[5];
   1.266 +            xen_ulong_t pta;  // CR8
   1.267 +            xen_ulong_t rsv2[7];
   1.268 +            xen_ulong_t ipsr;  // CR16
   1.269 +            xen_ulong_t isr;
   1.270 +            xen_ulong_t rsv3;
   1.271 +            xen_ulong_t iip;
   1.272 +            xen_ulong_t ifa;
   1.273 +            xen_ulong_t itir;
   1.274 +            xen_ulong_t iipa;
   1.275 +            xen_ulong_t ifs;
   1.276 +            xen_ulong_t iim;  // CR24
   1.277 +            xen_ulong_t iha;
   1.278 +            xen_ulong_t rsv4[38];
   1.279 +            xen_ulong_t lid;  // CR64
   1.280 +            xen_ulong_t ivr;
   1.281 +            xen_ulong_t tpr;
   1.282 +            xen_ulong_t eoi;
   1.283 +            xen_ulong_t irr[4];
   1.284 +            xen_ulong_t itv;  // CR72
   1.285 +            xen_ulong_t pmv;
   1.286 +            xen_ulong_t cmcv;
   1.287 +            xen_ulong_t rsv5[5];
   1.288 +            xen_ulong_t lrr0;  // CR80
   1.289 +            xen_ulong_t lrr1;
   1.290 +            xen_ulong_t rsv6[46];
   1.291          };
   1.292      };
   1.293      union {
   1.294 -        unsigned long  reserved5[128];
   1.295 +        xen_ulong_t  reserved5[128];
   1.296          struct {
   1.297 -            unsigned long precover_ifs;
   1.298 -            unsigned long unat;  // not sure if this is needed until NaT arch is done
   1.299 +            xen_ulong_t precover_ifs;
   1.300 +            xen_ulong_t unat;  // not sure if this is needed until NaT arch is done
   1.301              int interrupt_collection_enabled; // virtual psr.ic
   1.302              /* virtual interrupt deliverable flag is evtchn_upcall_mask in
   1.303               * shared info area now. interrupt_mask_addr is the address
   1.304 @@ -304,13 +304,13 @@ struct mapped_regs {
   1.305              unsigned char vpsr_dfh;
   1.306              unsigned char hpsr_dfh;
   1.307              unsigned char hpsr_mfh;
   1.308 -            unsigned long reserved5_1[4];
   1.309 +            xen_ulong_t reserved5_1[4];
   1.310              int metaphysical_mode; // 1 = use metaphys mapping, 0 = use virtual
   1.311              int banknum; // 0 or 1, which virtual register bank is active
   1.312 -            unsigned long rrs[8]; // region registers
   1.313 -            unsigned long krs[8]; // kernel registers
   1.314 -            unsigned long pkrs[8]; // protection key registers
   1.315 -            unsigned long tmp[8]; // temp registers (e.g. for hyperprivops)
   1.316 +            xen_ulong_t rrs[8]; // region registers
   1.317 +            xen_ulong_t krs[8]; // kernel registers
   1.318 +            xen_ulong_t pkrs[8]; // protection key registers
   1.319 +            xen_ulong_t tmp[8]; // temp registers (e.g. for hyperprivops)
   1.320          };
   1.321      };
   1.322  };
   1.323 @@ -318,9 +318,9 @@ typedef struct mapped_regs mapped_regs_t
   1.324  
   1.325  struct vpd {
   1.326      struct mapped_regs vpd_low;
   1.327 -    unsigned long  reserved6[3456];
   1.328 -    unsigned long  vmm_avail[128];
   1.329 -    unsigned long  reserved7[4096];
   1.330 +    xen_ulong_t  reserved6[3456];
   1.331 +    xen_ulong_t  vmm_avail[128];
   1.332 +    xen_ulong_t  reserved7[4096];
   1.333  };
   1.334  typedef struct vpd vpd_t;
   1.335  
   1.336 @@ -330,7 +330,7 @@ typedef struct arch_vcpu_info arch_vcpu_
   1.337  
   1.338  struct arch_shared_info {
   1.339      /* PFN of the start_info page.  */
   1.340 -    unsigned long start_info_pfn;
   1.341 +    xen_ulong_t start_info_pfn;
   1.342  
   1.343      /* Interrupt vector for event channel.  */
   1.344      int evtchn_vector;
   1.345 @@ -339,30 +339,30 @@ struct arch_shared_info {
   1.346  };
   1.347  typedef struct arch_shared_info arch_shared_info_t;
   1.348  
   1.349 -typedef unsigned long xen_callback_t;
   1.350 +typedef xen_ulong_t xen_callback_t;
   1.351  
   1.352  struct ia64_tr_entry {
   1.353 -    unsigned long pte;
   1.354 -    unsigned long itir;
   1.355 -    unsigned long vadr;
   1.356 -    unsigned long rid;
   1.357 +    xen_ulong_t pte;
   1.358 +    xen_ulong_t itir;
   1.359 +    xen_ulong_t vadr;
   1.360 +    xen_ulong_t rid;
   1.361  };
   1.362  
   1.363  struct vcpu_extra_regs {
   1.364      struct ia64_tr_entry itrs[8];
   1.365      struct ia64_tr_entry dtrs[8];
   1.366 -    unsigned long iva;
   1.367 -    unsigned long dcr;
   1.368 -    unsigned long event_callback_ip;
   1.369 +    xen_ulong_t iva;
   1.370 +    xen_ulong_t dcr;
   1.371 +    xen_ulong_t event_callback_ip;
   1.372  };
   1.373  
   1.374  struct vcpu_guest_context {
   1.375  #define VGCF_EXTRA_REGS (1<<1)	/* Get/Set extra regs.  */
   1.376 -    unsigned long flags;       /* VGCF_* flags */
   1.377 +    xen_ulong_t flags;       /* VGCF_* flags */
   1.378  
   1.379      struct cpu_user_regs user_regs;
   1.380      struct vcpu_extra_regs extra_regs;
   1.381 -    unsigned long privregs_pfn;
   1.382 +    xen_ulong_t privregs_pfn;
   1.383  };
   1.384  typedef struct vcpu_guest_context vcpu_guest_context_t;
   1.385  DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
   1.386 @@ -420,11 +420,11 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_conte
   1.387  /* This structure has the same layout of struct ia64_boot_param, defined in
   1.388     <asm/system.h>.  It is redefined here to ease use.  */
   1.389  struct xen_ia64_boot_param {
   1.390 -	unsigned long command_line;	/* physical address of cmd line args */
   1.391 -	unsigned long efi_systab;	/* physical address of EFI system table */
   1.392 -	unsigned long efi_memmap;	/* physical address of EFI memory map */
   1.393 -	unsigned long efi_memmap_size;	/* size of EFI memory map */
   1.394 -	unsigned long efi_memdesc_size;	/* size of an EFI memory map descriptor */
   1.395 +	xen_ulong_t command_line;	/* physical address of cmd line args */
   1.396 +	xen_ulong_t efi_systab;	/* physical address of EFI system table */
   1.397 +	xen_ulong_t efi_memmap;	/* physical address of EFI memory map */
   1.398 +	xen_ulong_t efi_memmap_size;	/* size of EFI memory map */
   1.399 +	xen_ulong_t efi_memdesc_size;	/* size of an EFI memory map descriptor */
   1.400  	unsigned int  efi_memdesc_version;	/* memory descriptor version */
   1.401  	struct {
   1.402  		unsigned short num_cols;	/* number of columns on console.  */
   1.403 @@ -432,11 +432,11 @@ struct xen_ia64_boot_param {
   1.404  		unsigned short orig_x;	/* cursor's x position */
   1.405  		unsigned short orig_y;	/* cursor's y position */
   1.406  	} console_info;
   1.407 -	unsigned long fpswa;		/* physical address of the fpswa interface */
   1.408 -	unsigned long initrd_start;
   1.409 -	unsigned long initrd_size;
   1.410 -	unsigned long domain_start;	/* va where the boot time domain begins */
   1.411 -	unsigned long domain_size;	/* how big is the boot domain */
   1.412 +	xen_ulong_t fpswa;		/* physical address of the fpswa interface */
   1.413 +	xen_ulong_t initrd_start;
   1.414 +	xen_ulong_t initrd_size;
   1.415 +	xen_ulong_t domain_start;	/* va where the boot time domain begins */
   1.416 +	xen_ulong_t domain_size;	/* how big is the boot domain */
   1.417  };
   1.418  
   1.419  #endif /* !__ASSEMBLY__ */
   1.420 @@ -487,9 +487,9 @@ struct xen_ia64_boot_param {
   1.421  #define XENCOMM_INLINE_FLAG 0x8000000000000000UL
   1.422  
   1.423  #define XENCOMM_IS_INLINE(addr) \
   1.424 -  (((unsigned long)(addr) & XENCOMM_INLINE_MASK) == XENCOMM_INLINE_FLAG)
   1.425 +  (((xen_ulong_t)(addr) & XENCOMM_INLINE_MASK) == XENCOMM_INLINE_FLAG)
   1.426  #define XENCOMM_INLINE_ADDR(addr) \
   1.427 -  ((unsigned long)(addr) & ~XENCOMM_INLINE_MASK)
   1.428 +  ((xen_ulong_t)(addr) & ~XENCOMM_INLINE_MASK)
   1.429  
   1.430  /* xen perfmon */
   1.431  #ifdef XEN
     2.1 --- a/common/include/public/arch-powerpc.h	Wed Jan 23 13:00:43 2008 +1100
     2.2 +++ b/common/include/public/arch-powerpc.h	Wed Jan 23 13:01:20 2008 +1100
     2.3 @@ -48,13 +48,13 @@
     2.4  /* Guest handles for primitive C types. */
     2.5  __DEFINE_XEN_GUEST_HANDLE(uchar, unsigned char);
     2.6  __DEFINE_XEN_GUEST_HANDLE(uint,  unsigned int);
     2.7 -__DEFINE_XEN_GUEST_HANDLE(ulong, unsigned long);
     2.8 +__DEFINE_XEN_GUEST_HANDLE(ulong, xen_ulong_t);
     2.9  DEFINE_XEN_GUEST_HANDLE(char);
    2.10  DEFINE_XEN_GUEST_HANDLE(int);
    2.11  DEFINE_XEN_GUEST_HANDLE(long);
    2.12  DEFINE_XEN_GUEST_HANDLE(void);
    2.13  
    2.14 -typedef unsigned long long xen_pfn_t;
    2.15 +typedef xen_ulong_t long xen_pfn_t;
    2.16  DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
    2.17  #define PRI_xen_pfn "llx"
    2.18  #endif
     3.1 --- a/common/include/public/arch-x86/xen-x86_32.h	Wed Jan 23 13:00:43 2008 +1100
     3.2 +++ b/common/include/public/arch-x86/xen-x86_32.h	Wed Jan 23 13:01:20 2008 +1100
     3.3 @@ -102,7 +102,7 @@
     3.4  #define MACH2PHYS_VIRT_END    mk_unsigned_long(__MACH2PHYS_VIRT_END)
     3.5  #define MACH2PHYS_NR_ENTRIES  ((MACH2PHYS_VIRT_END-MACH2PHYS_VIRT_START)>>2)
     3.6  #ifndef machine_to_phys_mapping
     3.7 -#define machine_to_phys_mapping ((unsigned long *)MACH2PHYS_VIRT_START)
     3.8 +#define machine_to_phys_mapping ((xen_ulong_t *)MACH2PHYS_VIRT_START)
     3.9  #endif
    3.10  
    3.11  /* 32-/64-bit invariability for control interfaces (domctl/sysctl). */
    3.12 @@ -158,14 +158,14 @@ DEFINE_XEN_GUEST_HANDLE(cpu_user_regs_t)
    3.13  #define xen_cr3_to_pfn(cr3) (((unsigned)(cr3) >> 12) | ((unsigned)(cr3) << 20))
    3.14  
    3.15  struct arch_vcpu_info {
    3.16 -    unsigned long cr2;
    3.17 -    unsigned long pad[5]; /* sizeof(vcpu_info_t) == 64 */
    3.18 +    xen_ulong_t cr2;
    3.19 +    xen_ulong_t pad[5]; /* sizeof(vcpu_info_t) == 64 */
    3.20  };
    3.21  typedef struct arch_vcpu_info arch_vcpu_info_t;
    3.22  
    3.23  struct xen_callback {
    3.24 -    unsigned long cs;
    3.25 -    unsigned long eip;
    3.26 +    xen_ulong_t cs;
    3.27 +    xen_ulong_t eip;
    3.28  };
    3.29  typedef struct xen_callback xen_callback_t;
    3.30  
     4.1 --- a/common/include/public/arch-x86/xen-x86_64.h	Wed Jan 23 13:00:43 2008 +1100
     4.2 +++ b/common/include/public/arch-x86/xen-x86_64.h	Wed Jan 23 13:01:20 2008 +1100
     4.3 @@ -94,13 +94,13 @@
     4.4  #define MACH2PHYS_VIRT_END    mk_unsigned_long(__MACH2PHYS_VIRT_END)
     4.5  #define MACH2PHYS_NR_ENTRIES  ((MACH2PHYS_VIRT_END-MACH2PHYS_VIRT_START)>>3)
     4.6  #ifndef machine_to_phys_mapping
     4.7 -#define machine_to_phys_mapping ((unsigned long *)HYPERVISOR_VIRT_START)
     4.8 +#define machine_to_phys_mapping ((xen_ulong_t *)HYPERVISOR_VIRT_START)
     4.9  #endif
    4.10  
    4.11  #ifndef __ASSEMBLY__
    4.12  
    4.13  /*
    4.14 - * int HYPERVISOR_set_segment_base(unsigned int which, unsigned long base)
    4.15 + * int HYPERVISOR_set_segment_base(unsigned int which, xen_ulong_t base)
    4.16   *  @which == SEGBASE_*  ;  @base == 64-bit base address
    4.17   * Returns 0 on success.
    4.18   */
    4.19 @@ -185,16 +185,16 @@ DEFINE_XEN_GUEST_HANDLE(cpu_user_regs_t)
    4.20  
    4.21  #undef __DECL_REG
    4.22  
    4.23 -#define xen_pfn_to_cr3(pfn) ((unsigned long)(pfn) << 12)
    4.24 -#define xen_cr3_to_pfn(cr3) ((unsigned long)(cr3) >> 12)
    4.25 +#define xen_pfn_to_cr3(pfn) ((xen_ulong_t)(pfn) << 12)
    4.26 +#define xen_cr3_to_pfn(cr3) ((xen_ulong_t)(cr3) >> 12)
    4.27  
    4.28  struct arch_vcpu_info {
    4.29 -    unsigned long cr2;
    4.30 -    unsigned long pad; /* sizeof(vcpu_info_t) == 64 */
    4.31 +    xen_ulong_t cr2;
    4.32 +    xen_ulong_t pad; /* sizeof(vcpu_info_t) == 64 */
    4.33  };
    4.34  typedef struct arch_vcpu_info arch_vcpu_info_t;
    4.35  
    4.36 -typedef unsigned long xen_callback_t;
    4.37 +typedef xen_ulong_t xen_callback_t;
    4.38  
    4.39  #endif /* !__ASSEMBLY__ */
    4.40  
     5.1 --- a/common/include/public/arch-x86/xen.h	Wed Jan 23 13:00:43 2008 +1100
     5.2 +++ b/common/include/public/arch-x86/xen.h	Wed Jan 23 13:01:20 2008 +1100
     5.3 @@ -54,13 +54,13 @@
     5.4  /* Guest handles for primitive C types. */
     5.5  __DEFINE_XEN_GUEST_HANDLE(uchar, unsigned char);
     5.6  __DEFINE_XEN_GUEST_HANDLE(uint,  unsigned int);
     5.7 -__DEFINE_XEN_GUEST_HANDLE(ulong, unsigned long);
     5.8 +__DEFINE_XEN_GUEST_HANDLE(ulong, xen_ulong_t);
     5.9  DEFINE_XEN_GUEST_HANDLE(char);
    5.10  DEFINE_XEN_GUEST_HANDLE(int);
    5.11  DEFINE_XEN_GUEST_HANDLE(long);
    5.12  DEFINE_XEN_GUEST_HANDLE(void);
    5.13  
    5.14 -typedef unsigned long xen_pfn_t;
    5.15 +typedef xen_ulong_t xen_pfn_t;
    5.16  DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
    5.17  #define PRI_xen_pfn "lx"
    5.18  #endif
    5.19 @@ -83,7 +83,14 @@ DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
    5.20  
    5.21  #ifndef __ASSEMBLY__
    5.22  
    5.23 -typedef unsigned long xen_ulong_t;
    5.24 +#if defined(_AMD64_)
    5.25 +/* Under windows _AMD64_, sizeof(long) != sizeof(void *)
    5.26 +typedef long long xen_long_t;
    5.27 +typedef unsigned long long xen_ulong_t;
    5.28 +#else
    5.29 +typedef xen_ulong_t xen_long_t;
    5.30 +typedef xen_ulong_t xen_ulong_t;
    5.31 +#endif
    5.32  
    5.33  /*
    5.34   * Send an array of these to HYPERVISOR_set_trap_table().
    5.35 @@ -103,7 +110,7 @@ struct trap_info {
    5.36      uint8_t       vector;  /* exception vector                              */
    5.37      uint8_t       flags;   /* 0-3: privilege level; 4: clear event enable?  */
    5.38      uint16_t      cs;      /* code selector                                 */
    5.39 -    unsigned long address; /* code offset                                   */
    5.40 +    xen_ulong_t address; /* code offset                                   */
    5.41  };
    5.42  typedef struct trap_info trap_info_t;
    5.43  DEFINE_XEN_GUEST_HANDLE(trap_info_t);
    5.44 @@ -129,36 +136,36 @@ struct vcpu_guest_context {
    5.45  #define VGCF_syscall_disables_events   (1<<_VGCF_syscall_disables_events)
    5.46  #define _VGCF_online                   5
    5.47  #define VGCF_online                    (1<<_VGCF_online)
    5.48 -    unsigned long flags;                    /* VGCF_* flags                 */
    5.49 +    xen_ulong_t flags;                    /* VGCF_* flags                 */
    5.50      struct cpu_user_regs user_regs;         /* User-level CPU registers     */
    5.51      struct trap_info trap_ctxt[256];        /* Virtual IDT                  */
    5.52 -    unsigned long ldt_base, ldt_ents;       /* LDT (linear address, # ents) */
    5.53 -    unsigned long gdt_frames[16], gdt_ents; /* GDT (machine frames, # ents) */
    5.54 -    unsigned long kernel_ss, kernel_sp;     /* Virtual TSS (only SS1/SP1)   */
    5.55 +    xen_ulong_t ldt_base, ldt_ents;       /* LDT (linear address, # ents) */
    5.56 +    xen_ulong_t gdt_frames[16], gdt_ents; /* GDT (machine frames, # ents) */
    5.57 +    xen_ulong_t kernel_ss, kernel_sp;     /* Virtual TSS (only SS1/SP1)   */
    5.58      /* NB. User pagetable on x86/64 is placed in ctrlreg[1]. */
    5.59 -    unsigned long ctrlreg[8];               /* CR0-CR7 (control registers)  */
    5.60 -    unsigned long debugreg[8];              /* DB0-DB7 (debug registers)    */
    5.61 +    xen_ulong_t ctrlreg[8];               /* CR0-CR7 (control registers)  */
    5.62 +    xen_ulong_t debugreg[8];              /* DB0-DB7 (debug registers)    */
    5.63  #ifdef __i386__
    5.64 -    unsigned long event_callback_cs;        /* CS:EIP of event callback     */
    5.65 -    unsigned long event_callback_eip;
    5.66 -    unsigned long failsafe_callback_cs;     /* CS:EIP of failsafe callback  */
    5.67 -    unsigned long failsafe_callback_eip;
    5.68 +    xen_ulong_t event_callback_cs;        /* CS:EIP of event callback     */
    5.69 +    xen_ulong_t event_callback_eip;
    5.70 +    xen_ulong_t failsafe_callback_cs;     /* CS:EIP of failsafe callback  */
    5.71 +    xen_ulong_t failsafe_callback_eip;
    5.72  #else
    5.73 -    unsigned long event_callback_eip;
    5.74 -    unsigned long failsafe_callback_eip;
    5.75 +    xen_ulong_t event_callback_eip;
    5.76 +    xen_ulong_t failsafe_callback_eip;
    5.77  #ifdef __XEN__
    5.78      union {
    5.79 -        unsigned long syscall_callback_eip;
    5.80 +        xen_ulong_t syscall_callback_eip;
    5.81          struct {
    5.82              unsigned int event_callback_cs;    /* compat CS of event cb     */
    5.83              unsigned int failsafe_callback_cs; /* compat CS of failsafe cb  */
    5.84          };
    5.85      };
    5.86  #else
    5.87 -    unsigned long syscall_callback_eip;
    5.88 +    xen_ulong_t syscall_callback_eip;
    5.89  #endif
    5.90  #endif
    5.91 -    unsigned long vm_assist;                /* VMASST_TYPE_* bitmap */
    5.92 +    xen_ulong_t vm_assist;                /* VMASST_TYPE_* bitmap */
    5.93  #ifdef __x86_64__
    5.94      /* Segment base addresses. */
    5.95      uint64_t      fs_base;
    5.96 @@ -170,10 +177,10 @@ typedef struct vcpu_guest_context vcpu_g
    5.97  DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
    5.98  
    5.99  struct arch_shared_info {
   5.100 -    unsigned long max_pfn;                  /* max pfn that appears in table */
   5.101 +    xen_ulong_t max_pfn;                  /* max pfn that appears in table */
   5.102      /* Frame containing list of mfns containing list of mfns containing p2m. */
   5.103      xen_pfn_t     pfn_to_mfn_frame_list_list;
   5.104 -    unsigned long nmi_reason;
   5.105 +    xen_ulong_t nmi_reason;
   5.106      uint64_t pad[32];
   5.107  };
   5.108  typedef struct arch_shared_info arch_shared_info_t;
     6.1 --- a/common/include/public/io/fbif.h	Wed Jan 23 13:00:43 2008 +1100
     6.2 +++ b/common/include/public/io/fbif.h	Wed Jan 23 13:01:20 2008 +1100
     6.3 @@ -109,10 +109,10 @@ struct xenfb_page
     6.4       * Each directory page holds PAGE_SIZE / sizeof(*pd)
     6.5       * framebuffer pages, and can thus map up to PAGE_SIZE *
     6.6       * PAGE_SIZE / sizeof(*pd) bytes.  With PAGE_SIZE == 4096 and
     6.7 -     * sizeof(unsigned long) == 4, that's 4 Megs.  Two directory
     6.8 +     * sizeof(xen_ulong_t) == 4, that's 4 Megs.  Two directory
     6.9       * pages should be enough for a while.
    6.10       */
    6.11 -    unsigned long pd[2];
    6.12 +    xen_ulong_t pd[2];
    6.13  };
    6.14  
    6.15  /*
     7.1 --- a/common/include/public/io/tpmif.h	Wed Jan 23 13:00:43 2008 +1100
     7.2 +++ b/common/include/public/io/tpmif.h	Wed Jan 23 13:01:20 2008 +1100
     7.3 @@ -37,7 +37,7 @@
     7.4  #include "../grant_table.h"
     7.5  
     7.6  struct tpmif_tx_request {
     7.7 -    unsigned long addr;   /* Machine address of packet.   */
     7.8 +    xen_ulong_t addr;   /* Machine address of packet.   */
     7.9      grant_ref_t ref;      /* grant table access reference */
    7.10      uint16_t unused;
    7.11      uint16_t size;        /* Packet size in bytes.        */
     8.1 --- a/common/include/public/kexec.h	Wed Jan 23 13:00:43 2008 +1100
     8.2 +++ b/common/include/public/kexec.h	Wed Jan 23 13:01:20 2008 +1100
     8.3 @@ -77,10 +77,10 @@
     8.4   
     8.5  typedef struct xen_kexec_image {
     8.6  #if defined(__i386__) || defined(__x86_64__)
     8.7 -    unsigned long page_list[KEXEC_XEN_NO_PAGES];
     8.8 +    xen_ulong_t page_list[KEXEC_XEN_NO_PAGES];
     8.9  #endif
    8.10 -    unsigned long indirection_page;
    8.11 -    unsigned long start_address;
    8.12 +    xen_ulong_t indirection_page;
    8.13 +    xen_ulong_t start_address;
    8.14  } xen_kexec_image_t;
    8.15  
    8.16  /*
    8.17 @@ -120,8 +120,8 @@ typedef struct xen_kexec_load {
    8.18  typedef struct xen_kexec_range {
    8.19      int range;
    8.20      int nr;
    8.21 -    unsigned long size;
    8.22 -    unsigned long start;
    8.23 +    xen_ulong_t size;
    8.24 +    xen_ulong_t start;
    8.25  } xen_kexec_range_t;
    8.26  
    8.27  #endif /* _XEN_PUBLIC_KEXEC_H */
     9.1 --- a/common/include/public/libelf.h	Wed Jan 23 13:00:43 2008 +1100
     9.2 +++ b/common/include/public/libelf.h	Wed Jan 23 13:01:20 2008 +1100
     9.3 @@ -162,7 +162,7 @@ void elf_set_logfile(struct elf_binary *
     9.4  void elf_parse_binary(struct elf_binary *elf);
     9.5  void elf_load_binary(struct elf_binary *elf);
     9.6  
     9.7 -void *elf_get_ptr(struct elf_binary *elf, unsigned long addr);
     9.8 +void *elf_get_ptr(struct elf_binary *elf, xen_ulong_t addr);
     9.9  uint64_t elf_lookup_addr(struct elf_binary *elf, const char *symbol);
    9.10  
    9.11  /* ------------------------------------------------------------------------ */
    10.1 --- a/common/include/public/nmi.h	Wed Jan 23 13:00:43 2008 +1100
    10.2 +++ b/common/include/public/nmi.h	Wed Jan 23 13:01:20 2008 +1100
    10.3 @@ -53,8 +53,8 @@
    10.4   */
    10.5  #define XENNMI_register_callback   0
    10.6  struct xennmi_callback {
    10.7 -    unsigned long handler_address;
    10.8 -    unsigned long pad;
    10.9 +    xen_ulong_t handler_address;
   10.10 +    xen_ulong_t pad;
   10.11  };
   10.12  typedef struct xennmi_callback xennmi_callback_t;
   10.13  DEFINE_XEN_GUEST_HANDLE(xennmi_callback_t);
    11.1 --- a/common/include/public/physdev.h	Wed Jan 23 13:00:43 2008 +1100
    11.2 +++ b/common/include/public/physdev.h	Wed Jan 23 13:01:20 2008 +1100
    11.3 @@ -95,7 +95,7 @@ DEFINE_XEN_GUEST_HANDLE(physdev_set_iobi
    11.4  #define PHYSDEVOP_apic_write             9
    11.5  struct physdev_apic {
    11.6      /* IN */
    11.7 -    unsigned long apic_physbase;
    11.8 +    xen_ulong_t apic_physbase;
    11.9      uint32_t reg;
   11.10      /* IN or OUT */
   11.11      uint32_t value;
    12.1 --- a/common/include/public/sched.h	Wed Jan 23 13:00:43 2008 +1100
    12.2 +++ b/common/include/public/sched.h	Wed Jan 23 13:01:20 2008 +1100
    12.3 @@ -37,7 +37,7 @@
    12.4   * 
    12.5   * Versions of Xen prior to 3.0.2 provided only the following legacy version
    12.6   * of this hypercall, supporting only the commands yield, block and shutdown:
    12.7 - *  long sched_op(int cmd, unsigned long arg)
    12.8 + *  long sched_op(int cmd, xen_ulong_t arg)
    12.9   * @cmd == SCHEDOP_??? (scheduler operation).
   12.10   * @arg == 0               (SCHEDOP_yield and SCHEDOP_block)
   12.11   *      == SHUTDOWN_* code (SCHEDOP_shutdown)
    13.1 --- a/common/include/public/trace.h	Wed Jan 23 13:00:43 2008 +1100
    13.2 +++ b/common/include/public/trace.h	Wed Jan 23 13:01:20 2008 +1100
    13.3 @@ -94,7 +94,7 @@
    13.4  struct t_rec {
    13.5      uint64_t cycles;          /* cycle counter timestamp */
    13.6      uint32_t event;           /* event ID                */
    13.7 -    unsigned long data[5];    /* event data items        */
    13.8 +    xen_ulong_t data[5];    /* event data items        */
    13.9  };
   13.10  
   13.11  /*
    14.1 --- a/common/include/public/version.h	Wed Jan 23 13:00:43 2008 +1100
    14.2 +++ b/common/include/public/version.h	Wed Jan 23 13:01:20 2008 +1100
    14.3 @@ -58,7 +58,7 @@ typedef char xen_changeset_info_t[64];
    14.4  
    14.5  #define XENVER_platform_parameters 5
    14.6  struct xen_platform_parameters {
    14.7 -    unsigned long virt_start;
    14.8 +    xen_ulong_t virt_start;
    14.9  };
   14.10  typedef struct xen_platform_parameters xen_platform_parameters_t;
   14.11  
    15.1 --- a/common/include/public/xen.h	Wed Jan 23 13:00:43 2008 +1100
    15.2 +++ b/common/include/public/xen.h	Wed Jan 23 13:01:20 2008 +1100
    15.3 @@ -239,7 +239,7 @@ struct mmuext_op {
    15.4          /* [UN]PIN_TABLE, NEW_BASEPTR, NEW_USER_BASEPTR */
    15.5          xen_pfn_t     mfn;
    15.6          /* INVLPG_LOCAL, INVLPG_ALL, SET_LDT */
    15.7 -        unsigned long linear_addr;
    15.8 +        xen_ulong_t linear_addr;
    15.9      } arg1;
   15.10      union {
   15.11          /* SET_LDT */
   15.12 @@ -338,8 +338,8 @@ DEFINE_XEN_GUEST_HANDLE(mmu_update_t);
   15.13   * NB. The fields are natural register size for this architecture.
   15.14   */
   15.15  struct multicall_entry {
   15.16 -    unsigned long op, result;
   15.17 -    unsigned long args[6];
   15.18 +    xen_ulong_t op, result;
   15.19 +    xen_ulong_t args[6];
   15.20  };
   15.21  typedef struct multicall_entry multicall_entry_t;
   15.22  DEFINE_XEN_GUEST_HANDLE(multicall_entry_t);
   15.23 @@ -348,7 +348,7 @@ DEFINE_XEN_GUEST_HANDLE(multicall_entry_
   15.24   * Event channel endpoints per domain:
   15.25   *  1024 if a long is 32 bits; 4096 if a long is 64 bits.
   15.26   */
   15.27 -#define NR_EVENT_CHANNELS (sizeof(unsigned long) * sizeof(unsigned long) * 64)
   15.28 +#define NR_EVENT_CHANNELS (sizeof(xen_ulong_t) * sizeof(xen_ulong_t) * 64)
   15.29  
   15.30  struct vcpu_time_info {
   15.31      /*
   15.32 @@ -405,7 +405,7 @@ struct vcpu_info {
   15.33       */
   15.34      uint8_t evtchn_upcall_pending;
   15.35      uint8_t evtchn_upcall_mask;
   15.36 -    unsigned long evtchn_pending_sel;
   15.37 +    xen_ulong_t evtchn_pending_sel;
   15.38      struct arch_vcpu_info arch;
   15.39      struct vcpu_time_info time;
   15.40  }; /* 64 bytes (x86) */
   15.41 @@ -455,8 +455,8 @@ struct shared_info {
   15.42       * per-vcpu selector word to be set. Each bit in the selector covers a
   15.43       * 'C long' in the PENDING bitfield array.
   15.44       */
   15.45 -    unsigned long evtchn_pending[sizeof(unsigned long) * 8];
   15.46 -    unsigned long evtchn_mask[sizeof(unsigned long) * 8];
   15.47 +    xen_ulong_t evtchn_pending[sizeof(xen_ulong_t) * 8];
   15.48 +    xen_ulong_t evtchn_mask[sizeof(xen_ulong_t) * 8];
   15.49  
   15.50      /*
   15.51       * Wallclock time: updated only by control software. Guests should base
   15.52 @@ -500,8 +500,8 @@ typedef struct shared_info shared_info_t
   15.53  struct start_info {
   15.54      /* THE FOLLOWING ARE FILLED IN BOTH ON INITIAL BOOT AND ON RESUME.    */
   15.55      char magic[32];             /* "xen-<version>-<platform>".            */
   15.56 -    unsigned long nr_pages;     /* Total pages allocated to this domain.  */
   15.57 -    unsigned long shared_info;  /* MACHINE address of shared info struct. */
   15.58 +    xen_ulong_t nr_pages;     /* Total pages allocated to this domain.  */
   15.59 +    xen_ulong_t shared_info;  /* MACHINE address of shared info struct. */
   15.60      uint32_t flags;             /* SIF_xxx flags.                         */
   15.61      xen_pfn_t store_mfn;        /* MACHINE page number of shared page.    */
   15.62      uint32_t store_evtchn;      /* Event channel for store communication. */
   15.63 @@ -516,11 +516,11 @@ struct start_info {
   15.64          } dom0;
   15.65      } console;
   15.66      /* THE FOLLOWING ARE ONLY FILLED IN ON INITIAL BOOT (NOT RESUME).     */
   15.67 -    unsigned long pt_base;      /* VIRTUAL address of page directory.     */
   15.68 -    unsigned long nr_pt_frames; /* Number of bootstrap p.t. frames.       */
   15.69 -    unsigned long mfn_list;     /* VIRTUAL address of page-frame list.    */
   15.70 -    unsigned long mod_start;    /* VIRTUAL address of pre-loaded module.  */
   15.71 -    unsigned long mod_len;      /* Size (bytes) of pre-loaded module.     */
   15.72 +    xen_ulong_t pt_base;      /* VIRTUAL address of page directory.     */
   15.73 +    xen_ulong_t nr_pt_frames; /* Number of bootstrap p.t. frames.       */
   15.74 +    xen_ulong_t mfn_list;     /* VIRTUAL address of page-frame list.    */
   15.75 +    xen_ulong_t mod_start;    /* VIRTUAL address of pre-loaded module.  */
   15.76 +    xen_ulong_t mod_len;      /* Size (bytes) of pre-loaded module.     */
   15.77      int8_t cmd_line[MAX_GUEST_CMDLINE];
   15.78  };
   15.79  typedef struct start_info start_info_t;
   15.80 @@ -573,7 +573,7 @@ typedef struct dom0_vga_console_info {
   15.81  
   15.82  typedef uint8_t xen_domain_handle_t[16];
   15.83  
   15.84 -/* Turn a plain number into a C unsigned long constant. */
   15.85 +/* Turn a plain number into a C xen_ulong_t constant. */
   15.86  #define __mk_unsigned_long(x) x ## UL
   15.87  #define mk_unsigned_long(x) __mk_unsigned_long(x)
   15.88