12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /* SPDX-License-Identifier: GPL-2.0-only */
- /*
- * tools/testing/selftests/kvm/include/numaif.h
- *
- * Copyright (C) 2020, Google LLC.
- *
- * This work is licensed under the terms of the GNU GPL, version 2.
- *
- * Header file that provides access to NUMA API functions not explicitly
- * exported to user space.
- */
- #ifndef SELFTEST_KVM_NUMAIF_H
- #define SELFTEST_KVM_NUMAIF_H
- #define __NR_get_mempolicy 239
- #define __NR_migrate_pages 256
- /* System calls */
- long get_mempolicy(int *policy, const unsigned long *nmask,
- unsigned long maxnode, void *addr, int flags)
- {
- return syscall(__NR_get_mempolicy, policy, nmask,
- maxnode, addr, flags);
- }
- long migrate_pages(int pid, unsigned long maxnode,
- const unsigned long *frommask,
- const unsigned long *tomask)
- {
- return syscall(__NR_migrate_pages, pid, maxnode, frommask, tomask);
- }
- /* Policies */
- #define MPOL_DEFAULT 0
- #define MPOL_PREFERRED 1
- #define MPOL_BIND 2
- #define MPOL_INTERLEAVE 3
- #define MPOL_MAX MPOL_INTERLEAVE
- /* Flags for get_mem_policy */
- #define MPOL_F_NODE (1<<0) /* return next il node or node of address */
- /* Warning: MPOL_F_NODE is unsupported and
- * subject to change. Don't use.
- */
- #define MPOL_F_ADDR (1<<1) /* look up vma using address */
- #define MPOL_F_MEMS_ALLOWED (1<<2) /* query nodes allowed in cpuset */
- /* Flags for mbind */
- #define MPOL_MF_STRICT (1<<0) /* Verify existing pages in the mapping */
- #define MPOL_MF_MOVE (1<<1) /* Move pages owned by this process to conform to mapping */
- #define MPOL_MF_MOVE_ALL (1<<2) /* Move every page to conform to mapping */
- #endif /* SELFTEST_KVM_NUMAIF_H */
|