Mercurial
comparison third_party/luajit/src/lj_trace.h @ 178:94705b5986b3
[ThirdParty] Added WRK and luajit for load testing.
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Thu, 22 Jan 2026 20:10:30 -0800 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 177:24fe8ff94056 | 178:94705b5986b3 |
|---|---|
| 1 /* | |
| 2 ** Trace management. | |
| 3 ** Copyright (C) 2005-2023 Mike Pall. See Copyright Notice in luajit.h | |
| 4 */ | |
| 5 | |
| 6 #ifndef _LJ_TRACE_H | |
| 7 #define _LJ_TRACE_H | |
| 8 | |
| 9 #include "lj_obj.h" | |
| 10 | |
| 11 #if LJ_HASJIT | |
| 12 #include "lj_jit.h" | |
| 13 #include "lj_dispatch.h" | |
| 14 | |
| 15 /* Trace errors. */ | |
| 16 typedef enum { | |
| 17 #define TREDEF(name, msg) LJ_TRERR_##name, | |
| 18 #include "lj_traceerr.h" | |
| 19 LJ_TRERR__MAX | |
| 20 } TraceError; | |
| 21 | |
| 22 LJ_FUNC_NORET void lj_trace_err(jit_State *J, TraceError e); | |
| 23 LJ_FUNC_NORET void lj_trace_err_info(jit_State *J, TraceError e); | |
| 24 | |
| 25 /* Trace management. */ | |
| 26 LJ_FUNC GCtrace * LJ_FASTCALL lj_trace_alloc(lua_State *L, GCtrace *T); | |
| 27 LJ_FUNC void LJ_FASTCALL lj_trace_free(global_State *g, GCtrace *T); | |
| 28 LJ_FUNC void lj_trace_reenableproto(GCproto *pt); | |
| 29 LJ_FUNC void lj_trace_flushproto(global_State *g, GCproto *pt); | |
| 30 LJ_FUNC void lj_trace_flush(jit_State *J, TraceNo traceno); | |
| 31 LJ_FUNC int lj_trace_flushall(lua_State *L); | |
| 32 LJ_FUNC void lj_trace_initstate(global_State *g); | |
| 33 LJ_FUNC void lj_trace_freestate(global_State *g); | |
| 34 | |
| 35 /* Event handling. */ | |
| 36 LJ_FUNC void lj_trace_ins(jit_State *J, const BCIns *pc); | |
| 37 LJ_FUNCA void LJ_FASTCALL lj_trace_hot(jit_State *J, const BCIns *pc); | |
| 38 LJ_FUNCA void LJ_FASTCALL lj_trace_stitch(jit_State *J, const BCIns *pc); | |
| 39 LJ_FUNCA int LJ_FASTCALL lj_trace_exit(jit_State *J, void *exptr); | |
| 40 #if LJ_UNWIND_EXT | |
| 41 LJ_FUNC uintptr_t LJ_FASTCALL lj_trace_unwind(jit_State *J, uintptr_t addr, ExitNo *ep); | |
| 42 #endif | |
| 43 | |
| 44 /* Signal asynchronous abort of trace or end of trace. */ | |
| 45 #define lj_trace_abort(g) (G2J(g)->state &= ~LJ_TRACE_ACTIVE) | |
| 46 #define lj_trace_end(J) (J->state = LJ_TRACE_END) | |
| 47 | |
| 48 #else | |
| 49 | |
| 50 #define lj_trace_flushall(L) (UNUSED(L), 0) | |
| 51 #define lj_trace_initstate(g) UNUSED(g) | |
| 52 #define lj_trace_freestate(g) UNUSED(g) | |
| 53 #define lj_trace_abort(g) UNUSED(g) | |
| 54 #define lj_trace_end(J) UNUSED(J) | |
| 55 | |
| 56 #endif | |
| 57 | |
| 58 #endif |