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