diff options
| author | Brian Gerst <bgerst@didntduck.org> | 2005-10-30 17:59:44 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-10-30 20:37:13 -0500 |
| commit | c53117815771e1e84e6ba80a42fa1f8e330adb4d (patch) | |
| tree | e9227965e332a19575c066096c532cd2cba4c856 /include | |
| parent | daedb82d6b54e58a66ad1dce3509e699a5bd1b18 (diff) | |
[PATCH] Clean up mtrr compat ioctl code
Handle 32-bit mtrr ioctls in the mtrr driver instead of the ia32
compatability layer.
Signed-off-by: Brian Gerst <bgerst@didntduck.org>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-x86_64/mtrr.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/include/asm-x86_64/mtrr.h b/include/asm-x86_64/mtrr.h index c5959d6418bb..66ac1c0f27e1 100644 --- a/include/asm-x86_64/mtrr.h +++ b/include/asm-x86_64/mtrr.h | |||
| @@ -25,6 +25,7 @@ | |||
| 25 | 25 | ||
| 26 | #include <linux/config.h> | 26 | #include <linux/config.h> |
| 27 | #include <linux/ioctl.h> | 27 | #include <linux/ioctl.h> |
| 28 | #include <linux/compat.h> | ||
| 28 | 29 | ||
| 29 | #define MTRR_IOCTL_BASE 'M' | 30 | #define MTRR_IOCTL_BASE 'M' |
| 30 | 31 | ||
| @@ -105,4 +106,36 @@ static __inline__ int mtrr_del_page (int reg, unsigned long base, | |||
| 105 | 106 | ||
| 106 | #endif | 107 | #endif |
| 107 | 108 | ||
| 109 | #ifdef CONFIG_COMPAT | ||
| 110 | |||
| 111 | struct mtrr_sentry32 | ||
| 112 | { | ||
| 113 | compat_ulong_t base; /* Base address */ | ||
| 114 | compat_uint_t size; /* Size of region */ | ||
| 115 | compat_uint_t type; /* Type of region */ | ||
| 116 | }; | ||
| 117 | |||
| 118 | struct mtrr_gentry32 | ||
| 119 | { | ||
| 120 | compat_ulong_t regnum; /* Register number */ | ||
| 121 | compat_uint_t base; /* Base address */ | ||
| 122 | compat_uint_t size; /* Size of region */ | ||
| 123 | compat_uint_t type; /* Type of region */ | ||
| 124 | }; | ||
| 125 | |||
| 126 | #define MTRR_IOCTL_BASE 'M' | ||
| 127 | |||
| 128 | #define MTRRIOC32_ADD_ENTRY _IOW(MTRR_IOCTL_BASE, 0, struct mtrr_sentry32) | ||
| 129 | #define MTRRIOC32_SET_ENTRY _IOW(MTRR_IOCTL_BASE, 1, struct mtrr_sentry32) | ||
| 130 | #define MTRRIOC32_DEL_ENTRY _IOW(MTRR_IOCTL_BASE, 2, struct mtrr_sentry32) | ||
| 131 | #define MTRRIOC32_GET_ENTRY _IOWR(MTRR_IOCTL_BASE, 3, struct mtrr_gentry32) | ||
| 132 | #define MTRRIOC32_KILL_ENTRY _IOW(MTRR_IOCTL_BASE, 4, struct mtrr_sentry32) | ||
| 133 | #define MTRRIOC32_ADD_PAGE_ENTRY _IOW(MTRR_IOCTL_BASE, 5, struct mtrr_sentry32) | ||
| 134 | #define MTRRIOC32_SET_PAGE_ENTRY _IOW(MTRR_IOCTL_BASE, 6, struct mtrr_sentry32) | ||
| 135 | #define MTRRIOC32_DEL_PAGE_ENTRY _IOW(MTRR_IOCTL_BASE, 7, struct mtrr_sentry32) | ||
| 136 | #define MTRRIOC32_GET_PAGE_ENTRY _IOWR(MTRR_IOCTL_BASE, 8, struct mtrr_gentry32) | ||
| 137 | #define MTRRIOC32_KILL_PAGE_ENTRY _IOW(MTRR_IOCTL_BASE, 9, struct mtrr_sentry32) | ||
| 138 | |||
| 139 | #endif /* CONFIG_COMPAT */ | ||
| 140 | |||
| 108 | #endif /* _LINUX_MTRR_H */ | 141 | #endif /* _LINUX_MTRR_H */ |
