/* SPDX-License-Identifier: LGPL-2.0+ WITH Linux-syscall-note */ /* Generic MTRR (Memory Type Range Register) ioctls. Copyright (C) 1997-1999 Richard Gooch This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Richard Gooch may be reached by email at rgooch@atnf.csiro.au The postal address is: Richard Gooch, c/o ATNF, P. O. Box 76, Epping, N.S.W., 2121, Australia. */ #ifndef _ASM_X86_MTRR_H #define _ASM_X86_MTRR_H #include <linux/types.h> #include <linux/ioctl.h> #include <linux/errno.h> #define MTRR_IOCTL_BASE 'M' /* 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 */ unsigned int size; /* Size of region */ unsigned int type; /* Type of region */ }; #else /* __i386__ */ struct mtrr_sentry { __u64 base; /* Base address */ __u32 size; /* Size of region */ __u32 type; /* Type of region */ }; struct mtrr_gentry { __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 { __u32 base_lo; __u32 base_hi; __u32 mask_lo; __u32 mask_hi; }; /* In the Intel processor's MTRR interface, the MTRR type is always held in an 8 bit field: */ typedef __u8 mtrr_type; #define MTRR_NUM_FIXED_RANGES 88 #define MTRR_MAX_VAR_RANGES 256 struct mtrr_state_type { struct mtrr_var_range var_ranges[MTRR_MAX_VAR_RANGES]; mtrr_type fixed_ranges[MTRR_NUM_FIXED_RANGES]; unsigned char enabled; unsigned char have_fixed; mtrr_type def_type; }; #define MTRRphysBase_MSR(reg) (0x200 + 2 * (reg)) #define MTRRphysMask_MSR(reg) (0x200 + 2 * (reg) + 1) /* These are the various ioctls */ #define MTRRIOC_ADD_ENTRY _IOW(MTRR_IOCTL_BASE, 0, struct mtrr_sentry) #define MTRRIOC_SET_ENTRY _IOW(MTRR_IOCTL_BASE, 1, struct mtrr_sentry) #define MTRRIOC_DEL_ENTRY _IOW(MTRR_IOCTL_BASE, 2, struct mtrr_sentry) #define MTRRIOC_GET_ENTRY _IOWR(MTRR_IOCTL_BASE, 3, struct mtrr_gentry) #define MTRRIOC_KILL_ENTRY _IOW(MTRR_IOCTL_BASE, 4, struct mtrr_sentry) #define MTRRIOC_ADD_PAGE_ENTRY _IOW(MTRR_IOCTL_BASE, 5, struct mtrr_sentry) #define MTRRIOC_SET_PAGE_ENTRY _IOW(MTRR_IOCTL_BASE, 6, struct mtrr_sentry) #define MTRRIOC_DEL_PAGE_ENTRY _IOW(MTRR_IOCTL_BASE, 7, struct mtrr_sentry) #define MTRRIOC_GET_PAGE_ENTRY _IOWR(MTRR_IOCTL_BASE, 8, struct mtrr_gentry) #define MTRRIOC_KILL_PAGE_ENTRY _IOW(MTRR_IOCTL_BASE, 9, struct mtrr_sentry) /* MTRR memory types, which are defined in SDM */ #define MTRR_TYPE_UNCACHABLE 0 #define MTRR_TYPE_WRCOMB 1 /*#define MTRR_TYPE_ 2*/ /*#define MTRR_TYPE_ 3*/ #define MTRR_TYPE_WRTHROUGH 4 #define MTRR_TYPE_WRPROT 5 #define MTRR_TYPE_WRBACK 6 #define MTRR_NUM_TYPES 7 /* * Invalid MTRR memory type. mtrr_type_lookup() returns this value when * MTRRs are disabled. Note, this value is allocated from the reserved * values (0x7-0xff) of the MTRR memory types. */ #define MTRR_TYPE_INVALID 0xff #endif /* _ASM_X86_MTRR_H */
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
a.out.h | File | 756 B | 0644 |
|
auxvec.h | File | 546 B | 0644 |
|
bitsperlong.h | File | 321 B | 0644 |
|
boot.h | File | 323 B | 0644 |
|
bootparam.h | File | 6.97 KB | 0644 |
|
bpf_perf_event.h | File | 40 B | 0644 |
|
byteorder.h | File | 176 B | 0644 |
|
debugreg.h | File | 3.21 KB | 0644 |
|
e820.h | File | 2.52 KB | 0644 |
|
errno.h | File | 31 B | 0644 |
|
fcntl.h | File | 31 B | 0644 |
|
hw_breakpoint.h | File | 69 B | 0644 |
|
hwcap2.h | File | 174 B | 0644 |
|
hyperv.h | File | 12.73 KB | 0644 |
|
ioctl.h | File | 31 B | 0644 |
|
ioctls.h | File | 32 B | 0644 |
|
ipcbuf.h | File | 32 B | 0644 |
|
ist.h | File | 854 B | 0644 |
|
kvm.h | File | 6.98 KB | 0644 |
|
kvm_para.h | File | 2.91 KB | 0644 |
|
kvm_perf.h | File | 388 B | 0644 |
|
ldt.h | File | 1.28 KB | 0644 |
|
mce.h | File | 1.28 KB | 0644 |
|
mman.h | File | 1002 B | 0644 |
|
msgbuf.h | File | 1.03 KB | 0644 |
|
msr.h | File | 346 B | 0644 |
|
mtrr.h | File | 4.13 KB | 0644 |
|
param.h | File | 31 B | 0644 |
|
perf_regs.h | File | 717 B | 0644 |
|
poll.h | File | 30 B | 0644 |
|
posix_types.h | File | 224 B | 0644 |
|
posix_types_32.h | File | 765 B | 0644 |
|
posix_types_64.h | File | 609 B | 0644 |
|
posix_types_x32.h | File | 581 B | 0644 |
|
prctl.h | File | 418 B | 0644 |
|
processor-flags.h | File | 6.47 KB | 0644 |
|
ptrace-abi.h | File | 1.99 KB | 0644 |
|
ptrace.h | File | 1.46 KB | 0644 |
|
resource.h | File | 34 B | 0644 |
|
sembuf.h | File | 777 B | 0644 |
|
setup.h | File | 6 B | 0644 |
|
shmbuf.h | File | 1.23 KB | 0644 |
|
sigcontext.h | File | 9.5 KB | 0644 |
|
sigcontext32.h | File | 247 B | 0644 |
|
siginfo.h | File | 494 B | 0644 |
|
signal.h | File | 2.83 KB | 0644 |
|
socket.h | File | 32 B | 0644 |
|
sockios.h | File | 33 B | 0644 |
|
stat.h | File | 3.06 KB | 0644 |
|
statfs.h | File | 416 B | 0644 |
|
svm.h | File | 6.9 KB | 0644 |
|
swab.h | File | 724 B | 0644 |
|
termbits.h | File | 34 B | 0644 |
|
termios.h | File | 33 B | 0644 |
|
types.h | File | 152 B | 0644 |
|
ucontext.h | File | 2.07 KB | 0644 |
|
unistd.h | File | 359 B | 0644 |
|
unistd_32.h | File | 9.9 KB | 0644 |
|
unistd_64.h | File | 8.68 KB | 0644 |
|
unistd_x32.h | File | 15.3 KB | 0644 |
|
vm86.h | File | 3.04 KB | 0644 |
|
vmx.h | File | 6.59 KB | 0644 |
|
vsyscall.h | File | 263 B | 0644 |
|