One Hat Cyber Team
Your IP :
216.73.216.115
Server IP :
194.44.31.54
Server :
Linux zen.imath.kiev.ua 4.18.0-553.77.1.el8_10.x86_64 #1 SMP Fri Oct 3 14:30:23 UTC 2025 x86_64
Server Software :
Apache/2.4.37 (Rocky Linux) OpenSSL/1.1.1k
PHP Version :
5.6.40
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
pgsql-13
/
include
/
server
/
jit
/
View File Name :
jit.h
/*------------------------------------------------------------------------- * jit.h * Provider independent JIT infrastructure. * * Copyright (c) 2016-2020, PostgreSQL Global Development Group * * src/include/jit/jit.h * *------------------------------------------------------------------------- */ #ifndef JIT_H #define JIT_H #include "executor/instrument.h" #include "utils/resowner.h" /* Flags determining what kind of JIT operations to perform */ #define PGJIT_NONE 0 #define PGJIT_PERFORM (1 << 0) #define PGJIT_OPT3 (1 << 1) #define PGJIT_INLINE (1 << 2) #define PGJIT_EXPR (1 << 3) #define PGJIT_DEFORM (1 << 4) typedef struct JitInstrumentation { /* number of emitted functions */ size_t created_functions; /* accumulated time to generate code */ instr_time generation_counter; /* accumulated time for inlining */ instr_time inlining_counter; /* accumulated time for optimization */ instr_time optimization_counter; /* accumulated time for code emission */ instr_time emission_counter; } JitInstrumentation; /* * DSM structure for accumulating jit instrumentation of all workers. */ typedef struct SharedJitInstrumentation { int num_workers; JitInstrumentation jit_instr[FLEXIBLE_ARRAY_MEMBER]; } SharedJitInstrumentation; typedef struct JitContext { /* see PGJIT_* above */ int flags; ResourceOwner resowner; JitInstrumentation instr; } JitContext; typedef struct JitProviderCallbacks JitProviderCallbacks; extern void _PG_jit_provider_init(JitProviderCallbacks *cb); typedef void (*JitProviderInit) (JitProviderCallbacks *cb); typedef void (*JitProviderResetAfterErrorCB) (void); typedef void (*JitProviderReleaseContextCB) (JitContext *context); struct ExprState; typedef bool (*JitProviderCompileExprCB) (struct ExprState *state); struct JitProviderCallbacks { JitProviderResetAfterErrorCB reset_after_error; JitProviderReleaseContextCB release_context; JitProviderCompileExprCB compile_expr; }; /* GUCs */ extern bool jit_enabled; extern char *jit_provider; extern bool jit_debugging_support; extern bool jit_dump_bitcode; extern bool jit_expressions; extern bool jit_profiling_support; extern bool jit_tuple_deforming; extern double jit_above_cost; extern double jit_inline_above_cost; extern double jit_optimize_above_cost; extern void jit_reset_after_error(void); extern void jit_release_context(JitContext *context); /* * Functions for attempting to JIT code. Callers must accept that these might * not be able to perform JIT (i.e. return false). */ extern bool jit_compile_expr(struct ExprState *state); extern void InstrJitAgg(JitInstrumentation *dst, JitInstrumentation *add); #endif /* JIT_H */