xref: /linux/arch/powerpc/include/asm/vphn.h (revision ab52c59103002b49f2455371e4b9c56ba3ef1781)
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 #ifndef _ASM_POWERPC_VPHN_H
3 #define _ASM_POWERPC_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 long hcall_vphn(unsigned long cpu, u64 flags, __be32 *associativity);
23 
24 #endif // _ASM_POWERPC_VPHN_H
25