1C_MODE_START 2struct TABLE_SHARE; 3struct sql_digest_storage; 4struct PSI_mutex; 5typedef struct PSI_mutex PSI_mutex; 6struct PSI_rwlock; 7typedef struct PSI_rwlock PSI_rwlock; 8struct PSI_cond; 9typedef struct PSI_cond PSI_cond; 10struct PSI_table_share; 11typedef struct PSI_table_share PSI_table_share; 12struct PSI_table; 13typedef struct PSI_table PSI_table; 14struct PSI_thread; 15typedef struct PSI_thread PSI_thread; 16struct PSI_file; 17typedef struct PSI_file PSI_file; 18struct PSI_socket; 19typedef struct PSI_socket PSI_socket; 20struct PSI_table_locker; 21typedef struct PSI_table_locker PSI_table_locker; 22struct PSI_statement_locker; 23typedef struct PSI_statement_locker PSI_statement_locker; 24struct PSI_idle_locker; 25typedef struct PSI_idle_locker PSI_idle_locker; 26struct PSI_digest_locker; 27typedef struct PSI_digest_locker PSI_digest_locker; 28struct PSI_bootstrap 29{ 30 void* (*get_interface)(int version); 31}; 32typedef struct PSI_bootstrap PSI_bootstrap; 33struct PSI_mutex_locker; 34typedef struct PSI_mutex_locker PSI_mutex_locker; 35struct PSI_rwlock_locker; 36typedef struct PSI_rwlock_locker PSI_rwlock_locker; 37struct PSI_cond_locker; 38typedef struct PSI_cond_locker PSI_cond_locker; 39struct PSI_file_locker; 40typedef struct PSI_file_locker PSI_file_locker; 41struct PSI_socket_locker; 42typedef struct PSI_socket_locker PSI_socket_locker; 43enum PSI_mutex_operation 44{ 45 PSI_MUTEX_LOCK= 0, 46 PSI_MUTEX_TRYLOCK= 1 47}; 48typedef enum PSI_mutex_operation PSI_mutex_operation; 49enum PSI_rwlock_operation 50{ 51 PSI_RWLOCK_READLOCK= 0, 52 PSI_RWLOCK_WRITELOCK= 1, 53 PSI_RWLOCK_TRYREADLOCK= 2, 54 PSI_RWLOCK_TRYWRITELOCK= 3 55}; 56typedef enum PSI_rwlock_operation PSI_rwlock_operation; 57enum PSI_cond_operation 58{ 59 PSI_COND_WAIT= 0, 60 PSI_COND_TIMEDWAIT= 1 61}; 62typedef enum PSI_cond_operation PSI_cond_operation; 63enum PSI_file_operation 64{ 65 PSI_FILE_CREATE= 0, 66 PSI_FILE_CREATE_TMP= 1, 67 PSI_FILE_OPEN= 2, 68 PSI_FILE_STREAM_OPEN= 3, 69 PSI_FILE_CLOSE= 4, 70 PSI_FILE_STREAM_CLOSE= 5, 71 PSI_FILE_READ= 6, 72 PSI_FILE_WRITE= 7, 73 PSI_FILE_SEEK= 8, 74 PSI_FILE_TELL= 9, 75 PSI_FILE_FLUSH= 10, 76 PSI_FILE_STAT= 11, 77 PSI_FILE_FSTAT= 12, 78 PSI_FILE_CHSIZE= 13, 79 PSI_FILE_DELETE= 14, 80 PSI_FILE_RENAME= 15, 81 PSI_FILE_SYNC= 16 82}; 83typedef enum PSI_file_operation PSI_file_operation; 84enum PSI_table_io_operation 85{ 86 PSI_TABLE_FETCH_ROW= 0, 87 PSI_TABLE_WRITE_ROW= 1, 88 PSI_TABLE_UPDATE_ROW= 2, 89 PSI_TABLE_DELETE_ROW= 3 90}; 91typedef enum PSI_table_io_operation PSI_table_io_operation; 92enum PSI_table_lock_operation 93{ 94 PSI_TABLE_LOCK= 0, 95 PSI_TABLE_EXTERNAL_LOCK= 1 96}; 97typedef enum PSI_table_lock_operation PSI_table_lock_operation; 98enum PSI_socket_state 99{ 100 PSI_SOCKET_STATE_IDLE= 1, 101 PSI_SOCKET_STATE_ACTIVE= 2 102}; 103typedef enum PSI_socket_state PSI_socket_state; 104enum PSI_socket_operation 105{ 106 PSI_SOCKET_CREATE= 0, 107 PSI_SOCKET_CONNECT= 1, 108 PSI_SOCKET_BIND= 2, 109 PSI_SOCKET_CLOSE= 3, 110 PSI_SOCKET_SEND= 4, 111 PSI_SOCKET_RECV= 5, 112 PSI_SOCKET_SENDTO= 6, 113 PSI_SOCKET_RECVFROM= 7, 114 PSI_SOCKET_SENDMSG= 8, 115 PSI_SOCKET_RECVMSG= 9, 116 PSI_SOCKET_SEEK= 10, 117 PSI_SOCKET_OPT= 11, 118 PSI_SOCKET_STAT= 12, 119 PSI_SOCKET_SHUTDOWN= 13, 120 PSI_SOCKET_SELECT= 14 121}; 122typedef enum PSI_socket_operation PSI_socket_operation; 123typedef unsigned int PSI_mutex_key; 124typedef unsigned int PSI_rwlock_key; 125typedef unsigned int PSI_cond_key; 126typedef unsigned int PSI_thread_key; 127typedef unsigned int PSI_file_key; 128typedef unsigned int PSI_stage_key; 129typedef unsigned int PSI_statement_key; 130typedef unsigned int PSI_socket_key; 131struct PSI_v2 132{ 133 int placeholder; 134}; 135struct PSI_mutex_info_v2 136{ 137 int placeholder; 138}; 139struct PSI_rwlock_info_v2 140{ 141 int placeholder; 142}; 143struct PSI_cond_info_v2 144{ 145 int placeholder; 146}; 147struct PSI_thread_info_v2 148{ 149 int placeholder; 150}; 151struct PSI_file_info_v2 152{ 153 int placeholder; 154}; 155struct PSI_stage_info_v2 156{ 157 int placeholder; 158}; 159struct PSI_statement_info_v2 160{ 161 int placeholder; 162}; 163struct PSI_idle_locker_state_v2 164{ 165 int placeholder; 166}; 167struct PSI_mutex_locker_state_v2 168{ 169 int placeholder; 170}; 171struct PSI_rwlock_locker_state_v2 172{ 173 int placeholder; 174}; 175struct PSI_cond_locker_state_v2 176{ 177 int placeholder; 178}; 179struct PSI_file_locker_state_v2 180{ 181 int placeholder; 182}; 183struct PSI_table_locker_state_v2 184{ 185 int placeholder; 186}; 187struct PSI_statement_locker_state_v2 188{ 189 int placeholder; 190}; 191struct PSI_socket_locker_state_v2 192{ 193 int placeholder; 194}; 195typedef struct PSI_v2 PSI; 196typedef struct PSI_mutex_info_v2 PSI_mutex_info; 197typedef struct PSI_rwlock_info_v2 PSI_rwlock_info; 198typedef struct PSI_cond_info_v2 PSI_cond_info; 199typedef struct PSI_thread_info_v2 PSI_thread_info; 200typedef struct PSI_file_info_v2 PSI_file_info; 201typedef struct PSI_stage_info_v2 PSI_stage_info; 202typedef struct PSI_statement_info_v2 PSI_statement_info; 203typedef struct PSI_socket_info_v2 PSI_socket_info; 204typedef struct PSI_idle_locker_state_v2 PSI_idle_locker_state; 205typedef struct PSI_mutex_locker_state_v2 PSI_mutex_locker_state; 206typedef struct PSI_rwlock_locker_state_v2 PSI_rwlock_locker_state; 207typedef struct PSI_cond_locker_state_v2 PSI_cond_locker_state; 208typedef struct PSI_file_locker_state_v2 PSI_file_locker_state; 209typedef struct PSI_table_locker_state_v2 PSI_table_locker_state; 210typedef struct PSI_statement_locker_state_v2 PSI_statement_locker_state; 211typedef struct PSI_socket_locker_state_v2 PSI_socket_locker_state; 212extern MYSQL_PLUGIN_IMPORT my_bool pfs_enabled; 213extern MYSQL_PLUGIN_IMPORT PSI *PSI_server; 214C_MODE_END 215