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