Thanks for using Compiler Explorer
Sponsors
Jakt
C++
Ada
Analysis
Android Java
Android Kotlin
Assembly
C
C3
Carbon
C++ (Circle)
CIRCT
Clean
CMake
CMakeScript
COBOL
C++ for OpenCL
MLIR
Cppx
Cppx-Blue
Cppx-Gold
Cpp2-cppfront
Crystal
C#
CUDA C++
D
Dart
Elixir
Erlang
Fortran
F#
GLSL
Go
Haskell
HLSL
Hook
Hylo
IL
ispc
Java
Julia
Kotlin
LLVM IR
LLVM MIR
Modula-2
Nim
Objective-C
Objective-C++
OCaml
Odin
OpenCL C
Pascal
Pony
Python
Racket
Ruby
Rust
Snowball
Scala
Slang
Solidity
Spice
SPIR-V
Swift
LLVM TableGen
Toit
TypeScript Native
V
Vala
Visual Basic
Vyper
WASM
Zig
Javascript
GIMPLE
Ygen
c source #1
Output
Compile to binary object
Link to binary
Execute the code
Intel asm syntax
Demangle identifiers
Verbose demangling
Filters
Unused labels
Library functions
Directives
Comments
Horizontal whitespace
Debug intrinsics
Compiler
6502 cc65 2.17
6502 cc65 2.18
6502 cc65 2.19
6502 cc65 trunk
ARM GCC 10.2.0 (linux)
ARM GCC 10.2.1 (none)
ARM GCC 10.3.0 (linux)
ARM GCC 10.3.1 (2021.07 none)
ARM GCC 10.3.1 (2021.10 none)
ARM GCC 10.5.0
ARM GCC 11.1.0 (linux)
ARM GCC 11.2.0 (linux)
ARM GCC 11.2.1 (none)
ARM GCC 11.3.0 (linux)
ARM GCC 11.4.0
ARM GCC 12.1.0 (linux)
ARM GCC 12.2.0 (linux)
ARM GCC 12.3.0
ARM GCC 12.4.0
ARM GCC 13.1.0 (linux)
ARM GCC 13.2.0
ARM GCC 13.2.0 (unknown-eabi)
ARM GCC 13.3.0
ARM GCC 13.3.0 (unknown-eabi)
ARM GCC 14.1.0
ARM GCC 14.1.0 (unknown-eabi)
ARM GCC 14.2.0
ARM GCC 14.2.0 (unknown-eabi)
ARM GCC 4.5.4 (linux)
ARM GCC 4.6.4 (linux)
ARM GCC 5.4 (linux)
ARM GCC 5.4.1 (none)
ARM GCC 6.3.0 (linux)
ARM GCC 6.4.0 (linux)
ARM GCC 7.2.1 (none)
ARM GCC 7.3.0 (linux)
ARM GCC 7.5.0 (linux)
ARM GCC 8.2.0 (WinCE)
ARM GCC 8.2.0 (linux)
ARM GCC 8.3.1 (none)
ARM GCC 8.5.0 (linux)
ARM GCC 9.2.1 (none)
ARM GCC 9.3.0 (linux)
ARM GCC trunk (linux)
ARM msvc v19.0 (WINE)
ARM msvc v19.10 (WINE)
ARM msvc v19.14 (WINE)
ARM64 GCC 10.2.0
ARM64 GCC 10.3.0
ARM64 GCC 10.4.0
ARM64 GCC 10.5.0
ARM64 GCC 11.1.0
ARM64 GCC 11.2.0
ARM64 GCC 11.3.0
ARM64 GCC 11.4.0
ARM64 GCC 12.1.0
ARM64 GCC 12.2.0
ARM64 GCC 12.3.0
ARM64 GCC 12.4.0
ARM64 GCC 13.1.0
ARM64 GCC 13.2.0
ARM64 GCC 13.3.0
ARM64 GCC 14.1.0
ARM64 GCC 14.2.0
ARM64 GCC 4.9.4
ARM64 GCC 5.4
ARM64 GCC 5.5.0
ARM64 GCC 6.3
ARM64 GCC 6.4.0
ARM64 GCC 7.3.0
ARM64 GCC 7.5.0
ARM64 GCC 8.2.0
ARM64 GCC 8.5.0
ARM64 GCC 9.3.0
ARM64 GCC 9.4.0
ARM64 GCC 9.5.0
ARM64 GCC trunk
ARM64 Morello GCC 10.1.0 Alpha 1
ARM64 Morello GCC 10.1.2 Alpha 2
ARM64 msvc v19.14 (WINE)
AVR gcc 10.3.0
AVR gcc 11.1.0
AVR gcc 12.1.0
AVR gcc 12.2.0
AVR gcc 12.3.0
AVR gcc 12.4.0
AVR gcc 13.1.0
AVR gcc 13.2.0
AVR gcc 13.3.0
AVR gcc 14.1.0
AVR gcc 14.2.0
AVR gcc 4.5.4
AVR gcc 4.6.4
AVR gcc 5.4.0
AVR gcc 9.2.0
AVR gcc 9.3.0
Arduino Mega (1.8.9)
Arduino Uno (1.8.9)
BPF clang (trunk)
BPF clang 13.0.0
BPF clang 14.0.0
BPF clang 15.0.0
BPF clang 16.0.0
BPF clang 17.0.1
BPF clang 18.1.0
BPF gcc 13.1.0
BPF gcc 13.2.0
BPF gcc 13.3.0
BPF gcc 14.1.0
BPF gcc 14.2.0
BPF gcc trunk
Chibicc 2020-12-07
FRC 2019
FRC 2020
FRC 2023
HPPA gcc 14.2.0
K1C gcc 7.4
K1C gcc 7.5
KVX ACB 4.1.0 (GCC 7.5.0)
KVX ACB 4.1.0-cd1 (GCC 7.5.0)
KVX ACB 4.10.0 (GCC 10.3.1)
KVX ACB 4.11.1 (GCC 10.3.1)
KVX ACB 4.12.0 (GCC 11.3.0)
KVX ACB 4.2.0 (GCC 7.5.0)
KVX ACB 4.3.0 (GCC 7.5.0)
KVX ACB 4.4.0 (GCC 7.5.0)
KVX ACB 4.6.0 (GCC 9.4.1)
KVX ACB 4.8.0 (GCC 9.4.1)
KVX ACB 4.9.0 (GCC 9.4.1)
KVX ACB 5.0.0 (GCC 12.2.1)
KVX ACB 5.2.0 (GCC 13.2.1)
LC3 (trunk)
M68K clang (trunk)
M68K gcc 13.1.0
M68K gcc 13.2.0
M68K gcc 13.3.0
M68K gcc 14.1.0
M68K gcc 14.2.0
MRISC32 gcc (trunk)
MSP430 gcc 12.1.0
MSP430 gcc 12.2.0
MSP430 gcc 12.3.0
MSP430 gcc 12.4.0
MSP430 gcc 13.1.0
MSP430 gcc 13.2.0
MSP430 gcc 13.3.0
MSP430 gcc 14.1.0
MSP430 gcc 14.2.0
MSP430 gcc 4.5.3
MSP430 gcc 5.3.0
MSP430 gcc 6.2.1
MinGW clang 14.0.3
MinGW clang 14.0.6
MinGW clang 15.0.7
MinGW clang 16.0.0
MinGW clang 16.0.2
MinGW gcc 11.3.0
MinGW gcc 12.1.0
MinGW gcc 12.2.0
MinGW gcc 13.1.0
POWER64 gcc 11.2.0
POWER64 gcc 12.1.0
POWER64 gcc 12.2.0
POWER64 gcc 12.3.0
POWER64 gcc 12.4.0
POWER64 gcc 13.1.0
POWER64 gcc 13.2.0
POWER64 gcc 13.3.0
POWER64 gcc 14.1.0
POWER64 gcc 14.2.0
POWER64 gcc trunk
RISC-V (32-bits) gcc (trunk)
RISC-V (32-bits) gcc 10.2.0
RISC-V (32-bits) gcc 10.3.0
RISC-V (32-bits) gcc 11.2.0
RISC-V (32-bits) gcc 11.3.0
RISC-V (32-bits) gcc 11.4.0
RISC-V (32-bits) gcc 12.1.0
RISC-V (32-bits) gcc 12.2.0
RISC-V (32-bits) gcc 12.3.0
RISC-V (32-bits) gcc 12.4.0
RISC-V (32-bits) gcc 13.1.0
RISC-V (32-bits) gcc 13.2.0
RISC-V (32-bits) gcc 13.3.0
RISC-V (32-bits) gcc 14.1.0
RISC-V (32-bits) gcc 14.2.0
RISC-V (32-bits) gcc 8.2.0
RISC-V (32-bits) gcc 8.5.0
RISC-V (32-bits) gcc 9.4.0
RISC-V (64-bits) gcc (trunk)
RISC-V (64-bits) gcc 10.2.0
RISC-V (64-bits) gcc 10.3.0
RISC-V (64-bits) gcc 11.2.0
RISC-V (64-bits) gcc 11.3.0
RISC-V (64-bits) gcc 11.4.0
RISC-V (64-bits) gcc 12.1.0
RISC-V (64-bits) gcc 12.2.0
RISC-V (64-bits) gcc 12.3.0
RISC-V (64-bits) gcc 12.4.0
RISC-V (64-bits) gcc 13.1.0
RISC-V (64-bits) gcc 13.2.0
RISC-V (64-bits) gcc 13.3.0
RISC-V (64-bits) gcc 14.1.0
RISC-V (64-bits) gcc 14.2.0
RISC-V (64-bits) gcc 8.2.0
RISC-V (64-bits) gcc 8.5.0
RISC-V (64-bits) gcc 9.4.0
RISC-V rv32gc clang (trunk)
RISC-V rv32gc clang 10.0.0
RISC-V rv32gc clang 10.0.1
RISC-V rv32gc clang 11.0.0
RISC-V rv32gc clang 11.0.1
RISC-V rv32gc clang 12.0.0
RISC-V rv32gc clang 12.0.1
RISC-V rv32gc clang 13.0.0
RISC-V rv32gc clang 13.0.1
RISC-V rv32gc clang 14.0.0
RISC-V rv32gc clang 15.0.0
RISC-V rv32gc clang 16.0.0
RISC-V rv32gc clang 17.0.1
RISC-V rv32gc clang 18.1.0
RISC-V rv32gc clang 9.0.0
RISC-V rv32gc clang 9.0.1
RISC-V rv64gc clang (trunk)
RISC-V rv64gc clang 10.0.0
RISC-V rv64gc clang 10.0.1
RISC-V rv64gc clang 11.0.0
RISC-V rv64gc clang 11.0.1
RISC-V rv64gc clang 12.0.0
RISC-V rv64gc clang 12.0.1
RISC-V rv64gc clang 13.0.0
RISC-V rv64gc clang 13.0.1
RISC-V rv64gc clang 14.0.0
RISC-V rv64gc clang 15.0.0
RISC-V rv64gc clang 16.0.0
RISC-V rv64gc clang 17.0.1
RISC-V rv64gc clang 18.1.0
RISC-V rv64gc clang 9.0.0
RISC-V rv64gc clang 9.0.1
Raspbian Buster
Raspbian Stretch
SDCC 4.0.0
SDCC 4.1.0
SDCC 4.2.0
SDCC 4.3.0
SDCC 4.4.0
SPARC LEON gcc 12.2.0
SPARC LEON gcc 12.3.0
SPARC LEON gcc 12.4.0
SPARC LEON gcc 13.1.0
SPARC LEON gcc 13.2.0
SPARC LEON gcc 13.3.0
SPARC LEON gcc 14.1.0
SPARC LEON gcc 14.2.0
SPARC gcc 12.2.0
SPARC gcc 12.3.0
SPARC gcc 12.4.0
SPARC gcc 13.1.0
SPARC gcc 13.2.0
SPARC gcc 13.3.0
SPARC gcc 14.1.0
SPARC gcc 14.2.0
SPARC64 gcc 12.2.0
SPARC64 gcc 12.3.0
SPARC64 gcc 12.4.0
SPARC64 gcc 13.1.0
SPARC64 gcc 13.2.0
SPARC64 gcc 13.3.0
SPARC64 gcc 14.1.0
SPARC64 gcc 14.2.0
TCC (trunk)
TCC 0.9.27
TI C6x gcc 12.2.0
TI C6x gcc 12.3.0
TI C6x gcc 12.4.0
TI C6x gcc 13.1.0
TI C6x gcc 13.2.0
TI C6x gcc 13.3.0
TI C6x gcc 14.1.0
TI C6x gcc 14.2.0
TI CL430 21.6.1
VAX gcc NetBSDELF 10.4.0
VAX gcc NetBSDELF 10.5.0 (Nov 15 03:50:22 2023)
WebAssembly clang (trunk)
Xtensa ESP32 gcc 11.2.0 (2022r1)
Xtensa ESP32 gcc 12.2.0 (20230208)
Xtensa ESP32 gcc 8.2.0 (2019r2)
Xtensa ESP32 gcc 8.2.0 (2020r1)
Xtensa ESP32 gcc 8.2.0 (2020r2)
Xtensa ESP32 gcc 8.4.0 (2020r3)
Xtensa ESP32 gcc 8.4.0 (2021r1)
Xtensa ESP32 gcc 8.4.0 (2021r2)
Xtensa ESP32-S2 gcc 11.2.0 (2022r1)
Xtensa ESP32-S2 gcc 12.2.0 (20230208)
Xtensa ESP32-S2 gcc 8.2.0 (2019r2)
Xtensa ESP32-S2 gcc 8.2.0 (2020r1)
Xtensa ESP32-S2 gcc 8.2.0 (2020r2)
Xtensa ESP32-S2 gcc 8.4.0 (2020r3)
Xtensa ESP32-S2 gcc 8.4.0 (2021r1)
Xtensa ESP32-S2 gcc 8.4.0 (2021r2)
Xtensa ESP32-S3 gcc 11.2.0 (2022r1)
Xtensa ESP32-S3 gcc 12.2.0 (20230208)
Xtensa ESP32-S3 gcc 8.4.0 (2020r3)
Xtensa ESP32-S3 gcc 8.4.0 (2021r1)
Xtensa ESP32-S3 gcc 8.4.0 (2021r2)
arm64 msvc v19.20 VS16.0
arm64 msvc v19.21 VS16.1
arm64 msvc v19.22 VS16.2
arm64 msvc v19.23 VS16.3
arm64 msvc v19.24 VS16.4
arm64 msvc v19.25 VS16.5
arm64 msvc v19.27 VS16.7
arm64 msvc v19.28 VS16.8
arm64 msvc v19.28 VS16.9
arm64 msvc v19.29 VS16.10
arm64 msvc v19.29 VS16.11
arm64 msvc v19.30 VS17.0
arm64 msvc v19.31 VS17.1
arm64 msvc v19.32 VS17.2
arm64 msvc v19.33 VS17.3
arm64 msvc v19.34 VS17.4
arm64 msvc v19.35 VS17.5
arm64 msvc v19.36 VS17.6
arm64 msvc v19.37 VS17.7
arm64 msvc v19.38 VS17.8
arm64 msvc v19.39 VS17.9
arm64 msvc v19.40 VS17.10
arm64 msvc v19.latest
armv7-a clang (trunk)
armv7-a clang 10.0.0
armv7-a clang 10.0.1
armv7-a clang 11.0.0
armv7-a clang 11.0.1
armv7-a clang 12.0.0
armv7-a clang 12.0.1
armv7-a clang 13.0.0
armv7-a clang 13.0.1
armv7-a clang 14.0.0
armv7-a clang 15.0.0
armv7-a clang 16.0.0
armv7-a clang 17.0.1
armv7-a clang 18.1.0
armv7-a clang 9.0.0
armv7-a clang 9.0.1
armv8-a clang (all architectural features, trunk)
armv8-a clang (trunk)
armv8-a clang 10.0.0
armv8-a clang 10.0.1
armv8-a clang 11.0.0
armv8-a clang 11.0.1
armv8-a clang 12.0.0
armv8-a clang 12.0.1
armv8-a clang 13.0.0
armv8-a clang 13.0.1
armv8-a clang 14.0.0
armv8-a clang 15.0.0
armv8-a clang 16.0.0
armv8-a clang 17.0.1
armv8-a clang 18.1.0
armv8-a clang 9.0.0
armv8-a clang 9.0.1
clang 12 for DPU (rel 2023.2.0)
cproc-master
llvm-mos commander X16
llvm-mos commodore 64
llvm-mos mega65
llvm-mos nes-cnrom
llvm-mos nes-mmc1
llvm-mos nes-mmc3
llvm-mos nes-nrom
llvm-mos osi-c1p
loongarch64 gcc 12.2.0
loongarch64 gcc 12.3.0
loongarch64 gcc 12.4.0
loongarch64 gcc 13.1.0
loongarch64 gcc 13.2.0
loongarch64 gcc 13.3.0
loongarch64 gcc 14.1.0
loongarch64 gcc 14.2.0
mips (el) gcc 12.1.0
mips (el) gcc 12.2.0
mips (el) gcc 12.3.0
mips (el) gcc 12.4.0
mips (el) gcc 13.1.0
mips (el) gcc 13.2.0
mips (el) gcc 13.3.0
mips (el) gcc 14.1.0
mips (el) gcc 14.2.0
mips (el) gcc 4.9.4
mips (el) gcc 5.4
mips (el) gcc 5.5.0
mips (el) gcc 9.5.0
mips clang 13.0.0
mips clang 14.0.0
mips clang 15.0.0
mips clang 16.0.0
mips clang 17.0.1
mips clang 18.1.0
mips gcc 11.2.0
mips gcc 12.1.0
mips gcc 12.2.0
mips gcc 12.3.0
mips gcc 12.4.0
mips gcc 13.1.0
mips gcc 13.2.0
mips gcc 13.3.0
mips gcc 14.1.0
mips gcc 14.2.0
mips gcc 4.9.4
mips gcc 5.4
mips gcc 5.5.0
mips gcc 9.3.0 (codescape)
mips gcc 9.5.0
mips64 (el) gcc 12.1.0
mips64 (el) gcc 12.2.0
mips64 (el) gcc 12.3.0
mips64 (el) gcc 12.4.0
mips64 (el) gcc 13.1.0
mips64 (el) gcc 13.2.0
mips64 (el) gcc 13.3.0
mips64 (el) gcc 14.1.0
mips64 (el) gcc 14.2.0
mips64 (el) gcc 4.9.4
mips64 (el) gcc 5.4.0
mips64 (el) gcc 5.5.0
mips64 (el) gcc 9.5.0
mips64 clang 13.0.0
mips64 clang 14.0.0
mips64 clang 15.0.0
mips64 clang 16.0.0
mips64 clang 17.0.1
mips64 clang 18.1.0
mips64 gcc 11.2.0
mips64 gcc 12.1.0
mips64 gcc 12.2.0
mips64 gcc 12.3.0
mips64 gcc 12.4.0
mips64 gcc 13.1.0
mips64 gcc 13.2.0
mips64 gcc 13.3.0
mips64 gcc 14.1.0
mips64 gcc 14.2.0
mips64 gcc 4.9.4
mips64 gcc 5.4
mips64 gcc 5.5.0
mips64 gcc 9.5.0
mips64el clang 13.0.0
mips64el clang 14.0.0
mips64el clang 15.0.0
mips64el clang 16.0.0
mips64el clang 17.0.1
mips64el clang 18.1.0
mipsel clang 13.0.0
mipsel clang 14.0.0
mipsel clang 15.0.0
mipsel clang 16.0.0
mipsel clang 17.0.1
mipsel clang 18.1.0
movfuscator (trunk)
nanoMIPS gcc 6.3.0
power gcc 11.2.0
power gcc 12.1.0
power gcc 12.2.0
power gcc 12.3.0
power gcc 12.4.0
power gcc 13.1.0
power gcc 13.2.0
power gcc 13.3.0
power gcc 14.1.0
power gcc 14.2.0
power gcc 4.8.5
power64 AT12.0 (gcc8)
power64 AT13.0 (gcc9)
power64le AT12.0 (gcc8)
power64le AT13.0 (gcc9)
power64le clang (trunk)
power64le gcc 11.2.0
power64le gcc 12.1.0
power64le gcc 12.2.0
power64le gcc 12.3.0
power64le gcc 12.4.0
power64le gcc 13.1.0
power64le gcc 13.2.0
power64le gcc 13.3.0
power64le gcc 14.1.0
power64le gcc 14.2.0
power64le gcc 6.3.0
power64le gcc trunk
powerpc64 clang (trunk)
ppci 0.5.5
s390x gcc 11.2.0
s390x gcc 12.1.0
s390x gcc 12.2.0
s390x gcc 12.3.0
s390x gcc 12.4.0
s390x gcc 13.1.0
s390x gcc 13.2.0
s390x gcc 13.3.0
s390x gcc 14.1.0
s390x gcc 14.2.0
sh gcc 12.2.0
sh gcc 12.3.0
sh gcc 12.4.0
sh gcc 13.1.0
sh gcc 13.2.0
sh gcc 13.3.0
sh gcc 14.1.0
sh gcc 14.2.0
sh gcc 4.9.4
sh gcc 9.5.0
vast (trunk)
x64 msvc v19.0 (WINE)
x64 msvc v19.10 (WINE)
x64 msvc v19.14 (WINE)
x64 msvc v19.20 VS16.0
x64 msvc v19.21 VS16.1
x64 msvc v19.22 VS16.2
x64 msvc v19.23 VS16.3
x64 msvc v19.24 VS16.4
x64 msvc v19.25 VS16.5
x64 msvc v19.27 VS16.7
x64 msvc v19.28 VS16.8
x64 msvc v19.28 VS16.9
x64 msvc v19.29 VS16.10
x64 msvc v19.29 VS16.11
x64 msvc v19.30 VS17.0
x64 msvc v19.31 VS17.1
x64 msvc v19.32 VS17.2
x64 msvc v19.33 VS17.3
x64 msvc v19.34 VS17.4
x64 msvc v19.35 VS17.5
x64 msvc v19.36 VS17.6
x64 msvc v19.37 VS17.7
x64 msvc v19.38 VS17.8
x64 msvc v19.39 VS17.9
x64 msvc v19.40 VS17.10
x64 msvc v19.latest
x86 CompCert 3.10
x86 CompCert 3.11
x86 CompCert 3.12
x86 CompCert 3.9
x86 gcc 1.27
x86 msvc v19.0 (WINE)
x86 msvc v19.10 (WINE)
x86 msvc v19.14 (WINE)
x86 msvc v19.20 VS16.0
x86 msvc v19.21 VS16.1
x86 msvc v19.22 VS16.2
x86 msvc v19.23 VS16.3
x86 msvc v19.24 VS16.4
x86 msvc v19.25 VS16.5
x86 msvc v19.27 VS16.7
x86 msvc v19.28 VS16.8
x86 msvc v19.28 VS16.9
x86 msvc v19.29 VS16.10
x86 msvc v19.29 VS16.11
x86 msvc v19.30 VS17.0
x86 msvc v19.31 VS17.1
x86 msvc v19.32 VS17.2
x86 msvc v19.33 VS17.3
x86 msvc v19.34 VS17.4
x86 msvc v19.35 VS17.5
x86 msvc v19.36 VS17.6
x86 msvc v19.37 VS17.7
x86 msvc v19.38 VS17.8
x86 msvc v19.39 VS17.9
x86 msvc v19.40 VS17.10
x86 msvc v19.latest
x86 nvc 24.11
x86 nvc 24.9
x86 tendra (trunk)
x86-64 clang (assertions trunk)
x86-64 clang (thephd.dev)
x86-64 clang (trunk)
x86-64 clang (widberg)
x86-64 clang 10.0.0
x86-64 clang 10.0.1
x86-64 clang 11.0.0
x86-64 clang 11.0.1
x86-64 clang 12.0.0
x86-64 clang 12.0.1
x86-64 clang 13.0.0
x86-64 clang 13.0.1
x86-64 clang 14.0.0
x86-64 clang 15.0.0
x86-64 clang 16.0.0
x86-64 clang 17.0.1
x86-64 clang 18.1.0
x86-64 clang 19.1.0
x86-64 clang 3.0.0
x86-64 clang 3.1
x86-64 clang 3.2
x86-64 clang 3.3
x86-64 clang 3.4.1
x86-64 clang 3.5
x86-64 clang 3.5.1
x86-64 clang 3.5.2
x86-64 clang 3.6
x86-64 clang 3.7
x86-64 clang 3.7.1
x86-64 clang 3.8
x86-64 clang 3.8.1
x86-64 clang 3.9.0
x86-64 clang 3.9.1
x86-64 clang 4.0.0
x86-64 clang 4.0.1
x86-64 clang 5.0.0
x86-64 clang 5.0.1
x86-64 clang 5.0.2
x86-64 clang 6.0.0
x86-64 clang 6.0.1
x86-64 clang 7.0.0
x86-64 clang 7.0.1
x86-64 clang 7.1.0
x86-64 clang 8.0.0
x86-64 clang 8.0.1
x86-64 clang 9.0.0
x86-64 clang 9.0.1
x86-64 gcc (trunk)
x86-64 gcc 10.1
x86-64 gcc 10.2
x86-64 gcc 10.3
x86-64 gcc 10.3 (assertions)
x86-64 gcc 10.4
x86-64 gcc 10.4 (assertions)
x86-64 gcc 10.5
x86-64 gcc 10.5 (assertions)
x86-64 gcc 11.1
x86-64 gcc 11.1 (assertions)
x86-64 gcc 11.2
x86-64 gcc 11.2 (assertions)
x86-64 gcc 11.3
x86-64 gcc 11.3 (assertions)
x86-64 gcc 11.4
x86-64 gcc 11.4 (assertions)
x86-64 gcc 12.1
x86-64 gcc 12.1 (assertions)
x86-64 gcc 12.2
x86-64 gcc 12.2 (assertions)
x86-64 gcc 12.3
x86-64 gcc 12.3 (assertions)
x86-64 gcc 12.4
x86-64 gcc 12.4 (assertions)
x86-64 gcc 13.1
x86-64 gcc 13.1 (assertions)
x86-64 gcc 13.2
x86-64 gcc 13.2 (assertions)
x86-64 gcc 13.3
x86-64 gcc 13.3 (assertions)
x86-64 gcc 14.1
x86-64 gcc 14.1 (assertions)
x86-64 gcc 14.2
x86-64 gcc 14.2 (assertions)
x86-64 gcc 3.4.6
x86-64 gcc 4.0.4
x86-64 gcc 4.1.2
x86-64 gcc 4.4.7
x86-64 gcc 4.5.3
x86-64 gcc 4.6.4
x86-64 gcc 4.7.1
x86-64 gcc 4.7.2
x86-64 gcc 4.7.3
x86-64 gcc 4.7.4
x86-64 gcc 4.8.1
x86-64 gcc 4.8.2
x86-64 gcc 4.8.3
x86-64 gcc 4.8.4
x86-64 gcc 4.8.5
x86-64 gcc 4.9.0
x86-64 gcc 4.9.1
x86-64 gcc 4.9.2
x86-64 gcc 4.9.3
x86-64 gcc 4.9.4
x86-64 gcc 5.1
x86-64 gcc 5.2
x86-64 gcc 5.3
x86-64 gcc 5.4
x86-64 gcc 6.1
x86-64 gcc 6.2
x86-64 gcc 6.3
x86-64 gcc 6.5
x86-64 gcc 7.1
x86-64 gcc 7.2
x86-64 gcc 7.3
x86-64 gcc 7.4
x86-64 gcc 7.5
x86-64 gcc 8.1
x86-64 gcc 8.2
x86-64 gcc 8.3
x86-64 gcc 8.4
x86-64 gcc 8.5
x86-64 gcc 9.1
x86-64 gcc 9.2
x86-64 gcc 9.3
x86-64 gcc 9.4
x86-64 gcc 9.5
x86-64 icc 13.0.1
x86-64 icc 16.0.3
x86-64 icc 17.0.0
x86-64 icc 18.0.0
x86-64 icc 19.0.0
x86-64 icc 19.0.1
x86-64 icc 2021.1.2
x86-64 icc 2021.10.0
x86-64 icc 2021.2.0
x86-64 icc 2021.3.0
x86-64 icc 2021.4.0
x86-64 icc 2021.5.0
x86-64 icc 2021.6.0
x86-64 icc 2021.7.0
x86-64 icc 2021.7.1
x86-64 icc 2021.8.0
x86-64 icc 2021.9.0
x86-64 icx (latest)
x86-64 icx 2021.1.2
x86-64 icx 2021.2.0
x86-64 icx 2021.3.0
x86-64 icx 2021.4.0
x86-64 icx 2022.0.0
x86-64 icx 2022.1.0
x86-64 icx 2022.2.0
x86-64 icx 2022.2.1
x86-64 icx 2023.0.0
x86-64 icx 2023.1.0
x86-64 icx 2024.0.0
x86_64 CompCert 3.10
x86_64 CompCert 3.11
x86_64 CompCert 3.12
x86_64 CompCert 3.9
z88dk 2.2
zig cc 0.10.0
zig cc 0.11.0
zig cc 0.12.0
zig cc 0.12.1
zig cc 0.13.0
zig cc 0.6.0
zig cc 0.7.0
zig cc 0.7.1
zig cc 0.8.0
zig cc 0.9.0
zig cc trunk
Options
Source code
# 0 "<command-line>" #define NDEBUG 1 # 0 "<command-line>" #define HAVE_CONFIG_H 1 # 0 "<command-line>" #define MYSQL_CLIENT 1 # 0 "<command-line>" #define _FILE_OFFSET_BITS 64 # 0 "<command-line>" # 1 "/mariadb/10.11/tests/mysql_client_test.c" # 38 "/mariadb/10.11/tests/mysql_client_test.c" # 1 "/mariadb/10.11/tests/mysql_client_fw.c" 1 # 16 "/mariadb/10.11/tests/mysql_client_fw.c" # 1 "/mariadb/10.11/include/my_global.h" 1 # 21 "/mariadb/10.11/include/my_global.h" #define MY_GLOBAL_INCLUDED # 49 "/mariadb/10.11/include/my_global.h" #define INNODB_COMPATIBILITY_HOOKS # 78 "/mariadb/10.11/include/my_global.h" #define C_MODE_START #define C_MODE_END # 1 "/dev/shm/10.11-32/include/my_config.h" 1 # 17 "/dev/shm/10.11-32/include/my_config.h" #define MY_CONFIG_H #define DOT_FRM_VERSION 6 #define STDC_HEADERS 1 #define _GNU_SOURCE 1 #define HAVE_ALLOCA_H 1 #define HAVE_ARPA_INET_H 1 #define HAVE_ASM_TERMBITS_H 1 #define HAVE_CRYPT_H 1 #define HAVE_CURSES_H 1 #define HAVE_DIRENT_H 1 #define HAVE_DLFCN_H 1 #define HAVE_EXECINFO_H 1 #define HAVE_FCNTL_H 1 #define HAVE_FENV_H 1 #define HAVE_FLOAT_H 1 #define HAVE_FNMATCH_H 1 #define HAVE_FPU_CONTROL_H 1 #define HAVE_GETMNTENT 1 #define HAVE_GRP_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_LIMITS_H 1 #define HAVE_LINK_H 1 #define HAVE_LINUX_UNISTD_H 1 #define HAVE_LINUX_MMAN_H 1 #define HAVE_LOCALE_H 1 #define HAVE_MALLOC_H 1 #define HAVE_MEMORY_H 1 #define HAVE_NETINET_IN_H 1 #define HAVE_PATHS_H 1 #define HAVE_POLL_H 1 #define HAVE_PWD_H 1 #define HAVE_SCHED_H 1 #define HAVE_STDDEF_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STDARG_H 1 #define HAVE_STRINGS_H 1 #define HAVE_STRING_H 1 #define HAVE_STDINT_H 1 #define HAVE_SYS_DIR_H 1 #define HAVE_SYS_FILE_H 1 #define HAVE_SYS_IOCTL_H 1 #define HAVE_SYS_MMAN_H 1 #define HAVE_SYS_PRCTL_H 1 #define HAVE_SYS_RESOURCE_H 1 #define HAVE_SYS_SELECT_H 1 #define HAVE_SYS_SOCKET_H 1 #define HAVE_SYS_UTSNAME_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_SYSCALL_H 1 #define HAVE_SYS_TIMES_H 1 #define HAVE_SYS_TIME_H 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_SYS_UN_H 1 #define HAVE_SYS_STATVFS_H 1 #define HAVE_UCONTEXT_H 1 #define HAVE_TERM_H 1 #define HAVE_TERMIOS_H 1 #define HAVE_TERMIO_H 1 #define HAVE_TERMCAP_H 1 #define HAVE_TIME_H 1 #define HAVE_UNISTD_H 1 #define HAVE_UTIME_H 1 #define HAVE_SYS_WAIT_H 1 #define HAVE_SYS_PARAM_H 1 # 120 "/dev/shm/10.11-32/include/my_config.h" #define USE_NEW_READLINE_INTERFACE 1 #define FIONREAD_IN_SYS_IOCTL 1 #define GWINSZ_IN_SYS_IOCTL 1 #define HAVE_ACCEPT4 1 #define HAVE_ACCESS 1 #define HAVE_ALARM 1 #define HAVE_ALLOCA 1 #define HAVE_INDEX 1 #define HAVE_CLOCK_GETTIME 1 #define HAVE_CRYPT 1 #define HAVE_CUSERID 1 #define HAVE_DLADDR 1 #define HAVE_DLERROR 1 #define HAVE_DLOPEN 1 #define HAVE_FCHMOD 1 #define HAVE_FCNTL 1 #define HAVE_FDATASYNC 1 #define HAVE_DECL_FDATASYNC 1 #define HAVE_FEDISABLEEXCEPT 1 #define HAVE_FESETROUND 1 #define HAVE_FSEEKO 1 #define HAVE_FSYNC 1 #define HAVE_FTIME 1 #define HAVE_GETIFADDRS 1 #define HAVE_GETCWD 1 #define HAVE_GETHOSTBYADDR_R 1 #define HAVE_GETPAGESIZE 1 #define HAVE_GETPASS 1 #define HAVE_GETPWNAM 1 #define HAVE_GETPWUID 1 #define HAVE_GETRLIMIT 1 #define HAVE_GETRUSAGE 1 #define HAVE_GETTIMEOFDAY 1 #define HAVE_GETWD 1 #define HAVE_GMTIME_R 1 #define HAVE_IN_ADDR_T 1 #define HAVE_INITGROUPS 1 #define HAVE_LDIV 1 #define HAVE_LRAND48 1 #define HAVE_LOCALTIME_R 1 #define HAVE_LSTAT 1 #define HAVE_NL_LANGINFO 1 #define HAVE_MADVISE 1 #define HAVE_DECL_MADVISE 1 #define HAVE_MALLINFO 1 #define HAVE_MALLINFO2 1 #define HAVE_MEMCPY 1 #define HAVE_MEMMOVE 1 #define HAVE_MKSTEMP 1 #define HAVE_MKOSTEMP 1 #define HAVE_MLOCKALL 1 #define HAVE_MMAP 1 #define HAVE_MMAP64 1 #define HAVE_MPROTECT 1 #define HAVE_PERROR 1 #define HAVE_POLL 1 #define HAVE_POSIX_FALLOCATE 1 #define HAVE_FALLOC_PUNCH_HOLE_AND_KEEP_SIZE 1 #define HAVE_PREAD 1 #define HAVE_PTHREAD_ATTR_GETGUARDSIZE 1 #define HAVE_PTHREAD_ATTR_GETSTACKSIZE 1 #define HAVE_PTHREAD_ATTR_SETSCOPE 1 #define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1 #define HAVE_PTHREAD_GETAFFINITY_NP 1 #define HAVE_PTHREAD_KEY_DELETE 1 #define HAVE_PTHREAD_RWLOCK_RDLOCK 1 #define HAVE_PTHREAD_SIGMASK 1 #define HAVE_PTHREAD_YIELD_ZERO_ARG 1 #define PTHREAD_ONCE_INITIALIZER PTHREAD_ONCE_INIT #define HAVE_PUTENV 1 #define HAVE_READLINK 1 #define HAVE_REALPATH 1 #define HAVE_RENAME 1 #define HAVE_SCHED_YIELD 1 #define HAVE_SELECT 1 #define HAVE_SETENV 1 #define HAVE_SETLOCALE 1 #define HAVE_SETMNTENT 1 #define HAVE_SETUPTERM 1 #define HAVE_SIGSET 1 #define HAVE_SIGACTION 1 #define HAVE_SIGWAIT 1 #define HAVE_SIGWAITINFO 1 #define HAVE_SLEEP 1 #define HAVE_STPCPY 1 #define HAVE_STRERROR 1 #define HAVE_STRCOLL 1 #define HAVE_STRNLEN 1 #define HAVE_STRPBRK 1 #define HAVE_STRTOK_R 1 #define HAVE_STRTOLL 1 #define HAVE_STRTOUL 1 #define HAVE_STRTOULL 1 #define HAVE_TIME 1 #define HAVE_TIMES 1 #define HAVE_VIO_READ_BUFF 1 #define HAVE_VASPRINTF 1 #define HAVE_VSNPRINTF 1 #define HAVE_FTRUNCATE 1 #define HAVE_TZNAME 1 #define HAVE_BACKTRACE 1 #define HAVE_BACKTRACE_SYMBOLS 1 #define HAVE_BACKTRACE_SYMBOLS_FD 1 #define HAVE_IPV6 1 #define STRUCT_TIMESPEC_HAS_TV_SEC 1 #define STRUCT_TIMESPEC_HAS_TV_NSEC 1 #define HAVE_VALGRIND_MEMCHECK_H 1 # 281 "/dev/shm/10.11-32/include/my_config.h" #define SIZEOF_LONG 4 #define SIZEOF_VOIDP 4 #define SIZEOF_CHARP 4 #define SIZEOF_SIZE_T 4 #define HAVE_LONG 1 #define HAVE_CHARP 1 #define SIZEOF_INT 4 #define HAVE_INT 1 #define SIZEOF_LONG_LONG 8 #define HAVE_LONG_LONG 1 #define SIZEOF_OFF_T 8 #define HAVE_OFF_T 1 #define SIZEOF_UINT 4 #define HAVE_UINT 1 #define SIZEOF_ULONG 4 #define HAVE_ULONG 1 # 318 "/dev/shm/10.11-32/include/my_config.h" #define SOCKET_SIZE_TYPE socklen_t #define HAVE_MBSTATE_T 1 #define MAX_INDEXES 64 #define QSORT_TYPE_IS_VOID 1 #define RETQSORTTYPE void #define RETSIGTYPE void #define VOID_SIGHANDLER 1 #define HAVE_SIGHANDLER_T 1 #define STRUCT_RLIMIT struct rlimit # 342 "/dev/shm/10.11-32/include/my_config.h" #define C_HAS_inline 1 #define TARGET_OS_LINUX 1 #define HAVE_WCTYPE_H 1 #define HAVE_WCHAR_H 1 #define HAVE_LANGINFO_H 1 #define HAVE_MBRLEN 1 #define HAVE_MBSRTOWCS 1 #define HAVE_MBRTOWC 1 #define HAVE_WCWIDTH 1 #define HAVE_ISWLOWER 1 #define HAVE_ISWUPPER 1 #define HAVE_TOWLOWER 1 #define HAVE_TOWUPPER 1 #define HAVE_ISWCTYPE 1 #define HAVE_WCHAR_T 1 #define HAVE_STRCASECMP 1 #define HAVE_TCGETATTR 1 #define HAVE_WEAK_SYMBOL 1 #define HAVE_ABI_CXA_DEMANGLE 1 #define HAVE_ATTRIBUTE_CLEANUP 1 #define HAVE_POSIX_SIGNALS 1 #define HAVE_ERR_remove_thread_state 1 #define HAVE_X509_check_host 1 #define HAVE_GCC_C11_ATOMICS 1 #define NO_ALARM 1 #define _LARGEFILE_SOURCE 1 #define TIME_WITH_SYS_TIME 1 #define STACK_DIRECTION -1 #define SYSTEM_TYPE "Linux" #define MACHINE_TYPE "x86_64" #define DEFAULT_MACHINE "i686" #define SIGNAL_WITH_VIO_CLOSE 1 # 431 "/dev/shm/10.11-32/include/my_config.h" #define PSAPI_VERSION 1 # 441 "/dev/shm/10.11-32/include/my_config.h" #define LOCAL_INFILE_MODE_OFF 0 #define LOCAL_INFILE_MODE_ON 1 #define LOCAL_INFILE_MODE_AUTO 2 #define ENABLED_LOCAL_INFILE LOCAL_INFILE_MODE_AUTO #define ENABLED_PROFILING 1 #define MYSQL_DEFAULT_CHARSET_NAME "latin1" #define MYSQL_DEFAULT_COLLATION_NAME "latin1_swedish_ci" #define USE_MB #define USE_MB_IDENT #define HAVE_CHARSET_armscii8 1 #define HAVE_CHARSET_ascii 1 #define HAVE_CHARSET_big5 1 #define HAVE_CHARSET_cp1250 1 #define HAVE_CHARSET_cp1251 1 #define HAVE_CHARSET_cp1256 1 #define HAVE_CHARSET_cp1257 1 #define HAVE_CHARSET_cp850 1 #define HAVE_CHARSET_cp852 1 #define HAVE_CHARSET_cp866 1 #define HAVE_CHARSET_cp932 1 #define HAVE_CHARSET_dec8 1 #define HAVE_CHARSET_eucjpms 1 #define HAVE_CHARSET_euckr 1 #define HAVE_CHARSET_gb2312 1 #define HAVE_CHARSET_gbk 1 #define HAVE_CHARSET_geostd8 1 #define HAVE_CHARSET_greek 1 #define HAVE_CHARSET_hebrew 1 #define HAVE_CHARSET_hp8 1 #define HAVE_CHARSET_keybcs2 1 #define HAVE_CHARSET_koi8r 1 #define HAVE_CHARSET_koi8u 1 #define HAVE_CHARSET_latin1 1 #define HAVE_CHARSET_latin2 1 #define HAVE_CHARSET_latin5 1 #define HAVE_CHARSET_latin7 1 #define HAVE_CHARSET_macce 1 #define HAVE_CHARSET_macroman 1 #define HAVE_CHARSET_sjis 1 #define HAVE_CHARSET_swe7 1 #define HAVE_CHARSET_tis620 1 #define HAVE_CHARSET_ucs2 1 #define HAVE_CHARSET_ujis 1 #define HAVE_CHARSET_utf8mb4 1 #define HAVE_CHARSET_utf8mb3 1 #define HAVE_CHARSET_utf16 1 #define HAVE_CHARSET_utf32 1 #define HAVE_UCA_COLLATIONS 1 #define HAVE_COMPRESS 1 #define HAVE_SPATIAL 1 #define HAVE_RTREE_KEYS 1 #define HAVE_QUERY_CACHE 1 #define BIG_TABLES 1 #define WITH_INNOBASE_STORAGE_ENGINE 1 #define WITH_PARTITION_STORAGE_ENGINE 1 #define WITH_PERFSCHEMA_STORAGE_ENGINE 1 #define WITH_ARIA_STORAGE_ENGINE 1 #define USE_ARIA_FOR_TMP_TABLES 1 #define DEFAULT_MYSQL_HOME "/usr/local/mysql" #define SHAREDIR "/usr/local/mysql/share" #define DEFAULT_BASEDIR "/usr/local/mysql" #define MYSQL_DATADIR "/usr/local/mysql/data" #define DEFAULT_CHARSET_HOME "/usr/local/mysql" #define PLUGINDIR "/usr/local/mysql/lib/plugin" #define DEFAULT_TMPDIR P_tmpdir #define MYSQL_VERSION_MAJOR 10 #define MYSQL_VERSION_MINOR 11 #define MYSQL_VERSION_PATCH 8 #define MYSQL_VERSION_EXTRA "" #define PACKAGE "mysql" #define PACKAGE_BUGREPORT "" #define PACKAGE_NAME "MySQL Server" #define PACKAGE_STRING "MySQL Server 10.11.8" #define PACKAGE_TARNAME "mysql" #define PACKAGE_VERSION "10.11.8" #define VERSION "10.11.8" #define PROTOCOL_VERSION 10 #define PCRE2_CODE_UNIT_WIDTH 8 #define MALLOC_LIBRARY "system" #define SIZEOF_TIME_T 4 # 561 "/dev/shm/10.11-32/include/my_config.h" #define __STDC_FORMAT_MACROS #define HAVE_VFORK 1 # 88 "/mariadb/10.11/include/my_global.h" 2 #define HAVE_PSI_INTERFACE #define IF_WIN(A,B) B #define IF_EMBEDDED(A,B) B #define IF_PARTITIONING(A,B) A # 194 "/mariadb/10.11/include/my_global.h" #undef _GNU_SOURCE #define _GNU_SOURCE 1 # 206 "/mariadb/10.11/include/my_global.h" #define __EXTENSIONS__ 1 #define __STDC_EXT__ 1 # 257 "/mariadb/10.11/include/my_global.h" #define _POSIX_PTHREAD_SEMANTICS #define _REENTRANT 1 #define _THREAD_SAFE #include<pthread.h> #include<stdio.h> #include<stdarg.h> #include<stdlib.h> #include<stddef.h> #include<math.h> #include<limits.h> #include<float.h> #include<fenv.h> #include<fcntl.h> #include<sys/stat.h> #include<sys/time.h> #include<unistd.h> #include<errno.h> #define likely(x) __builtin_expect(((x) != 0),1) #define unlikely(x) __builtin_expect(((x) != 0),0) #define checked_likely(x) likely(x) #define checked_unlikely(x) unlikely(x) #include<assert.h> #define compile_time_assert(X) do { typedef char compile_time_assert[(X) ? 1 : -1] __attribute__((unused)); } while(0) #include<sys/mman.h> #define QUOTE_ARG(x) #x #define STRINGIFY_ARG(x) QUOTE_ARG(x) # 438 "/mariadb/10.11/include/my_global.h" #undef STDERR_FILENO #define SO_EXT ".so" # 453 "/mariadb/10.11/include/my_global.h" #define UNINIT_VAR(x) x= x # 464 "/mariadb/10.11/include/my_global.h" #define LINT_INIT(x) # 474 "/mariadb/10.11/include/my_global.h" #define swap_variables(t,a,b) do { t dummy; dummy= a; a= b; b= dummy; } while(0) #define MY_TEST(a) ((a) ? 1 : 0) #define set_if_bigger(a,b) do { if ((a) < (b)) (a)=(b); } while(0) #define set_if_smaller(a,b) do { if ((a) > (b)) (a)=(b); } while(0) #define set_bits(type,bit_count) (sizeof(type)*8 <= (bit_count) ? ~(type) 0 : ((((type) 1) << (bit_count)) - (type) 1)) #define test_all_bits(a,b) (((a) & (b)) == (b)) #define array_elements(A) ((uint) (sizeof(A)/sizeof(A[0]))) #define TRUE (1) #define FALSE (0) # 1 "/mariadb/10.11/include/my_compiler.h" 1 #define MY_COMPILER_INCLUDED # 36 "/mariadb/10.11/include/my_compiler.h" #define CONSTEXPR #define MY_ALIGN_EXT # 51 "/mariadb/10.11/include/my_compiler.h" #define MY_ASSERT_UNREACHABLE() { abort(); __builtin_unreachable(); } # 79 "/mariadb/10.11/include/my_compiler.h" #define MY_ALIGNOF(type) __alignof__(type) #define MY_ALIGNED(n) __attribute__((__aligned__((n)))) # 156 "/mariadb/10.11/include/my_compiler.h" #define ATTRIBUTE_NORETURN __attribute__((noreturn)) #define ATTRIBUTE_NOINLINE __attribute__((noinline)) # 166 "/mariadb/10.11/include/my_compiler.h" #define ATTRIBUTE_COLD __attribute__((cold)) # 179 "/mariadb/10.11/include/my_compiler.h" # 1 "/mariadb/10.11/include/my_attribute.h" 1 # 22 "/mariadb/10.11/include/my_attribute.h" #define _my_attribute_h #define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__) # 57 "/mariadb/10.11/include/my_attribute.h" #define ATTRIBUTE_FORMAT(style,m,n) __attribute__((format(style, m, n))) # 67 "/mariadb/10.11/include/my_attribute.h" #define ATTRIBUTE_FORMAT_FPTR(style,m,n) ATTRIBUTE_FORMAT(style, m, n) # 180 "/mariadb/10.11/include/my_compiler.h" 2 # 489 "/mariadb/10.11/include/my_global.h" 2 # 1 "/mariadb/10.11/include/my_alloca.h" 1 # 17 "/mariadb/10.11/include/my_alloca.h" #define MY_ALLOCA_INCLUDED # 490 "/mariadb/10.11/include/my_global.h" 2 # 521 "/mariadb/10.11/include/my_global.h" # 521 "/mariadb/10.11/include/my_global.h" typedef int File; typedef int my_socket; #define INVALID_SOCKET -1 #define sig_handler RETSIGTYPE typedef char pchar; typedef char puchar; typedef char pbool; typedef short pshort; typedef float pfloat; typedef int (*qsort_cmp)(const void *,const void *); typedef int (*qsort_cmp2)(void*, const void *,const void *); #define qsort_t RETQSORTTYPE #include<sys/socket.h> # 551 "/mariadb/10.11/include/my_global.h" typedef socklen_t size_socket; #define SOCKOPT_OPTLEN_TYPE size_socket #define O_SHARE 0 #define O_BINARY 0 #define FILE_BINARY O_BINARY #define HAVE_FCNTL_LOCK #define F_TO_EOF 0L #define O_SEQUENTIAL 0 #define O_SHORT_LIVED 0 # 586 "/mariadb/10.11/include/my_global.h" #define STR_O_CLOEXEC "e" #define HAVE_SOCK_CLOEXEC #define O_TEXT 0 # 609 "/mariadb/10.11/include/my_global.h" #define FN_LEN 256 #define FN_HEADLEN 253 #define FN_EXTLEN 20 #define FN_REFLEN 512 #define FN_EXTCHAR '.' #define FN_HOMELIB '~' #define FN_CURLIB '.' #define FN_PARENTDIR ".." # 629 "/mariadb/10.11/include/my_global.h" #define FN_LIBCHAR '/' #define FN_LIBCHAR2 '/' #define FN_DIRSEP "/" #define FN_EXEEXT "" #define FN_SOEXT ".so" #define FN_ROOTDIR "/" # 652 "/mariadb/10.11/include/my_global.h" #define MY_FILE_MIN 0 # 668 "/mariadb/10.11/include/my_global.h" #define MY_NFILE 64 #define OS_FILE_LIMIT UINT_MAX #define IO_SIZE 4096U #define MALLOC_OVERHEAD 8 #define ONCE_ALLOC_INIT (uint) 4096 #define RECORD_CACHE_SIZE (uint) (128*1024) #define KEY_CACHE_SIZE (uint) (128L*1024L*1024L) #define KEY_CACHE_BLOCK_SIZE (uint) 1024 # 704 "/mariadb/10.11/include/my_global.h" #undef remove #define closesocket(A) close(A) # 733 "/mariadb/10.11/include/my_global.h" #define ulonglong2double(A) ((double) (ulonglong) (A)) #define my_off_t2double(A) ((double) (my_off_t) (A)) #define double2ulonglong(A) ((ulonglong) (double) (A)) #define ulong_to_double(X) ((double) (ulong) (X)) # 754 "/mariadb/10.11/include/my_global.h" #define HAVE_LONG_LONG 1 # 765 "/mariadb/10.11/include/my_global.h" #define LONGLONG_MIN ((long long) 0x8000000000000000LL) #define LONGLONG_MAX ((long long) 0x7FFFFFFFFFFFFFFFLL) #define LONGLONG_BUFFER_SIZE 21 #define ULONGLONG_MAX ULLONG_MAX #define INT_MIN64 (~0x7FFFFFFFFFFFFFFFLL) #define INT_MAX64 0x7FFFFFFFFFFFFFFFLL #define INT_MIN32 (~0x7FFFFFFFL) #define INT_MAX32 0x7FFFFFFFL #define UINT_MAX32 0xFFFFFFFFL #define INT_MIN24 (~0x007FFFFF) #define INT_MAX24 0x007FFFFF #define UINT_MAX24 0x00FFFFFF #define INT_MIN16 (~0x7FFF) #define INT_MAX16 0x7FFF #define UINT_MAX16 0xFFFF #define INT_MIN8 (~0x7F) #define INT_MAX8 0x7F #define UINT_MAX8 0xFF # 805 "/mariadb/10.11/include/my_global.h" #define SIZE_T_MAX (~((size_t) 0)) # 824 "/mariadb/10.11/include/my_global.h" typedef long my_ptrdiff_t; #define MY_ALIGN(A,L) (((A) + (L) - 1) & ~((L) - 1)) #define MY_ALIGN_DOWN(A,L) ((A) & ~((L) - 1)) #define ALIGN_SIZE(A) MY_ALIGN((A),sizeof(double)) #define ALIGN_MAX_UNIT (sizeof(double)) #define ALIGN_PTR(A,t) ((t*) MY_ALIGN((A), sizeof(double))) #define ADD_TO_PTR(ptr,size,type) (type) ((uchar*) (ptr)+size) #define PTR_BYTE_DIFF(A,B) (my_ptrdiff_t) ((uchar*) (A) - (uchar*) (B)) #define PREV_BITS(type,A) ((type) (((type) 1 << (A)) -1)) # 851 "/mariadb/10.11/include/my_global.h" #define my_offsetof(TYPE,MEMBER) PTR_BYTE_DIFF(&((TYPE *)0x10)->MEMBER, 0x10) #define NullS (char *) 0 # 862 "/mariadb/10.11/include/my_global.h" #define STDCALL typedef unsigned char uchar; typedef signed char int8; typedef unsigned char uint8; typedef short int16; typedef unsigned short uint16; typedef int int32; typedef unsigned int uint32; # 911 "/mariadb/10.11/include/my_global.h" typedef unsigned long long int ulonglong; typedef long long int longlong; typedef longlong int64; typedef ulonglong uint64; typedef unsigned long long my_ulonglong; typedef unsigned int intptr; # 943 "/mariadb/10.11/include/my_global.h" #define MY_ERRPTR ((void*)(intptr)1) typedef off_t os_off_t; typedef ulonglong my_off_t; #define MY_FILEPOS_ERROR (~(my_off_t) 0) typedef ulonglong table_map; typedef const struct charset_info_st CHARSET_INFO; typedef struct st_mysql_lex_string LEX_STRING; # 977 "/mariadb/10.11/include/my_global.h" #define socket_errno errno #define closesocket(A) close(A) #define SOCKET_EINTR EINTR #define SOCKET_EAGAIN EAGAIN #define SOCKET_EWOULDBLOCK EWOULDBLOCK #define SOCKET_EADDRINUSE EADDRINUSE #define SOCKET_ETIMEDOUT ETIMEDOUT #define SOCKET_ECONNRESET ECONNRESET #define SOCKET_ENFILE ENFILE #define SOCKET_EMFILE EMFILE # 1 "/mariadb/10.11/include/mysql/plugin.h" 1 # 18 "/mariadb/10.11/include/mysql/plugin.h" #define MYSQL_PLUGIN_INCLUDED # 33 "/mariadb/10.11/include/mysql/plugin.h" #define MYSQL_DLLEXPORT #define MYSQL_PLUGIN_EXPORT MYSQL_DLLEXPORT #define MYSQL_THD void* typedef char my_bool; typedef void * MYSQL_PLUGIN; # 1 "/mariadb/10.11/include/mysql/services.h" 1 # 22 "/mariadb/10.11/include/mysql/services.h" # 1 "/mariadb/10.11/include/mysql/service_base64.h" 1 # 33 "/mariadb/10.11/include/mysql/service_base64.h" #define MY_BASE64_DECODE_ALLOW_MULTIPLE_CHUNKS 1 extern struct base64_service_st { int (*base64_needed_encoded_length_ptr)(int length_of_data); int (*base64_encode_max_arg_length_ptr)(void); int (*base64_needed_decoded_length_ptr)(int length_of_encoded_data); int (*base64_decode_max_arg_length_ptr)(); int (*base64_encode_ptr)(const void *src, size_t src_len, char *dst); int (*base64_decode_ptr)(const char *src, size_t src_len, void *dst, const char **end_ptr, int flags); } *base64_service; # 57 "/mariadb/10.11/include/mysql/service_base64.h" int my_base64_needed_encoded_length(int length_of_data); int my_base64_encode_max_arg_length(void); int my_base64_needed_decoded_length(int length_of_encoded_data); int my_base64_decode_max_arg_length(); int my_base64_encode(const void *src, size_t src_len, char *dst); int my_base64_decode(const char *src, size_t src_len, void *dst, const char **end_ptr, int flags); #define MYSQL_SERVICE_BASE64_INCLUDED # 23 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_debug_sync.h" 1 # 332 "/mariadb/10.11/include/mysql/service_debug_sync.h" #define debug_sync_service debug_sync_C_callback_ptr extern void (*debug_sync_C_callback_ptr)(void*, const char *, size_t); # 349 "/mariadb/10.11/include/mysql/service_debug_sync.h" #define DEBUG_SYNC(thd,name) do { } while(0) #define DEBUG_SYNC_C_IF_THD(thd,_sync_point_name_) do { } while(0) #define DEBUG_SYNC_C(name) DEBUG_SYNC(NULL, name) #define MYSQL_SERVICE_DEBUG_SYNC_INCLUDED # 24 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_encryption.h" 1 # 41 "/mariadb/10.11/include/mysql/service_encryption.h" #define ENCRYPTION_KEY_VERSION_INVALID (~(unsigned int)0) #define ENCRYPTION_KEY_NOT_ENCRYPTED (0) #define ENCRYPTION_KEY_SYSTEM_DATA 1 #define ENCRYPTION_KEY_TEMPORARY_DATA 2 #define ENCRYPTION_KEY_BUFFER_TOO_SMALL (100) #define ENCRYPTION_FLAG_DECRYPT 0 #define ENCRYPTION_FLAG_ENCRYPT 1 #define ENCRYPTION_FLAG_NOPAD 2 struct encryption_service_st { unsigned int (*encryption_key_get_latest_version_func)(unsigned int key_id); unsigned int (*encryption_key_get_func)(unsigned int key_id, unsigned int key_version, unsigned char* buffer, unsigned int* length); unsigned int (*encryption_ctx_size_func)(unsigned int key_id, unsigned int key_version); int (*encryption_ctx_init_func)(void *ctx, const unsigned char* key, unsigned int klen, const unsigned char* iv, unsigned int ivlen, int flags, unsigned int key_id, unsigned int key_version); int (*encryption_ctx_update_func)(void *ctx, const unsigned char* src, unsigned int slen, unsigned char* dst, unsigned int* dlen); int (*encryption_ctx_finish_func)(void *ctx, unsigned char* dst, unsigned int* dlen); unsigned int (*encryption_encrypted_length_func)(unsigned int slen, unsigned int key_id, unsigned int key_version); }; # 82 "/mariadb/10.11/include/mysql/service_encryption.h" extern struct encryption_service_st encryption_handler; #define encryption_key_get_latest_version(KI) encryption_handler.encryption_key_get_latest_version_func(KI) #define encryption_key_get(KI,KV,K,S) encryption_handler.encryption_key_get_func((KI),(KV),(K),(S)) #define encryption_ctx_size(KI,KV) encryption_handler.encryption_ctx_size_func((KI),(KV)) #define encryption_ctx_init(CTX,K,KL,IV,IVL,F,KI,KV) encryption_handler.encryption_ctx_init_func((CTX),(K),(KL),(IV),(IVL),(F),(KI),(KV)) #define encryption_ctx_update(CTX,S,SL,D,DL) encryption_handler.encryption_ctx_update_func((CTX),(S),(SL),(D),(DL)) #define encryption_ctx_finish(CTX,D,DL) encryption_handler.encryption_ctx_finish_func((CTX),(D),(DL)) #define encryption_encrypted_length(SL,KI,KV) encryption_handler.encryption_encrypted_length_func((SL),(KI),(KV)) #define MYSQL_SERVICE_ENCRYPTION_INCLUDED # 25 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_encryption_scheme.h" 1 # 74 "/mariadb/10.11/include/mysql/service_encryption_scheme.h" #define ENCRYPTION_SCHEME_KEY_INVALID -1 #define ENCRYPTION_SCHEME_BLOCK_LENGTH 16 struct st_encryption_scheme_key { unsigned int version; unsigned char key[16]; }; struct st_encryption_scheme { unsigned char iv[16]; struct st_encryption_scheme_key key[3]; unsigned int keyserver_requests; unsigned int key_id; unsigned int type; void (*locker)(struct st_encryption_scheme *self, int release); }; extern struct encryption_scheme_service_st { int (*encryption_scheme_encrypt_func) (const unsigned char* src, unsigned int slen, unsigned char* dst, unsigned int* dlen, struct st_encryption_scheme *scheme, unsigned int key_version, unsigned int i32_1, unsigned int i32_2, unsigned long long i64); int (*encryption_scheme_decrypt_func) (const unsigned char* src, unsigned int slen, unsigned char* dst, unsigned int* dlen, struct st_encryption_scheme *scheme, unsigned int key_version, unsigned int i32_1, unsigned int i32_2, unsigned long long i64); } *encryption_scheme_service; # 114 "/mariadb/10.11/include/mysql/service_encryption_scheme.h" int encryption_scheme_encrypt(const unsigned char* src, unsigned int slen, unsigned char* dst, unsigned int* dlen, struct st_encryption_scheme *scheme, unsigned int key_version, unsigned int i32_1, unsigned int i32_2, unsigned long long i64); int encryption_scheme_decrypt(const unsigned char* src, unsigned int slen, unsigned char* dst, unsigned int* dlen, struct st_encryption_scheme *scheme, unsigned int key_version, unsigned int i32_1, unsigned int i32_2, unsigned long long i64); # 132 "/mariadb/10.11/include/mysql/service_encryption_scheme.h" #define MYSQL_SERVICE_ENCRYPTION_SCHEME_INCLUDED # 26 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_kill_statement.h" 1 # 17 "/mariadb/10.11/include/mysql/service_kill_statement.h" #define MYSQL_SERVICE_KILL_STATEMENT_INCLUDED # 42 "/mariadb/10.11/include/mysql/service_kill_statement.h" enum thd_kill_levels { THD_IS_NOT_KILLED=0, THD_ABORT_SOFTLY=50, THD_ABORT_ASAP=100, }; extern struct kill_statement_service_st { enum thd_kill_levels (*thd_kill_level_func)(const void*); } *thd_kill_statement_service; #define thd_killed(THD) (thd_kill_level(THD) == THD_ABORT_ASAP) # 62 "/mariadb/10.11/include/mysql/service_kill_statement.h" enum thd_kill_levels thd_kill_level(const void*); # 27 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_logger.h" 1 # 17 "/mariadb/10.11/include/mysql/service_logger.h" #define MYSQL_SERVICE_LOGGER_INCLUDED # 60 "/mariadb/10.11/include/mysql/service_logger.h" typedef struct logger_handle_st LOGGER_HANDLE; extern struct logger_service_st { void (*logger_init_mutexes)(); LOGGER_HANDLE* (*open)(const char *path, unsigned long long size_limit, unsigned int rotations); int (*close)(LOGGER_HANDLE *log); int (*vprintf)(LOGGER_HANDLE *log, const char *fmt, va_list argptr); int (*printf)(LOGGER_HANDLE *log, const char *fmt, ...); int (*write)(LOGGER_HANDLE *log, const char *buffer, size_t size); int (*rotate)(LOGGER_HANDLE *log); } *logger_service; # 88 "/mariadb/10.11/include/mysql/service_logger.h" void logger_init_mutexes(); LOGGER_HANDLE *logger_open(const char *path, unsigned long long size_limit, unsigned int rotations); int logger_close(LOGGER_HANDLE *log); int logger_vprintf(LOGGER_HANDLE *log, const char *fmt, va_list argptr); int logger_printf(LOGGER_HANDLE *log, const char *fmt, ...); int logger_write(LOGGER_HANDLE *log, const char *buffer, size_t size); int logger_rotate(LOGGER_HANDLE *log); # 28 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_md5.h" 1 # 32 "/mariadb/10.11/include/mysql/service_md5.h" #define MY_MD5_HASH_SIZE 16 extern struct my_md5_service_st { void (*my_md5_type)(unsigned char*, const char*, size_t); void (*my_md5_multi_type)(unsigned char*, ...); size_t (*my_md5_context_size_type)(); void (*my_md5_init_type)(void *); void (*my_md5_input_type)(void *, const unsigned char *, size_t); void (*my_md5_result_type)(void *, unsigned char *); } *my_md5_service; # 54 "/mariadb/10.11/include/mysql/service_md5.h" void my_md5(unsigned char*, const char*, size_t); void my_md5_multi(unsigned char*, ...); size_t my_md5_context_size(); void my_md5_init(void *context); void my_md5_input(void *context, const unsigned char *buf, size_t len); void my_md5_result(void *context, unsigned char *digest); #define MYSQL_SERVICE_MD5_INCLUDED # 29 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_my_crypt.h" 1 #define MYSQL_SERVICE_MY_CRYPT_INCLUDED # 37 "/mariadb/10.11/include/mysql/service_my_crypt.h" #define MY_AES_OK 0 #define MY_AES_BAD_DATA -100 #define MY_AES_OPENSSL_ERROR -101 #define MY_AES_BAD_KEYSIZE -102 #define MY_AES_BLOCK_SIZE 16 #define MY_AES_MAX_KEY_LENGTH 32 #define MY_AES_CTX_SIZE 1040 enum my_aes_mode { MY_AES_ECB, MY_AES_CBC }; extern struct my_crypt_service_st { int (*my_aes_crypt_init)(void *ctx, enum my_aes_mode mode, int flags, const unsigned char* key, unsigned int klen, const unsigned char* iv, unsigned int ivlen); int (*my_aes_crypt_update)(void *ctx, const unsigned char *src, unsigned int slen, unsigned char *dst, unsigned int *dlen); int (*my_aes_crypt_finish)(void *ctx, unsigned char *dst, unsigned int *dlen); int (*my_aes_crypt)(enum my_aes_mode mode, int flags, const unsigned char *src, unsigned int slen, unsigned char *dst, unsigned int *dlen, const unsigned char *key, unsigned int klen, const unsigned char *iv, unsigned int ivlen); unsigned int (*my_aes_get_size)(enum my_aes_mode mode, unsigned int source_length); unsigned int (*my_aes_ctx_size)(enum my_aes_mode mode); int (*my_random_bytes)(unsigned char* buf, int num); } *my_crypt_service; # 100 "/mariadb/10.11/include/mysql/service_my_crypt.h" int my_aes_crypt_init(void *ctx, enum my_aes_mode mode, int flags, const unsigned char* key, unsigned int klen, const unsigned char* iv, unsigned int ivlen); int my_aes_crypt_update(void *ctx, const unsigned char *src, unsigned int slen, unsigned char *dst, unsigned int *dlen); int my_aes_crypt_finish(void *ctx, unsigned char *dst, unsigned int *dlen); int my_aes_crypt(enum my_aes_mode mode, int flags, const unsigned char *src, unsigned int slen, unsigned char *dst, unsigned int *dlen, const unsigned char *key, unsigned int klen, const unsigned char *iv, unsigned int ivlen); int my_random_bytes(unsigned char* buf, int num); unsigned int my_aes_get_size(enum my_aes_mode mode, unsigned int source_length); unsigned int my_aes_ctx_size(enum my_aes_mode mode); # 30 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_my_print_error.h" 1 # 17 "/mariadb/10.11/include/mysql/service_my_print_error.h" #define MYSQL_SERVICE_MY_PRINT_ERROR_INCLUDED # 35 "/mariadb/10.11/include/mysql/service_my_print_error.h" #define ME_ERROR_LOG 64 #define ME_ERROR_LOG_ONLY 128 #define ME_NOTE 1024 #define ME_WARNING 2048 #define ME_FATAL 4096 extern struct my_print_error_service_st { void (*my_error_func)(unsigned int nr, unsigned long MyFlags, ...); void (*my_printf_error_func)(unsigned int nr, const char *fmt, unsigned long MyFlags,...); void (*my_printv_error_func)(unsigned int error, const char *format, unsigned long MyFlags, va_list ap); } *my_print_error_service; # 54 "/mariadb/10.11/include/mysql/service_my_print_error.h" extern void my_error(unsigned int nr, unsigned long MyFlags, ...); extern void my_printf_error(unsigned int my_err, const char *format, unsigned long MyFlags, ...); extern void my_printv_error(unsigned int error, const char *format, unsigned long MyFlags,va_list ap); # 31 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_my_snprintf.h" 1 # 87 "/mariadb/10.11/include/mysql/service_my_snprintf.h" extern struct my_snprintf_service_st { size_t (*my_snprintf_type)(char*, size_t, const char*, ...); size_t (*my_vsnprintf_type)(char *, size_t, const char*, va_list); } *my_snprintf_service; # 99 "/mariadb/10.11/include/mysql/service_my_snprintf.h" size_t my_snprintf(char* to, size_t n, const char* fmt, ...); size_t my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap); #define MYSQL_SERVICE_MY_SNPRINTF_INCLUDED # 32 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_progress_report.h" 1 # 32 "/mariadb/10.11/include/mysql/service_progress_report.h" #define thd_proc_info(thd,msg) set_thd_proc_info(thd, msg, __func__, __FILE__, __LINE__) extern struct progress_report_service_st { void (*thd_progress_init_func)(void* thd, unsigned int max_stage); void (*thd_progress_report_func)(void* thd, unsigned long long progress, unsigned long long max_progress); void (*thd_progress_next_stage_func)(void* thd); void (*thd_progress_end_func)(void* thd); const char *(*set_thd_proc_info_func)(void*, const char *info, const char *func, const char *file, unsigned int line); } *progress_report_service; # 65 "/mariadb/10.11/include/mysql/service_progress_report.h" void thd_progress_init(void* thd, unsigned int max_stage); void thd_progress_report(void* thd, unsigned long long progress, unsigned long long max_progress); void thd_progress_next_stage(void* thd); void thd_progress_end(void* thd); const char *set_thd_proc_info(void*, const char * info, const char *func, const char *file, unsigned int line); #define MYSQL_SERVICE_PROGRESS_REPORT_INCLUDED # 33 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_sha1.h" 1 # 32 "/mariadb/10.11/include/mysql/service_sha1.h" #define MY_SHA1_HASH_SIZE 20 extern struct my_sha1_service_st { void (*my_sha1_type)(unsigned char*, const char*, size_t); void (*my_sha1_multi_type)(unsigned char*, ...); size_t (*my_sha1_context_size_type)(); void (*my_sha1_init_type)(void *); void (*my_sha1_input_type)(void *, const unsigned char *, size_t); void (*my_sha1_result_type)(void *, unsigned char *); } *my_sha1_service; # 54 "/mariadb/10.11/include/mysql/service_sha1.h" void my_sha1(unsigned char*, const char*, size_t); void my_sha1_multi(unsigned char*, ...); size_t my_sha1_context_size(); void my_sha1_init(void *context); void my_sha1_input(void *context, const unsigned char *buf, size_t len); void my_sha1_result(void *context, unsigned char *digest); #define MYSQL_SERVICE_SHA1_INCLUDED # 34 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_sha2.h" 1 # 32 "/mariadb/10.11/include/mysql/service_sha2.h" extern struct my_sha2_service_st { void (*my_sha224_type)(unsigned char*, const char*, size_t); void (*my_sha224_multi_type)(unsigned char*, ...); size_t (*my_sha224_context_size_type)(); void (*my_sha224_init_type)(void *); void (*my_sha224_input_type)(void *, const unsigned char *, size_t); void (*my_sha224_result_type)(void *, unsigned char *); void (*my_sha256_type)(unsigned char*, const char*, size_t); void (*my_sha256_multi_type)(unsigned char*, ...); size_t (*my_sha256_context_size_type)(); void (*my_sha256_init_type)(void *); void (*my_sha256_input_type)(void *, const unsigned char *, size_t); void (*my_sha256_result_type)(void *, unsigned char *); void (*my_sha384_type)(unsigned char*, const char*, size_t); void (*my_sha384_multi_type)(unsigned char*, ...); size_t (*my_sha384_context_size_type)(); void (*my_sha384_init_type)(void *); void (*my_sha384_input_type)(void *, const unsigned char *, size_t); void (*my_sha384_result_type)(void *, unsigned char *); void (*my_sha512_type)(unsigned char*, const char*, size_t); void (*my_sha512_multi_type)(unsigned char*, ...); size_t (*my_sha512_context_size_type)(); void (*my_sha512_init_type)(void *); void (*my_sha512_input_type)(void *, const unsigned char *, size_t); void (*my_sha512_result_type)(void *, unsigned char *); } *my_sha2_service; # 94 "/mariadb/10.11/include/mysql/service_sha2.h" void my_sha224(unsigned char*, const char*, size_t); void my_sha224_multi(unsigned char*, ...); size_t my_sha224_context_size(); void my_sha224_init(void *context); void my_sha224_input(void *context, const unsigned char *buf, size_t len); void my_sha224_result(void *context, unsigned char *digest); void my_sha256(unsigned char*, const char*, size_t); void my_sha256_multi(unsigned char*, ...); size_t my_sha256_context_size(); void my_sha256_init(void *context); void my_sha256_input(void *context, const unsigned char *buf, size_t len); void my_sha256_result(void *context, unsigned char *digest); void my_sha384(unsigned char*, const char*, size_t); void my_sha384_multi(unsigned char*, ...); size_t my_sha384_context_size(); void my_sha384_init(void *context); void my_sha384_input(void *context, const unsigned char *buf, size_t len); void my_sha384_result(void *context, unsigned char *digest); void my_sha512(unsigned char*, const char*, size_t); void my_sha512_multi(unsigned char*, ...); size_t my_sha512_context_size(); void my_sha512_init(void *context); void my_sha512_input(void *context, const unsigned char *buf, size_t len); void my_sha512_result(void *context, unsigned char *digest); #define MYSQL_SERVICE_SHA2_INCLUDED # 35 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_thd_alloc.h" 1 # 38 "/mariadb/10.11/include/mysql/service_thd_alloc.h" struct st_mysql_lex_string { char *str; size_t length; }; typedef struct st_mysql_lex_string MYSQL_LEX_STRING; struct st_mysql_const_lex_string { const char *str; size_t length; }; typedef struct st_mysql_const_lex_string MYSQL_CONST_LEX_STRING; extern struct thd_alloc_service_st { void *(*thd_alloc_func)(void*, size_t); void *(*thd_calloc_func)(void*, size_t); char *(*thd_strdup_func)(void*, const char *); char *(*thd_strmake_func)(void*, const char *, size_t); void *(*thd_memdup_func)(void*, const void*, size_t); MYSQL_CONST_LEX_STRING *(*thd_make_lex_string_func)(void*, MYSQL_CONST_LEX_STRING *, const char *, size_t, int); } *thd_alloc_service; # 95 "/mariadb/10.11/include/mysql/service_thd_alloc.h" void *thd_alloc(void* thd, size_t size); void *thd_calloc(void* thd, size_t size); char *thd_strdup(void* thd, const char *str); char *thd_strmake(void* thd, const char *str, size_t size); void *thd_memdup(void* thd, const void* str, size_t size); # 126 "/mariadb/10.11/include/mysql/service_thd_alloc.h" MYSQL_CONST_LEX_STRING *thd_make_lex_string(void* thd, MYSQL_CONST_LEX_STRING *lex_str, const char *str, size_t size, int allocate_lex_string); #define MYSQL_SERVICE_THD_ALLOC_INCLUDED # 36 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_thd_autoinc.h" 1 # 29 "/mariadb/10.11/include/mysql/service_thd_autoinc.h" extern struct thd_autoinc_service_st { void (*thd_get_autoinc_func)(const void* thd, unsigned long* off, unsigned long* inc); } *thd_autoinc_service; # 44 "/mariadb/10.11/include/mysql/service_thd_autoinc.h" void thd_get_autoinc(const void* thd, unsigned long* off, unsigned long* inc); #define MYSQL_SERVICE_THD_AUTOINC_INCLUDED # 37 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_thd_error_context.h" 1 # 30 "/mariadb/10.11/include/mysql/service_thd_error_context.h" extern struct thd_error_context_service_st { const char *(*thd_get_error_message_func)(const void* thd); unsigned int (*thd_get_error_number_func)(const void* thd); unsigned long (*thd_get_error_row_func)(const void* thd); void (*thd_inc_error_row_func)(void* thd); char *(*thd_get_error_context_description_func)(void* thd, char *buffer, unsigned int length, unsigned int max_query_length); } *thd_error_context_service; # 61 "/mariadb/10.11/include/mysql/service_thd_error_context.h" const char *thd_get_error_message(const void* thd); unsigned int thd_get_error_number(const void* thd); unsigned long thd_get_error_row(const void* thd); void thd_inc_error_row(void* thd); char *thd_get_error_context_description(void* thd, char *buffer, unsigned int length, unsigned int max_query_length); #define MYSQL_SERVICE_THD_STMT_DA_INCLUDED # 38 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_thd_rnd.h" 1 # 34 "/mariadb/10.11/include/mysql/service_thd_rnd.h" extern struct thd_rnd_service_st { double (*thd_rnd_ptr)(void* thd); void (*thd_c_r_p_ptr)(void* thd, char *to, size_t length); } *thd_rnd_service; double thd_rnd(void* thd); # 53 "/mariadb/10.11/include/mysql/service_thd_rnd.h" void thd_create_random_password(void* thd, char *to, size_t length); #define MYSQL_SERVICE_THD_RND_INCLUDED # 39 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_thd_specifics.h" 1 # 60 "/mariadb/10.11/include/mysql/service_thd_specifics.h" typedef int MYSQL_THD_KEY_T; extern struct thd_specifics_service_st { int (*thd_key_create_func)(MYSQL_THD_KEY_T *key); void (*thd_key_delete_func)(MYSQL_THD_KEY_T *key); void *(*thd_getspecific_func)(void* thd, MYSQL_THD_KEY_T key); int (*thd_setspecific_func)(void* thd, MYSQL_THD_KEY_T key, void *value); } *thd_specifics_service; #define thd_key_create_from_var(K,V) do { *(K)= MYSQL_SYSVAR_NAME(V).offset; } while(0) # 85 "/mariadb/10.11/include/mysql/service_thd_specifics.h" int thd_key_create(MYSQL_THD_KEY_T *key); void thd_key_delete(MYSQL_THD_KEY_T *key); # 99 "/mariadb/10.11/include/mysql/service_thd_specifics.h" void* thd_getspecific(void* thd, MYSQL_THD_KEY_T key); int thd_setspecific(void* thd, MYSQL_THD_KEY_T key, void *value); #define MYSQL_SERVICE_THD_SPECIFICS_INCLUDED # 40 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_thd_timezone.h" 1 # 41 "/mariadb/10.11/include/mysql/service_thd_timezone.h" # 1 "/mariadb/10.11/include/mysql_time.h" 1 # 18 "/mariadb/10.11/include/mysql_time.h" #define _mysql_time_h_ # 28 "/mariadb/10.11/include/mysql_time.h" typedef long my_time_t; # 40 "/mariadb/10.11/include/mysql_time.h" enum enum_mysql_timestamp_type { MYSQL_TIMESTAMP_NONE= -2, MYSQL_TIMESTAMP_ERROR= -1, MYSQL_TIMESTAMP_DATE= 0, MYSQL_TIMESTAMP_DATETIME= 1, MYSQL_TIMESTAMP_TIME= 2 }; # 59 "/mariadb/10.11/include/mysql_time.h" typedef struct st_mysql_time { unsigned int year, month, day, hour, minute, second; unsigned long second_part; my_bool neg; enum enum_mysql_timestamp_type time_type; } MYSQL_TIME; # 42 "/mariadb/10.11/include/mysql/service_thd_timezone.h" 2 extern struct thd_timezone_service_st { my_time_t (*thd_TIME_to_gmt_sec)(void* thd, const MYSQL_TIME *ltime, unsigned int *errcode); void (*thd_gmt_sec_to_TIME)(void* thd, MYSQL_TIME *ltime, my_time_t t); } *thd_timezone_service; # 63 "/mariadb/10.11/include/mysql/service_thd_timezone.h" my_time_t thd_TIME_to_gmt_sec(void* thd, const MYSQL_TIME *ltime, unsigned int *errcode); void thd_gmt_sec_to_TIME(void* thd, MYSQL_TIME *ltime, my_time_t t); #define MYSQL_SERVICE_THD_TIMEZONE_INCLUDED # 41 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_thd_wait.h" 1 # 17 "/mariadb/10.11/include/mysql/service_thd_wait.h" #define MYSQL_SERVICE_THD_WAIT_INCLUDED # 66 "/mariadb/10.11/include/mysql/service_thd_wait.h" typedef enum _thd_wait_type_e { THD_WAIT_SLEEP= 1, THD_WAIT_DISKIO= 2, THD_WAIT_ROW_LOCK= 3, THD_WAIT_GLOBAL_LOCK= 4, THD_WAIT_META_DATA_LOCK= 5, THD_WAIT_TABLE_LOCK= 6, THD_WAIT_USER_LOCK= 7, THD_WAIT_BINLOG= 8, THD_WAIT_GROUP_COMMIT= 9, THD_WAIT_SYNC= 10, THD_WAIT_NET= 11, THD_WAIT_LAST= 12 } thd_wait_type; extern struct thd_wait_service_st { void (*thd_wait_begin_func)(void*, int); void (*thd_wait_end_func)(void*); } *thd_wait_service; # 94 "/mariadb/10.11/include/mysql/service_thd_wait.h" void thd_wait_begin(void* thd, int wait_type); void thd_wait_end(void* thd); # 42 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_json.h" 1 # 17 "/mariadb/10.11/include/mysql/service_json.h" #define MYSQL_SERVICE_JSON # 51 "/mariadb/10.11/include/mysql/service_json.h" enum json_types { JSV_BAD_JSON=-1, JSV_NOTHING=0, JSV_OBJECT=1, JSV_ARRAY=2, JSV_STRING=3, JSV_NUMBER=4, JSV_TRUE=5, JSV_FALSE=6, JSV_NULL=7 }; extern struct json_service_st { enum json_types (*json_type)(const char *js, const char *js_end, const char **value, int *value_len); enum json_types (*json_get_array_item)(const char *js, const char *js_end, int n_item, const char **value, int *value_len); enum json_types (*json_get_object_key)(const char *js, const char *js_end, const char *key, const char **value, int *value_len); enum json_types (*json_get_object_nkey)(const char *js,const char *js_end, int nkey, const char **keyname, const char **keyname_end, const char **value, int *value_len); int (*json_escape_string)(const char *str,const char *str_end, char *json, char *json_end); int (*json_unescape_json)(const char *json_str, const char *json_end, char *res, char *res_end); } *json_service; # 94 "/mariadb/10.11/include/mysql/service_json.h" enum json_types json_type(const char *js, const char *js_end, const char **value, int *value_len); enum json_types json_get_array_item(const char *js, const char *js_end, int n_item, const char **value, int *value_len); enum json_types json_get_object_key(const char *js, const char *js_end, const char *key, const char **value, int *value_len); enum json_types json_get_object_nkey(const char *js,const char *js_end, int nkey, const char **keyname, const char **keyname_end, const char **value, int *value_len); int json_escape_string(const char *str,const char *str_end, char *json, char *json_end); int json_unescape_json(const char *json_str, const char *json_end, char *res, char *res_end); # 43 "/mariadb/10.11/include/mysql/services.h" 2 # 1 "/mariadb/10.11/include/mysql/service_sql.h" 1 # 17 "/mariadb/10.11/include/mysql/service_sql.h" #define MYSQL_SERVICE_SQL # 1 "/mariadb/10.11/libmariadb/include/mysql.h" 1 # 22 "/mariadb/10.11/libmariadb/include/mysql.h" #define _mysql_h #define LIBMARIADB # 59 "/mariadb/10.11/libmariadb/include/mysql.h" # 1 "/mariadb/10.11/libmariadb/include/mariadb_com.h" 1 # 29 "/mariadb/10.11/libmariadb/include/mariadb_com.h" #define _mysql_com_h #define NAME_CHAR_LEN 64 #define NAME_LEN 256 #define HOSTNAME_LENGTH 255 #define SYSTEM_MB_MAX_CHAR_LENGTH 4 #define USERNAME_CHAR_LENGTH 128 #define USERNAME_LENGTH (USERNAME_CHAR_LENGTH * SYSTEM_MB_MAX_CHAR_LENGTH) #define SERVER_VERSION_LENGTH 60 #define SQLSTATE_LENGTH 5 #define SCRAMBLE_LENGTH 20 #define SCRAMBLE_LENGTH_323 8 #define LOCAL_HOST "localhost" #define LOCAL_HOST_NAMEDPIPE "." #define MYSQL_AUTODETECT_CHARSET_NAME "auto" #define BINCMP_FLAG 131072 enum mysql_enum_shutdown_level { SHUTDOWN_DEFAULT = 0, KILL_QUERY= 254, KILL_CONNECTION= 255 }; enum enum_server_command { COM_SLEEP = 0, COM_QUIT, COM_INIT_DB, COM_QUERY, COM_FIELD_LIST, COM_CREATE_DB, COM_DROP_DB, COM_REFRESH, COM_SHUTDOWN, COM_STATISTICS, COM_PROCESS_INFO, COM_CONNECT, COM_PROCESS_KILL, COM_DEBUG, COM_PING, COM_TIME = 15, COM_DELAYED_INSERT, COM_CHANGE_USER, COM_BINLOG_DUMP, COM_TABLE_DUMP, COM_CONNECT_OUT = 20, COM_REGISTER_SLAVE, COM_STMT_PREPARE = 22, COM_STMT_EXECUTE = 23, COM_STMT_SEND_LONG_DATA = 24, COM_STMT_CLOSE = 25, COM_STMT_RESET = 26, COM_SET_OPTION = 27, COM_STMT_FETCH = 28, COM_DAEMON= 29, COM_UNSUPPORTED= 30, COM_RESET_CONNECTION = 31, COM_STMT_BULK_EXECUTE = 250, COM_RESERVED_1 = 254, COM_END }; #define NOT_NULL_FLAG 1 #define PRI_KEY_FLAG 2 #define UNIQUE_KEY_FLAG 4 #define MULTIPLE_KEY_FLAG 8 #define BLOB_FLAG 16 #define UNSIGNED_FLAG 32 #define ZEROFILL_FLAG 64 #define BINARY_FLAG 128 #define ENUM_FLAG 256 #define AUTO_INCREMENT_FLAG 512 #define TIMESTAMP_FLAG 1024 #define SET_FLAG 2048 #define NO_DEFAULT_VALUE_FLAG 4096 #define ON_UPDATE_NOW_FLAG 8192 #define NUM_FLAG 32768 #define PART_KEY_FLAG 16384 #define GROUP_FLAG 32768 #define UNIQUE_FLAG 65536 #define REFRESH_GRANT 1 #define REFRESH_LOG 2 #define REFRESH_TABLES 4 #define REFRESH_HOSTS 8 #define REFRESH_STATUS 16 #define REFRESH_THREADS 32 #define REFRESH_SLAVE 64 #define REFRESH_MASTER 128 #define REFRESH_READ_LOCK 16384 #define REFRESH_FAST 32768 #define CLIENT_MYSQL 1 #define CLIENT_FOUND_ROWS 2 #define CLIENT_LONG_FLAG 4 #define CLIENT_CONNECT_WITH_DB 8 #define CLIENT_NO_SCHEMA 16 #define CLIENT_COMPRESS 32 #define CLIENT_ODBC 64 #define CLIENT_LOCAL_FILES 128 #define CLIENT_IGNORE_SPACE 256 #define CLIENT_INTERACTIVE 1024 #define CLIENT_SSL 2048 #define CLIENT_IGNORE_SIGPIPE 4096 #define CLIENT_TRANSACTIONS 8192 #define CLIENT_PROTOCOL_41 512 #define CLIENT_RESERVED 16384 #define CLIENT_SECURE_CONNECTION 32768 #define CLIENT_MULTI_STATEMENTS (1UL << 16) #define CLIENT_MULTI_RESULTS (1UL << 17) #define CLIENT_PS_MULTI_RESULTS (1UL << 18) #define CLIENT_PLUGIN_AUTH (1UL << 19) #define CLIENT_CONNECT_ATTRS (1UL << 20) #define CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA (1UL << 21) #define CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS (1UL << 22) #define CLIENT_SESSION_TRACKING (1UL << 23) #define CLIENT_ZSTD_COMPRESSION (1UL << 26) #define CLIENT_PROGRESS (1UL << 29) #define CLIENT_PROGRESS_OBSOLETE CLIENT_PROGRESS #define CLIENT_SSL_VERIFY_SERVER_CERT (1UL << 30) #define CLIENT_SSL_VERIFY_SERVER_CERT_OBSOLETE CLIENT_SSL_VERIFY_SERVER_CERT #define CLIENT_REMEMBER_OPTIONS (1UL << 31) #define MARIADB_CLIENT_FLAGS 0xFFFFFFFF00000000ULL #define MARIADB_CLIENT_PROGRESS (1ULL << 32) #define MARIADB_CLIENT_RESERVED_1 (1ULL << 33) #define MARIADB_CLIENT_STMT_BULK_OPERATIONS (1ULL << 34) #define MARIADB_CLIENT_EXTENDED_METADATA (1ULL << 35) #define MARIADB_CLIENT_CACHE_METADATA (1ULL << 36) #define IS_MARIADB_EXTENDED_SERVER(mysql) (!(mysql->server_capabilities & CLIENT_MYSQL)) #define MARIADB_CLIENT_SUPPORTED_FLAGS (MARIADB_CLIENT_PROGRESS | MARIADB_CLIENT_STMT_BULK_OPERATIONS| MARIADB_CLIENT_EXTENDED_METADATA| MARIADB_CLIENT_CACHE_METADATA) #define CLIENT_SUPPORTED_FLAGS (CLIENT_MYSQL | CLIENT_FOUND_ROWS | CLIENT_LONG_FLAG | CLIENT_CONNECT_WITH_DB | CLIENT_NO_SCHEMA | CLIENT_COMPRESS | CLIENT_ODBC | CLIENT_LOCAL_FILES | CLIENT_IGNORE_SPACE | CLIENT_INTERACTIVE | CLIENT_SSL | CLIENT_IGNORE_SIGPIPE | CLIENT_TRANSACTIONS | CLIENT_PROTOCOL_41 | CLIENT_RESERVED | CLIENT_SECURE_CONNECTION | CLIENT_MULTI_STATEMENTS | CLIENT_MULTI_RESULTS | CLIENT_PROGRESS | CLIENT_SSL_VERIFY_SERVER_CERT | CLIENT_REMEMBER_OPTIONS | CLIENT_PLUGIN_AUTH | CLIENT_SESSION_TRACKING | CLIENT_CONNECT_ATTRS) # 213 "/mariadb/10.11/libmariadb/include/mariadb_com.h" #define CLIENT_CAPABILITIES (CLIENT_MYSQL | CLIENT_LONG_FLAG | CLIENT_TRANSACTIONS | CLIENT_SECURE_CONNECTION | CLIENT_MULTI_RESULTS | CLIENT_PS_MULTI_RESULTS | CLIENT_PROTOCOL_41 | CLIENT_PLUGIN_AUTH | CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA | CLIENT_SESSION_TRACKING | CLIENT_CONNECT_ATTRS) # 225 "/mariadb/10.11/libmariadb/include/mariadb_com.h" #define CLIENT_DEFAULT_FLAGS ((CLIENT_SUPPORTED_FLAGS & ~CLIENT_COMPRESS) & ~CLIENT_SSL) #define SERVER_STATUS_IN_TRANS 1 #define SERVER_STATUS_AUTOCOMMIT 2 #define SERVER_MORE_RESULTS_EXIST 8 #define SERVER_QUERY_NO_GOOD_INDEX_USED 16 #define SERVER_QUERY_NO_INDEX_USED 32 #define SERVER_STATUS_CURSOR_EXISTS 64 #define SERVER_STATUS_LAST_ROW_SENT 128 #define SERVER_STATUS_DB_DROPPED 256 #define SERVER_STATUS_NO_BACKSLASH_ESCAPES 512 #define SERVER_STATUS_METADATA_CHANGED 1024 #define SERVER_QUERY_WAS_SLOW 2048 #define SERVER_PS_OUT_PARAMS 4096 #define SERVER_STATUS_IN_TRANS_READONLY 8192 #define SERVER_SESSION_STATE_CHANGED 16384 #define SERVER_STATUS_ANSI_QUOTES 32768 #define MYSQL_ERRMSG_SIZE 512 #define NET_READ_TIMEOUT 30 #define NET_WRITE_TIMEOUT 60 #define NET_WAIT_TIMEOUT (8*60*60) #define LIST_PROCESS_HOST_LEN 64 #define MYSQL50_TABLE_NAME_PREFIX "#mysql50#" #define MYSQL50_TABLE_NAME_PREFIX_LENGTH (sizeof(MYSQL50_TABLE_NAME_PREFIX)-1) #define SAFE_NAME_LEN (NAME_LEN + MYSQL50_TABLE_NAME_PREFIX_LENGTH) struct st_ma_pvio; typedef struct st_ma_pvio MARIADB_PVIO; #define MAX_CHAR_WIDTH 255 #define MAX_BLOB_WIDTH 8192 #define MAX_TINYINT_WIDTH 3 #define MAX_SMALLINT_WIDTH 5 #define MAX_MEDIUMINT_WIDTH 8 #define MAX_INT_WIDTH 10 #define MAX_BIGINT_WIDTH 20 struct st_ma_connection_plugin; typedef struct st_net { MARIADB_PVIO *pvio; unsigned char *buff; unsigned char *buff_end,*write_pos,*read_pos; my_socket fd; unsigned long remain_in_buf,length; unsigned long buf_length, where_b; unsigned long max_packet, max_packet_size; unsigned int pkt_nr, compress_pkt_nr; unsigned int write_timeout, read_timeout, retry_count; int fcntl; unsigned int *return_status; unsigned char reading_or_writing; char save_char; char unused_1; my_bool unused_2; my_bool compress; my_bool unused_3; void *unused_4; unsigned int last_errno; unsigned char error; my_bool unused_5; my_bool unused_6; char last_error[512]; char sqlstate[5 +1]; struct st_mariadb_net_extension *extension; } NET; #define packet_error ((unsigned int) -1) enum enum_mysql_set_option { MYSQL_OPTION_MULTI_STATEMENTS_ON, MYSQL_OPTION_MULTI_STATEMENTS_OFF }; enum enum_mariadb_status_info { STATUS_TYPE= 0, SESSION_TRACK_TYPE }; enum enum_session_state_type { SESSION_TRACK_SYSTEM_VARIABLES= 0, SESSION_TRACK_SCHEMA, SESSION_TRACK_STATE_CHANGE, SESSION_TRACK_GTIDS, SESSION_TRACK_TRANSACTION_CHARACTERISTICS, SESSION_TRACK_TRANSACTION_STATE }; #define SESSION_TRACK_BEGIN 0 #define SESSION_TRACK_END SESSION_TRACK_TRANSACTION_STATE #define SESSION_TRACK_TYPES (SESSION_TRACK_END + 1) #define SESSION_TRACK_TRANSACTION_TYPE SESSION_TRACK_TRANSACTION_STATE enum enum_field_types { MYSQL_TYPE_DECIMAL, MYSQL_TYPE_TINY, MYSQL_TYPE_SHORT, MYSQL_TYPE_LONG, MYSQL_TYPE_FLOAT, MYSQL_TYPE_DOUBLE, MYSQL_TYPE_NULL, MYSQL_TYPE_TIMESTAMP, MYSQL_TYPE_LONGLONG,MYSQL_TYPE_INT24, MYSQL_TYPE_DATE, MYSQL_TYPE_TIME, MYSQL_TYPE_DATETIME, MYSQL_TYPE_YEAR, MYSQL_TYPE_NEWDATE, MYSQL_TYPE_VARCHAR, MYSQL_TYPE_BIT, MYSQL_TYPE_TIMESTAMP2, MYSQL_TYPE_DATETIME2, MYSQL_TYPE_TIME2, MYSQL_TYPE_JSON=245, MYSQL_TYPE_NEWDECIMAL=246, MYSQL_TYPE_ENUM=247, MYSQL_TYPE_SET=248, MYSQL_TYPE_TINY_BLOB=249, MYSQL_TYPE_MEDIUM_BLOB=250, MYSQL_TYPE_LONG_BLOB=251, MYSQL_TYPE_BLOB=252, MYSQL_TYPE_VAR_STRING=253, MYSQL_TYPE_STRING=254, MYSQL_TYPE_GEOMETRY=255, MAX_NO_FIELD_TYPES }; #define FIELD_TYPE_CHAR FIELD_TYPE_TINY #define FIELD_TYPE_INTERVAL FIELD_TYPE_ENUM #define FIELD_TYPE_DECIMAL MYSQL_TYPE_DECIMAL #define FIELD_TYPE_NEWDECIMAL MYSQL_TYPE_NEWDECIMAL #define FIELD_TYPE_TINY MYSQL_TYPE_TINY #define FIELD_TYPE_SHORT MYSQL_TYPE_SHORT #define FIELD_TYPE_LONG MYSQL_TYPE_LONG #define FIELD_TYPE_FLOAT MYSQL_TYPE_FLOAT #define FIELD_TYPE_DOUBLE MYSQL_TYPE_DOUBLE #define FIELD_TYPE_NULL MYSQL_TYPE_NULL #define FIELD_TYPE_TIMESTAMP MYSQL_TYPE_TIMESTAMP #define FIELD_TYPE_LONGLONG MYSQL_TYPE_LONGLONG #define FIELD_TYPE_INT24 MYSQL_TYPE_INT24 #define FIELD_TYPE_DATE MYSQL_TYPE_DATE #define FIELD_TYPE_TIME MYSQL_TYPE_TIME #define FIELD_TYPE_DATETIME MYSQL_TYPE_DATETIME #define FIELD_TYPE_YEAR MYSQL_TYPE_YEAR #define FIELD_TYPE_NEWDATE MYSQL_TYPE_NEWDATE #define FIELD_TYPE_ENUM MYSQL_TYPE_ENUM #define FIELD_TYPE_SET MYSQL_TYPE_SET #define FIELD_TYPE_TINY_BLOB MYSQL_TYPE_TINY_BLOB #define FIELD_TYPE_MEDIUM_BLOB MYSQL_TYPE_MEDIUM_BLOB #define FIELD_TYPE_LONG_BLOB MYSQL_TYPE_LONG_BLOB #define FIELD_TYPE_BLOB MYSQL_TYPE_BLOB #define FIELD_TYPE_VAR_STRING MYSQL_TYPE_VAR_STRING #define FIELD_TYPE_STRING MYSQL_TYPE_STRING #define FIELD_TYPE_GEOMETRY MYSQL_TYPE_GEOMETRY #define FIELD_TYPE_BIT MYSQL_TYPE_BIT extern unsigned long max_allowed_packet; extern unsigned long net_buffer_length; #define net_new_transaction(net) ((net)->pkt_nr=0) int ma_net_init(NET *net, MARIADB_PVIO *pvio); void ma_net_end(NET *net); void ma_net_clear(NET *net); int ma_net_flush(NET *net); int ma_net_write(NET *net,const unsigned char *packet, size_t len); int ma_net_write_command(NET *net,unsigned char command,const char *packet, size_t len, my_bool disable_flush); int ma_net_real_write(NET *net,const char *packet, size_t len); extern unsigned long ma_net_read(NET *net); struct rand_struct { unsigned long seed1,seed2,max_value; double max_value_dbl; }; enum Item_result {STRING_RESULT,REAL_RESULT,INT_RESULT,ROW_RESULT,DECIMAL_RESULT}; typedef struct st_udf_args { unsigned int arg_count; enum Item_result *arg_type; char **args; unsigned long *lengths; char *maybe_null; } UDF_ARGS; typedef struct st_udf_init { my_bool maybe_null; unsigned int decimals; unsigned int max_length; char *ptr; my_bool const_item; } UDF_INIT; #define MARIADB_CONNECTION_UNIXSOCKET 0 #define MARIADB_CONNECTION_TCP 1 #define MARIADB_CONNECTION_NAMEDPIPE 2 #define MARIADB_CONNECTION_SHAREDMEM 3 #define NET_HEADER_SIZE 4 #define COMP_HEADER_SIZE 3 #define native_password_plugin_name "mysql_native_password" #define old_password_plugin_name "mysql_old_password" char *ma_scramble_323(char *to,const char *message,const char *password); void ma_scramble_41(const unsigned char *buffer, const char *scramble, const char *password); void ma_hash_password(unsigned long *result, const char *password, size_t len); void ma_make_scrambled_password(char *to,const char *password); void mariadb_load_defaults(const char *conf_file, const char **groups, int *argc, char ***argv); my_bool ma_thread_init(void); void ma_thread_end(void); #define NULL_LENGTH ((unsigned long) ~0) # 60 "/mariadb/10.11/libmariadb/include/mysql.h" 2 # 1 "/dev/shm/10.11-32/libmariadb/include/mariadb_version.h" 1 #define _mariadb_version_h_ #define PROTOCOL_VERSION 10 #define MARIADB_CLIENT_VERSION_STR "10.11.8" #define MARIADB_BASE_VERSION "mariadb-10.11" #define MARIADB_VERSION_ID 101108 #define MARIADB_PORT 3306 #define MARIADB_UNIX_ADDR "/tmp/mysql.sock" #define MYSQL_UNIX_ADDR MARIADB_UNIX_ADDR #define MYSQL_PORT MARIADB_PORT #define MYSQL_CONFIG_NAME "my" #define MYSQL_VERSION_ID 101108 #define MYSQL_SERVER_VERSION "10.11.8-MariaDB" #define MARIADB_PACKAGE_VERSION "3.3.9" #define MARIADB_PACKAGE_VERSION_ID 30309 #define MARIADB_SYSTEM_TYPE "Linux" #define MARIADB_MACHINE_TYPE "x86_64" #define MARIADB_PLUGINDIR "/usr/local/mysql/lib/plugin" #define MYSQL_CHARSET "" #define CC_SOURCE_REVISION "e714a674827fbb8373dd71da634dd04736d7b5a6" # 61 "/mariadb/10.11/libmariadb/include/mysql.h" 2 # 1 "/mariadb/10.11/libmariadb/include/ma_list.h" 1 # 19 "/mariadb/10.11/libmariadb/include/ma_list.h" #define _list_h_ typedef struct st_list { struct st_list *prev,*next; void *data; } LIST; typedef int (*list_walk_action)(void *,void *); extern LIST *list_add(LIST *root,LIST *element); extern LIST *list_delete(LIST *root,LIST *element); extern LIST *list_cons(void *data,LIST *root); extern LIST *list_reverse(LIST *root); extern void list_free(LIST *root,unsigned int free_data); extern unsigned int list_length(LIST *list); extern int list_walk(LIST *list,list_walk_action action,char * argument); #define list_rest(a) ((a)->next) #define list_push(a,b) (a)=list_cons((b),(a)) #define list_pop(A) do {LIST *old=(A); (A)=list_delete(old,old) ; ma_free((char *) old,MYF(MY_FAE)); } while(0) # 62 "/mariadb/10.11/libmariadb/include/mysql.h" 2 # 1 "/mariadb/10.11/libmariadb/include/mariadb_ctype.h" 1 # 24 "/mariadb/10.11/libmariadb/include/mariadb_ctype.h" #define _mariadb_ctype_h #include <ctype.h> # 27 "/mariadb/10.11/libmariadb/include/mariadb_ctype.h" 2 #define CHARSET_DIR "charsets/" #define MY_CS_NAME_SIZE 32 #define MADB_DEFAULT_CHARSET_NAME "latin1" #define MADB_DEFAULT_COLLATION_NAME "latin1_swedish_ci" #define MADB_AUTODETECT_CHARSET_NAME "auto" # 40 "/mariadb/10.11/libmariadb/include/mariadb_ctype.h" typedef struct ma_charset_info_st { unsigned int nr; unsigned int state; const char *csname; const char *name; const char *dir; unsigned int codepage; const char *encoding; unsigned int char_minlen; unsigned int char_maxlen; unsigned int (*mb_charlen)(unsigned int c); unsigned int (*mb_valid)(const char *start, const char *end); } MARIADB_CHARSET_INFO; extern const MARIADB_CHARSET_INFO mariadb_compiled_charsets[]; extern MARIADB_CHARSET_INFO *ma_default_charset_info; extern MARIADB_CHARSET_INFO *ma_charset_bin; extern MARIADB_CHARSET_INFO *ma_charset_latin1; extern MARIADB_CHARSET_INFO *ma_charset_utf8_general_ci; extern MARIADB_CHARSET_INFO *ma_charset_utf16le_general_ci; MARIADB_CHARSET_INFO *find_compiled_charset(unsigned int cs_number); MARIADB_CHARSET_INFO *find_compiled_charset_by_name(const char *name); size_t mysql_cset_escape_quotes(const MARIADB_CHARSET_INFO *cset, char *newstr, const char *escapestr, size_t escapestr_len); size_t mysql_cset_escape_slashes(const MARIADB_CHARSET_INFO *cset, char *newstr, const char *escapestr, size_t escapestr_len); const char* madb_get_os_character_set(void); # 63 "/mariadb/10.11/libmariadb/include/mysql.h" 2 typedef struct st_ma_const_string { const char *str; size_t length; } MARIADB_CONST_STRING; typedef struct st_ma_const_data { const unsigned char *data; size_t length; } MARIADB_CONST_DATA; #define ST_MA_USED_MEM_DEFINED typedef struct st_ma_used_mem { struct st_ma_used_mem *next; size_t left; size_t size; } MA_USED_MEM; typedef struct st_ma_mem_root { MA_USED_MEM *free; MA_USED_MEM *used; MA_USED_MEM *pre_alloc; size_t min_malloc; size_t block_size; unsigned int block_num; unsigned int first_block_usage; void (*error_handler)(void); } MA_MEM_ROOT; extern unsigned int mysql_port; extern char *mysql_unix_port; extern unsigned int mariadb_deinitialize_ssl; #define IS_PRI_KEY(n) ((n) & PRI_KEY_FLAG) #define IS_NOT_NULL(n) ((n) & NOT_NULL_FLAG) #define IS_BLOB(n) ((n) & BLOB_FLAG) #define IS_NUM(t) (((t) <= MYSQL_TYPE_INT24 && (t) != MYSQL_TYPE_TIMESTAMP) || (t) == MYSQL_TYPE_YEAR || (t) == MYSQL_TYPE_NEWDECIMAL) #define IS_NUM_FIELD(f) ((f)->flags & NUM_FLAG) #define INTERNAL_NUM_FIELD(f) (((f)->type <= MYSQL_TYPE_INT24 && ((f)->type != MYSQL_TYPE_TIMESTAMP || (f)->length == 14 || (f)->length == 8)) || (f)->type == MYSQL_TYPE_YEAR || (f)->type == MYSQL_TYPE_NEWDECIMAL || (f)->type == MYSQL_TYPE_DECIMAL) typedef struct st_mysql_field { char *name; char *org_name; char *table; char *org_table; char *db; char *catalog; char *def; unsigned long length; unsigned long max_length; unsigned int name_length; unsigned int org_name_length; unsigned int table_length; unsigned int org_table_length; unsigned int db_length; unsigned int catalog_length; unsigned int def_length; unsigned int flags; unsigned int decimals; unsigned int charsetnr; enum enum_field_types type; void *extension; } MYSQL_FIELD; typedef char **MYSQL_ROW; typedef unsigned int MYSQL_FIELD_OFFSET; #define SET_CLIENT_ERROR(a,b,c,d) do { (a)->net.last_errno= (b); strncpy((a)->net.sqlstate, (c), SQLSTATE_LENGTH); (a)->net.sqlstate[SQLSTATE_LENGTH]= 0; strncpy((a)->net.last_error, (d) ? (d) : ER((b)), MYSQL_ERRMSG_SIZE - 1); (a)->net.last_error[MYSQL_ERRMSG_SIZE - 1]= 0; } while(0) # 148 "/mariadb/10.11/libmariadb/include/mysql.h" #define set_mariadb_error(A,B,C) SET_CLIENT_ERROR((A),(B),(C),0) extern const char *SQLSTATE_UNKNOWN; #define unknown_sqlstate SQLSTATE_UNKNOWN #define CLEAR_CLIENT_ERROR(a) do { (a)->net.last_errno= 0; strcpy((a)->net.sqlstate, "00000"); (a)->net.last_error[0]= '\0'; if ((a)->net.extension) (a)->net.extension->extended_errno= 0; } while (0) # 161 "/mariadb/10.11/libmariadb/include/mysql.h" #define MYSQL_COUNT_ERROR (~(unsigned long long) 0) typedef struct st_mysql_rows { struct st_mysql_rows *next; MYSQL_ROW data; unsigned long length; } MYSQL_ROWS; typedef MYSQL_ROWS *MYSQL_ROW_OFFSET; typedef struct st_mysql_data { MYSQL_ROWS *data; void *embedded_info; MA_MEM_ROOT alloc; unsigned long long rows; unsigned int fields; void *extension; } MYSQL_DATA; enum mysql_option { MYSQL_OPT_CONNECT_TIMEOUT, MYSQL_OPT_COMPRESS, MYSQL_OPT_NAMED_PIPE, MYSQL_INIT_COMMAND, MYSQL_READ_DEFAULT_FILE, MYSQL_READ_DEFAULT_GROUP, MYSQL_SET_CHARSET_DIR, MYSQL_SET_CHARSET_NAME, MYSQL_OPT_LOCAL_INFILE, MYSQL_OPT_PROTOCOL, MYSQL_SHARED_MEMORY_BASE_NAME, MYSQL_OPT_READ_TIMEOUT, MYSQL_OPT_WRITE_TIMEOUT, MYSQL_OPT_USE_RESULT, MYSQL_OPT_USE_REMOTE_CONNECTION, MYSQL_OPT_USE_EMBEDDED_CONNECTION, MYSQL_OPT_GUESS_CONNECTION, MYSQL_SET_CLIENT_IP, MYSQL_SECURE_AUTH, MYSQL_REPORT_DATA_TRUNCATION, MYSQL_OPT_RECONNECT, MYSQL_OPT_SSL_VERIFY_SERVER_CERT, MYSQL_PLUGIN_DIR, MYSQL_DEFAULT_AUTH, MYSQL_OPT_BIND, MYSQL_OPT_SSL_KEY, MYSQL_OPT_SSL_CERT, MYSQL_OPT_SSL_CA, MYSQL_OPT_SSL_CAPATH, MYSQL_OPT_SSL_CIPHER, MYSQL_OPT_SSL_CRL, MYSQL_OPT_SSL_CRLPATH, MYSQL_OPT_CONNECT_ATTR_RESET, MYSQL_OPT_CONNECT_ATTR_ADD, MYSQL_OPT_CONNECT_ATTR_DELETE, MYSQL_SERVER_PUBLIC_KEY, MYSQL_ENABLE_CLEARTEXT_PLUGIN, MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS, MYSQL_OPT_SSL_ENFORCE, MYSQL_OPT_MAX_ALLOWED_PACKET, MYSQL_OPT_NET_BUFFER_LENGTH, MYSQL_OPT_TLS_VERSION, MYSQL_PROGRESS_CALLBACK=5999, MYSQL_OPT_NONBLOCK, MYSQL_DATABASE_DRIVER=7000, MARIADB_OPT_SSL_FP, MARIADB_OPT_SSL_FP_LIST, MARIADB_OPT_TLS_PASSPHRASE, MARIADB_OPT_TLS_CIPHER_STRENGTH, MARIADB_OPT_TLS_VERSION, MARIADB_OPT_TLS_PEER_FP, MARIADB_OPT_TLS_PEER_FP_LIST, MARIADB_OPT_CONNECTION_READ_ONLY, MYSQL_OPT_CONNECT_ATTRS, MARIADB_OPT_USERDATA, MARIADB_OPT_CONNECTION_HANDLER, MARIADB_OPT_PORT, MARIADB_OPT_UNIXSOCKET, MARIADB_OPT_PASSWORD, MARIADB_OPT_HOST, MARIADB_OPT_USER, MARIADB_OPT_SCHEMA, MARIADB_OPT_DEBUG, MARIADB_OPT_FOUND_ROWS, MARIADB_OPT_MULTI_RESULTS, MARIADB_OPT_MULTI_STATEMENTS, MARIADB_OPT_INTERACTIVE, MARIADB_OPT_PROXY_HEADER, MARIADB_OPT_IO_WAIT, MARIADB_OPT_SKIP_READ_RESPONSE, MARIADB_OPT_RESTRICTED_AUTH, MARIADB_OPT_RPL_REGISTER_REPLICA, MARIADB_OPT_STATUS_CALLBACK, MARIADB_OPT_SERVER_PLUGINS }; enum mariadb_value { MARIADB_CHARSET_ID, MARIADB_CHARSET_NAME, MARIADB_CLIENT_ERRORS, MARIADB_CLIENT_VERSION, MARIADB_CLIENT_VERSION_ID, MARIADB_CONNECTION_ASYNC_TIMEOUT, MARIADB_CONNECTION_ASYNC_TIMEOUT_MS, MARIADB_CONNECTION_MARIADB_CHARSET_INFO, MARIADB_CONNECTION_ERROR, MARIADB_CONNECTION_ERROR_ID, MARIADB_CONNECTION_HOST, MARIADB_CONNECTION_INFO, MARIADB_CONNECTION_PORT, MARIADB_CONNECTION_PROTOCOL_VERSION_ID, MARIADB_CONNECTION_PVIO_TYPE, MARIADB_CONNECTION_SCHEMA, MARIADB_CONNECTION_SERVER_TYPE, MARIADB_CONNECTION_SERVER_VERSION, MARIADB_CONNECTION_SERVER_VERSION_ID, MARIADB_CONNECTION_SOCKET, MARIADB_CONNECTION_SQLSTATE, MARIADB_CONNECTION_SSL_CIPHER, MARIADB_TLS_LIBRARY, MARIADB_CONNECTION_TLS_VERSION, MARIADB_CONNECTION_TLS_VERSION_ID, MARIADB_CONNECTION_TYPE, MARIADB_CONNECTION_UNIX_SOCKET, MARIADB_CONNECTION_USER, MARIADB_MAX_ALLOWED_PACKET, MARIADB_NET_BUFFER_LENGTH, MARIADB_CONNECTION_SERVER_STATUS, MARIADB_CONNECTION_SERVER_CAPABILITIES, MARIADB_CONNECTION_EXTENDED_SERVER_CAPABILITIES, MARIADB_CONNECTION_CLIENT_CAPABILITIES, MARIADB_CONNECTION_BYTES_READ, MARIADB_CONNECTION_BYTES_SENT }; enum mysql_status { MYSQL_STATUS_READY, MYSQL_STATUS_GET_RESULT, MYSQL_STATUS_USE_RESULT, MYSQL_STATUS_QUERY_SENT, MYSQL_STATUS_SENDING_LOAD_DATA, MYSQL_STATUS_FETCHING_DATA, MYSQL_STATUS_NEXT_RESULT_PENDING, MYSQL_STATUS_QUIT_SENT, MYSQL_STATUS_STMT_RESULT }; enum mysql_protocol_type { MYSQL_PROTOCOL_DEFAULT, MYSQL_PROTOCOL_TCP, MYSQL_PROTOCOL_SOCKET, MYSQL_PROTOCOL_PIPE, MYSQL_PROTOCOL_MEMORY }; struct st_mysql_options { unsigned int connect_timeout, read_timeout, write_timeout; unsigned int port, protocol; unsigned long client_flag; char *host,*user,*password,*unix_socket,*db; struct st_dynamic_array *init_command; char *my_cnf_file,*my_cnf_group, *charset_dir, *charset_name; char *ssl_key; char *ssl_cert; char *ssl_ca; char *ssl_capath; char *ssl_cipher; char *shared_memory_base_name; unsigned long max_allowed_packet; my_bool use_ssl; my_bool compress,named_pipe; my_bool reconnect, unused_1, unused_2, unused_3; enum mysql_option methods_to_use; char *bind_address; my_bool secure_auth; my_bool report_data_truncation; int (*local_infile_init)(void **, const char *, void *); int (*local_infile_read)(void *, char *, unsigned int); void (*local_infile_end)(void *); int (*local_infile_error)(void *, char *, unsigned int); void *local_infile_userdata; struct st_mysql_options_extension *extension; }; typedef struct st_mysql { NET net; void *unused_0; char *host,*user,*passwd,*unix_socket,*server_version,*host_info; char *info,*db; const struct ma_charset_info_st *charset; MYSQL_FIELD *fields; MA_MEM_ROOT field_alloc; unsigned long long affected_rows; unsigned long long insert_id; unsigned long long extra_info; unsigned long thread_id; unsigned long packet_length; unsigned int port; unsigned long client_flag; unsigned long server_capabilities; unsigned int protocol_version; unsigned int field_count; unsigned int server_status; unsigned int server_language; unsigned int warning_count; struct st_mysql_options options; enum mysql_status status; my_bool free_me; my_bool unused_1; char scramble_buff[20+ 1]; my_bool unused_2; void *unused_3, *unused_4, *unused_5, *unused_6; LIST *stmts; const struct st_mariadb_methods *methods; void *thd; my_bool *unbuffered_fetch_owner; char *info_buffer; struct st_mariadb_extension *extension; } MYSQL; int size(void) { return sizeof(MYSQL); }
Become a Patron
Sponsor on GitHub
Donate via PayPal
Source on GitHub
Mailing list
Installed libraries
Wiki
Report an issue
How it works
Contact the author
CE on Mastodon
CE on Bluesky
About the author
Statistics
Changelog
Version tree