cmdq_virtual.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. #ifndef __CMDQ_CORE_VIRTUAL_H__
  2. #define __CMDQ_CORE_VIRTUAL_H__
  3. #include "cmdq_def.h"
  4. /* get subsys LSB in argA */
  5. typedef uint32_t(*CmdqGetSubsysLSBArgA) (void);
  6. /* is a secure thread */
  7. typedef bool(*CmdqIsSecureThread) (const int32_t thread);
  8. /* is valid notify thread for secure path */
  9. typedef bool(*CmdqIsValidNotifyThread) (const int32_t thread);
  10. /* is display scenario */
  11. typedef bool(*CmdqIsDispScenario) (const CMDQ_SCENARIO_ENUM scenario);
  12. /* should enable prefetch */
  13. typedef bool(*CmdqShouldEnablePrefetch) (const CMDQ_SCENARIO_ENUM scenario);
  14. /* should profile */
  15. typedef bool(*CmdqShouldProfile) (const CMDQ_SCENARIO_ENUM scenario);
  16. /* display thread index from scenario */
  17. typedef int (*CmdqDispThread) (CMDQ_SCENARIO_ENUM scenario);
  18. /* get thread index from scenario and secure */
  19. typedef int (*CmdqGetThreadID) (CMDQ_SCENARIO_ENUM scenario, const bool secure);
  20. /* priority from scenario */
  21. typedef CMDQ_HW_THREAD_PRIORITY_ENUM(*CmdqPriority) (CMDQ_SCENARIO_ENUM scenario);
  22. /* force loop IRQ from scenario */
  23. typedef bool(*CmdqForceLoopIRQ) (CMDQ_SCENARIO_ENUM scenario);
  24. /* is loop scenario */
  25. typedef bool(*CmdqIsLoopScenario) (CMDQ_SCENARIO_ENUM scenario, bool displayOnly);
  26. /* get register index from hwflag */
  27. typedef void(*CmdqGetRegID) (uint64_t hwflag,
  28. CMDQ_DATA_REGISTER_ENUM *valueRegId,
  29. CMDQ_DATA_REGISTER_ENUM *destRegId, CMDQ_EVENT_ENUM *regAccessToken);
  30. /* module from event index */
  31. typedef const char *(*CmdqModuleFromEvent) (const int32_t event);
  32. /* parse module from register addr */
  33. typedef const char *(*CmdqParseModule) (uint32_t reg_addr);
  34. /* can module entry suspend */
  35. typedef int32_t(*CmdqModuleEntrySuspend) (EngineStruct *engineList);
  36. /* print status clock */
  37. typedef ssize_t(*CmdqPrintStatusClock) (char *buf);
  38. /* print seq status clock */
  39. typedef void (*CmdqPrintStatusSeqClock) (struct seq_file *m);
  40. /* enable common clock locked */
  41. typedef void (*CmdqEnableCommonClockLocked) (bool enable);
  42. /* enable GCE clock locked */
  43. typedef void (*CmdqEnableGCEClockLocked) (bool enable);
  44. /* parse error module by hwflag */
  45. typedef const char *(*CmdqParseErrorModule) (const TaskStruct *pTask);
  46. /* dump mmsys config */
  47. typedef void (*CmdqDumpMMSYSConfig) (void);
  48. /* dump clock gating */
  49. typedef void (*CmdqDumpClockGating) (void);
  50. /* dump SMI */
  51. typedef int (*CmdqDumpSMI) (const int showSmiDump);
  52. /* dump GPR */
  53. typedef void (*CmdqDumpGPR) (void);
  54. /* flag from scenario */
  55. typedef uint64_t(*CmdqFlagFromScenario) (CMDQ_SCENARIO_ENUM scenario);
  56. /* initial backup evet setting */
  57. typedef void (*CmdqInitialBackupEvent) (void);
  58. /* evet backup */
  59. typedef void (*CmdqEventBackup) (void);
  60. /* evet restore */
  61. typedef void (*CmdqEventRestore) (void);
  62. /* test setup */
  63. typedef void (*CmdqTestSetup) (void);
  64. /* test cleanup */
  65. typedef void (*CmdqTestCleanup) (void);
  66. /* test for instruction statistic */
  67. typedef void (*CmdqInitModulePAStat) (void);
  68. typedef struct cmdqCoreFuncStruct {
  69. CmdqGetSubsysLSBArgA getSubsysLSBArgA;
  70. CmdqIsSecureThread isSecureThread;
  71. CmdqIsValidNotifyThread isValidNotifyThread;
  72. CmdqIsDispScenario isDispScenario;
  73. CmdqShouldEnablePrefetch shouldEnablePrefetch;
  74. CmdqShouldProfile shouldProfile;
  75. CmdqDispThread dispThread;
  76. CmdqGetThreadID getThreadID;
  77. CmdqPriority priority;
  78. CmdqForceLoopIRQ forceLoopIRQ;
  79. CmdqIsLoopScenario isLoopScenario;
  80. CmdqGetRegID getRegID;
  81. CmdqModuleFromEvent moduleFromEvent;
  82. CmdqParseModule parseModule;
  83. CmdqModuleEntrySuspend moduleEntrySuspend;
  84. CmdqPrintStatusClock printStatusClock;
  85. CmdqPrintStatusSeqClock printStatusSeqClock;
  86. CmdqEnableCommonClockLocked enableCommonClockLocked;
  87. CmdqEnableGCEClockLocked enableGCEClockLocked;
  88. CmdqParseErrorModule parseErrorModule;
  89. CmdqDumpMMSYSConfig dumpMMSYSConfig;
  90. CmdqDumpClockGating dumpClockGating;
  91. CmdqDumpSMI dumpSMI;
  92. CmdqDumpGPR dumpGPR;
  93. CmdqFlagFromScenario flagFromScenario;
  94. CmdqInitialBackupEvent initialBackupEvent;
  95. CmdqEventBackup eventBackup;
  96. CmdqEventRestore eventRestore;
  97. CmdqTestSetup testSetup;
  98. CmdqTestCleanup testCleanup;
  99. CmdqInitModulePAStat initModulePAStat;
  100. } cmdqCoreFuncStruct;
  101. #ifdef __cplusplus
  102. extern "C" {
  103. #endif
  104. void cmdq_virtual_function_setting(void);
  105. cmdqCoreFuncStruct *cmdq_get_func(void);
  106. #ifdef __cplusplus
  107. }
  108. #endif
  109. #endif /* __CMDQ_CORE_VIRTUAL_H__ */