xref: /linux/arch/sparc/include/asm/adi_64.h (revision 7a338472)
1*7a338472SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
2c6202ca7SKhalid Aziz /* adi_64.h: ADI related data structures
3c6202ca7SKhalid Aziz  *
4c6202ca7SKhalid Aziz  * Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved.
5c6202ca7SKhalid Aziz  * Author: Khalid Aziz (khalid.aziz@oracle.com)
6c6202ca7SKhalid Aziz  */
7c6202ca7SKhalid Aziz #ifndef __ASM_SPARC64_ADI_H
8c6202ca7SKhalid Aziz #define __ASM_SPARC64_ADI_H
9c6202ca7SKhalid Aziz 
10c6202ca7SKhalid Aziz #include <linux/types.h>
11c6202ca7SKhalid Aziz 
12c6202ca7SKhalid Aziz #ifndef __ASSEMBLY__
13c6202ca7SKhalid Aziz 
14c6202ca7SKhalid Aziz struct adi_caps {
15c6202ca7SKhalid Aziz 	__u64 blksz;
16c6202ca7SKhalid Aziz 	__u64 nbits;
17c6202ca7SKhalid Aziz 	__u64 ue_on_adi;
18c6202ca7SKhalid Aziz };
19c6202ca7SKhalid Aziz 
20c6202ca7SKhalid Aziz struct adi_config {
21c6202ca7SKhalid Aziz 	bool enabled;
22c6202ca7SKhalid Aziz 	struct adi_caps caps;
23c6202ca7SKhalid Aziz };
24c6202ca7SKhalid Aziz 
25c6202ca7SKhalid Aziz extern struct adi_config adi_state;
26c6202ca7SKhalid Aziz 
27c6202ca7SKhalid Aziz extern void mdesc_adi_init(void);
28c6202ca7SKhalid Aziz 
adi_capable(void)29c6202ca7SKhalid Aziz static inline bool adi_capable(void)
30c6202ca7SKhalid Aziz {
31c6202ca7SKhalid Aziz 	return adi_state.enabled;
32c6202ca7SKhalid Aziz }
33c6202ca7SKhalid Aziz 
adi_blksize(void)34c6202ca7SKhalid Aziz static inline unsigned long adi_blksize(void)
35c6202ca7SKhalid Aziz {
36c6202ca7SKhalid Aziz 	return adi_state.caps.blksz;
37c6202ca7SKhalid Aziz }
38c6202ca7SKhalid Aziz 
adi_nbits(void)39c6202ca7SKhalid Aziz static inline unsigned long adi_nbits(void)
40c6202ca7SKhalid Aziz {
41c6202ca7SKhalid Aziz 	return adi_state.caps.nbits;
42c6202ca7SKhalid Aziz }
43c6202ca7SKhalid Aziz 
44c6202ca7SKhalid Aziz #endif	/* __ASSEMBLY__ */
45c6202ca7SKhalid Aziz 
46c6202ca7SKhalid Aziz #endif	/* !(__ASM_SPARC64_ADI_H) */
47