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"]
"36" [label="bif.h" tooltip="bif.h"]
"42" [label="dictionary.h" tooltip="dictionary.h"]
"40" [label="bitstring.h" tooltip="bitstring.h"]
"45" [label="platform_nifs.h" tooltip="platform_nifs.h"]
"3" [label="atom.h" tooltip="atom.h"]
"47" [label="posix_nifs.h" tooltip="posix_nifs.h"]
"12" [label="assert.h" tooltip="assert.h"]
"17" [label="synclist.h" tooltip="synclist.h"]
"41" [label="defaultatoms.h" tooltip="defaultatoms.h"]
"31" [label="fenv.h" tooltip="fenv.h"]
"4" [label="stdint.h" tooltip="stdint.h"]
"5" [label="stdlib.h" tooltip="stdlib.h"]
"39" [label="valueshashtable.h" tooltip="valueshashtable.h"]
"48" [label="scheduler.h" tooltip="scheduler.h"]
"29" [label="exportedfunction.h" tooltip="exportedfunction.h"]
"6" [label="context.h" tooltip="context.h"]
"30" [label="errno.h" tooltip="errno.h"]
"46" [label="port.h" tooltip="port.h"]
"23" [label="utils.h" tooltip="utils.h"]
"15" [label="ets.h" tooltip="ets.h"]
"8" [label="atom_table.h" tooltip="atom_table.h"]
"11" [label="term_typedef.h" tooltip="term_typedef.h"]
"24" [label="stddef.h" tooltip="stddef.h"]
"13" [label="limits.h" tooltip="limits.h"]
"25" [label="refc_binary.h" tooltip="refc_binary.h"]
"21" [label="string.h" tooltip="string.h"]
"27" [label="mailbox.h" tooltip="mailbox.h"]
"37" [label="module.h" tooltip="module.h"]
"35" [label="avmpack.h" tooltip="avmpack.h"]
"34" [label="avm_version.h" tooltip="avm_version.h"]
"20" [label="term.h" tooltip="term.h"]
"10" [label="erl_nif.h" tooltip="erl_nif.h"]
"44" [label="interop.h" tooltip="interop.h"]
"33" [label="time.h" tooltip="time.h"]
"50" [label="unicode.h" tooltip="unicode.h"]
"32" [label="math.h" tooltip="math.h"]
"26" [label="resources.h" tooltip="resources.h"]
"19" [label="smp.h" tooltip="smp.h"]
"49" [label="sys.h" tooltip="sys.h"]
"38" [label="atomshashtable.h" tooltip="atomshashtable.h"]
"51" [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"]
"22" [label="memory.h" tooltip="memory.h"]
"18" [label="stdio.h" tooltip="stdio.h"]
"28" [label="timer_list.h" tooltip="timer_list.h"]
"16" [label="list.h" tooltip="list.h"]
"14" [label="inttypes.h" tooltip="inttypes.h"]
"43" [label="externalterm.h" tooltip="externalterm.h"]
"36" -> "9" [dir=forward tooltip="include"]
"36" -> "3" [dir=forward tooltip="include"]
"36" -> "6" [dir=forward tooltip="include"]
"36" -> "29" [dir=forward tooltip="include"]
"36" -> "37" [dir=forward tooltip="include"]
"42" -> "16" [dir=forward tooltip="include"]
"42" -> "20" [dir=forward tooltip="include"]
"40" -> "20" [dir=forward tooltip="include"]
"40" -> "9" [dir=forward tooltip="include"]
"40" -> "4" [dir=forward tooltip="include"]
"45" -> "29" [dir=forward tooltip="include"]
"45" -> "37" [dir=forward tooltip="include"]
"3" -> "4" [dir=forward tooltip="include"]
"3" -> "5" [dir=forward tooltip="include"]
"47" -> "29" [dir=forward tooltip="include"]
"47" -> "7" [dir=forward tooltip="include"]
"47" -> "20" [dir=forward tooltip="include"]
"17" -> "18" [dir=forward tooltip="include"]
"17" -> "16" [dir=forward tooltip="include"]
"17" -> "19" [dir=forward tooltip="include"]
"41" -> "7" [dir=forward tooltip="include"]
"48" -> "6" [dir=forward tooltip="include"]
"48" -> "7" [dir=forward tooltip="include"]
"29" -> "20" [dir=forward tooltip="include"]
"6" -> "7" [dir=forward tooltip="include"]
"6" -> "16" [dir=forward tooltip="include"]
"6" -> "27" [dir=forward tooltip="include"]
"6" -> "19" [dir=forward tooltip="include"]
"6" -> "20" [dir=forward tooltip="include"]
"6" -> "28" [dir=forward tooltip="include"]
"46" -> "6" [dir=forward tooltip="include"]
"46" -> "41" [dir=forward tooltip="include"]
"46" -> "7" [dir=forward tooltip="include"]
"46" -> "22" [dir=forward tooltip="include"]
"46" -> "20" [dir=forward tooltip="include"]
"23" -> "24" [dir=forward tooltip="include"]
"23" -> "18" [dir=forward tooltip="include"]
"23" -> "5" [dir=forward tooltip="include"]
"15" -> "16" [dir=forward tooltip="include"]
"15" -> "17" [dir=forward tooltip="include"]
"15" -> "20" [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" -> "16" [dir=forward tooltip="include"]
"25" -> "26" [dir=forward tooltip="include"]
"27" -> "9" [dir=forward tooltip="include"]
"27" -> "16" [dir=forward tooltip="include"]
"27" -> "11" [dir=forward tooltip="include"]
"27" -> "23" [dir=forward tooltip="include"]
"37" -> "9" [dir=forward tooltip="include"]
"37" -> "4" [dir=forward tooltip="include"]
"37" -> "3" [dir=forward tooltip="include"]
"37" -> "8" [dir=forward tooltip="include"]
"37" -> "38" [dir=forward tooltip="include"]
"37" -> "6" [dir=forward tooltip="include"]
"37" -> "29" [dir=forward tooltip="include"]
"37" -> "7" [dir=forward tooltip="include"]
"37" -> "20" [dir=forward tooltip="include"]
"37" -> "39" [dir=forward tooltip="include"]
"35" -> "7" [dir=forward tooltip="include"]
"35" -> "16" [dir=forward tooltip="include"]
"35" -> "9" [dir=forward tooltip="include"]
"35" -> "24" [dir=forward tooltip="include"]
"35" -> "4" [dir=forward tooltip="include"]
"20" -> "9" [dir=forward tooltip="include"]
"20" -> "4" [dir=forward tooltip="include"]
"20" -> "18" [dir=forward tooltip="include"]
"20" -> "5" [dir=forward tooltip="include"]
"20" -> "21" [dir=forward tooltip="include"]
"20" -> "22" [dir=forward tooltip="include"]
"20" -> "25" [dir=forward tooltip="include"]
"20" -> "23" [dir=forward tooltip="include"]
"20" -> "11" [dir=forward tooltip="include"]
"10" -> "11" [dir=forward tooltip="include"]
"44" -> "6" [dir=forward tooltip="include"]
"44" -> "20" [dir=forward tooltip="include"]
"50" -> "9" [dir=forward tooltip="include"]
"50" -> "24" [dir=forward tooltip="include"]
"50" -> "4" [dir=forward tooltip="include"]
"26" -> "5" [dir=forward tooltip="include"]
"26" -> "10" [dir=forward tooltip="include"]
"26" -> "16" [dir=forward tooltip="include"]
"26" -> "22" [dir=forward tooltip="include"]
"19" -> "9" [dir=forward tooltip="include"]
"49" -> "7" [dir=forward tooltip="include"]
"49" -> "37" [dir=forward tooltip="include"]
"49" -> "4" [dir=forward tooltip="include"]
"49" -> "33" [dir=forward tooltip="include"]
"38" -> "3" [dir=forward tooltip="include"]
"1" -> "2" [dir=forward tooltip="include"]
"1" -> "30" [dir=forward tooltip="include"]
"1" -> "31" [dir=forward tooltip="include"]
"1" -> "32" [dir=forward tooltip="include"]
"1" -> "9" [dir=forward tooltip="include"]
"1" -> "18" [dir=forward tooltip="include"]
"1" -> "21" [dir=forward tooltip="include"]
"1" -> "33" [dir=forward tooltip="include"]
"1" -> "8" [dir=forward tooltip="include"]
"1" -> "34" [dir=forward tooltip="include"]
"1" -> "35" [dir=forward tooltip="include"]
"1" -> "36" [dir=forward tooltip="include"]
"1" -> "40" [dir=forward tooltip="include"]
"1" -> "6" [dir=forward tooltip="include"]
"1" -> "41" [dir=forward tooltip="include"]
"1" -> "42" [dir=forward tooltip="include"]
"1" -> "15" [dir=forward tooltip="include"]
"1" -> "43" [dir=forward tooltip="include"]
"1" -> "7" [dir=forward tooltip="include"]
"1" -> "44" [dir=forward tooltip="include"]
"1" -> "27" [dir=forward tooltip="include"]
"1" -> "22" [dir=forward tooltip="include"]
"1" -> "37" [dir=forward tooltip="include"]
"1" -> "45" [dir=forward tooltip="include"]
"1" -> "46" [dir=forward tooltip="include"]
"1" -> "47" [dir=forward tooltip="include"]
"1" -> "48" [dir=forward tooltip="include"]
"1" -> "19" [dir=forward tooltip="include"]
"1" -> "17" [dir=forward tooltip="include"]
"1" -> "49" [dir=forward tooltip="include"]
"1" -> "20" [dir=forward tooltip="include"]
"1" -> "50" [dir=forward tooltip="include"]
"1" -> "23" [dir=forward tooltip="include"]
"1" -> "51" [dir=forward tooltip="include"]
"2" -> "3" [dir=forward tooltip="include"]
"2" -> "6" [dir=forward tooltip="include"]
"2" -> "29" [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" -> "27" [dir=forward tooltip="include"]
"7" -> "19" [dir=forward tooltip="include"]
"7" -> "17" [dir=forward tooltip="include"]
"7" -> "20" [dir=forward tooltip="include"]
"7" -> "28" [dir=forward tooltip="include"]
"22" -> "4" [dir=forward tooltip="include"]
"22" -> "5" [dir=forward tooltip="include"]
"22" -> "10" [dir=forward tooltip="include"]
"22" -> "11" [dir=forward tooltip="include"]
"22" -> "23" [dir=forward tooltip="include"]
"28" -> "9" [dir=forward tooltip="include"]
"28" -> "4" [dir=forward tooltip="include"]
"28" -> "16" [dir=forward tooltip="include"]
"16" -> "9" [dir=forward tooltip="include"]
"43" -> "20" [dir=forward tooltip="include"]
}](../../../_images/graphviz-73169248166d886b65d665e669bef1b65723ccd4.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
-
const struct Nif *nifs_get(AtomString module, AtomString function, int arity)
-
static bool is_tagged_tuple(term t, term tag, int size)
-
static bool 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)
-
int get_float_format_opts(term opts, int *scientific, int *decimals, int *compact)
-
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 inline bool is_ets_table_id(term t)
-
static void refc_binary_avm_pack_destructor(struct AVMPackData *obj, GlobalContext *global)
-
static inline uint8_t find_index(uint8_t c)
-
static void *nif_code_all_available_fold(void *accum, const void *section_ptr, uint32_t section_size, const void *beam_ptr, uint32_t flags, const char *section_name)
-
static int sort_keys_uniq(term *keys, int size, GlobalContext *global)
-
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)
-
static term math_binary_op(Context *ctx, term x_term, term y_term, binary_math_f f)
-
static avm_float_t math_cos(avm_float_t x)
-
static avm_float_t math_acos(avm_float_t x)
-
static avm_float_t math_acosh(avm_float_t x)
-
static avm_float_t math_asin(avm_float_t x)
-
static avm_float_t math_asinh(avm_float_t x)
-
static avm_float_t math_atan(avm_float_t x)
-
static avm_float_t math_atan2(avm_float_t x, avm_float_t y)
-
static avm_float_t math_atanh(avm_float_t x)
-
static avm_float_t math_ceil(avm_float_t x)
-
static avm_float_t math_cosh(avm_float_t x)
-
static avm_float_t math_exp(avm_float_t x)
-
static avm_float_t math_floor(avm_float_t x)
-
static avm_float_t math_fmod(avm_float_t x, avm_float_t y)
-
static avm_float_t math_log(avm_float_t x)
-
static avm_float_t math_log10(avm_float_t x)
-
static avm_float_t math_log2(avm_float_t x)
-
static avm_float_t math_pow(avm_float_t x, avm_float_t y)
-
static avm_float_t math_sin(avm_float_t x)
-
static avm_float_t math_sinh(avm_float_t x)
-
static avm_float_t math_sqrt(avm_float_t x)
-
static avm_float_t math_tan(avm_float_t x)
-
static avm_float_t math_tanh(avm_float_t x)
Variables
- static const char *const trace_calls_atom = "\xB" "trace_calls"
- static const char *const trace_call_args_atom = "\xF" "trace_call_args"
- static const char *const trace_returns_atom = "\xD" "trace_returns"
- static const char *const trace_send_atom = "\xA" "trace_send"
- static const char *const trace_receive_atom = "\xD" "trace_receive"
-
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 ets_new_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_ets_new}
-
static const struct Nif ets_insert_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_ets_insert}
-
static const struct Nif ets_lookup_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_ets_lookup}
-
static const struct Nif ets_lookup_element_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_ets_lookup_element}
-
static const struct Nif ets_delete_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_ets_delete}
-
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_all_available_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_code_all_available}
-
static const struct Nif code_all_loaded_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_code_all_loaded}
-
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_from_keys_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_maps_from_keys}
-
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 Nif math_cos_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_cos}
-
static const struct Nif math_acos_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_acos}
-
static const struct Nif math_acosh_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_acosh}
-
static const struct Nif math_asin_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_asin}
-
static const struct Nif math_asinh_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_asinh}
-
static const struct Nif math_atan_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_atan}
-
static const struct Nif math_atan2_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_atan2}
-
static const struct Nif math_atanh_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_atanh}
-
static const struct Nif math_ceil_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_ceil}
-
static const struct Nif math_cosh_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_cosh}
-
static const struct Nif math_exp_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_exp}
-
static const struct Nif math_floor_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_floor}
-
static const struct Nif math_fmod_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_fmod}
-
static const struct Nif math_log_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_log}
-
static const struct Nif math_log10_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_log10}
-
static const struct Nif math_log2_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_log2}
-
static const struct Nif math_pow_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_pow}
-
static const struct Nif math_sin_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_sin}
-
static const struct Nif math_sinh_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_sinh}
-
static const struct Nif math_sqrt_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_sqrt}
-
static const struct Nif math_tan_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_tan}
-
static const struct Nif math_tanh_nif = {.base.type = NIFFunctionType, .nif_ptr = nif_math_tanh}
-
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:
-
struct CodeAllAvailableAcc
Collaboration diagram for CodeAllAvailableAcc: