18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 28c2ecf20Sopenharmony_ci/* adi_64.h: ADI related data structures 38c2ecf20Sopenharmony_ci * 48c2ecf20Sopenharmony_ci * Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved. 58c2ecf20Sopenharmony_ci * Author: Khalid Aziz (khalid.aziz@oracle.com) 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci#ifndef __ASM_SPARC64_ADI_H 88c2ecf20Sopenharmony_ci#define __ASM_SPARC64_ADI_H 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#include <linux/types.h> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#ifndef __ASSEMBLY__ 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_cistruct adi_caps { 158c2ecf20Sopenharmony_ci __u64 blksz; 168c2ecf20Sopenharmony_ci __u64 nbits; 178c2ecf20Sopenharmony_ci __u64 ue_on_adi; 188c2ecf20Sopenharmony_ci}; 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_cistruct adi_config { 218c2ecf20Sopenharmony_ci bool enabled; 228c2ecf20Sopenharmony_ci struct adi_caps caps; 238c2ecf20Sopenharmony_ci}; 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ciextern struct adi_config adi_state; 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ciextern void mdesc_adi_init(void); 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_cistatic inline bool adi_capable(void) 308c2ecf20Sopenharmony_ci{ 318c2ecf20Sopenharmony_ci return adi_state.enabled; 328c2ecf20Sopenharmony_ci} 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_cistatic inline unsigned long adi_blksize(void) 358c2ecf20Sopenharmony_ci{ 368c2ecf20Sopenharmony_ci return adi_state.caps.blksz; 378c2ecf20Sopenharmony_ci} 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_cistatic inline unsigned long adi_nbits(void) 408c2ecf20Sopenharmony_ci{ 418c2ecf20Sopenharmony_ci return adi_state.caps.nbits; 428c2ecf20Sopenharmony_ci} 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci#endif /* __ASSEMBLY__ */ 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci#endif /* !(__ASM_SPARC64_ADI_H) */ 47