xtensa_perfmon_masks.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /*
  2. * SPDX-FileCopyrightText: 2018-2022 Espressif Systems (Shanghai) CO LTD
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #ifndef _xtensa_perfmon_masks_H_
  7. #define _xtensa_perfmon_masks_H_
  8. #include <inttypes.h>
  9. #include "xtensa/xt_perf_consts.h"
  10. #ifdef __cplusplus
  11. extern "C"
  12. {
  13. #endif
  14. /**
  15. * @brief Description for select parameter
  16. *
  17. * Structure defines description for different select values for performance counters
  18. */
  19. typedef struct xtensa_perfmon_select {
  20. int select; /*!< Selected counter */
  21. const char *description; /*!< Description for selected counter */
  22. } xtensa_perfmon_select_t;
  23. /**
  24. * @brief Description for mask parameter
  25. *
  26. * Structure defines description for different select and mask values for performance counters
  27. */
  28. typedef struct xtensa_perfmon_masks {
  29. int select; /*!< Selected counter */
  30. int mask; /*!< Selected mask for counter */
  31. const char *description; /*!< Description for selected mask */
  32. } xtensa_perfmon_masks_t;
  33. // Maximum amount of performance counter events
  34. #define MAX_PERFMON_EVENTS 119
  35. /**
  36. * @brief Select value description table
  37. *
  38. * Table contains description for different 'select' values for performance counter
  39. */
  40. extern const xtensa_perfmon_select_t xtensa_perfmon_select_table[];
  41. /**
  42. * @brief Mask value description table
  43. *
  44. * Table contains description for different 'select' and 'mask' values for performance counter
  45. */
  46. extern const xtensa_perfmon_masks_t xtensa_perfmon_masks_table[];
  47. /**
  48. * @brief All available counters
  49. *
  50. * Table contains all available counters
  51. */
  52. extern const uint32_t xtensa_perfmon_select_mask_all[MAX_PERFMON_EVENTS * 2];
  53. #ifdef __cplusplus
  54. }
  55. #endif
  56. #endif // _xtensa_perfmon_masks_H_