adi_64.h 812 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /* adi_64.h: ADI related data structures
  3. *
  4. * Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved.
  5. * Author: Khalid Aziz ([email protected])
  6. */
  7. #ifndef __ASM_SPARC64_ADI_H
  8. #define __ASM_SPARC64_ADI_H
  9. #include <linux/types.h>
  10. #ifndef __ASSEMBLY__
  11. struct adi_caps {
  12. __u64 blksz;
  13. __u64 nbits;
  14. __u64 ue_on_adi;
  15. };
  16. struct adi_config {
  17. bool enabled;
  18. struct adi_caps caps;
  19. };
  20. extern struct adi_config adi_state;
  21. extern void mdesc_adi_init(void);
  22. static inline bool adi_capable(void)
  23. {
  24. return adi_state.enabled;
  25. }
  26. static inline unsigned long adi_blksize(void)
  27. {
  28. return adi_state.caps.blksz;
  29. }
  30. static inline unsigned long adi_nbits(void)
  31. {
  32. return adi_state.caps.nbits;
  33. }
  34. #endif /* __ASSEMBLY__ */
  35. #endif /* !(__ASM_SPARC64_ADI_H) */