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; 7struct PSI_memory_info_v2 8{ 9 int placeholder; 10}; 11typedef struct PSI_memory_info_v2 PSI_memory_info; 12C_MODE_START 13struct MDL_key; 14typedef struct MDL_key MDL_key; 15typedef int opaque_mdl_type; 16typedef int opaque_mdl_duration; 17typedef int opaque_mdl_status; 18typedef int opaque_vio_type; 19struct TABLE_SHARE; 20struct sql_digest_storage; 21 struct opaque_THD 22 { 23 int dummy; 24 }; 25 typedef struct opaque_THD THD; 26struct PSI_mutex; 27typedef struct PSI_mutex PSI_mutex; 28struct PSI_rwlock; 29typedef struct PSI_rwlock PSI_rwlock; 30struct PSI_cond; 31typedef struct PSI_cond PSI_cond; 32struct PSI_table_share; 33typedef struct PSI_table_share PSI_table_share; 34struct PSI_table; 35typedef struct PSI_table PSI_table; 36struct PSI_thread; 37typedef struct PSI_thread PSI_thread; 38struct PSI_file; 39typedef struct PSI_file PSI_file; 40struct PSI_socket; 41typedef struct PSI_socket PSI_socket; 42struct PSI_prepared_stmt; 43typedef struct PSI_prepared_stmt PSI_prepared_stmt; 44struct PSI_table_locker; 45typedef struct PSI_table_locker PSI_table_locker; 46struct PSI_statement_locker; 47typedef struct PSI_statement_locker PSI_statement_locker; 48struct PSI_transaction_locker; 49typedef struct PSI_transaction_locker PSI_transaction_locker; 50struct PSI_idle_locker; 51typedef struct PSI_idle_locker PSI_idle_locker; 52struct PSI_digest_locker; 53typedef struct PSI_digest_locker PSI_digest_locker; 54struct PSI_sp_share; 55typedef struct PSI_sp_share PSI_sp_share; 56struct PSI_sp_locker; 57typedef struct PSI_sp_locker PSI_sp_locker; 58struct PSI_metadata_lock; 59typedef struct PSI_metadata_lock PSI_metadata_lock; 60struct PSI_stage_progress 61{ 62 ulonglong m_work_completed; 63 ulonglong m_work_estimated; 64}; 65typedef struct PSI_stage_progress PSI_stage_progress; 66enum PSI_table_io_operation 67{ 68 PSI_TABLE_FETCH_ROW= 0, 69 PSI_TABLE_WRITE_ROW= 1, 70 PSI_TABLE_UPDATE_ROW= 2, 71 PSI_TABLE_DELETE_ROW= 3 72}; 73typedef enum PSI_table_io_operation PSI_table_io_operation; 74struct PSI_table_locker_state 75{ 76 uint m_flags; 77 enum PSI_table_io_operation m_io_operation; 78 struct PSI_table *m_table; 79 struct PSI_table_share *m_table_share; 80 struct PSI_thread *m_thread; 81 ulonglong m_timer_start; 82 ulonglong (*m_timer)(void); 83 void *m_wait; 84 uint m_index; 85}; 86typedef struct PSI_table_locker_state PSI_table_locker_state; 87struct PSI_bootstrap 88{ 89 void* (*get_interface)(int version); 90}; 91typedef struct PSI_bootstrap PSI_bootstrap; 92struct PSI_mutex_locker; 93typedef struct PSI_mutex_locker PSI_mutex_locker; 94struct PSI_rwlock_locker; 95typedef struct PSI_rwlock_locker PSI_rwlock_locker; 96struct PSI_cond_locker; 97typedef struct PSI_cond_locker PSI_cond_locker; 98struct PSI_file_locker; 99typedef struct PSI_file_locker PSI_file_locker; 100struct PSI_socket_locker; 101typedef struct PSI_socket_locker PSI_socket_locker; 102struct PSI_metadata_locker; 103typedef struct PSI_metadata_locker PSI_metadata_locker; 104enum PSI_mutex_operation 105{ 106 PSI_MUTEX_LOCK= 0, 107 PSI_MUTEX_TRYLOCK= 1 108}; 109typedef enum PSI_mutex_operation PSI_mutex_operation; 110enum PSI_rwlock_operation 111{ 112 PSI_RWLOCK_READLOCK= 0, 113 PSI_RWLOCK_WRITELOCK= 1, 114 PSI_RWLOCK_TRYREADLOCK= 2, 115 PSI_RWLOCK_TRYWRITELOCK= 3, 116 PSI_RWLOCK_SHAREDLOCK= 4, 117 PSI_RWLOCK_SHAREDEXCLUSIVELOCK= 5, 118 PSI_RWLOCK_EXCLUSIVELOCK= 6, 119 PSI_RWLOCK_TRYSHAREDLOCK= 7, 120 PSI_RWLOCK_TRYSHAREDEXCLUSIVELOCK= 8, 121 PSI_RWLOCK_TRYEXCLUSIVELOCK= 9 122}; 123typedef enum PSI_rwlock_operation PSI_rwlock_operation; 124enum PSI_cond_operation 125{ 126 PSI_COND_WAIT= 0, 127 PSI_COND_TIMEDWAIT= 1 128}; 129typedef enum PSI_cond_operation PSI_cond_operation; 130enum PSI_file_operation 131{ 132 PSI_FILE_CREATE= 0, 133 PSI_FILE_CREATE_TMP= 1, 134 PSI_FILE_OPEN= 2, 135 PSI_FILE_STREAM_OPEN= 3, 136 PSI_FILE_CLOSE= 4, 137 PSI_FILE_STREAM_CLOSE= 5, 138 PSI_FILE_READ= 6, 139 PSI_FILE_WRITE= 7, 140 PSI_FILE_SEEK= 8, 141 PSI_FILE_TELL= 9, 142 PSI_FILE_FLUSH= 10, 143 PSI_FILE_STAT= 11, 144 PSI_FILE_FSTAT= 12, 145 PSI_FILE_CHSIZE= 13, 146 PSI_FILE_DELETE= 14, 147 PSI_FILE_RENAME= 15, 148 PSI_FILE_SYNC= 16 149}; 150typedef enum PSI_file_operation PSI_file_operation; 151enum PSI_table_lock_operation 152{ 153 PSI_TABLE_LOCK= 0, 154 PSI_TABLE_EXTERNAL_LOCK= 1 155}; 156typedef enum PSI_table_lock_operation PSI_table_lock_operation; 157enum PSI_socket_state 158{ 159 PSI_SOCKET_STATE_IDLE= 1, 160 PSI_SOCKET_STATE_ACTIVE= 2 161}; 162typedef enum PSI_socket_state PSI_socket_state; 163enum PSI_socket_operation 164{ 165 PSI_SOCKET_CREATE= 0, 166 PSI_SOCKET_CONNECT= 1, 167 PSI_SOCKET_BIND= 2, 168 PSI_SOCKET_CLOSE= 3, 169 PSI_SOCKET_SEND= 4, 170 PSI_SOCKET_RECV= 5, 171 PSI_SOCKET_SENDTO= 6, 172 PSI_SOCKET_RECVFROM= 7, 173 PSI_SOCKET_SENDMSG= 8, 174 PSI_SOCKET_RECVMSG= 9, 175 PSI_SOCKET_SEEK= 10, 176 PSI_SOCKET_OPT= 11, 177 PSI_SOCKET_STAT= 12, 178 PSI_SOCKET_SHUTDOWN= 13, 179 PSI_SOCKET_SELECT= 14 180}; 181typedef enum PSI_socket_operation PSI_socket_operation; 182typedef unsigned int PSI_mutex_key; 183typedef unsigned int PSI_rwlock_key; 184typedef unsigned int PSI_cond_key; 185typedef unsigned int PSI_thread_key; 186typedef unsigned int PSI_file_key; 187typedef unsigned int PSI_stage_key; 188typedef unsigned int PSI_statement_key; 189typedef unsigned int PSI_socket_key; 190struct PSI_v2 191{ 192 int placeholder; 193}; 194struct PSI_mutex_info_v2 195{ 196 int placeholder; 197}; 198struct PSI_rwlock_info_v2 199{ 200 int placeholder; 201}; 202struct PSI_cond_info_v2 203{ 204 int placeholder; 205}; 206struct PSI_thread_info_v2 207{ 208 int placeholder; 209}; 210struct PSI_file_info_v2 211{ 212 int placeholder; 213}; 214struct PSI_stage_info_v2 215{ 216 int placeholder; 217}; 218struct PSI_statement_info_v2 219{ 220 int placeholder; 221}; 222struct PSI_transaction_info_v2 223{ 224 int placeholder; 225}; 226struct PSI_idle_locker_state_v2 227{ 228 int placeholder; 229}; 230struct PSI_mutex_locker_state_v2 231{ 232 int placeholder; 233}; 234struct PSI_rwlock_locker_state_v2 235{ 236 int placeholder; 237}; 238struct PSI_cond_locker_state_v2 239{ 240 int placeholder; 241}; 242struct PSI_file_locker_state_v2 243{ 244 int placeholder; 245}; 246struct PSI_statement_locker_state_v2 247{ 248 int placeholder; 249}; 250struct PSI_transaction_locker_state_v2 251{ 252 int placeholder; 253}; 254struct PSI_socket_locker_state_v2 255{ 256 int placeholder; 257}; 258struct PSI_metadata_locker_state_v2 259{ 260 int placeholder; 261}; 262typedef struct PSI_v2 PSI; 263typedef struct PSI_mutex_info_v2 PSI_mutex_info; 264typedef struct PSI_rwlock_info_v2 PSI_rwlock_info; 265typedef struct PSI_cond_info_v2 PSI_cond_info; 266typedef struct PSI_thread_info_v2 PSI_thread_info; 267typedef struct PSI_file_info_v2 PSI_file_info; 268typedef struct PSI_stage_info_v2 PSI_stage_info; 269typedef struct PSI_statement_info_v2 PSI_statement_info; 270typedef struct PSI_transaction_info_v2 PSI_transaction_info; 271typedef struct PSI_socket_info_v2 PSI_socket_info; 272typedef struct PSI_idle_locker_state_v2 PSI_idle_locker_state; 273typedef struct PSI_mutex_locker_state_v2 PSI_mutex_locker_state; 274typedef struct PSI_rwlock_locker_state_v2 PSI_rwlock_locker_state; 275typedef struct PSI_cond_locker_state_v2 PSI_cond_locker_state; 276typedef struct PSI_file_locker_state_v2 PSI_file_locker_state; 277typedef struct PSI_statement_locker_state_v2 PSI_statement_locker_state; 278typedef struct PSI_transaction_locker_state_v2 PSI_transaction_locker_state; 279typedef struct PSI_socket_locker_state_v2 PSI_socket_locker_state; 280typedef struct PSI_sp_locker_state_v2 PSI_sp_locker_state; 281typedef struct PSI_metadata_locker_state_v2 PSI_metadata_locker_state; 282extern MYSQL_PLUGIN_IMPORT PSI *PSI_server; 283C_MODE_END 284