1#include "mysql/psi/psi.h" 2#include "psi_base.h" 3#include "psi_memory.h" 4#include "psi_base.h" 5struct PSI_thread; 6typedef unsigned int PSI_memory_key; 7C_MODE_START 8struct MDL_key; 9typedef struct MDL_key MDL_key; 10typedef int opaque_mdl_type; 11typedef int opaque_mdl_duration; 12typedef int opaque_mdl_status; 13typedef int opaque_vio_type; 14struct TABLE_SHARE; 15struct sql_digest_storage; 16 struct opaque_THD 17 { 18 int dummy; 19 }; 20 typedef struct opaque_THD THD; 21struct PSI_mutex; 22typedef struct PSI_mutex PSI_mutex; 23struct PSI_rwlock; 24typedef struct PSI_rwlock PSI_rwlock; 25struct PSI_cond; 26typedef struct PSI_cond PSI_cond; 27struct PSI_table_share; 28typedef struct PSI_table_share PSI_table_share; 29struct PSI_table; 30typedef struct PSI_table PSI_table; 31struct PSI_thread; 32typedef struct PSI_thread PSI_thread; 33struct PSI_file; 34typedef struct PSI_file PSI_file; 35struct PSI_socket; 36typedef struct PSI_socket PSI_socket; 37struct PSI_prepared_stmt; 38typedef struct PSI_prepared_stmt PSI_prepared_stmt; 39struct PSI_table_locker; 40typedef struct PSI_table_locker PSI_table_locker; 41struct PSI_statement_locker; 42typedef struct PSI_statement_locker PSI_statement_locker; 43struct PSI_transaction_locker; 44typedef struct PSI_transaction_locker PSI_transaction_locker; 45struct PSI_idle_locker; 46typedef struct PSI_idle_locker PSI_idle_locker; 47struct PSI_digest_locker; 48typedef struct PSI_digest_locker PSI_digest_locker; 49struct PSI_sp_share; 50typedef struct PSI_sp_share PSI_sp_share; 51struct PSI_sp_locker; 52typedef struct PSI_sp_locker PSI_sp_locker; 53struct PSI_metadata_lock; 54typedef struct PSI_metadata_lock PSI_metadata_lock; 55struct PSI_stage_progress 56{ 57 ulonglong m_work_completed; 58 ulonglong m_work_estimated; 59}; 60typedef struct PSI_stage_progress PSI_stage_progress; 61enum PSI_table_io_operation 62{ 63 PSI_TABLE_FETCH_ROW= 0, 64 PSI_TABLE_WRITE_ROW= 1, 65 PSI_TABLE_UPDATE_ROW= 2, 66 PSI_TABLE_DELETE_ROW= 3 67}; 68typedef enum PSI_table_io_operation PSI_table_io_operation; 69struct PSI_table_locker_state 70{ 71 uint m_flags; 72 enum PSI_table_io_operation m_io_operation; 73 struct PSI_table *m_table; 74 struct PSI_table_share *m_table_share; 75 struct PSI_thread *m_thread; 76 ulonglong m_timer_start; 77 ulonglong (*m_timer)(void); 78 void *m_wait; 79 uint m_index; 80}; 81typedef struct PSI_table_locker_state PSI_table_locker_state; 82struct PSI_bootstrap 83{ 84 void* (*get_interface)(int version); 85}; 86typedef struct PSI_bootstrap PSI_bootstrap; 87struct PSI_none 88{ 89 int opaque; 90}; 91typedef struct PSI_none PSI; 92struct PSI_stage_info_none 93{ 94 unsigned int m_key; 95 const char *m_name; 96 int m_flags; 97}; 98typedef struct PSI_stage_info_none PSI_stage_info; 99extern MYSQL_PLUGIN_IMPORT PSI *PSI_server; 100C_MODE_END 101