xref: /aosp_15_r20/prebuilts/build-tools/sysroots/i686-unknown-linux-musl/include/asm/mtrr.h (revision cda5da8d549138a6648c5ee6d7a49cf8f4a657be)
1*cda5da8dSAndroid Build Coastguard Worker /*
2*cda5da8dSAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*cda5da8dSAndroid Build Coastguard Worker  *
4*cda5da8dSAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*cda5da8dSAndroid Build Coastguard Worker  * for more information.
6*cda5da8dSAndroid Build Coastguard Worker  */
7*cda5da8dSAndroid Build Coastguard Worker #ifndef _UAPI_ASM_X86_MTRR_H
8*cda5da8dSAndroid Build Coastguard Worker #define _UAPI_ASM_X86_MTRR_H
9*cda5da8dSAndroid Build Coastguard Worker #include <linux/types.h>
10*cda5da8dSAndroid Build Coastguard Worker #include <linux/ioctl.h>
11*cda5da8dSAndroid Build Coastguard Worker #include <linux/errno.h>
12*cda5da8dSAndroid Build Coastguard Worker #define MTRR_IOCTL_BASE 'M'
13*cda5da8dSAndroid Build Coastguard Worker #ifdef __i386__
14*cda5da8dSAndroid Build Coastguard Worker struct mtrr_sentry {
15*cda5da8dSAndroid Build Coastguard Worker   unsigned long base;
16*cda5da8dSAndroid Build Coastguard Worker   unsigned int size;
17*cda5da8dSAndroid Build Coastguard Worker   unsigned int type;
18*cda5da8dSAndroid Build Coastguard Worker };
19*cda5da8dSAndroid Build Coastguard Worker struct mtrr_gentry {
20*cda5da8dSAndroid Build Coastguard Worker   unsigned int regnum;
21*cda5da8dSAndroid Build Coastguard Worker   unsigned long base;
22*cda5da8dSAndroid Build Coastguard Worker   unsigned int size;
23*cda5da8dSAndroid Build Coastguard Worker   unsigned int type;
24*cda5da8dSAndroid Build Coastguard Worker };
25*cda5da8dSAndroid Build Coastguard Worker #else
26*cda5da8dSAndroid Build Coastguard Worker struct mtrr_sentry {
27*cda5da8dSAndroid Build Coastguard Worker   __u64 base;
28*cda5da8dSAndroid Build Coastguard Worker   __u32 size;
29*cda5da8dSAndroid Build Coastguard Worker   __u32 type;
30*cda5da8dSAndroid Build Coastguard Worker };
31*cda5da8dSAndroid Build Coastguard Worker struct mtrr_gentry {
32*cda5da8dSAndroid Build Coastguard Worker   __u64 base;
33*cda5da8dSAndroid Build Coastguard Worker   __u32 size;
34*cda5da8dSAndroid Build Coastguard Worker   __u32 regnum;
35*cda5da8dSAndroid Build Coastguard Worker   __u32 type;
36*cda5da8dSAndroid Build Coastguard Worker   __u32 _pad;
37*cda5da8dSAndroid Build Coastguard Worker };
38*cda5da8dSAndroid Build Coastguard Worker #endif
39*cda5da8dSAndroid Build Coastguard Worker struct mtrr_var_range {
40*cda5da8dSAndroid Build Coastguard Worker   __u32 base_lo;
41*cda5da8dSAndroid Build Coastguard Worker   __u32 base_hi;
42*cda5da8dSAndroid Build Coastguard Worker   __u32 mask_lo;
43*cda5da8dSAndroid Build Coastguard Worker   __u32 mask_hi;
44*cda5da8dSAndroid Build Coastguard Worker };
45*cda5da8dSAndroid Build Coastguard Worker typedef __u8 mtrr_type;
46*cda5da8dSAndroid Build Coastguard Worker #define MTRR_NUM_FIXED_RANGES 88
47*cda5da8dSAndroid Build Coastguard Worker #define MTRR_MAX_VAR_RANGES 256
48*cda5da8dSAndroid Build Coastguard Worker #define MTRRphysBase_MSR(reg) (0x200 + 2 * (reg))
49*cda5da8dSAndroid Build Coastguard Worker #define MTRRphysMask_MSR(reg) (0x200 + 2 * (reg) + 1)
50*cda5da8dSAndroid Build Coastguard Worker #define MTRRIOC_ADD_ENTRY _IOW(MTRR_IOCTL_BASE, 0, struct mtrr_sentry)
51*cda5da8dSAndroid Build Coastguard Worker #define MTRRIOC_SET_ENTRY _IOW(MTRR_IOCTL_BASE, 1, struct mtrr_sentry)
52*cda5da8dSAndroid Build Coastguard Worker #define MTRRIOC_DEL_ENTRY _IOW(MTRR_IOCTL_BASE, 2, struct mtrr_sentry)
53*cda5da8dSAndroid Build Coastguard Worker #define MTRRIOC_GET_ENTRY _IOWR(MTRR_IOCTL_BASE, 3, struct mtrr_gentry)
54*cda5da8dSAndroid Build Coastguard Worker #define MTRRIOC_KILL_ENTRY _IOW(MTRR_IOCTL_BASE, 4, struct mtrr_sentry)
55*cda5da8dSAndroid Build Coastguard Worker #define MTRRIOC_ADD_PAGE_ENTRY _IOW(MTRR_IOCTL_BASE, 5, struct mtrr_sentry)
56*cda5da8dSAndroid Build Coastguard Worker #define MTRRIOC_SET_PAGE_ENTRY _IOW(MTRR_IOCTL_BASE, 6, struct mtrr_sentry)
57*cda5da8dSAndroid Build Coastguard Worker #define MTRRIOC_DEL_PAGE_ENTRY _IOW(MTRR_IOCTL_BASE, 7, struct mtrr_sentry)
58*cda5da8dSAndroid Build Coastguard Worker #define MTRRIOC_GET_PAGE_ENTRY _IOWR(MTRR_IOCTL_BASE, 8, struct mtrr_gentry)
59*cda5da8dSAndroid Build Coastguard Worker #define MTRRIOC_KILL_PAGE_ENTRY _IOW(MTRR_IOCTL_BASE, 9, struct mtrr_sentry)
60*cda5da8dSAndroid Build Coastguard Worker #define MTRR_TYPE_UNCACHABLE 0
61*cda5da8dSAndroid Build Coastguard Worker #define MTRR_TYPE_WRCOMB 1
62*cda5da8dSAndroid Build Coastguard Worker #define MTRR_TYPE_WRTHROUGH 4
63*cda5da8dSAndroid Build Coastguard Worker #define MTRR_TYPE_WRPROT 5
64*cda5da8dSAndroid Build Coastguard Worker #define MTRR_TYPE_WRBACK 6
65*cda5da8dSAndroid Build Coastguard Worker #define MTRR_NUM_TYPES 7
66*cda5da8dSAndroid Build Coastguard Worker #define MTRR_TYPE_INVALID 0xff
67*cda5da8dSAndroid Build Coastguard Worker #endif
68