diff options
Diffstat (limited to 'arch/x86/include/asm/mtrr.h')
| -rw-r--r-- | arch/x86/include/asm/mtrr.h | 28 | 
1 files changed, 18 insertions, 10 deletions
diff --git a/arch/x86/include/asm/mtrr.h b/arch/x86/include/asm/mtrr.h index 4365ffdb461..7e3f17f92c6 100644 --- a/arch/x86/include/asm/mtrr.h +++ b/arch/x86/include/asm/mtrr.h @@ -29,18 +29,18 @@  #define	MTRR_IOCTL_BASE	'M' -struct mtrr_sentry { -    unsigned long base;    /*  Base address     */ -    unsigned int size;    /*  Size of region   */ -    unsigned int type;     /*  Type of region   */ -}; -  /* Warning: this structure has a different order from i386     on x86-64. The 32bit emulation code takes care of that.     But you need to use this for 64bit, otherwise your X server     will break. */  #ifdef __i386__ +struct mtrr_sentry { +    unsigned long base;    /*  Base address     */ +    unsigned int size;    /*  Size of region   */ +    unsigned int type;     /*  Type of region   */ +}; +  struct mtrr_gentry {      unsigned int regnum;   /*  Register number  */      unsigned long base;    /*  Base address     */ @@ -50,12 +50,20 @@ struct mtrr_gentry {  #else /* __i386__ */ +struct mtrr_sentry { +	__u64 base;		/*  Base address     */ +	__u32 size;		/*  Size of region   */ +	__u32 type;		/*  Type of region   */ +}; +  struct mtrr_gentry { -    unsigned long base;    /*  Base address     */ -    unsigned int size;    /*  Size of region   */ -    unsigned int regnum;   /*  Register number  */ -    unsigned int type;     /*  Type of region   */ +	__u64 base;		/*  Base address     */ +	__u32 size;		/*  Size of region   */ +	__u32 regnum;		/*  Register number  */ +	__u32 type;		/*  Type of region   */ +	__u32 _pad;		/*  Unused	     */  }; +  #endif /* !__i386__ */  struct mtrr_var_range {  |