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 Azizstatic inline bool adi_capable(void) 30c6202ca7SKhalid Aziz { 31c6202ca7SKhalid Aziz return adi_state.enabled; 32c6202ca7SKhalid Aziz } 33c6202ca7SKhalid Aziz adi_blksize(void)34c6202ca7SKhalid Azizstatic inline unsigned long adi_blksize(void) 35c6202ca7SKhalid Aziz { 36c6202ca7SKhalid Aziz return adi_state.caps.blksz; 37c6202ca7SKhalid Aziz } 38c6202ca7SKhalid Aziz adi_nbits(void)39c6202ca7SKhalid Azizstatic 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