main-apidocs-libatomvm-src-jit-dot-h.md
Include dependency graph for jit.h:
digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "14" [label="atom.h" tooltip="atom.h"] "2" [label="bitstring.h" tooltip="bitstring.h"] "16" [label="erl_nif.h" tooltip="erl_nif.h"] "27" [label="exportedfunction.h" tooltip="exportedfunction.h"] "3" [label="intn.h" tooltip="intn.h"] "1" [label="/__w/AtomVM/AtomVM/src/libAtomVM/jit.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/jit.h" fillcolor="#BFBFBF"] "21" [label="list.h" tooltip="list.h"] "23" [label="mailbox.h" tooltip="mailbox.h"] "15" [label="memory.h" tooltip="memory.h"] "20" [label="refc_binary.h" tooltip="refc_binary.h"] "22" [label="resources.h" tooltip="resources.h"] "25" [label="smp.h" tooltip="smp.h"] "24" [label="synclist.h" tooltip="synclist.h"] "11" [label="term.h" tooltip="term.h"] "17" [label="term_typedef.h" tooltip="term_typedef.h"] "26" [label="unicode.h" tooltip="unicode.h"] "6" [label="utils.h" tooltip="utils.h"] "18" [label="assert.h" tooltip="assert.h"] "7" [label="inttypes.h" tooltip="inttypes.h"] "19" [label="limits.h" tooltip="limits.h"] "4" [label="stdbool.h" tooltip="stdbool.h"] "8" [label="stddef.h" tooltip="stddef.h"] "13" [label="stdint.h" tooltip="stdint.h"] "9" [label="stdio.h" tooltip="stdio.h"] "10" [label="stdlib.h" tooltip="stdlib.h"] "5" [label="string.h" tooltip="string.h"] "12" [label="sys/types.h" tooltip="sys/types.h"] "14" -> "13" [dir=forward tooltip="include"] "14" -> "10" [dir=forward tooltip="include"] "2" -> "3" [dir=forward tooltip="include"] "2" -> "11" [dir=forward tooltip="include"] "2" -> "26" [dir=forward tooltip="include"] "2" -> "4" [dir=forward tooltip="include"] "2" -> "13" [dir=forward tooltip="include"] "16" -> "17" [dir=forward tooltip="include"] "27" -> "11" [dir=forward tooltip="include"] "3" -> "4" [dir=forward tooltip="include"] "3" -> "5" [dir=forward tooltip="include"] "3" -> "6" [dir=forward tooltip="include"] "1" -> "2" [dir=forward tooltip="include"] "1" -> "27" [dir=forward tooltip="include"] "1" -> "11" [dir=forward tooltip="include"] "1" -> "17" [dir=forward tooltip="include"] "1" -> "4" [dir=forward tooltip="include"] "21" -> "4" [dir=forward tooltip="include"] "23" -> "4" [dir=forward tooltip="include"] "23" -> "21" [dir=forward tooltip="include"] "23" -> "17" [dir=forward tooltip="include"] "23" -> "6" [dir=forward tooltip="include"] "15" -> "13" [dir=forward tooltip="include"] "15" -> "10" [dir=forward tooltip="include"] "15" -> "16" [dir=forward tooltip="include"] "15" -> "17" [dir=forward tooltip="include"] "15" -> "6" [dir=forward tooltip="include"] "20" -> "4" [dir=forward tooltip="include"] "20" -> "10" [dir=forward tooltip="include"] "20" -> "21" [dir=forward tooltip="include"] "20" -> "22" [dir=forward tooltip="include"] "22" -> "10" [dir=forward tooltip="include"] "22" -> "16" [dir=forward tooltip="include"] "22" -> "21" [dir=forward tooltip="include"] "22" -> "23" [dir=forward tooltip="include"] "22" -> "15" [dir=forward tooltip="include"] "22" -> "24" [dir=forward tooltip="include"] "25" -> "4" [dir=forward tooltip="include"] "24" -> "9" [dir=forward tooltip="include"] "24" -> "21" [dir=forward tooltip="include"] "24" -> "25" [dir=forward tooltip="include"] "11" -> "12" [dir=forward tooltip="include"] "11" -> "4" [dir=forward tooltip="include"] "11" -> "13" [dir=forward tooltip="include"] "11" -> "9" [dir=forward tooltip="include"] "11" -> "10" [dir=forward tooltip="include"] "11" -> "5" [dir=forward tooltip="include"] "11" -> "14" [dir=forward tooltip="include"] "11" -> "3" [dir=forward tooltip="include"] "11" -> "15" [dir=forward tooltip="include"] "11" -> "20" [dir=forward tooltip="include"] "11" -> "22" [dir=forward tooltip="include"] "11" -> "6" [dir=forward tooltip="include"] "11" -> "17" [dir=forward tooltip="include"] "17" -> "18" [dir=forward tooltip="include"] "17" -> "19" [dir=forward tooltip="include"] "17" -> "7" [dir=forward tooltip="include"] "17" -> "13" [dir=forward tooltip="include"] "26" -> "4" [dir=forward tooltip="include"] "26" -> "8" [dir=forward tooltip="include"] "26" -> "13" [dir=forward tooltip="include"] "6" -> "7" [dir=forward tooltip="include"] "6" -> "4" [dir=forward tooltip="include"] "6" -> "8" [dir=forward tooltip="include"] "6" -> "9" [dir=forward tooltip="include"] "6" -> "10" [dir=forward tooltip="include"] }
This graph shows which files directly or indirectly include jit.h:
digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "4" [label="/__w/AtomVM/AtomVM/src/libAtomVM/bif.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/bif.c"] "3" [label="/__w/AtomVM/AtomVM/src/libAtomVM/bif.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/bif.h"] "10" [label="/__w/AtomVM/AtomVM/src/libAtomVM/context.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/context.c"] "2" [label="/__w/AtomVM/AtomVM/src/libAtomVM/context.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/context.h"] "12" [label="/__w/AtomVM/AtomVM/src/libAtomVM/debug.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/debug.c"] "11" [label="/__w/AtomVM/AtomVM/src/libAtomVM/debug.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/debug.h"] "14" [label="/__w/AtomVM/AtomVM/src/libAtomVM/dist_nifs.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/dist_nifs.c"] "15" [label="/__w/AtomVM/AtomVM/src/libAtomVM/erl_nif_priv.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/erl_nif_priv.h"] "25" [label="/__w/AtomVM/AtomVM/src/libAtomVM/ets.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/ets.c"] "5" [label="/__w/AtomVM/AtomVM/src/libAtomVM/external_term.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/external_term.c"] "16" [label="/__w/AtomVM/AtomVM/src/libAtomVM/globalcontext.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/globalcontext.c"] "28" [label="/__w/AtomVM/AtomVM/src/libAtomVM/inet.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/inet.c"] "27" [label="/__w/AtomVM/AtomVM/src/libAtomVM/inet.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/inet.h"] "30" [label="/__w/AtomVM/AtomVM/src/libAtomVM/interop.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/interop.c"] "26" [label="/__w/AtomVM/AtomVM/src/libAtomVM/interop.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/interop.h"] "6" [label="/__w/AtomVM/AtomVM/src/libAtomVM/jit.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/jit.c"] "1" [label="/__w/AtomVM/AtomVM/src/libAtomVM/jit.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/jit.h" fillcolor="#BFBFBF"] "17" [label="/__w/AtomVM/AtomVM/src/libAtomVM/jit_stream_flash.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/jit_stream_flash.c"] "33" [label="/__w/AtomVM/AtomVM/src/libAtomVM/jit_stream_flash.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/jit_stream_flash.h"] "46" [label="/__w/AtomVM/AtomVM/src/libAtomVM/mailbox.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/mailbox.c"] "13" [label="/__w/AtomVM/AtomVM/src/libAtomVM/memory.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/memory.c"] "7" [label="/__w/AtomVM/AtomVM/src/libAtomVM/module.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/module.c"] "32" [label="/__w/AtomVM/AtomVM/src/libAtomVM/module.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/module.h"] "8" [label="/__w/AtomVM/AtomVM/src/libAtomVM/nifs.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/nifs.c"] "37" [label="/__w/AtomVM/AtomVM/src/libAtomVM/nifs.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/nifs.h"] "18" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_crypto.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_crypto.c"] "19" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_crypto.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_crypto.h"] "29" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_net.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_net.c"] "38" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_net.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_net.h"] "20" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_socket.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_socket.c"] "39" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_socket.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_socket.h"] "21" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_ssl.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_ssl.c"] "40" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_ssl.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_ssl.h"] "34" [label="/__w/AtomVM/AtomVM/src/libAtomVM/platform_nifs.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/platform_nifs.h"] "43" [label="/__w/AtomVM/AtomVM/src/libAtomVM/port.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/port.c"] "44" [label="/__w/AtomVM/AtomVM/src/libAtomVM/port.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/port.h"] "42" [label="/__w/AtomVM/AtomVM/src/libAtomVM/portnifloader.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/portnifloader.c"] "41" [label="/__w/AtomVM/AtomVM/src/libAtomVM/portnifloader.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/portnifloader.h"] "22" [label="/__w/AtomVM/AtomVM/src/libAtomVM/posix_nifs.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/posix_nifs.c"] "23" [label="/__w/AtomVM/AtomVM/src/libAtomVM/refc_binary.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/refc_binary.c"] "24" [label="/__w/AtomVM/AtomVM/src/libAtomVM/resources.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/resources.c"] "45" [label="/__w/AtomVM/AtomVM/src/libAtomVM/scheduler.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/scheduler.h"] "9" [label="/__w/AtomVM/AtomVM/src/libAtomVM/stacktrace.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/stacktrace.c"] "35" [label="/__w/AtomVM/AtomVM/src/libAtomVM/stacktrace.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/stacktrace.h"] "36" [label="/__w/AtomVM/AtomVM/src/libAtomVM/sys.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/sys.h"] "31" [label="/__w/AtomVM/AtomVM/src/libAtomVM/term.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/term.c"] "3" -> "4" [dir=back tooltip="include"] "3" -> "5" [dir=back tooltip="include"] "3" -> "6" [dir=back tooltip="include"] "3" -> "7" [dir=back tooltip="include"] "3" -> "8" [dir=back tooltip="include"] "3" -> "9" [dir=back tooltip="include"] "2" -> "3" [dir=back tooltip="include"] "2" -> "10" [dir=back tooltip="include"] "2" -> "11" [dir=back tooltip="include"] "2" -> "14" [dir=back tooltip="include"] "2" -> "15" [dir=back tooltip="include"] "2" -> "25" [dir=back tooltip="include"] "2" -> "5" [dir=back tooltip="include"] "2" -> "16" [dir=back tooltip="include"] "2" -> "26" [dir=back tooltip="include"] "2" -> "6" [dir=back tooltip="include"] "2" -> "17" [dir=back tooltip="include"] "2" -> "13" [dir=back tooltip="include"] "2" -> "7" [dir=back tooltip="include"] "2" -> "32" [dir=back tooltip="include"] "2" -> "8" [dir=back tooltip="include"] "2" -> "37" [dir=back tooltip="include"] "2" -> "18" [dir=back tooltip="include"] "2" -> "29" [dir=back tooltip="include"] "2" -> "20" [dir=back tooltip="include"] "2" -> "21" [dir=back tooltip="include"] "2" -> "43" [dir=back tooltip="include"] "2" -> "44" [dir=back tooltip="include"] "2" -> "41" [dir=back tooltip="include"] "2" -> "23" [dir=back tooltip="include"] "2" -> "24" [dir=back tooltip="include"] "2" -> "45" [dir=back tooltip="include"] "2" -> "35" [dir=back tooltip="include"] "2" -> "31" [dir=back tooltip="include"] "11" -> "12" [dir=back tooltip="include"] "11" -> "6" [dir=back tooltip="include"] "11" -> "13" [dir=back tooltip="include"] "15" -> "10" [dir=back tooltip="include"] "15" -> "14" [dir=back tooltip="include"] "15" -> "16" [dir=back tooltip="include"] "15" -> "17" [dir=back tooltip="include"] "15" -> "13" [dir=back tooltip="include"] "15" -> "8" [dir=back tooltip="include"] "15" -> "18" [dir=back tooltip="include"] "15" -> "19" [dir=back tooltip="include"] "15" -> "20" [dir=back tooltip="include"] "15" -> "21" [dir=back tooltip="include"] "15" -> "22" [dir=back tooltip="include"] "15" -> "23" [dir=back tooltip="include"] "15" -> "24" [dir=back tooltip="include"] "27" -> "28" [dir=back tooltip="include"] "27" -> "29" [dir=back tooltip="include"] "27" -> "20" [dir=back tooltip="include"] "27" -> "21" [dir=back tooltip="include"] "26" -> "4" [dir=back tooltip="include"] "26" -> "16" [dir=back tooltip="include"] "26" -> "27" [dir=back tooltip="include"] "26" -> "30" [dir=back tooltip="include"] "26" -> "8" [dir=back tooltip="include"] "26" -> "18" [dir=back tooltip="include"] "26" -> "29" [dir=back tooltip="include"] "26" -> "20" [dir=back tooltip="include"] "26" -> "21" [dir=back tooltip="include"] "26" -> "22" [dir=back tooltip="include"] "26" -> "31" [dir=back tooltip="include"] "1" -> "2" [dir=back tooltip="include"] "1" -> "6" [dir=back tooltip="include"] "1" -> "17" [dir=back tooltip="include"] "1" -> "7" [dir=back tooltip="include"] "1" -> "32" [dir=back tooltip="include"] "1" -> "8" [dir=back tooltip="include"] "33" -> "17" [dir=back tooltip="include"] "32" -> "3" [dir=back tooltip="include"] "32" -> "5" [dir=back tooltip="include"] "32" -> "6" [dir=back tooltip="include"] "32" -> "17" [dir=back tooltip="include"] "32" -> "33" [dir=back tooltip="include"] "32" -> "7" [dir=back tooltip="include"] "32" -> "8" [dir=back tooltip="include"] "32" -> "34" [dir=back tooltip="include"] "32" -> "35" [dir=back tooltip="include"] "32" -> "36" [dir=back tooltip="include"] "32" -> "31" [dir=back tooltip="include"] "37" -> "14" [dir=back tooltip="include"] "37" -> "5" [dir=back tooltip="include"] "37" -> "6" [dir=back tooltip="include"] "37" -> "17" [dir=back tooltip="include"] "37" -> "7" [dir=back tooltip="include"] "37" -> "8" [dir=back tooltip="include"] "37" -> "18" [dir=back tooltip="include"] "37" -> "19" [dir=back tooltip="include"] "37" -> "29" [dir=back tooltip="include"] "37" -> "38" [dir=back tooltip="include"] "37" -> "20" [dir=back tooltip="include"] "37" -> "39" [dir=back tooltip="include"] "37" -> "21" [dir=back tooltip="include"] "37" -> "40" [dir=back tooltip="include"] "37" -> "41" [dir=back tooltip="include"] "37" -> "22" [dir=back tooltip="include"] "37" -> "9" [dir=back tooltip="include"] "19" -> "16" [dir=back tooltip="include"] "19" -> "18" [dir=back tooltip="include"] "38" -> "29" [dir=back tooltip="include"] "39" -> "20" [dir=back tooltip="include"] "39" -> "21" [dir=back tooltip="include"] "40" -> "21" [dir=back tooltip="include"] "34" -> "8" [dir=back tooltip="include"] "44" -> "28" [dir=back tooltip="include"] "44" -> "8" [dir=back tooltip="include"] "44" -> "29" [dir=back tooltip="include"] "44" -> "20" [dir=back tooltip="include"] "44" -> "21" [dir=back tooltip="include"] "44" -> "43" [dir=back tooltip="include"] "41" -> "42" [dir=back tooltip="include"] "45" -> "16" [dir=back tooltip="include"] "45" -> "6" [dir=back tooltip="include"] "45" -> "46" [dir=back tooltip="include"] "45" -> "8" [dir=back tooltip="include"] "45" -> "20" [dir=back tooltip="include"] "35" -> "6" [dir=back tooltip="include"] "35" -> "9" [dir=back tooltip="include"] "36" -> "10" [dir=back tooltip="include"] "36" -> "16" [dir=back tooltip="include"] "36" -> "17" [dir=back tooltip="include"] "36" -> "7" [dir=back tooltip="include"] "36" -> "8" [dir=back tooltip="include"] "36" -> "20" [dir=back tooltip="include"] "36" -> "24" [dir=back tooltip="include"] }
Defines
TYPEDEF_MODULE
JIT_ARCH_X86_64 1
JIT_ARCH_AARCH64 2
JIT_ARCH_ARMV6M 3
JIT_ARCH_RISCV32 4
JIT_ARCH_RISCV64 5
JIT_ARCH_ARM32 6
JIT_ARCH_WASM32 7
JIT_ARCH_XTENSA 8
CALL_EXT_NO_DEALLOC -1
CALL_EXT_NO_DEALLOC_MFA -2
JIT_FORMAT_VERSION 1
JIT_VARIANT_PIC 1
JIT_VARIANT_FLOAT32 2
JIT_VARIANT_THUMB2 4
Typedefs
typedef struct Module Module
typedef Context *(*ModuleNativeEntryPoint)(Context *ctx, JITState *jit_state, const ModuleNativeInterface *p)
typedef ModuleNativeEntryPoint NativeContinuation
Enums
enum TrapAndLoadResult
Values:
enumerator TRAP_AND_LOAD_OK
enumerator TRAP_AND_LOAD_CODE_SERVER_NOT_FOUND
Functions
ModuleNativeEntryPoint jit_stream_entry_point(Context *ctx, term jit_stream)
Return the entry point from a given jit stream.
Platform implementing JIT must provide this function which is called by code_server:set_native_code/2
Parameters:
ctx – the current context (code_server)
jit_stream – the jit stream term
Returns:
the pointer to the first function
enum TrapAndLoadResult jit_trap_and_load(Context *ctx, Module *mod, uint32_t label)
Trap a process and load module, process shall be resumed at given label.
Parameters:
ctx – the process to trap
mod – the module to load
label – the label to resume the process to
void jit_debug_register_code(Module *mod, const void *native_code, size_t native_size, ModuleNativeEntryPoint entry_point)
Register JIT-compiled code with debug info with GDB/LLDB.
This function registers native code and associated DWARF debug information with the debugger using the GDB JIT interface. This allows debuggers to show function names and source line information for JIT code.
Parameters:
mod – The module containing the JIT code
native_code – Pointer to the native machine code
native_size – Size of the native code in bytes
entry_point – The actual mapped entry point address
void jit_debug_unregister_code(Context *ctx, Module *mod)
Unregister JIT-compiled code from debugger.
This function unregisters previously registered JIT code from the debugger. Should be called when a module is unloaded.
Parameters:
ctx – The context
mod – The module being unloaded
Variables
const ModuleNativeInterface module_native_interface
struct JITState
#include <jit.h>
Collaboration diagram for JITState:
digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "14" [label="AtomTable" tooltip="AtomTable"] "3" [label="Context" tooltip="Context"] "13" [label="Ets" tooltip="Ets"] "23" [label="ExportedFunction" tooltip="ExportedFunction"] "4" [label="GlobalContext" tooltip="GlobalContext"] "15" [label="HNode" tooltip="HNode"] "16" [label="HNodeGroup" tooltip="HNodeGroup"] "19" [label="Heap" tooltip="Heap"] "20" [label="HeapFragment" tooltip="HeapFragment"] "1" [label="JITState" tooltip="JITState" fillcolor="#BFBFBF"] "5" [label="ListHead" tooltip="ListHead"] "24" [label="LiteralEntry" tooltip="LiteralEntry"] "22" [label="Mailbox" tooltip="Mailbox"] "8" [label="MailboxMessage" tooltip="MailboxMessage"] "7" [label="MessageQueueItem" tooltip="MessageQueueItem"] "2" [label="Module" tooltip="Module"] "10" [label="RefcBinary" tooltip="RefcBinary"] "9" [label="RefcBinaryQueueItem" tooltip="RefcBinaryQueueItem"] "11" [label="ResourceType" tooltip="ResourceType"] "6" [label="SpinLock" tooltip="SpinLock"] "12" [label="SyncList" tooltip="SyncList"] "18" [label="TimerList" tooltip="TimerList"] "21" [label="TimerListItem" tooltip="TimerListItem"] "17" [label="ValuesHashTable" tooltip="ValuesHashTable"] "14" -> "15" [dir=forward tooltip="usage"] "14" -> "16" [dir=forward tooltip="usage"] "3" -> "4" [dir=forward tooltip="usage"] "3" -> "19" [dir=forward tooltip="usage"] "3" -> "5" [dir=forward tooltip="usage"] "3" -> "21" [dir=forward tooltip="usage"] "3" -> "2" [dir=forward tooltip="usage"] "3" -> "22" [dir=forward tooltip="usage"] "3" -> "3" [dir=forward tooltip="usage"] "13" -> "12" [dir=forward tooltip="usage"] "4" -> "5" [dir=forward tooltip="usage"] "4" -> "6" [dir=forward tooltip="usage"] "4" -> "7" [dir=forward tooltip="usage"] "4" -> "9" [dir=forward tooltip="usage"] "4" -> "12" [dir=forward tooltip="usage"] "4" -> "13" [dir=forward tooltip="usage"] "4" -> "14" [dir=forward tooltip="usage"] "4" -> "17" [dir=forward tooltip="usage"] "4" -> "2" [dir=forward tooltip="usage"] "4" -> "18" [dir=forward tooltip="usage"] "4" -> "11" [dir=forward tooltip="usage"] "15" -> "15" [dir=forward tooltip="usage"] "16" -> "16" [dir=forward tooltip="usage"] "16" -> "15" [dir=forward tooltip="usage"] "19" -> "20" [dir=forward tooltip="usage"] "20" -> "20" [dir=forward tooltip="usage"] "1" -> "2" [dir=forward tooltip="usage"] "5" -> "5" [dir=forward tooltip="usage"] "22" -> "8" [dir=forward tooltip="usage"] "8" -> "8" [dir=forward tooltip="usage"] "7" -> "7" [dir=forward tooltip="usage"] "7" -> "8" [dir=forward tooltip="usage"] "2" -> "3" [dir=forward tooltip="usage"] "2" -> "23" [dir=forward tooltip="usage"] "2" -> "24" [dir=forward tooltip="usage"] "10" -> "5" [dir=forward tooltip="usage"] "10" -> "11" [dir=forward tooltip="usage"] "9" -> "9" [dir=forward tooltip="usage"] "9" -> "10" [dir=forward tooltip="usage"] "11" -> "5" [dir=forward tooltip="usage"] "11" -> "4" [dir=forward tooltip="usage"] "11" -> "12" [dir=forward tooltip="usage"] "12" -> "5" [dir=forward tooltip="usage"] "18" -> "5" [dir=forward tooltip="usage"] "21" -> "5" [dir=forward tooltip="usage"] "17" -> "15" [dir=forward tooltip="usage"] }
Public Members
NativeContinuation continuation
const void *continuation_pc
Module *union JITStateint remaining_reductions
struct ModuleNativeInterface
#include <jit.h>
Collaboration diagram for ModuleNativeInterface:
digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "13" [label="AtomTable" tooltip="AtomTable"] "2" [label="Context" tooltip="Context"] "12" [label="Ets" tooltip="Ets"] "18" [label="ExportedFunction" tooltip="ExportedFunction"] "3" [label="GlobalContext" tooltip="GlobalContext"] "14" [label="HNode" tooltip="HNode"] "15" [label="HNodeGroup" tooltip="HNodeGroup"] "21" [label="Heap" tooltip="Heap"] "22" [label="HeapFragment" tooltip="HeapFragment"] "4" [label="ListHead" tooltip="ListHead"] "19" [label="LiteralEntry" tooltip="LiteralEntry"] "24" [label="Mailbox" tooltip="Mailbox"] "7" [label="MailboxMessage" tooltip="MailboxMessage"] "6" [label="MessageQueueItem" tooltip="MessageQueueItem"] "17" [label="Module" tooltip="Module"] "1" [label="ModuleNativeInterface" tooltip="ModuleNativeInterface" fillcolor="#BFBFBF"] "9" [label="RefcBinary" tooltip="RefcBinary"] "8" [label="RefcBinaryQueueItem" tooltip="RefcBinaryQueueItem"] "10" [label="ResourceType" tooltip="ResourceType"] "5" [label="SpinLock" tooltip="SpinLock"] "11" [label="SyncList" tooltip="SyncList"] "20" [label="TimerList" tooltip="TimerList"] "23" [label="TimerListItem" tooltip="TimerListItem"] "16" [label="ValuesHashTable" tooltip="ValuesHashTable"] "13" -> "14" [dir=forward tooltip="usage"] "13" -> "15" [dir=forward tooltip="usage"] "2" -> "3" [dir=forward tooltip="usage"] "2" -> "21" [dir=forward tooltip="usage"] "2" -> "4" [dir=forward tooltip="usage"] "2" -> "23" [dir=forward tooltip="usage"] "2" -> "17" [dir=forward tooltip="usage"] "2" -> "24" [dir=forward tooltip="usage"] "2" -> "2" [dir=forward tooltip="usage"] "12" -> "11" [dir=forward tooltip="usage"] "3" -> "4" [dir=forward tooltip="usage"] "3" -> "5" [dir=forward tooltip="usage"] "3" -> "6" [dir=forward tooltip="usage"] "3" -> "8" [dir=forward tooltip="usage"] "3" -> "11" [dir=forward tooltip="usage"] "3" -> "12" [dir=forward tooltip="usage"] "3" -> "13" [dir=forward tooltip="usage"] "3" -> "16" [dir=forward tooltip="usage"] "3" -> "17" [dir=forward tooltip="usage"] "3" -> "20" [dir=forward tooltip="usage"] "3" -> "10" [dir=forward tooltip="usage"] "14" -> "14" [dir=forward tooltip="usage"] "15" -> "15" [dir=forward tooltip="usage"] "15" -> "14" [dir=forward tooltip="usage"] "21" -> "22" [dir=forward tooltip="usage"] "22" -> "22" [dir=forward tooltip="usage"] "4" -> "4" [dir=forward tooltip="usage"] "24" -> "7" [dir=forward tooltip="usage"] "7" -> "7" [dir=forward tooltip="usage"] "6" -> "6" [dir=forward tooltip="usage"] "6" -> "7" [dir=forward tooltip="usage"] "17" -> "2" [dir=forward tooltip="usage"] "17" -> "18" [dir=forward tooltip="usage"] "17" -> "19" [dir=forward tooltip="usage"] "1" -> "2" [dir=forward tooltip="usage"] "9" -> "4" [dir=forward tooltip="usage"] "9" -> "10" [dir=forward tooltip="usage"] "8" -> "8" [dir=forward tooltip="usage"] "8" -> "9" [dir=forward tooltip="usage"] "10" -> "4" [dir=forward tooltip="usage"] "10" -> "3" [dir=forward tooltip="usage"] "10" -> "11" [dir=forward tooltip="usage"] "11" -> "4" [dir=forward tooltip="usage"] "20" -> "4" [dir=forward tooltip="usage"] "23" -> "4" [dir=forward tooltip="usage"] "16" -> "14" [dir=forward tooltip="usage"] }
Public Members
Context *(*raise_error)(Context *ctx, JITState *jit_state, int offset, term error_term)
Context *(*do_return)(Context *ctx, JITState *jit_state)
Context *(*schedule_next_cp)(Context *ctx, JITState *jit_state)
term (*module_get_atom_term_by_id)(JITState *jit_state, int atom_index)
Context *(*call_ext)(Context *ctx, JITState *jit_state, int offset, int arity, int index, int n_words)
bool (*allocate)(Context *ctx, JITState *jit_state, uint32_t stack_need, uint32_t heap_need, uint32_t live)
Context *(*handle_error)(Context *ctx, JITState *jit_state, int offset)
void (*jit_trim_live_regs)(Context *ctx, uint32_t live)
BifImpl0 (*get_imported_bif)(JITState *jit_state, uint32_t bif)
bool (*deallocate)(Context *ctx, JITState *jit_state, uint32_t n_words)
Context *(*terminate_context)(Context *ctx, JITState *jit_state)
TermCompareResult (*term_compare)(Context *ctx, JITState *jit_state, term t, term other, TermCompareOpts opts)
bool (*test_heap)(Context *ctx, JITState *jit_state, uint32_t heap_need, uint32_t live)
term (*put_list)(Context *ctx, term head, term tail)
term (*module_load_literal)(Context *ctx, JITState *jit_state, int index)
term (*alloc_boxed_integer_fragment)(Context *ctx, avm_int64_t value)
term (*term_alloc_tuple)(Context *ctx, uint32_t size)
bool (*send)(Context *ctx, JITState *jit_state)
term *(*extended_register_pointer)(Context *ctx, unsigned int index)
Context *(*raise_error_tuple)(Context *ctx, JITState *jit_state, int offset, term error_atom, term arg1)
term (*term_alloc_fun)(Context *ctx, JITState *jit_state, uint32_t fun_index, uint32_t numfree)
Context *(*process_signal_messages)(Context *ctx, JITState *jit_state)
term (*mailbox_peek)(Context *ctx)
void (*mailbox_remove_message)(Context *ctx)
void (*timeout)(Context *ctx)
void (*mailbox_next)(Context *ctx)
void (*cancel_timeout)(Context *ctx)
void (*clear_timeout_flag)(Context *ctx)
Context *(*raise)(Context *ctx, JITState *jit_state, term stacktrace, term exc_value)
Context *(*schedule_wait_cp)(Context *ctx, JITState *jit_state)
Context *(*wait_timeout)(Context *ctx, JITState *jit_state, term timeout, int label)
Context *(*wait_timeout_trap_handler)(Context *ctx, JITState *jit_state, int label)
Context *(*call_fun)(Context *ctx, JITState *jit_state, int offset, term fun, unsigned int args_count)
int (*context_get_flags)(Context *ctx, int mask)
void (*context_ensure_fpregs)(Context *ctx)
term (*term_from_float)(Context *ctx, int fpreg)
bool (*term_is_number)(term t)
void (*term_conv_to_float)(Context *ctx, term t, int fpreg)
bool (*fadd)(Context *ctx, int fpreg_1, int fpreg_2, int fpreg_3)
bool (*fsub)(Context *ctx, int fpreg_1, int fpreg_2, int fpreg_3)
bool (*fmul)(Context *ctx, int fpreg_1, int fpreg_2, int fpreg_3)
bool (*fdiv)(Context *ctx, int fpreg_1, int fpreg_2, int fpreg_3)
void (*fnegate)(Context *ctx, int fpreg_1, int fpreg_2)
bool (*catch_end)(Context *ctx, JITState *jit_state)
bool (*memory_ensure_free_with_roots)(Context *ctx, JITState *jit_state, int sz, int live, int flags)
term (*term_alloc_bin_match_state)(Context *ctx, term src, int slots)
term (*bitstring_extract_integer)(Context *ctx, JITState *jit_state, term *bin_ptr, size_t offset, int n, int bs_flags)
size_t (*term_sub_binary_heap_size)(term *bin_ptr, size_t size)
term (*term_maybe_create_sub_binary)(Context *ctx, term bin, size_t offset, size_t len)
int (*term_find_map_pos)(Context *ctx, term map, term key)
int (*bitstring_utf8_size)(int c)
int (*bitstring_utf16_size)(int c)
term (*term_create_empty_binary)(Context *ctx, size_t len)
int (*decode_flags_list)(Context *ctx, JITState *jit_state, term l)
int (*bitstring_insert_utf8)(term bin, size_t offset, int c)
int (*bitstring_insert_utf16)(term bin, size_t offset, int c, enum BitstringFlags flags)
bool (*bitstring_insert_utf32)(term bin, size_t offset, uint32_t c, enum BitstringFlags flags)
bool (*bitstring_insert_integer)(term bin, size_t offset, term value, size_t n, enum BitstringFlags flags)
void (*bitstring_copy_module_str)(Context *ctx, JITState *jit_state, term bin, size_t offset, int str_id, size_t len)
int (*bitstring_copy_binary)(Context *ctx, JITState *jit_state, term t, size_t offset, term src, term size)
Context *(*apply)(Context *ctx, JITState *jit_state, int offset, term module, term function, unsigned int arity)
void *(*malloc)(Context *ctx, JITState *jit_state, size_t sz)
void (*free)(void *ptr)
term (*put_map_assoc)(Context *ctx, JITState *jit_state, term src, size_t new_entries, size_t num_elements, term *kv)
term (*bitstring_extract_float)(Context *ctx, term *bin_ptr, size_t offset, int n, int bs_flags)
int (*module_get_fun_arity)(Module *fun_module, uint32_t fun_index)
bool (*bitstring_match_module_str)(Context *ctx, JITState *jit_state, term bin, size_t offset, int str_id, size_t len)
term (*bitstring_get_utf8)(term src)
term (*bitstring_get_utf16)(term src, int flags_value)
term (*bitstring_get_utf32)(term src, int flags_value)
term (*term_copy_map)(Context *ctx, term src)
term (*stacktrace_build)(Context *ctx)
term (*term_reuse_binary)(Context *ctx, term src, size_t len)
term (*alloc_big_integer_fragment)(Context *ctx, size_t digits_len, term_integer_sign_t sign)
bool (*bitstring_insert_float)(term bin, size_t offset, term value, size_t n, enum BitstringFlags flags)
Context *(*raw_raise)(Context *ctx, JITState *jit_state)
Context *(*raise_error_mfa)(Context *ctx, JITState *jit_state, int offset, int function_atom_index, int arity)
void (*try_case)(Context *ctx)