nifs.c
Include dependency graph for nifs.c:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"9" [label="stdbool.h" tooltip="stdbool.h"]
"35" [label="bif.h" tooltip="bif.h"]
"41" [label="dictionary.h" tooltip="dictionary.h"]
"39" [label="bitstring.h" tooltip="bitstring.h"]
"44" [label="platform_nifs.h" tooltip="platform_nifs.h"]
"3" [label="atom.h" tooltip="atom.h"]
"46" [label="posix_nifs.h" tooltip="posix_nifs.h"]
"12" [label="assert.h" tooltip="assert.h"]
"20" [label="synclist.h" tooltip="synclist.h"]
"40" [label="defaultatoms.h" tooltip="defaultatoms.h"]
"30" [label="fenv.h" tooltip="fenv.h"]
"4" [label="stdint.h" tooltip="stdint.h"]
"5" [label="stdlib.h" tooltip="stdlib.h"]
"38" [label="valueshashtable.h" tooltip="valueshashtable.h"]
"47" [label="scheduler.h" tooltip="scheduler.h"]
"28" [label="exportedfunction.h" tooltip="exportedfunction.h"]
"6" [label="context.h" tooltip="context.h"]
"29" [label="errno.h" tooltip="errno.h"]
"45" [label="port.h" tooltip="port.h"]
"17" [label="utils.h" tooltip="utils.h"]
"8" [label="atom_table.h" tooltip="atom_table.h"]
"11" [label="term_typedef.h" tooltip="term_typedef.h"]
"18" [label="stddef.h" tooltip="stddef.h"]
"13" [label="limits.h" tooltip="limits.h"]
"25" [label="refc_binary.h" tooltip="refc_binary.h"]
"23" [label="string.h" tooltip="string.h"]
"16" [label="mailbox.h" tooltip="mailbox.h"]
"36" [label="module.h" tooltip="module.h"]
"34" [label="avmpack.h" tooltip="avmpack.h"]
"33" [label="avm_version.h" tooltip="avm_version.h"]
"22" [label="term.h" tooltip="term.h"]
"10" [label="erl_nif.h" tooltip="erl_nif.h"]
"43" [label="interop.h" tooltip="interop.h"]
"32" [label="time.h" tooltip="time.h"]
"49" [label="unicode.h" tooltip="unicode.h"]
"31" [label="math.h" tooltip="math.h"]
"26" [label="resources.h" tooltip="resources.h"]
"19" [label="smp.h" tooltip="smp.h"]
"48" [label="sys.h" tooltip="sys.h"]
"37" [label="atomshashtable.h" tooltip="atomshashtable.h"]
"50" [label="nifs_hash.h" tooltip="nifs_hash.h"]
"1" [label="/home/runner/work/AtomVM/AtomVM/src/libAtomVM/nifs.c" tooltip="/home/runner/work/AtomVM/AtomVM/src/libAtomVM/nifs.c" fillcolor="#BFBFBF"]
"2" [label="nifs.h" tooltip="nifs.h"]
"7" [label="globalcontext.h" tooltip="globalcontext.h"]
"24" [label="memory.h" tooltip="memory.h"]
"21" [label="stdio.h" tooltip="stdio.h"]
"27" [label="timer_list.h" tooltip="timer_list.h"]
"15" [label="list.h" tooltip="list.h"]
"14" [label="inttypes.h" tooltip="inttypes.h"]
"42" [label="externalterm.h" tooltip="externalterm.h"]
"35" -> "9" [dir=forward tooltip="include"]
"35" -> "3" [dir=forward tooltip="include"]
"35" -> "6" [dir=forward tooltip="include"]
"35" -> "28" [dir=forward tooltip="include"]
"35" -> "36" [dir=forward tooltip="include"]
"41" -> "15" [dir=forward tooltip="include"]
"41" -> "22" [dir=forward tooltip="include"]
"39" -> "22" [dir=forward tooltip="include"]
"39" -> "9" [dir=forward tooltip="include"]
"39" -> "4" [dir=forward tooltip="include"]
"44" -> "28" [dir=forward tooltip="include"]
"44" -> "36" [dir=forward tooltip="include"]
"3" -> "4" [dir=forward tooltip="include"]
"3" -> "5" [dir=forward tooltip="include"]
"46" -> "28" [dir=forward tooltip="include"]
"46" -> "7" [dir=forward tooltip="include"]
"46" -> "22" [dir=forward tooltip="include"]
"20" -> "15" [dir=forward tooltip="include"]
"20" -> "21" [dir=forward tooltip="include"]
"20" -> "19" [dir=forward tooltip="include"]
"40" -> "7" [dir=forward tooltip="include"]
"47" -> "6" [dir=forward tooltip="include"]
"47" -> "7" [dir=forward tooltip="include"]
"28" -> "22" [dir=forward tooltip="include"]
"6" -> "7" [dir=forward tooltip="include"]
"6" -> "15" [dir=forward tooltip="include"]
"6" -> "16" [dir=forward tooltip="include"]
"6" -> "19" [dir=forward tooltip="include"]
"6" -> "22" [dir=forward tooltip="include"]
"6" -> "27" [dir=forward tooltip="include"]
"45" -> "6" [dir=forward tooltip="include"]
"45" -> "40" [dir=forward tooltip="include"]
"45" -> "7" [dir=forward tooltip="include"]
"45" -> "24" [dir=forward tooltip="include"]
"45" -> "22" [dir=forward tooltip="include"]
"17" -> "18" [dir=forward tooltip="include"]
"8" -> "9" [dir=forward tooltip="include"]
"8" -> "3" [dir=forward tooltip="include"]
"11" -> "12" [dir=forward tooltip="include"]
"11" -> "13" [dir=forward tooltip="include"]
"11" -> "14" [dir=forward tooltip="include"]
"11" -> "4" [dir=forward tooltip="include"]
"25" -> "9" [dir=forward tooltip="include"]
"25" -> "5" [dir=forward tooltip="include"]
"25" -> "15" [dir=forward tooltip="include"]
"25" -> "26" [dir=forward tooltip="include"]
"16" -> "9" [dir=forward tooltip="include"]
"16" -> "15" [dir=forward tooltip="include"]
"16" -> "11" [dir=forward tooltip="include"]
"16" -> "17" [dir=forward tooltip="include"]
"36" -> "9" [dir=forward tooltip="include"]
"36" -> "4" [dir=forward tooltip="include"]
"36" -> "3" [dir=forward tooltip="include"]
"36" -> "8" [dir=forward tooltip="include"]
"36" -> "37" [dir=forward tooltip="include"]
"36" -> "6" [dir=forward tooltip="include"]
"36" -> "28" [dir=forward tooltip="include"]
"36" -> "7" [dir=forward tooltip="include"]
"36" -> "22" [dir=forward tooltip="include"]
"36" -> "38" [dir=forward tooltip="include"]
"34" -> "7" [dir=forward tooltip="include"]
"34" -> "15" [dir=forward tooltip="include"]
"34" -> "9" [dir=forward tooltip="include"]
"34" -> "18" [dir=forward tooltip="include"]
"34" -> "4" [dir=forward tooltip="include"]
"22" -> "9" [dir=forward tooltip="include"]
"22" -> "4" [dir=forward tooltip="include"]
"22" -> "21" [dir=forward tooltip="include"]
"22" -> "5" [dir=forward tooltip="include"]
"22" -> "23" [dir=forward tooltip="include"]
"22" -> "24" [dir=forward tooltip="include"]
"22" -> "25" [dir=forward tooltip="include"]
"22" -> "17" [dir=forward tooltip="include"]
"22" -> "11" [dir=forward tooltip="include"]
"10" -> "11" [dir=forward tooltip="include"]
"43" -> "6" [dir=forward tooltip="include"]
"43" -> "22" [dir=forward tooltip="include"]
"49" -> "9" [dir=forward tooltip="include"]
"49" -> "18" [dir=forward tooltip="include"]
"49" -> "4" [dir=forward tooltip="include"]
"26" -> "5" [dir=forward tooltip="include"]
"26" -> "10" [dir=forward tooltip="include"]
"26" -> "15" [dir=forward tooltip="include"]
"26" -> "24" [dir=forward tooltip="include"]
"19" -> "9" [dir=forward tooltip="include"]
"48" -> "7" [dir=forward tooltip="include"]
"48" -> "36" [dir=forward tooltip="include"]
"48" -> "4" [dir=forward tooltip="include"]
"48" -> "32" [dir=forward tooltip="include"]
"37" -> "3" [dir=forward tooltip="include"]
"1" -> "2" [dir=forward tooltip="include"]
"1" -> "29" [dir=forward tooltip="include"]
"1" -> "30" [dir=forward tooltip="include"]
"1" -> "31" [dir=forward tooltip="include"]
"1" -> "21" [dir=forward tooltip="include"]
"1" -> "23" [dir=forward tooltip="include"]
"1" -> "32" [dir=forward tooltip="include"]
"1" -> "8" [dir=forward tooltip="include"]
"1" -> "33" [dir=forward tooltip="include"]
"1" -> "34" [dir=forward tooltip="include"]
"1" -> "35" [dir=forward tooltip="include"]
"1" -> "39" [dir=forward tooltip="include"]
"1" -> "6" [dir=forward tooltip="include"]
"1" -> "40" [dir=forward tooltip="include"]
"1" -> "41" [dir=forward tooltip="include"]
"1" -> "42" [dir=forward tooltip="include"]
"1" -> "7" [dir=forward tooltip="include"]
"1" -> "43" [dir=forward tooltip="include"]
"1" -> "16" [dir=forward tooltip="include"]
"1" -> "24" [dir=forward tooltip="include"]
"1" -> "36" [dir=forward tooltip="include"]
"1" -> "44" [dir=forward tooltip="include"]
"1" -> "45" [dir=forward tooltip="include"]
"1" -> "46" [dir=forward tooltip="include"]
"1" -> "47" [dir=forward tooltip="include"]
"1" -> "19" [dir=forward tooltip="include"]
"1" -> "20" [dir=forward tooltip="include"]
"1" -> "48" [dir=forward tooltip="include"]
"1" -> "22" [dir=forward tooltip="include"]
"1" -> "49" [dir=forward tooltip="include"]
"1" -> "17" [dir=forward tooltip="include"]
"1" -> "50" [dir=forward tooltip="include"]
"2" -> "3" [dir=forward tooltip="include"]
"2" -> "6" [dir=forward tooltip="include"]
"2" -> "28" [dir=forward tooltip="include"]
"7" -> "4" [dir=forward tooltip="include"]
"7" -> "3" [dir=forward tooltip="include"]
"7" -> "8" [dir=forward tooltip="include"]
"7" -> "10" [dir=forward tooltip="include"]
"7" -> "15" [dir=forward tooltip="include"]
"7" -> "16" [dir=forward tooltip="include"]
"7" -> "19" [dir=forward tooltip="include"]
"7" -> "20" [dir=forward tooltip="include"]
"7" -> "22" [dir=forward tooltip="include"]
"7" -> "27" [dir=forward tooltip="include"]
"24" -> "10" [dir=forward tooltip="include"]
"24" -> "11" [dir=forward tooltip="include"]
"24" -> "17" [dir=forward tooltip="include"]
"24" -> "4" [dir=forward tooltip="include"]
"24" -> "5" [dir=forward tooltip="include"]
"27" -> "9" [dir=forward tooltip="include"]
"27" -> "4" [dir=forward tooltip="include"]
"27" -> "15" [dir=forward tooltip="include"]
"42" -> "22" [dir=forward tooltip="include"]
}](../../../_images/graphviz-9321c13f2ae68275ae703cf6364641b3b3c2cf64.png)
Defines
-
_GNU_SOURCE
-
MAX_NIF_NAME_LEN 260
-
FLOAT_BUF_SIZE 64
-
RAISE(a, b)
ctx->x[0] = (a); \
ctx->x[1] = (b); \
return term_invalid_term();
-
MAX(x, y) (((x) > (y)) ? (x) : (y))
-
NOT_FOUND (0xFF)
-
DEFINE_MATH_NIF(moniker) static const struct Nif
math_##moniker##_nif = \
{ \
.base.type =
NIFFunctionType, \
.nif_ptr = nif_math_##moniker \
};
-
IF_HAVE_OPEN_CLOSE(expr) NULL
-
IF_HAVE_MKFIFO(expr) NULL
-
IF_HAVE_UNLINK(expr) NULL
-
IF_HAVE_CLOCK_SETTIME_OR_SETTIMEOFDAY(expr) NULL
-
DEFINE_UNARY_MATH_OP(moniker) static avm_float_t math_##moniker(avm_float_t
x) \
{ \
return moniker(x); \
} \
\
static
term nif_math_##moniker(Context *ctx, int argc, termargv[]) \
{ \
UNUSED(argc); \ VALIDATE_VALUE(argv[0], term_is_number); \ term t = math_unary_op(ctx, argv[0], math_##moniker); \ if (term_is_atom(t)) { \ RAISE_ERROR(t); \
}
else{ \
return t; \
} \
}
-
DEFINE_BINARY_MATH_OP(moniker) static avm_float_t math_##moniker(avm_float_t x, avm_float_t
y) \
{ \
return moniker(x, y); \
} \
\
static
term nif_math_##moniker(Context *ctx, int argc, termargv[]) \
{ \
UNUSED(argc); \ VALIDATE_VALUE(argv[0], term_is_number); \ VALIDATE_VALUE(argv[1], term_is_number); \ term t = math_binary_op(ctx, argv[0], argv[1], math_##moniker); \ if (term_is_atom(t)) { \ RAISE_ERROR(t); \
}
else{ \
return t; \
} \
}
Typedefs
-
typedef avm_float_t (*unary_math_f)(avm_float_t x)
-
typedef avm_float_t (*binary_math_f)(avm_float_t x, avm_float_t y)
Functions
-
static NativeHandlerResult process_echo_mailbox(Context *ctx)
-
static NativeHandlerResult process_console_mailbox(Context *ctx)
-
const struct Nif *nifs_get(AtomString module, AtomString function, int arity)
-
static inline term make_maybe_boxed_int64(Context *ctx, avm_int64_t value)
-
static NativeHandlerResult process_console_message(Context *ctx, term msg)
-
static int is_valid_float_string(const char *str, int len)
-
static size_t lltoa(avm_int64_t int_value, unsigned base, char *integer_string)
-
static int format_float(term value, int scientific, int decimals, int compact, char *out_buf, int outbuf_len)
-
static void *nif_iterate_processes(GlobalContext *glb, context_iterator fun, void *accum)
-
static size_t nif_num_processes(GlobalContext *glb)
-
static size_t nif_num_ports(GlobalContext *glb)
-
static void refc_binary_avm_pack_destructor(struct AVMPackData *obj, GlobalContext *global)
-
static term open_avm_error_tuple(Context *ctx, enum OpenAVMResult result)
-
static inline uint8_t find_index(uint8_t c)
-
static void maybe_clear_exceptions()
-
static term get_exception(avm_float_t f)
-
static term math_unary_op(Context *ctx, term x_term, unary_math_f f)
Variables
-
static const struct Nif binary_at_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_binary_at_2}
-
static const struct Nif binary_first_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_binary_first_1}
-
static const struct Nif binary_last_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_binary_last_1}
-
static const struct Nif binary_part_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_binary_part_3}
-
static const struct Nif binary_split_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_binary_split_2}
-
static const struct Nif make_ref_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_make_ref_0}
-
static const struct Nif atom_to_binary_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_atom_to_binary_2}
-
static const struct Nif atom_to_list_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_atom_to_list_1}
-
static const struct Nif binary_to_atom_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_binary_to_atom_2}
-
static const struct Nif binary_to_float_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_binary_to_float_1}
-
static const struct Nif binary_to_integer_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_binary_to_integer_1}
-
static const struct Nif binary_to_list_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_binary_to_list_1}
-
static const struct Nif binary_to_existing_atom_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_binary_to_existing_atom_2}
-
static const struct Nif delete_element_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_delete_element_2}
-
static const struct Nif display_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_display_1}
-
static const struct Nif erase_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_erase_1}
-
static const struct Nif error_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_error}
-
static const struct Nif exit_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_exit}
-
static const struct Nif insert_element_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_insert_element_3}
-
static const struct Nif integer_to_binary_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_integer_to_binary_2}
-
static const struct Nif integer_to_list_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_integer_to_list_2}
-
static const struct Nif float_to_binary_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_float_to_binary}
-
static const struct Nif float_to_list_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_float_to_list}
-
static const struct Nif is_process_alive_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_is_process_alive_1}
-
static const struct Nif list_to_atom_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_list_to_atom_1}
-
static const struct Nif list_to_existing_atom_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_list_to_existing_atom_1}
-
static const struct Nif list_to_binary_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_list_to_binary_1}
-
static const struct Nif list_to_integer_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_list_to_integer_1}
-
static const struct Nif list_to_float_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_list_to_float_1}
-
static const struct Nif list_to_tuple_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_list_to_tuple_1}
-
static const struct Nif iolist_size_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_iolist_size_1}
-
static const struct Nif iolist_to_binary_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_iolist_to_binary_1}
-
static const struct Nif open_port_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_open_port_2}
-
static const struct Nif make_tuple_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_make_tuple_2}
-
static const struct Nif register_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_register_2}
-
static const struct Nif unregister_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_unregister_1}
-
static const struct Nif spawn_opt_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_spawn_opt}
-
static const struct Nif spawn_fun_opt_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_spawn_fun_opt}
-
static const struct Nif send_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_send_2}
-
static const struct Nif setelement_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_setelement_3}
-
static const struct Nif whereis_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_whereis_1}
-
static const struct Nif concat_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_concat_2}
-
static const struct Nif monotonic_time_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_monotonic_time_1}
-
static const struct Nif system_time_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_system_time_1}
-
static const struct Nif universaltime_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_universaltime_0}
-
static const struct Nif localtime_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_localtime}
-
static const struct Nif timestamp_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_timestamp_0}
-
static const struct Nif system_time_to_universal_time_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_calendar_system_time_to_universal_time_2}
-
static const struct Nif tuple_to_list_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_tuple_to_list_1}
-
static const struct Nif flat_size_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erts_debug_flat_size}
-
static const struct Nif process_flag_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_process_flag}
-
static const struct Nif processes_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_processes}
-
static const struct Nif process_info_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_process_info}
-
static const struct Nif put_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_put_2}
-
static const struct Nif system_info_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_system_info}
-
static const struct Nif system_flag_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_system_flag}
-
static const struct Nif binary_to_term_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_binary_to_term}
-
static const struct Nif term_to_binary_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_term_to_binary}
-
static const struct Nif throw_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_throw}
-
static const struct Nif pid_to_list_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_pid_to_list}
-
static const struct Nif ref_to_list_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_ref_to_list}
-
static const struct Nif fun_to_list_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_fun_to_list}
-
static const struct Nif function_exported_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_function_exported}
-
static const struct Nif garbage_collect_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_garbage_collect}
-
static const struct Nif make_fun_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_make_fun_3}
-
static const struct Nif memory_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_memory}
-
static const struct Nif monitor_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_monitor}
-
static const struct Nif demonitor_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_demonitor}
-
static const struct Nif link_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_link}
-
static const struct Nif unlink_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_unlink}
-
static const struct Nif group_leader_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_group_leader}
-
static const struct Nif get_module_info_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_get_module_info}
-
static const struct Nif raise_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_erlang_raise}
-
static const struct Nif atomvm_add_avm_pack_binary_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_atomvm_add_avm_pack_binary}
-
static const struct Nif atomvm_add_avm_pack_file_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_atomvm_add_avm_pack_file}
-
static const struct Nif atomvm_close_avm_pack_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_atomvm_close_avm_pack}
-
static const struct Nif atomvm_get_start_beam_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_atomvm_get_start_beam}
-
static const struct Nif atomvm_read_priv_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_atomvm_read_priv}
-
static const struct Nif console_print_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_console_print}
-
static const struct Nif base64_encode_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_base64_encode}
-
static const struct Nif base64_decode_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_base64_decode}
-
static const struct Nif base64_encode_to_string_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_base64_encode_to_string}
-
static const struct Nif base64_decode_to_string_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_base64_decode_to_string}
-
static const struct Nif code_load_abs_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_code_load_abs}
-
static const struct Nif code_load_binary_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_code_load_binary}
-
static const struct Nif lists_reverse_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_lists_reverse}
-
static const struct Nif maps_next_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_maps_next}
-
static const struct Nif unicode_characters_to_list_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_unicode_characters_to_list}
-
static const struct Nif unicode_characters_to_binary_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_unicode_characters_to_binary}
-
static const struct AVMPackInfo refc_binary_avm_pack_info = {.destructor = refc_binary_avm_pack_destructor}
-
static char b64_table[64] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
-
struct ContextAccumulator
Collaboration diagram for ContextAccumulator:
-
struct RefcBinaryAVMPack
Collaboration diagram for RefcBinaryAVMPack: