powerpc/pseries: Generalize hcall_vphn()
[linux-2.6-block.git] / arch / powerpc / mm / book3s64 / vphn.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _ARCH_POWERPC_MM_VPHN_H_
3 #define _ARCH_POWERPC_MM_VPHN_H_
4
5 /* The H_HOME_NODE_ASSOCIATIVITY h_call returns 6 64-bit registers. */
6 #define VPHN_REGISTER_COUNT 6
7
8 /*
9  * 6 64-bit registers unpacked into up to 24 be32 associativity values. To
10  * form the complete property we have to add the length in the first cell.
11  */
12 #define VPHN_ASSOC_BUFSIZE (VPHN_REGISTER_COUNT*sizeof(u64)/sizeof(u16) + 1)
13
14 /*
15  * The H_HOME_NODE_ASSOCIATIVITY hcall takes two values for flags:
16  * 1 for retrieving associativity information for a guest cpu
17  * 2 for retrieving associativity information for a host/hypervisor cpu
18  */
19 #define VPHN_FLAG_VCPU  1
20 #define VPHN_FLAG_PCPU  2
21
22 extern int vphn_unpack_associativity(const long *packed, __be32 *unpacked);
23
24 #endif