libAtomVM Indexļ
- __attribute__
Public Members
-
char magic[4]
-
uint32_t size
-
uint32_t info_size
-
uint32_t version
-
uint32_t opcode_max
-
uint32_t labels
-
uint32_t functions_count
-
uint8_t code[1]
-
char magic[4]
-
struct AtomsHashTable
Collaboration diagram for AtomsHashTable:
-
struct AtomStringIntPair
-
struct AVMPackData
Collaboration diagram for AVMPackData:
Public Members
-
const struct AVMPackInfo *obj_info
-
struct ListHead avmpack_head
-
bool in_use
-
int name_atom_id
-
const void *data
-
const struct AVMPackInfo *obj_info
-
struct AVMPackInfo
Public Members
-
void (*destructor)(struct AVMPackData *obj, GlobalContext *global)
-
void (*destructor)(struct AVMPackData *obj, GlobalContext *global)
-
struct Bif
Collaboration diagram for Bif:
Public Members
-
struct ExportedFunction base
-
BifImpl0 bif0_ptr
-
BifImpl1 bif1_ptr
-
BifImpl2 bif2_ptr
-
union Bif::[anonymous] [anonymous]
-
struct ExportedFunction base
-
struct BuiltInAtomRequestSignal
Collaboration diagram for BuiltInAtomRequestSignal:
-
struct BuiltInAtomSignal
Collaboration diagram for BuiltInAtomSignal:
-
struct CharDataToBytesAcc
Collaboration diagram for CharDataToBytesAcc:
Public Members
-
enum CharDataEncoding in_encoding
-
enum CharDataEncoding out_encoding
-
uint8_t *output
-
term *rest
-
Heap *heap
-
bool badarg
-
bool incomplete_transform
-
enum CharDataEncoding in_encoding
-
struct CharDataToBytesSizeAcc
Public Members
-
enum CharDataEncoding in_encoding
-
enum CharDataEncoding out_encoding
-
size_t size
-
size_t rest_size
-
bool badarg
-
bool incomplete_transform
-
enum CharDataEncoding in_encoding
-
struct ConstAVMPack
Collaboration diagram for ConstAVMPack:
Public Members
-
struct AVMPackData base
-
struct AVMPackData base
-
struct Context
Collaboration diagram for Context:
Public Members
-
GlobalContext *global
-
Heap heap
-
term *e
-
term x[MAX_REG]
-
struct ListHead processes_list_head
-
struct ListHead processes_table_head
-
int32_t process_id
-
struct TimerListItem timer_list_head
-
struct ListHead monitors_head
-
avm_float_t *fr
-
size_t min_heap_size
-
size_t max_heap_size
-
enum HeapGrowthStrategy heap_growth_strategy
-
unsigned long cp
-
Module *saved_module
-
const void *saved_ip
-
void *restore_trap_handler
-
Mailbox mailbox
-
struct ListHead dictionary
-
native_handler_f native_handler
-
uint64_t reductions
-
unsigned int leader
-
unsigned int has_min_heap_size
-
unsigned int has_max_heap_size
-
bool trap_exit
- enum ContextFlags ATOMIC flags
-
void *platform_data
-
term group_leader
-
term bs
-
size_t bs_offset
-
term exit_reason
-
GlobalContext *global
-
struct ContextAccumulator
Collaboration diagram for ContextAccumulator:
-
struct CtrDrbgResource
Public Members
-
mbedtls_ctr_drbg_context context
-
mbedtls_ctr_drbg_context context
-
struct DictEntry
Collaboration diagram for DictEntry:
-
struct dreg_gc_safe_t
-
struct EntropyContextResource
Public Members
-
mbedtls_entropy_context context
-
mbedtls_entropy_context context
-
struct ErlNifEnv
Collaboration diagram for ErlNifEnv:
-
struct ErlNifResourceTypeInit
Public Members
-
int members
-
ErlNifResourceDtor *dtor
-
ErlNifResourceStop *stop
-
ErlNifResourceDown *down
-
int members
-
struct ExportedFunction
Public Members
-
enum FunctionType type
-
enum FunctionType type
-
union float_term_t
-
struct FprintfFun
Collaboration diagram for FprintfFun:
-
struct GCBif
Collaboration diagram for GCBif:
Public Members
-
struct ExportedFunction base
-
GCBifImpl1 gcbif1_ptr
-
GCBifImpl2 gcbif2_ptr
-
GCBifImpl3 gcbif3_ptr
-
union GCBif::[anonymous] [anonymous]
-
struct ExportedFunction base
-
struct GlobalContext
Collaboration diagram for GlobalContext:
Public Members
-
struct ListHead ready_processes
-
struct ListHead running_processes
-
struct ListHead waiting_processes
-
SpinLock processes_spinlock
-
struct SyncList refc_binaries
-
struct SyncList processes_table
-
struct SyncList registered_processes
-
struct SyncList listeners
-
struct SyncList resource_types
-
struct SyncList select_events
-
int32_t last_process_id
-
SpinLock atom_insert_lock
-
struct AtomsHashTable *atoms_table
-
struct ValuesHashTable *atoms_ids_table
-
struct AtomsHashTable *modules_table
-
RWLock *modules_lock
-
Module **modules_by_index
-
int loaded_modules_count
-
struct SyncList avmpack_data
-
struct TimerList timer_list
-
SpinLock timer_spinlock
-
unsigned long long ref_ticks
-
SpinLock ref_ticks_spinlock
- int ATOMIC online_schedulers
-
int running_schedulers
- bool ATOMIC waiting_scheduler
-
Mutex *schedulers_mutex
-
CondVar *schedulers_cv
- bool ATOMIC scheduler_stop_all
-
SpinLock env_spinlock
-
void *platform_data
-
struct ListHead ready_processes
-
struct Heap
Collaboration diagram for Heap:
-
struct HeapFragment
Collaboration diagram for HeapFragment:
Public Members
-
HeapFragment *next
-
term mso_list
-
term *heap_end
-
union HeapFragment::[anonymous] [anonymous]
-
term storage[]
-
HeapFragment *next
-
struct HNode
Collaboration diagram for HNode:
-
struct IFFRecord
Public Members
-
const char name[4]
-
uint32_t size
-
const char name[4]
-
struct InMemoryAVMPack
Collaboration diagram for InMemoryAVMPack:
Public Members
-
struct AVMPackData base
-
struct AVMPackData base
-
struct Int24
Public Members
-
int32_t val24
-
int32_t val24
-
struct Int40
Public Members
-
int64_t val40
-
int64_t val40
-
struct Int48
Public Members
-
int64_t val48
-
int64_t val48
-
struct Int56
Public Members
-
int64_t val56
-
int64_t val56
-
struct kv_pair
-
struct LineRefOffset
Collaboration diagram for LineRefOffset:
-
struct ListHead
Collaboration diagram for ListHead:
-
struct LiteralEntry
Public Members
-
uint32_t size
-
void const *data
-
uint32_t size
-
struct Mailbox
Collaboration diagram for Mailbox:
Public Members
- MailboxMessage *ATOMIC outer_first
-
MailboxMessage *inner_first
-
MailboxMessage *inner_last
-
MailboxMessage *receive_pointer
-
MailboxMessage *receive_pointer_prev
-
struct MailboxMessage
Collaboration diagram for MailboxMessage:
Public Members
-
MailboxMessage *next
-
enum MessageType type
-
term *heap_fragment_end
-
union MailboxMessage::[anonymous] [anonymous]
-
MailboxMessage *next
-
union maybe_unsigned_int16
Public Members
-
uint16_t u
-
int16_t s
-
uint16_t u
-
union maybe_unsigned_int32
Public Members
-
uint32_t u
-
int32_t s
-
uint32_t u
-
union maybe_unsigned_int64
Public Members
-
uint64_t u
-
int64_t s
-
uint64_t u
-
union maybe_unsigned_int8
Public Members
-
uint8_t u
-
int8_t s
-
uint8_t u
-
struct Message
Collaboration diagram for Message:
-
struct Module
Collaboration diagram for Module:
Public Members
-
CodeChunk *code
-
void *export_table
-
void *local_table
-
void *atom_table
-
void *fun_table
-
void *str_table
-
size_t str_table_len
-
uint16_t *line_refs
-
struct ModuleFilename *filenames
-
struct ListHead line_ref_offsets
-
const struct ExportedFunction **imported_funcs
-
const uint8_t **labels
-
void *literals_data
-
struct LiteralEntry *literals_table
-
int *local_atoms_to_global_table
-
void *module_platform_data
-
int module_index
-
int end_instruction_ii
-
unsigned int free_literals_data
-
Mutex *mutex
-
CodeChunk *code
-
struct ModuleFilename
Public Members
-
uint8_t *data
-
size_t len
-
uint8_t *data
-
struct ModuleFunction
Collaboration diagram for ModuleFunction:
-
struct Monitor
Collaboration diagram for Monitor:
-
struct Nif
Collaboration diagram for Nif:
-
struct PrinterFun
Collaboration diagram for PrinterFun:
Public Members
-
printer_function_t print
-
printer_function_t print
-
struct RefcBinary
Collaboration diagram for RefcBinary:
Public Members
-
struct ListHead head
- size_t ATOMIC ref_count
-
size_t size
-
struct ResourceType *resource_type
-
uint8_t data[]
-
struct ListHead head
-
struct RefcBinaryAVMPack
Collaboration diagram for RefcBinaryAVMPack:
-
struct RefSignal
Collaboration diagram for RefSignal:
-
struct RegisteredProcess
Collaboration diagram for RegisteredProcess:
-
struct ResourceMonitor
Collaboration diagram for ResourceMonitor:
-
struct ResourceType
Collaboration diagram for ResourceType:
Public Members
-
struct ListHead head
-
const char *name
-
GlobalContext *global
-
struct ListHead monitors
-
ErlNifResourceDtor *dtor
-
ErlNifResourceStop *stop
-
ErlNifResourceDown *down
-
struct ListHead head
-
struct SelectEvent
Collaboration diagram for SelectEvent:
Public Members
-
struct ListHead head
-
ErlNifEvent event
-
struct RefcBinary *resource
-
bool read
-
bool write
-
bool close
-
int32_t local_pid
-
uint64_t ref_ticks
-
struct ListHead head
-
struct SnprintfFun
Collaboration diagram for SnprintfFun:
-
struct SpinLock
Public Members
- int ATOMIC lock
-
struct SSLConfigResource
Public Members
-
mbedtls_ssl_config config
-
mbedtls_ssl_config config
-
struct SSLContextResource
Public Members
-
mbedtls_ssl_context context
-
mbedtls_ssl_context context
-
struct SyncList
Collaboration diagram for SyncList:
-
struct TempStack
-
struct TermSignal
Collaboration diagram for TermSignal:
-
struct TimerList
Collaboration diagram for TimerList:
-
struct TimerListItem
Collaboration diagram for TimerListItem:
-
struct UnresolvedFunctionCall
Collaboration diagram for UnresolvedFunctionCall:
-
struct ValuesHashTable
Collaboration diagram for ValuesHashTable:
- file atom.c
Include dependency graph for atom.c:
Functions
-
void atom_string_to_c(AtomString atom_string, char *buf, size_t bufsize)
-
int atom_are_equals(AtomString a, AtomString b)
-
void atom_write_mfa(char *buf, size_t buf_size, AtomString module, AtomString function, unsigned int arity)
-
void atom_string_to_c(AtomString atom_string, char *buf, size_t bufsize)
- file atom.h
Include dependency graph for atom.h:
This graph shows which files directly or indirectly include atom.h:
Defines
-
ATOM_STR(LENSTR, STR)
Typedefs
-
typedef const void *AtomString
Functions
-
void atom_string_to_c(AtomString atom_string, char *buf, size_t bufsize)
-
int atom_are_equals(AtomString a, AtomString b)
-
static inline size_t atom_string_len(AtomString atom_str)
-
static inline const void *atom_string_data(AtomString atom_str)
-
void atom_write_mfa(char *buf, size_t buf_size, AtomString module, AtomString function, unsigned int arity)
-
ATOM_STR(LENSTR, STR)
- file atomshashtable.c
Include dependency graph for atomshashtable.c:
Defines
-
SMP_RDLOCK(htable)
-
SMP_WRLOCK(htable)
-
SMP_UNLOCK(htable)
-
DEFAULT_SIZE
Functions
-
static unsigned long sdbm_hash(const unsigned char *str, int len)
-
struct AtomsHashTable *atomshashtable_new()
-
int atomshashtable_insert(struct AtomsHashTable *hash_table, AtomString string, unsigned long value)
-
unsigned long atomshashtable_get_value(const struct AtomsHashTable *hash_table, const AtomString string, unsigned long default_value)
-
int atomshashtable_has_key(const struct AtomsHashTable *hash_table, const AtomString string)
-
SMP_RDLOCK(htable)
- file atomshashtable.h
Include dependency graph for atomshashtable.h:
This graph shows which files directly or indirectly include atomshashtable.h:
Defines
-
TYPEDEF_RWLOCK
-
TO_ATOMSHASHTABLE_VALUE(value)
Typedefs
-
typedef struct RWLock RWLock
Functions
-
struct AtomsHashTable *atomshashtable_new()
-
int atomshashtable_insert(struct AtomsHashTable *hash_table, AtomString string, unsigned long value)
-
unsigned long atomshashtable_get_value(const struct AtomsHashTable *hash_table, AtomString string, unsigned long default_value)
-
int atomshashtable_has_key(const struct AtomsHashTable *hash_table, AtomString string)
-
TYPEDEF_RWLOCK
- file avmpack.c
Include dependency graph for avmpack.c:
Defines
-
AVMPACK_SIZE
Functions
-
static inline int pad(int size)
-
int avmpack_is_valid(const void *avmpack_binary, uint32_t size)
-
int avmpack_find_section_by_flag(const void *avmpack_binary, uint32_t flags_mask, const void **ptr, uint32_t *size, const char **name)
-
int avmpack_find_section_by_name(const void *avmpack_binary, const char *name, const void **ptr, uint32_t *size)
-
void *avmpack_fold(void *accum, const void *avmpack_binary, avmpack_fold_fun fold_fun)
-
static void in_memory_avm_pack_destructor(struct AVMPackData *obj, GlobalContext *global)
-
static void const_avm_pack_destructor(struct AVMPackData *obj, GlobalContext *global)
Variables
- const struct AVMPackInfo in_memory_avm_pack_info = {.destructor = in_memory_avm_pack_destructor}
- const struct AVMPackInfo const_avm_pack_info = {.destructor = const_avm_pack_destructor}
-
AVMPACK_SIZE
- file avmpack.h
Include dependency graph for avmpack.h:
This graph shows which files directly or indirectly include avmpack.h:
Defines
-
END_OF_FILE
-
BEAM_START_FLAG
-
BEAM_CODE_FLAG
Typedefs
-
typedef void *(*avmpack_fold_fun)(void *accum, const void *section_ptr, uint32_t section_size, const void *beam_ptr, uint32_t flags, const char *section_name)
Functions
-
static inline void avmpack_data_init(struct AVMPackData *avm_pack_data, const struct AVMPackInfo *info)
-
static inline void avmpack_data_destroy(struct AVMPackData *avm_pack_data, GlobalContext *global)
-
int avmpack_find_section_by_flag(const void *avmpack_binary, uint32_t flags_mask, const void **ptr, uint32_t *size, const char **name)
-
int avmpack_find_section_by_name(const void *avmpack_binary, const char *name, const void **ptr, uint32_t *size)
-
int avmpack_is_valid(const void *avmpack_binary, uint32_t size)
-
void *avmpack_fold(void *accum, const void *avmpack_binary, avmpack_fold_fun fold_fun)
Variables
-
const struct AVMPackInfo in_memory_avm_pack_info
-
const struct AVMPackInfo const_avm_pack_info
-
END_OF_FILE
- file bif.c
Include dependency graph for bif.c:
Defines
-
RAISE_ERROR(error_type_atom)
-
VALIDATE_VALUE(value, verify_function)
-
INT64_MIN_AS_FLOAT
-
INT64_MAX_AS_FLOAT
Typedefs
-
typedef int64_t (*bitwise_op)(int64_t a, int64_t b)
-
typedef int64_t (*bitshift_op)(int64_t a, avm_int_t b)
Functions
-
const struct ExportedFunction *bif_registry_get_handler(AtomString module, AtomString function, int arity)
-
static inline term make_boxed_int64(Context *ctx, avm_int64_t value)
-
static inline term make_maybe_boxed_int64(Context *ctx, avm_int64_t value)
-
static inline term bitwise_helper(Context *ctx, int live, term arg1, term arg2, bitwise_op op)
-
static inline int64_t bor(int64_t a, int64_t b)
-
static inline int64_t band(int64_t a, int64_t b)
-
static inline int64_t bxor(int64_t a, int64_t b)
-
static inline term bitshift_helper(Context *ctx, int live, term arg1, term arg2, bitshift_op op)
-
static inline int64_t bsl(int64_t a, avm_int_t b)
-
static inline int64_t bsr(int64_t a, avm_int_t b)
-
RAISE_ERROR(error_type_atom)
- file bif.h
Include dependency graph for bif.h:
This graph shows which files directly or indirectly include bif.h:
Defines
-
MAX_BIF_NAME_LEN
Functions
-
const struct ExportedFunction *bif_registry_get_handler(AtomString module, AtomString function, int arity)
-
MAX_BIF_NAME_LEN
- file bitstring.c
Include dependency graph for bitstring.c:
Functions
-
static inline uint64_t from_le64(uint64_t value)
-
bool bitstring_extract_any_integer(const uint8_t *src, size_t offset, avm_int_t n, enum BitstringFlags bs_flags, union maybe_unsigned_int64 *dst)
-
bool bitstring_insert_any_integer(uint8_t *dst, avm_int_t offset, avm_int64_t value, size_t n, enum BitstringFlags bs_flags)
-
static bool is_invalid_codepoint(int32_t v)
-
bool bitstring_utf8_encode(uint32_t c, uint8_t *buf, size_t *out_size)
-
enum UnicodeTransformDecodeResult bitstring_utf8_decode(const uint8_t *buf, size_t len, uint32_t *c, size_t *out_size)
-
bool bitstring_utf16_encode(uint32_t c, uint8_t *buf, enum BitstringFlags bs_flags, size_t *out_size)
-
bool bitstring_utf16_decode(const uint8_t *buf, size_t len, int32_t *c, size_t *out_size, enum BitstringFlags bs_flags)
-
bool bitstring_utf32_encode(uint32_t c, uint8_t *buf, enum BitstringFlags bs_flags)
-
bool bitstring_utf32_decode(const uint8_t *buf, size_t len, int32_t *c, enum BitstringFlags bs_flags)
-
void bitstring_copy_bits_incomplete_bytes(uint8_t *dst, size_t bits_offset, const uint8_t *src, size_t bits_count)
-
bool bitstring_extract_f32(term src_bin, size_t offset, avm_int_t n, enum BitstringFlags bs_flags, avm_float_t *dst)
-
bool bitstring_extract_f64(term src_bin, size_t offset, avm_int_t n, enum BitstringFlags bs_flags, avm_float_t *dst)
-
static inline uint64_t from_le64(uint64_t value)
- file bitstring.h
Include dependency graph for bitstring.h:
This graph shows which files directly or indirectly include bitstring.h:
Defines
-
READ_16LE_UNALIGNED(ptr)
-
WRITE_16LE_UNALIGNED(t, ptr, val)
-
READ_32LE_UNALIGNED(ptr)
-
WRITE_32LE_UNALIGNED(t, ptr, val)
-
READ_64LE_UNALIGNED(ptr)
-
WRITE_64LE_UNALIGNED(t, ptr, val)
Enums
-
enum BitstringFlags
Values:
-
enumerator LittleEndianInteger
-
enumerator SignedInteger
-
enumerator NativeEndianInteger
-
enumerator LittleEndianIntegerMask
-
enumerator LittleEndianInteger
-
enum UnicodeTransformDecodeResult
Values:
-
enumerator UnicodeTransformDecodeSuccess
-
enumerator UnicodeTransformDecodeFail
-
enumerator UnicodeTransformDecodeIncomplete
-
enumerator UnicodeTransformDecodeSuccess
Functions
-
bool bitstring_extract_any_integer(const uint8_t *src, size_t offset, avm_int_t n, enum BitstringFlags bs_flags, union maybe_unsigned_int64 *dst)
-
bool bitstring_insert_any_integer(uint8_t *dst, avm_int_t offset, avm_int64_t value, size_t n, enum BitstringFlags bs_flags)
-
static inline bool bitstring_extract_integer(term src_bin, size_t offset, avm_int_t n, enum BitstringFlags bs_flags, union maybe_unsigned_int64 *dst)
-
static inline bool bitstring_insert_integer(term dst_bin, size_t offset, avm_int64_t value, size_t n, enum BitstringFlags bs_flags)
-
bool bitstring_utf8_encode(uint32_t c, uint8_t *buf, size_t *out_size)
-
enum UnicodeTransformDecodeResult bitstring_utf8_decode(const uint8_t *buf, size_t len, uint32_t *c, size_t *out_size)
-
bool bitstring_utf16_encode(uint32_t c, uint8_t *buf, enum BitstringFlags bs_flags, size_t *out_size)
-
bool bitstring_utf16_decode(const uint8_t *buf, size_t len, int32_t *c, size_t *out_size, enum BitstringFlags bs_flags)
-
bool bitstring_utf32_encode(uint32_t c, uint8_t *buf, enum BitstringFlags bs_flags)
-
bool bitstring_utf32_decode(const uint8_t *buf, size_t len, int32_t *c, enum BitstringFlags bs_flags)
-
static inline bool bitstring_utf8_size(uint32_t c, size_t *out_size)
-
static inline bool bitstring_utf16_size(uint32_t c, size_t *out_size)
-
static inline bool bitstring_insert_utf8(term dst_bin, size_t offset, uint32_t c, size_t *out_size)
-
static inline bool bitstring_match_utf8(term src_bin, size_t offset, uint32_t *c, size_t *out_size)
-
static inline bool bitstring_insert_utf16(term dst_bin, size_t offset, uint32_t c, enum BitstringFlags bs_flags, size_t *out_size)
-
static inline bool bitstring_match_utf16(term src_bin, size_t offset, int32_t *c, size_t *out_size, enum BitstringFlags bs_flags)
-
static inline bool bitstring_insert_utf32(term dst_bin, size_t offset, uint32_t c, enum BitstringFlags bs_flags)
-
static inline bool bitstring_match_utf32(term src_bin, size_t offset, int32_t *c, enum BitstringFlags bs_flags)
-
void bitstring_copy_bits_incomplete_bytes(uint8_t *dst, size_t bits_offset, const uint8_t *src, size_t bits_count)
-
static inline void bitstring_copy_bits(uint8_t *dst, size_t bits_offset, const uint8_t *src, size_t bits_count)
-
bool bitstring_extract_f32(term src_bin, size_t offset, avm_int_t n, enum BitstringFlags bs_flags, avm_float_t *dst)
-
bool bitstring_extract_f64(term src_bin, size_t offset, avm_int_t n, enum BitstringFlags bs_flags, avm_float_t *dst)
-
READ_16LE_UNALIGNED(ptr)
- file context.c
Include dependency graph for context.c:
Defines
-
IMPL_EXECUTE_LOOP
-
DEFAULT_STACK_SIZE
-
BYTES_PER_TERM
Functions
-
static struct ResourceMonitor *context_monitors_handle_terminate(Context *ctx)
-
Context *context_new(GlobalContext *glb)
-
void context_destroy(Context *ctx)
-
void context_process_kill_signal(Context *ctx, struct TermSignal *signal)
-
void context_process_process_info_request_signal(Context *ctx, struct BuiltInAtomRequestSignal *signal)
-
bool context_process_signal_trap_answer(Context *ctx, struct TermSignal *signal)
-
void context_process_flush_monitor_signal(Context *ctx, uint64_t ref_ticks, bool info)
- void context_update_flags (Context *ctx, int mask, int value) CLANG_THREAD_SANITIZE_SAFE
-
size_t context_message_queue_len(Context *ctx)
-
size_t context_size(Context *ctx)
-
struct ResourceMonitor *context_resource_monitor(Context *ctx, void *resource)
-
IMPL_EXECUTE_LOOP
- file context.h
Include dependency graph for context.h:
This graph shows which files directly or indirectly include context.h:
Defines
-
MAX_REG
Typedefs
-
typedef enum NativeHandlerResult NativeHandlerResult
-
typedef NativeHandlerResult (*native_handler_f)(Context *ctx)
Enums
-
enum NativeHandlerResult
Values:
-
enumerator NativeTerminate
-
enumerator NativeContinue
-
enumerator NativeTerminate
-
enum ContextFlags
Values:
-
enumerator NoFlags
-
enumerator WaitingTimeout
-
enumerator WaitingTimeoutExpired
-
enumerator Running
-
enumerator Ready
-
enumerator Killed
-
enumerator Trap
-
enumerator NoFlags
-
enum HeapGrowthStrategy
Values:
-
enumerator BoundedFreeHeapGrowth
-
enumerator MinimumHeapGrowth
-
enumerator FibonacciHeapGrowth
-
enumerator BoundedFreeHeapGrowth
Functions
-
Context *context_new(GlobalContext *glb)
-
void context_destroy(Context *c)
-
static inline void context_ensure_fpregs(Context *c)
-
static inline int context_is_port_driver(const Context *ctx)
-
static inline void context_clean_registers(Context *ctx, int live)
-
static inline size_t context_stack_size(const Context *ctx)
-
static inline size_t context_avail_free_memory(const Context *ctx)
-
static inline bool context_is_term_equal_to_atom_string(Context *ctx, term atom_a, AtomString atom_string_b)
-
size_t context_message_queue_len(Context *ctx)
-
size_t context_size(Context *ctx)
-
void context_update_flags(Context *ctx, int mask, int value)
-
static inline int context_get_flags(Context *ctx, int mask)
-
void context_process_kill_signal(Context *ctx, struct TermSignal *signal)
-
void context_process_process_info_request_signal(Context *ctx, struct BuiltInAtomRequestSignal *signal)
-
bool context_process_signal_trap_answer(Context *ctx, struct TermSignal *signal)
-
void context_process_flush_monitor_signal(Context *ctx, uint64_t ref_ticks, bool info)
-
struct ResourceMonitor *context_resource_monitor(Context *ctx, void *resource)
-
MAX_REG
- file debug.c
Include dependency graph for debug.c:
Functions
- static COLD_FUNC void debug_display_type (term t, const Context *ctx)
- static COLD_FUNC void debug_dump_binary_mem (char *buf, term val, unsigned n)
- static COLD_FUNC void debug_dump_term (Context *ctx, term *pos, const char *region, unsigned i)
- COLD_FUNC void debug_dump_memory (Context *ctx, term *start, term *end, const char *region)
- COLD_FUNC void debug_dump_context (Context *ctx)
- COLD_FUNC void debug_dump_heap (Context *ctx)
- COLD_FUNC void debug_dump_stack (Context *ctx)
- COLD_FUNC void debug_dump_registers (Context *ctx)
- COLD_FUNC void debug_print_processes_list (struct ListHead *processes)
- COLD_FUNC char reg_type_c (int reg_type)
- file debug.h
Include dependency graph for debug.h:
This graph shows which files directly or indirectly include debug.h:
Defines
-
DEBUG_DUMP_STACK(...)
-
DEBUG_DUMP_STACK(...)
- file defaultatoms.c
Include dependency graph for defaultatoms.c:
Functions
-
void defaultatoms_init(GlobalContext *glb)
Variables
- static const char *const false_atom = "\x05" "false"
- static const char *const true_atom = "\x04" "true"
- static const char *const ok_atom = "\x2" "ok"
- static const char *const error_atom = "\x5" "error"
- static const char *const undefined_atom = "\x9" "undefined"
- static const char *const badarg_atom = "\x6" "badarg"
- static const char *const badarith_atom = "\x08" "badarith"
- static const char *const badarity_atom = "\x08" "badarity"
- static const char *const badfun_atom = "\x06" "badfun"
- static const char *const system_limit_atom = "\xC" "system_limit"
- static const char *const function_clause_atom = "\x0F" "function_clause"
- static const char *const try_clause_atom = "\xA" "try_clause"
- static const char *const out_of_memory_atom = "\xD" "out_of_memory"
- static const char *const overflow_atom = "\x8" "overflow"
- static const char *const flush_atom = "\x5" "flush"
- static const char *const heap_size_atom = "\x9" "heap_size"
- static const char *const latin1_atom = "\x6" "latin1"
- static const char *const max_heap_size_atom ="\xD" "max_heap_size"
- static const char *const memory_atom = "\x6" "memory"
- static const char *const message_queue_len_atom = "\x11" "message_queue_len"
- static const char *const puts_atom = "\x4" "puts"
- static const char *const stack_size_atom = "\xA" "stack_size"
- static const char *const min_heap_size_atom ="\xD" "min_heap_size"
- static const char *const process_count_atom = "\xD" "process_count"
- static const char *const port_count_atom = "\xA" "port_count"
- static const char *const atom_count_atom = "\xA" "atom_count"
- static const char *const system_architecture_atom = "\x13" "system_architecture"
- static const char *const wordsize_atom = "\x8" "wordsize"
- static const char *const decimals_atom = "\x8" "decimals"
- static const char *const scientific_atom = "\xA" "scientific"
- static const char *const compact_atom = "\x7" "compact"
- static const char *const badmatch_atom = "\x8" "badmatch"
- static const char *const case_clause_atom = "\xB" "case_clause"
- static const char *const if_clause_atom = "\x9" "if_clause"
- static const char *const throw_atom = "\x5" "throw"
- static const char *const low_entropy_atom = "\xB" "low_entropy"
- static const char *const unsupported_atom = "\xB" "unsupported"
- static const char *const used_atom = "\x4" "used"
- static const char *const all_atom = "\x3" "all"
- static const char *const start_atom = "\x5" "start"
- static const char *const undef_atom = "\x5" "undef"
- static const char *const vm_abort_atom = "\x8" "vm_abort"
- static const char *const link_atom = "\x4" "link"
- static const char *const monitor_atom = "\x7" "monitor"
- static const char *const normal_atom = "\x6" "normal"
- static const char *const down_atom = "\x4" "DOWN"
- static const char *const process_atom = "\x7" "process"
- static const char *const nocatch_atom = "\x7" "nocatch"
- static const char *const refc_binary_info_atom = "\x10" "refc_binary_info"
- static const char *const noproc_atom = "\x6" "noproc"
- static const char *const trap_exit_atom = "\x9" "trap_exit"
- static const char *const exit_atom = "\x4" "EXIT"
- static const char *const badmap_atom = "\x6" "badmap"
- static const char *const badkey_atom = "\x6" "badkey"
- static const char *const none_atom = "\x4" "none"
- static const char *const io_request_atom = "\xA" "io_request"
- static const char *const io_reply_atom = "\x8" "io_reply"
- static const char *const put_chars_atom = "\x9" "put_chars"
- static const char *const lowercase_exit_atom = "\x4" "exit"
- static const char *const atomvm_version_atom = "\xE" "atomvm_version"
- static const char *const second_atom = "\x6" "second"
- static const char *const millisecond_atom = "\xB" "millisecond"
- static const char *const microsecond_atom = "\xB" "microsecond"
- static const char *const infinity_atom = "\x8" "infinity"
- static const char *const timeout_value_atom = "\xD" "timeout_value"
- static const char *const schedulers_atom = "\xA" "schedulers"
- static const char *const schedulers_online_atom = "\x11" "schedulers_online"
- static const char *const append_atom = "\x6" "append"
- static const char *const private_append_atom = "\xE" "private_append"
- static const char *const binary_atom = "\x6" "binary"
- static const char *const integer_atom = "\x7" "integer"
- static const char *const little_atom = "\x6" "little"
- static const char *const native_atom = "\x6" "native"
- static const char *const string_atom = "\x6" "string"
- static const char *const utf8_atom = "\x4" "utf8"
- static const char *const utf16_atom = "\x5" "utf16"
- static const char *const utf32_atom = "\x5" "utf32"
- static const char *const badrecord_atom = "\x9" "badrecord"
- static const char *const copy_atom = "\x4" "copy"
- static const char *const reuse_atom = "\x5" "reuse"
- static const char *const ensure_at_least_atom = "\xF" "ensure_at_least"
- static const char *const ensure_exactly_atom = "\xE" "ensure_exactly"
- static const char *const skip_atom = "\x4" "skip"
- static const char *const get_tail_atom = "\x8" "get_tail"
- static const char *const equal_colon_equal_atom = "\x3" "=:="
- static const char *const signed_atom = "\x6" "signed"
- static const char *const machine_atom = "\x7" "machine"
- static const char *const avm_floatsize_atom = "\xD" "avm_floatsize"
- static const char *const close_atom = "\x5" "close"
- static const char *const closed_atom = "\x6" "closed"
- static const char *const port_atom = "\x4" "port"
- static const char *const info_atom = "\x4" "info"
- static const char *const module_atom = "\x06" "module"
- static const char *const select_atom = "\x6" "select"
- static const char *const ready_input_atom = "\xB" "ready_input"
- static const char *const ready_output_atom = "\xC" "ready_output"
- static const char *const attributes_atom = "\xA" "attributes"
- static const char *const compile_atom = "\x7" "compile"
- static const char *const exports_atom = "\x7" "exports"
- static const char *const incomplete_atom = "\xA" "incomplete"
- static const char *const kill_atom = "\x4" "kill"
- static const char *const killed_atom = "\x6" "killed"
- static const char *const links_atom = "\x5" "links"
- static const char *const total_heap_size_atom = "\xF" "total_heap_size"
- static const char *const atomvm_heap_growth_atom = "\x12" "atomvm_heap_growth"
- static const char *const bounded_free_atom = "\xC" "bounded_free"
- static const char *const minimum_atom = "\x7" "minimum"
- static const char *const fibonacci_atom = "\x9" "fibonacci"
-
void defaultatoms_init(GlobalContext *glb)
- file defaultatoms.h
Include dependency graph for defaultatoms.h:
This graph shows which files directly or indirectly include defaultatoms.h:
Defines
-
FALSE_ATOM_INDEX
-
TRUE_ATOM_INDEX
-
OK_ATOM_INDEX
-
ERROR_ATOM_INDEX
-
UNDEFINED_ATOM_INDEX
-
BADARG_ATOM_INDEX
-
BADARITH_ATOM_INDEX
-
BADARITY_ATOM_INDEX
-
BADFUN_ATOM_INDEX
-
FUNCTION_CLAUSE_ATOM_INDEX
-
TRY_CLAUSE_ATOM_INDEX
-
OUT_OF_MEMORY_ATOM_INDEX
-
OVERFLOW_ATOM_INDEX
-
SYSTEM_LIMIT_ATOM_INDEX
-
FLUSH_ATOM_INDEX
-
HEAP_SIZE_ATOM_INDEX
-
LATIN1_ATOM_INDEX
-
MAX_HEAP_SIZE_ATOM_INDEX
-
MEMORY_ATOM_INDEX
-
MESSAGE_QUEUE_LEN_ATOM_INDEX
-
PUTS_ATOM_INDEX
-
STACK_SIZE_ATOM_INDEX
-
MIN_HEAP_SIZE_ATOM_INDEX
-
PROCESS_COUNT_ATOM_INDEX
-
PORT_COUNT_ATOM_INDEX
-
ATOM_COUNT_ATOM_INDEX
-
SYSTEM_ARCHITECTURE_ATOM_INDEX
-
WORDSIZE_ATOM_INDEX
-
DECIMALS_ATOM_INDEX
-
SCIENTIFIC_ATOM_INDEX
-
COMPACT_ATOM_INDEX
-
BADMATCH_ATOM_INDEX
-
CASE_CLAUSE_ATOM_INDEX
-
IF_CLAUSE_ATOM_INDEX
-
THROW_ATOM_INDEX
-
LOW_ENTROPY_ATOM_INDEX
-
UNSUPPORTED_ATOM_INDEX
-
USED_ATOM_INDEX
-
ALL_ATOM_INDEX
-
START_ATOM_INDEX
-
UNDEF_ATOM_INDEX
-
VM_ABORT_ATOM_INDEX
-
LINK_ATOM_INDEX
-
MONITOR_ATOM_INDEX
-
NORMAL_ATOM_INDEX
-
DOWN_ATOM_INDEX
-
PROCESS_ATOM_INDEX
-
NOCATCH_ATOM_INDEX
-
REFC_BINARY_INFO_ATOM_INDEX
-
NOPROC_ATOM_INDEX
-
TRAP_EXIT_ATOM_INDEX
-
EXIT_ATOM_INDEX
-
BADMAP_ATOM_INDEX
-
BADKEY_ATOM_INDEX
-
NONE_ATOM_INDEX
-
IO_REQUEST_ATOM_INDEX
-
IO_REPLY_ATOM_INDEX
-
PUT_CHARS_ATOM_INDEX
-
LOWERCASE_EXIT_ATOM_INDEX
-
ATOMVM_VERSION_ATOM_INDEX
-
SECOND_ATOM_INDEX
-
MILLISECOND_ATOM_INDEX
-
MICROSECOND_ATOM_INDEX
-
INFINITY_ATOM_INDEX
-
TIMEOUT_VALUE_ATOM_INDEX
-
SCHEDULERS_ATOM_INDEX
-
SCHEDULERS_ONLINE_ATOM_INDEX
-
APPEND_ATOM_INDEX
-
PRIVATE_APPEND_ATOM_INDEX
-
BINARY_ATOM_INDEX
-
INTEGER_ATOM_INDEX
-
LITTLE_ATOM_INDEX
-
NATIVE_ATOM_INDEX
-
STRING_ATOM_INDEX
-
UTF8_ATOM_INDEX
-
UTF16_ATOM_INDEX
-
UTF32_ATOM_INDEX
-
BADRECORD_ATOM_INDEX
-
COPY_ATOM_INDEX
-
REUSE_ATOM_INDEX
-
ENSURE_AT_LEAST_ATOM_INDEX
-
ENSURE_EXACTLY_ATOM_INDEX
-
SKIP_ATOM_INDEX
-
GET_TAIL_ATOM_INDEX
-
EQUAL_COLON_EQUAL_ATOM_INDEX
-
SIGNED_ATOM_INDEX
-
MACHINE_ATOM_INDEX
-
AVM_FLOATSIZE_ATOM_INDEX
-
CLOSE_ATOM_INDEX
-
CLOSED_ATOM_INDEX
-
PORT_ATOM_INDEX
-
INFO_ATOM_INDEX
-
MODULE_ATOM_INDEX
-
SELECT_ATOM_INDEX
-
READY_INPUT_ATOM_INDEX
-
READY_OUTPUT_ATOM_INDEX
-
ATTRIBUTES_ATOM_INDEX
-
COMPILE_ATOM_INDEX
-
EXPORTS_ATOM_INDEX
-
INCOMPLETE_ATOM_INDEX
-
KILL_ATOM_INDEX
-
KILLED_ATOM_INDEX
-
LINKS_ATOM_INDEX
-
TOTAL_HEAP_SIZE_ATOM_INDEX
-
ATOMVM_HEAP_GROWTH_ATOM_INDEX
-
BOUNDED_FREE_ATOM_INDEX
-
MINIMUM_ATOM_INDEX
-
FIBONACCI_ATOM_INDEX
-
PLATFORM_ATOMS_BASE_INDEX
-
FALSE_ATOM
-
TRUE_ATOM
-
OK_ATOM
-
ERROR_ATOM
-
UNDEFINED_ATOM
-
BADARG_ATOM
-
BADARITH_ATOM
-
BADARITY_ATOM
-
BADFUN_ATOM
-
FUNCTION_CLAUSE_ATOM
-
TRY_CLAUSE_ATOM
-
OUT_OF_MEMORY_ATOM
-
OVERFLOW_ATOM
-
SYSTEM_LIMIT_ATOM
-
LATIN1_ATOM
-
FLUSH_ATOM
-
HEAP_SIZE_ATOM
-
MAX_HEAP_SIZE_ATOM
-
MEMORY_ATOM
-
MESSAGE_QUEUE_LEN_ATOM
-
PUTS_ATOM
-
STACK_SIZE_ATOM
-
MIN_HEAP_SIZE_ATOM
-
PROCESS_COUNT_ATOM
-
PORT_COUNT_ATOM
-
ATOM_COUNT_ATOM
-
SYSTEM_ARCHITECTURE_ATOM
-
WORDSIZE_ATOM
-
DECIMALS_ATOM
-
SCIENTIFIC_ATOM
-
DEFAULTATOMS_COMPACT_ATOM
-
BADMATCH_ATOM
-
CASE_CLAUSE_ATOM
-
IF_CLAUSE_ATOM
-
THROW_ATOM
-
LOW_ENTROPY_ATOM
-
UNSUPPORTED_ATOM
-
USED_ATOM
-
ALL_ATOM
-
START_ATOM
-
UNDEF_ATOM
-
VM_ABORT_ATOM
-
LINK_ATOM
-
MONITOR_ATOM
-
NORMAL_ATOM
-
DOWN_ATOM
-
PROCESS_ATOM
-
NOCATCH_ATOM
-
REFC_BINARY_INFO_ATOM
-
NOPROC_ATOM
-
TRAP_EXIT_ATOM
-
EXIT_ATOM
-
BADMAP_ATOM
-
BADKEY_ATOM
-
NONE_ATOM
-
IO_REQUEST_ATOM
-
IO_REPLY_ATOM
-
PUT_CHARS_ATOM
-
LOWERCASE_EXIT_ATOM
-
ATOMVM_VERSION_ATOM
-
SECOND_ATOM
-
MILLISECOND_ATOM
-
MICROSECOND_ATOM
-
INFINITY_ATOM
-
TIMEOUT_VALUE_ATOM
-
SCHEDULERS_ATOM
-
SCHEDULERS_ONLINE_ATOM
-
APPEND_ATOM
-
PRIVATE_APPEND_ATOM
-
BINARY_ATOM
-
INTEGER_ATOM
-
LITTLE_ATOM
-
NATIVE_ATOM
-
STRING_ATOM
-
UTF8_ATOM
-
UTF16_ATOM
-
UTF32_ATOM
-
BADRECORD_ATOM
-
COPY_ATOM
-
REUSE_ATOM
-
ENSURE_AT_LEAST_ATOM
-
ENSURE_EXACTLY_ATOM
-
SKIP_ATOM
-
GET_TAIL_ATOM
-
EQUAL_COLON_EQUAL_ATOM
-
SIGNED_ATOM
-
MACHINE_ATOM
-
AVM_FLOATSIZE_ATOM
-
CLOSE_ATOM
-
CLOSED_ATOM
-
PORT_ATOM
-
INFO_ATOM
-
MODULE_ATOM
-
SELECT_ATOM
-
READY_INPUT_ATOM
-
READY_OUTPUT_ATOM
-
ATTRIBUTES_ATOM
-
COMPILE_ATOM
-
EXPORTS_ATOM
-
INCOMPLETE_ATOM
-
KILL_ATOM
-
KILLED_ATOM
-
LINKS_ATOM
-
TOTAL_HEAP_SIZE_ATOM
-
ATOMVM_HEAP_GROWTH_ATOM
-
BOUNDED_FREE_ATOM
-
MINIMUM_ATOM
-
FIBONACCI_ATOM
Functions
-
void defaultatoms_init(GlobalContext *glb)
-
void platform_defaultatoms_init(GlobalContext *glb)
-
FALSE_ATOM_INDEX
- file dictionary.c
Include dependency graph for dictionary.c:
Functions
-
static DictionaryFunctionResult dictionary_find(struct ListHead *dictionary, term key, struct DictEntry **found, GlobalContext *global)
-
DictionaryFunctionResult dictionary_put(struct ListHead *dict, term key, term value, term *old, GlobalContext *global)
-
DictionaryFunctionResult dictionary_get(struct ListHead *dict, term key, term *old, GlobalContext *global)
-
DictionaryFunctionResult dictionary_erase(struct ListHead *dict, term key, term *old, GlobalContext *global)
-
void dictionary_destroy(struct ListHead *dict)
-
static DictionaryFunctionResult dictionary_find(struct ListHead *dictionary, term key, struct DictEntry **found, GlobalContext *global)
- file dictionary.h
Include dependency graph for dictionary.h:
This graph shows which files directly or indirectly include dictionary.h:
Enums
-
enum DictionaryFunctionResult
Values:
-
enumerator DictionaryOk
-
enumerator DictionaryMemoryAllocFail
-
enumerator DictionaryOk
Functions
-
DictionaryFunctionResult dictionary_put(struct ListHead *dict, term key, term value, term *old, GlobalContext *ctx)
-
DictionaryFunctionResult dictionary_get(struct ListHead *dict, term key, term *old, GlobalContext *ctx)
-
DictionaryFunctionResult dictionary_erase(struct ListHead *dict, term key, term *old, GlobalContext *ctx)
-
void dictionary_destroy(struct ListHead *dict)
-
enum DictionaryFunctionResult
- file erl_nif.h
Include dependency graph for erl_nif.h:
This graph shows which files directly or indirectly include erl_nif.h:
Typedefs
-
typedef struct ErlNifEnv ErlNifEnv
-
typedef term ERL_NIF_TERM
-
typedef int32_t ErlNifPid
-
typedef struct ResourceType ErlNifResourceType
-
typedef uint64_t ErlNifMonitor
-
typedef int ErlNifEvent
-
typedef void ErlNifResourceDtor(ErlNifEnv *caller_env, void *obj)
-
typedef void ErlNifResourceStop(ErlNifEnv *caller_env, void *obj, ErlNifEvent event, int is_direct_call)
-
typedef void ErlNifResourceDown(ErlNifEnv *caller_env, void *obj, ErlNifPid *pid, ErlNifMonitor *mon)
Enums
-
enum ErlNifResourceFlags
Values:
-
enumerator ERL_NIF_RT_CREATE
-
enumerator ERL_NIF_RT_CREATE
-
enum ErlNifSelectFlags
Values:
-
enumerator ERL_NIF_SELECT_READ
-
enumerator ERL_NIF_SELECT_WRITE
-
enumerator ERL_NIF_SELECT_STOP
-
enumerator ERL_NIF_SELECT_READ
-
enum [anonymous]
Values:
-
enumerator ERL_NIF_SELECT_STOP_CALLED
-
enumerator ERL_NIF_SELECT_STOP_SCHEDULED
-
enumerator ERL_NIF_SELECT_INVALID_EVENT
-
enumerator ERL_NIF_SELECT_FAILED
-
enumerator ERL_NIF_SELECT_BADARG
-
enumerator ERL_NIF_SELECT_STOP_CALLED
Functions
-
ErlNifResourceType *enif_init_resource_type(ErlNifEnv *env, const char *name, const ErlNifResourceTypeInit *init, ErlNifResourceFlags flags, ErlNifResourceFlags *tried)
-
void *enif_alloc_resource(ErlNifResourceType *type, unsigned size)
-
int enif_get_resource(ErlNifEnv *env, ERL_NIF_TERM t, ErlNifResourceType *type, void **objp)
-
int enif_keep_resource(void *resource)
-
int enif_release_resource(void *resource)
-
ERL_NIF_TERM enif_make_resource(ErlNifEnv *env, void *obj)
-
int enif_select(ErlNifEnv *env, ErlNifEvent event, enum ErlNifSelectFlags mode, void *obj, const ErlNifPid *pid, ERL_NIF_TERM ref)
-
int enif_monitor_process(ErlNifEnv *env, void *obj, const ErlNifPid *target_pid, ErlNifMonitor *mon)
-
int enif_demonitor_process(ErlNifEnv *caller_env, void *obj, const ErlNifMonitor *mon)
-
int enif_compare_monitors(const ErlNifMonitor *monitor1, const ErlNifMonitor *monitor2)
-
typedef struct ErlNifEnv ErlNifEnv
- file erl_nif_priv.h
Include dependency graph for erl_nif_priv.h:
This graph shows which files directly or indirectly include erl_nif_priv.h:
Functions
- _Static_assert (offsetof(struct ErlNifEnv, global)==offsetof(struct Context, global) ? 1 :0, "ErlNifEnv.global doesn't match Context.global")
- _Static_assert (offsetof(struct ErlNifEnv, heap)==offsetof(struct Context, heap) ? 1 :0, "ErlNifEnv.heap doesn't match Context.heap")
- _Static_assert (offsetof(struct ErlNifEnv, stack_pointer)==offsetof(struct Context, e) ? 1 :0, "ErlNifEnv.stack_pointer doesn't match Context.e")
- _Static_assert (offsetof(struct ErlNifEnv, x)==offsetof(struct Context, x) ? 1 :0, "ErlNifEnv.x doesn't match Context.x")
-
static inline bool erl_nif_env_is_context(ErlNifEnv *env)
-
static inline void erl_nif_env_partial_init_from_globalcontext(ErlNifEnv *env, GlobalContext *global)
- file exportedfunction.h
Include dependency graph for exportedfunction.h:
This graph shows which files directly or indirectly include exportedfunction.h:
Defines
-
TYPEDEF_MODULE
-
EXPORTED_FUNCTION_TO_BIF(func)
-
EXPORTED_FUNCTION_TO_GCBIF(func)
-
EXPORTED_FUNCTION_TO_NIF(func)
-
EXPORTED_FUNCTION_TO_UNRESOLVED_FUNCTION_CALL(func)
-
EXPORTED_FUNCTION_TO_MODULE_FUNCTION(func)
Typedefs
-
typedef struct Module Module
Enums
-
enum FunctionType
Values:
-
enumerator InvalidFunctionType
-
enumerator NIFFunctionType
-
enumerator UnresolvedFunctionCall
-
enumerator ModuleFunction
-
enumerator BIFFunctionType
-
enumerator GCBIFFunctionType
-
enumerator InvalidFunctionType
-
TYPEDEF_MODULE
- file externalterm.c
Include dependency graph for externalterm.c:
Defines
-
EXTERNAL_TERM_TAG
-
NEW_FLOAT_EXT
-
SMALL_INTEGER_EXT
-
INTEGER_EXT
-
ATOM_EXT
-
SMALL_TUPLE_EXT
-
NIL_EXT
-
STRING_EXT
-
LIST_EXT
-
BINARY_EXT
-
SMALL_BIG_EXT
-
EXPORT_EXT
-
MAP_EXT
-
SMALL_ATOM_UTF8_EXT
-
INVALID_TERM_SIZE
-
NEW_FLOAT_EXT_SIZE
-
SMALL_INTEGER_EXT_SIZE
-
INTEGER_EXT_SIZE
-
SMALL_BIG_EXT_BASE_SIZE
-
ATOM_EXT_BASE_SIZE
-
STRING_EXT_BASE_SIZE
-
LIST_EXT_BASE_SIZE
-
BINARY_EXT_BASE_SIZE
-
MAP_EXT_BASE_SIZE
-
SMALL_ATOM_EXT_BASE_SIZE
-
REMOVE_SIGN(val, unsigned_type)
Functions
-
static term parse_external_terms(const uint8_t *external_term_buf, size_t *eterm_size, bool copy, Heap *heap, GlobalContext *glb)
-
static int calculate_heap_usage(const uint8_t *external_term_buf, size_t remaining, size_t *eterm_size, bool copy)
-
static size_t compute_external_size(term t, GlobalContext *glb)
-
static int externalterm_from_term(uint8_t **buf, size_t *len, term t, GlobalContext *glb)
-
static int serialize_term(uint8_t *buf, term t, GlobalContext *glb)
-
static term externalterm_to_term_internal(const void *external_term, size_t size, Context *ctx, ExternalTermOpts opts, size_t *bytes_read, bool copy)
-
term externalterm_to_term(const void *external_term, size_t size, Context *ctx, ExternalTermOpts opts)
-
enum ExternalTermResult externalterm_from_binary(Context *ctx, term *dst, term binary, size_t *bytes_read)
-
static uint8_t get_num_bytes(avm_uint64_t val)
-
static void write_bytes(uint8_t *buf, avm_uint64_t val)
-
static avm_uint64_t read_bytes(const uint8_t *buf, uint8_t num_bytes)
-
EXTERNAL_TERM_TAG
- file externalterm.h
Include dependency graph for externalterm.h:
This graph shows which files directly or indirectly include externalterm.h:
Enums
-
enum ExternalTermResult
Values:
-
enumerator EXTERNAL_TERM_OK
-
enumerator EXTERNAL_TERM_BAD_ARG
-
enumerator EXTERNAL_TERM_MALLOC
-
enumerator EXTERNAL_TERM_HEAP_ALLOC
-
enumerator EXTERNAL_TERM_OK
-
enum ExternalTermOpts
Values:
-
enumerator ExternalTermNoOpts
-
enumerator ExternalTermToHeapFragment
-
enumerator ExternalTermNoOpts
Functions
-
term externalterm_to_term(const void *external_term, size_t size, Context *ctx, ExternalTermOpts opts)
-
enum ExternalTermResult externalterm_from_binary(Context *ctx, term *dst, term binary, size_t *bytes_read)
-
enum ExternalTermResult
- file globalcontext.c
Include dependency graph for globalcontext.c:
Defines
-
SMP_SPINLOCK_LOCK(spinlock)
-
SMP_SPINLOCK_UNLOCK(spinlock)
-
SMP_MUTEX_LOCK(mutex)
-
SMP_MUTEX_UNLOCK(mutex)
-
SMP_RWLOCK_RDLOCK(lock)
-
SMP_RWLOCK_WRLOCK(lock)
-
SMP_RWLOCK_UNLOCK(lock)
Functions
-
GlobalContext *globalcontext_new()
- COLD_FUNC void globalcontext_destroy (GlobalContext *glb)
-
Context *globalcontext_get_process_nolock(GlobalContext *glb, int32_t process_id)
-
Context *globalcontext_get_process_lock(GlobalContext *glb, int32_t process_id)
-
void globalcontext_get_process_unlock(GlobalContext *glb, Context *c)
-
bool globalcontext_process_exists(GlobalContext *glb, int32_t process_id)
-
void globalcontext_send_message(GlobalContext *glb, int32_t process_id, term t)
-
void globalcontext_send_message_nolock(GlobalContext *glb, int32_t process_id, term t)
-
void globalcontext_init_process(GlobalContext *glb, Context *ctx)
-
bool globalcontext_register_process(GlobalContext *glb, int atom_index, int local_process_id)
-
bool globalcontext_unregister_process(GlobalContext *glb, int atom_index)
-
void globalcontext_maybe_unregister_process_id(GlobalContext *glb, int target_process_id)
-
int globalcontext_get_registered_process(GlobalContext *glb, int atom_index)
-
int globalcontext_insert_atom(GlobalContext *glb, AtomString atom_string)
-
int globalcontext_insert_atom_maybe_copy(GlobalContext *glb, AtomString atom_string, int copy)
-
bool globalcontext_is_atom_index_equal_to_atom_string(GlobalContext *glb, int atom_index_a, AtomString atom_string_b)
-
AtomString globalcontext_atomstring_from_term(GlobalContext *glb, term t)
-
term globalcontext_existing_term_from_atom_string(GlobalContext *glb, AtomString atom_string)
-
int globalcontext_insert_module(GlobalContext *global, Module *module)
-
Module *globalcontext_get_module(GlobalContext *global, AtomString module_name_atom)
-
Module *globalcontext_get_module_by_index(GlobalContext *global, int index)
-
bool globalcontext_demonitor(GlobalContext *global, uint64_t ref_ticks)
-
SMP_SPINLOCK_LOCK(spinlock)
- file globalcontext.h
Include dependency graph for globalcontext.h:
This graph shows which files directly or indirectly include globalcontext.h:
Defines
-
INVALID_PROCESS_ID
-
TYPEDEF_MODULE
Typedefs
-
typedef struct Module Module
Functions
-
GlobalContext *globalcontext_new()
-
void globalcontext_destroy(GlobalContext *glb)
-
Context *globalcontext_get_process_nolock(GlobalContext *glb, int32_t process_id)
-
Context *globalcontext_get_process_lock(GlobalContext *glb, int32_t process_id)
-
void globalcontext_get_process_unlock(GlobalContext *glb, Context *c)
-
bool globalcontext_process_exists(GlobalContext *glb, int32_t process_id)
-
void globalcontext_send_message(GlobalContext *glb, int32_t process_id, term t)
-
void globalcontext_send_message_nolock(GlobalContext *glb, int32_t process_id, term t)
-
void globalcontext_init_process(GlobalContext *glb, Context *ctx)
-
bool globalcontext_register_process(GlobalContext *glb, int atom_index, int local_process_id)
-
int globalcontext_get_registered_process(GlobalContext *glb, int atom_index)
-
bool globalcontext_unregister_process(GlobalContext *glb, int atom_index)
-
void globalcontext_maybe_unregister_process_id(GlobalContext *glb, int process_id)
-
int globalcontext_insert_atom(GlobalContext *glb, AtomString atom_string)
-
int globalcontext_insert_atom_maybe_copy(GlobalContext *glb, AtomString atom_string, int copy)
-
bool globalcontext_is_atom_index_equal_to_atom_string(GlobalContext *glb, int atom_index_a, AtomString atom_string_b)
-
static inline bool globalcontext_is_term_equal_to_atom_string(GlobalContext *global, term atom_a, AtomString atom_string_b)
-
static inline term globalcontext_make_atom(GlobalContext *glb, AtomString string)
-
AtomString globalcontext_atomstring_from_term(GlobalContext *glb, term t)
-
term globalcontext_existing_term_from_atom_string(GlobalContext *glb, AtomString atom_string)
-
int globalcontext_insert_module(GlobalContext *global, Module *module)
-
Module *globalcontext_get_module_by_index(GlobalContext *global, int index)
-
Module *globalcontext_get_module(GlobalContext *global, AtomString module_name_atom)
-
bool globalcontext_demonitor(GlobalContext *global, uint64_t ref_ticks)
-
static inline uint64_t globalcontext_get_ref_ticks(GlobalContext *global)
-
INVALID_PROCESS_ID
- file iff.c
Include dependency graph for iff.c:
Functions
-
static uint32_t iff_align(uint32_t size)
-
int iff_is_valid_beam(const void *beam_data)
-
void scan_iff(const void *iff_binary, int buf_size, unsigned long *offsets, unsigned long *sizes)
-
static uint32_t iff_align(uint32_t size)
- file iff.h
Include dependency graph for iff.h:
This graph shows which files directly or indirectly include iff.h:
Defines
-
AT8U
-
CODE
-
EXPT
-
LOCT
-
IMPT
-
LITT
-
LITU
-
FUNT
-
STRT
-
LINT
-
MAX_OFFS
-
MAX_SIZES
-
IFF_SECTION_HEADER_SIZE
Functions
-
void scan_iff(const void *iff_binary, int file_size, unsigned long *offsets, unsigned long *sizes)
-
int iff_is_valid_beam(const void *beam_data)
-
AT8U
- file inet.c
Include dependency graph for inet.c:
Functions
-
enum inet_domain inet_atom_to_domain(term domain, GlobalContext *global)
-
enum inet_type inet_atom_to_type(term type, GlobalContext *global)
-
enum inet_protocol inet_atom_to_protocol(term protocol, GlobalContext *global)
-
uint32_t inet_addr4_to_uint32(term addr_tuple)
Variables
-
static const AtomStringIntPair inet_domain_table[] = {{ATOM_STR("\x4", "inet"), InetDomain},}
-
static const AtomStringIntPair inet_type_table[] = {{ATOM_STR("\x6", "stream"), InetStreamType}, {ATOM_STR("\x5", "dgram"), InetDgramType},}
-
static const AtomStringIntPair inet_protocol_table[] = {{ATOM_STR("\x2", "ip"), InetIpProtocol}, {ATOM_STR("\x3", "tcp"), InetTcpProtocol}, {ATOM_STR("\x3", "udp"), InetUdpProtocol},}
-
enum inet_domain inet_atom_to_domain(term domain, GlobalContext *global)
- file inet.h
Include dependency graph for inet.h:
This graph shows which files directly or indirectly include inet.h:
Defines
-
INET_ADDR4_TUPLE_SIZE
Enums
-
enum inet_domain
Values:
-
enumerator InetInvalidDomain
-
enumerator InetDomain
-
enumerator InetInvalidDomain
-
enum inet_type
Values:
-
enumerator InetInvalidType
-
enumerator InetStreamType
-
enumerator InetDgramType
-
enumerator InetInvalidType
-
enum inet_protocol
Values:
-
enumerator InetInvalidProtocol
-
enumerator InetIpProtocol
-
enumerator InetTcpProtocol
-
enumerator InetUdpProtocol
-
enumerator InetInvalidProtocol
Functions
-
enum inet_domain inet_atom_to_domain(term domain, GlobalContext *global)
-
enum inet_type inet_atom_to_type(term type, GlobalContext *global)
-
enum inet_protocol inet_atom_to_protocol(term protocol, GlobalContext *global)
-
uint32_t inet_addr4_to_uint32(term addr_tuple)
-
INET_ADDR4_TUPLE_SIZE
- file interop.c
Include dependency graph for interop.c:
Functions
-
char *interop_term_to_string(term t, int *ok)
-
char *interop_binary_to_string(term binary)
-
char *interop_iolist_to_string(term list, int *ok)
-
char *interop_list_to_string(term list, int *ok)
-
inline InteropFunctionResult interop_chardata_fold(term t, interop_chardata_fold_fun fold_fun, interop_chardata_rest_fun rest_fun, void *accum)
-
static inline InteropFunctionResult size_fold_fun(term t, void *accum)
-
InteropFunctionResult interop_iolist_size(term t, size_t *size)
-
static inline InteropFunctionResult write_string_fold_fun(term t, void *accum)
-
InteropFunctionResult interop_write_iolist(term t, char *p)
-
static enum UnicodeConversionResult interop_binary_conversion(term t, uint8_t *output, size_t *output_len, size_t *rest_crsr, enum CharDataEncoding in_encoding, enum CharDataEncoding out_encoding)
-
static InteropFunctionResult chardata_to_bytes_size_fold_fun(term t, void *accum)
-
static void chardata_to_bytes_size_rest_fun(term t, void *accum)
-
enum UnicodeConversionResult interop_chardata_to_bytes_size(term t, size_t *size, size_t *rest_size, enum CharDataEncoding in_encoding, enum CharDataEncoding out_encoding)
-
static InteropFunctionResult chardata_to_bytes_fold_fun(term t, void *accum)
-
static void chardata_to_bytes_rest_fun(term t, void *accum)
-
enum UnicodeConversionResult interop_chardata_to_bytes(term t, uint8_t *output, term *rest, enum CharDataEncoding in_encoding, enum CharDataEncoding out_encoding, Heap *heap)
-
term interop_map_get_value(GlobalContext *glb, term map, term key)
-
term interop_map_get_value_default(GlobalContext *glb, term map, term key, term default_value)
-
int interop_atom_term_select_int(const AtomStringIntPair *table, term atom, GlobalContext *global)
-
term interop_kv_get_value_default(term kv, AtomString key, term default_value, GlobalContext *glb)
-
term interop_atom_term_select_atom(const AtomStringIntPair *table, int value, GlobalContext *global)
-
char *interop_term_to_string(term t, int *ok)
- file interop.h
Include dependency graph for interop.h:
This graph shows which files directly or indirectly include interop.h:
Defines
-
SELECT_INT_DEFAULT(i_val)
Typedefs
-
typedef InteropFunctionResult (*interop_chardata_fold_fun)(term t, void *accum)
-
typedef void (*interop_chardata_rest_fun)(term t, void *accum)
Enums
-
enum InteropFunctionResult
Values:
-
enumerator InteropOk
-
enumerator InteropMemoryAllocFail
-
enumerator InteropBadArg
-
enumerator InteropOk
-
enum UnicodeConversionResult
Values:
-
enumerator UnicodeOk
-
enumerator UnicodeMemoryAllocFail
-
enumerator UnicodeBadArg
-
enumerator UnicodeError
-
enumerator UnicodeIncompleteTransform
-
enumerator UnicodeOk
-
enum CharDataEncoding
Values:
-
enumerator Latin1Encoding
-
enumerator UTF8Encoding
-
enumerator UCS4NativeEncoding
-
enumerator Latin1Encoding
Functions
-
char *interop_term_to_string(term t, int *ok)
-
char *interop_binary_to_string(term binary)
-
char *interop_list_to_string(term list, int *ok)
-
char *interop_iolist_to_string(term list, int *ok)
-
term interop_map_get_value(GlobalContext *glb, term map, term key)
-
term interop_map_get_value_default(GlobalContext *glb, term map, term key, term default_value)
- NO_DISCARD InteropFunctionResult interop_iolist_size (term t, size_t *size)
- NO_DISCARD InteropFunctionResult interop_write_iolist (term t, char *p)
- inline NO_DISCARD InteropFunctionResult interop_chardata_fold (term t, interop_chardata_fold_fun fold_fun, interop_chardata_rest_fun rest_fun, void *accum)
- NO_DISCARD enum UnicodeConversionResult interop_chardata_to_bytes_size (term t, size_t *size, size_t *rest_size, enum CharDataEncoding in_encoding, enum CharDataEncoding out_encoding)
- NO_DISCARD enum UnicodeConversionResult interop_chardata_to_bytes (term t, uint8_t *output, term *rest, enum CharDataEncoding in_encoding, enum CharDataEncoding out_encoding, Heap *heap)
-
int interop_atom_term_select_int(const AtomStringIntPair *table, term atom, GlobalContext *global)
-
term interop_atom_term_select_atom(const AtomStringIntPair *table, int value, GlobalContext *global)
-
term interop_kv_get_value_default(term kv, AtomString key, term default_value, GlobalContext *glb)
-
static inline term interop_kv_get_value(term kv, AtomString key, GlobalContext *glb)
-
SELECT_INT_DEFAULT(i_val)
- file list.h
This graph shows which files directly or indirectly include list.h:
Defines
-
GET_LIST_ENTRY(list_item, type, list_head_member)
-
LIST_FOR_EACH(item, head)
-
MUTABLE_LIST_FOR_EACH(item, tmp, head)
Functions
-
static inline void list_insert(struct ListHead *new_item, struct ListHead *prev_head, struct ListHead *next_head)
-
static inline void list_remove(struct ListHead *remove_item)
-
static inline void list_init(struct ListHead *list_item)
-
static inline int list_is_empty(struct ListHead *list_item)
-
GET_LIST_ENTRY(list_item, type, list_head_member)
- file listeners.h
Include dependency graph for listeners.h:
Functions
-
static void event_listener_add_to_polling_set(struct EventListener *listener, GlobalContext *glb)
-
static void listener_event_remove_from_polling_set(listener_event_t event, GlobalContext *glb)
-
static bool event_listener_is_event(EventListener *listener, listener_event_t event)
-
static inline bool process_listener_handler(GlobalContext *glb, listener_event_t current_event, struct ListHead *listeners, struct ListHead **item_ptr, struct ListHead **previous_ptr)
-
static void event_listener_add_to_polling_set(struct EventListener *listener, GlobalContext *glb)
- file mailbox.c
Include dependency graph for mailbox.c:
Defines
-
ADDITIONAL_PROCESSING_MEMORY_SIZE
Functions
-
void mailbox_init(Mailbox *mbx)
- _Static_assert (offsetof(struct Message, base)+offsetof(struct MailboxMessage, next)==offsetof(HeapFragment, next) ? 1 :0, "Message.base.next doesn't match HeapFragment.next")
- _Static_assert (offsetof(struct Message, base)+offsetof(struct MailboxMessage, type)==offsetof(HeapFragment, heap_end) ? 1 :0, "Message.base.type doesn't match HeapFragment.heap_end")
- _Static_assert (offsetof(struct Message, message)==offsetof(HeapFragment, storage) ? 1 :0, "Message.message doesn't match HeapFragment.storage[0]")
- _Static_assert (offsetof(struct Message, heap_end)==offsetof(HeapFragment, storage[1]) ? 1 :0, "Message.heap_end doesn't match HeapFragment.storage[1]")
- _Static_assert (sizeof(struct Message)==sizeof(HeapFragment)+2 *sizeof(term) ? 1 :0, "sizeof(Message) doesn't match sizeof(HeapFragment) + 2 terms")
- _Static_assert (offsetof(struct TermSignal, base)+offsetof(struct MailboxMessage, next)==offsetof(HeapFragment, next) ? 1 :0, "TermSignal.base.next doesn't match HeapFragment.next")
- _Static_assert (offsetof(struct TermSignal, base)+offsetof(struct MailboxMessage, type)==offsetof(HeapFragment, heap_end) ? 1 :0, "TermSignal.base.type doesn't match HeapFragment.heap_end")
- _Static_assert (offsetof(struct TermSignal, signal_term)==offsetof(HeapFragment, storage) ? 1 :0, "TermSignal.signal_term doesn't match HeapFragment.storage[0]")
- _Static_assert (offsetof(struct TermSignal, heap_end)==offsetof(HeapFragment, storage[1]) ? 1 :0, "TermSignal.heap_end doesn't match HeapFragment.storage[1]")
- _Static_assert (sizeof(struct TermSignal)==sizeof(HeapFragment)+2 *sizeof(term) ? 1 :0, "sizeof(TermSignal) doesn't match sizeof(HeapFragment) + 2 terms")
-
HeapFragment *mailbox_message_to_heap_fragment(void *m, term *heap_end)
-
void mailbox_message_dispose(MailboxMessage *m, Heap *heap)
-
size_t mailbox_len(Mailbox *mbox)
-
size_t mailbox_size(Mailbox *mbox)
-
static void mailbox_post_message(Context *c, MailboxMessage *m)
-
void mailbox_send_term_signal(Context *c, enum MessageType type, term t)
-
void mailbox_send_built_in_atom_signal(Context *c, enum MessageType type, term atom)
-
void mailbox_send_built_in_atom_request_signal(Context *c, enum MessageType type, int32_t pid, term atom)
-
void mailbox_send_ref_signal(Context *c, enum MessageType type, uint64_t ref_ticks)
-
void mailbox_send_empty_body_signal(Context *c, enum MessageType type)
-
void mailbox_reset(Mailbox *mbox)
-
MailboxMessage *mailbox_process_outer_list(Mailbox *mbox)
-
void mailbox_next(Mailbox *mbox)
-
MailboxMessage *mailbox_take_message(Mailbox *mbox)
-
void mailbox_crashdump(Context *ctx)
-
ADDITIONAL_PROCESSING_MEMORY_SIZE
- file mailbox.h
Include dependency graph for mailbox.h:
This graph shows which files directly or indirectly include mailbox.h:
Defines
-
TYPEDEF_CONTEXT
-
TYPEDEF_HEAP
Typedefs
-
typedef struct Context Context
-
typedef struct Heap Heap
-
typedef struct Message Message
-
typedef struct MailboxMessage MailboxMessage
Enums
-
enum MessageType
Values:
-
enumerator NormalMessage
-
enumerator KillSignal
-
enumerator GCSignal
-
enumerator ProcessInfoRequestSignal
-
enumerator TrapAnswerSignal
-
enumerator TrapExceptionSignal
-
enumerator FlushMonitorSignal
-
enumerator FlushInfoMonitorSignal
-
enumerator NormalMessage
Functions
-
void mailbox_init(Mailbox *mbox)
-
size_t mailbox_len(Mailbox *mbox)
-
size_t mailbox_size(Mailbox *mbox)
-
MailboxMessage *mailbox_process_outer_list(Mailbox *mbox)
-
void mailbox_send_term_signal(Context *c, enum MessageType type, term t)
-
void mailbox_send_built_in_atom_signal(Context *c, enum MessageType type, term atom)
-
void mailbox_send_built_in_atom_request_signal(Context *c, enum MessageType type, int32_t sender_pid, term atom)
-
void mailbox_send_ref_signal(Context *c, enum MessageType type, uint64_t ref_ticks)
-
void mailbox_send_empty_body_signal(Context *c, enum MessageType type)
-
void mailbox_reset(Mailbox *mbox)
-
void mailbox_next(Mailbox *mbox)
-
static inline bool mailbox_has_next(Mailbox *mbox)
-
MailboxMessage *mailbox_take_message(Mailbox *mbox)
-
void mailbox_message_dispose(MailboxMessage *m, Heap *heap)
-
void mailbox_crashdump(Context *ctx)
-
TYPEDEF_CONTEXT
- file memory.c
Include dependency graph for memory.c:
Defines
-
MAX(a, b)
-
FIBONACCI_HEAP_GROWTH_REDUCTION_THRESHOLD
Functions
-
static void memory_scan_and_copy(HeapFragment *old_fragment, term *mem_start, const term *mem_end, term **new_heap_pos, term *mso_list, bool move)
-
static term memory_shallow_copy_term(HeapFragment *old_fragment, term t, term **new_heap, bool move)
-
static enum MemoryGCResult memory_gc(Context *ctx, size_t new_size, size_t num_roots, term *roots)
-
enum MemoryGCResult memory_init_heap(Heap *heap, size_t size)
-
void memory_init_heap_root_fragment(Heap *heap, HeapFragment *root, size_t size)
-
static inline enum MemoryGCResult memory_heap_alloc_new_fragment(Heap *heap, size_t size)
-
enum MemoryGCResult memory_erl_nif_env_ensure_free(ErlNifEnv *env, size_t size)
-
static size_t next_fibonacci_heap_size(size_t size)
-
enum MemoryGCResult memory_ensure_free_with_roots(Context *c, size_t size, size_t num_roots, term *roots, enum MemoryAllocMode alloc_mode)
-
static inline int memory_is_moved_marker(term *t)
-
unsigned long memory_estimate_usage(term t)
- static inline HOT_FUNC bool memory_heap_fragment_contains_pointer (HeapFragment *old_fragment, term *ptr)
-
void memory_heap_append_fragment(Heap *heap, HeapFragment *fragment, term mso_list)
-
void memory_sweep_mso_list(term mso_list, GlobalContext *global)
-
MAX(a, b)
- file memory.h
Include dependency graph for memory.h:
This graph shows which files directly or indirectly include memory.h:
Defines
-
HEAP_NEED_GC_SHRINK_THRESHOLD_COEFF
-
MIN_FREE_SPACE_SIZE
-
TYPEDEF_CONTEXT
-
TYPEDEF_GLOBALCONTEXT
-
TYPEDEF_HEAP
-
BEGIN_WITH_STACK_HEAP(size, name)
-
END_WITH_STACK_HEAP(name, global)
-
STORAGE_MSO_LIST_INDEX
-
STORAGE_HEAP_START_INDEX
Typedefs
-
typedef struct Context Context
-
typedef struct GlobalContext GlobalContext
-
typedef struct HeapFragment HeapFragment
-
typedef struct Heap Heap
Enums
-
enum MemoryGCResult
Values:
-
enumerator MEMORY_GC_OK
-
enumerator MEMORY_GC_ERROR_FAILED_ALLOCATION
-
enumerator MEMORY_GC_DENIED_ALLOCATION
-
enumerator MEMORY_GC_OK
-
enum MemoryAllocMode
Values:
-
enumerator MEMORY_NO_SHRINK
-
enumerator MEMORY_CAN_SHRINK
-
enumerator MEMORY_FORCE_SHRINK
-
enumerator MEMORY_NO_GC
-
enumerator MEMORY_NO_SHRINK
Functions
-
void memory_init_heap_root_fragment(Heap *heap, HeapFragment *root, size_t size)
- enum MemoryGCResult memory_init_heap (Heap *heap, size_t size) MUST_CHECK
-
static inline size_t memory_heap_fragment_memory_size(const HeapFragment *fragment)
-
static inline size_t memory_heap_youngest_size(const Heap *heap)
-
static inline size_t memory_heap_memory_size(const Heap *heap)
- static inline MALLOC_LIKE term * memory_heap_alloc (Heap *heap, size_t size)
- enum MemoryGCResult memory_ensure_free_with_roots (Context *ctx, size_t size, size_t num_roots, term *roots, enum MemoryAllocMode alloc_mode) MUST_CHECK
- static inline MUST_CHECK enum MemoryGCResult memory_ensure_free_opt (Context *ctx, size_t size, enum MemoryAllocMode alloc_mode)
- static inline MUST_CHECK enum MemoryGCResult memory_ensure_free (Context *ctx, size_t size)
- MUST_CHECK enum MemoryGCResult memory_erl_nif_env_ensure_free (ErlNifEnv *env, size_t size)
-
unsigned long memory_estimate_usage(term t)
-
void memory_heap_append_fragment(Heap *heap, HeapFragment *fragment, term mso_list)
-
void memory_sweep_mso_list(term mso_list, GlobalContext *global)
-
static inline void memory_destroy_heap_fragment(HeapFragment *fragment)
-
static inline void memory_destroy_heap(Heap *heap, GlobalContext *global)
-
HEAP_NEED_GC_SHRINK_THRESHOLD_COEFF
- file module.c
Include dependency graph for module.c:
Defines
-
LITT_UNCOMPRESSED_SIZE_OFFSET
-
LITT_HEADER_SIZE
-
TAG_COMPACT_INT
-
TAG_COMPACT_ATOM
-
TAG_EXTENDED_INT
-
TAG_EXTENDED_ATOM
-
CHECK_FREE_SPACE(space, error)
-
IMPL_CODE_LOADER
Functions
-
static struct LiteralEntry *module_build_literals_table(const void *literalsBuf)
-
static void module_add_label(Module *mod, int index, const uint8_t *ptr)
-
static enum ModuleLoadResult module_build_imported_functions_table(Module *this_module, uint8_t *table_data, GlobalContext *glb)
-
static void parse_line_table(uint16_t **line_refs, struct ModuleFilename **filenames, uint8_t *data, size_t len)
-
static enum ModuleLoadResult module_populate_atoms_table(Module *this_module, uint8_t *table_data, GlobalContext *glb)
-
bool module_get_function_from_label(Module *this_module, int label, AtomString *function_name, int *arity, GlobalContext *glb)
-
size_t module_get_exported_functions_count(Module *this_module)
-
uint32_t module_search_exported_function(Module *this_module, AtomString func_name, int func_arity, GlobalContext *glb)
-
term module_get_exported_functions(Module *this_module, Heap *heap, GlobalContext *glb)
-
Module *module_new_from_iff_binary(GlobalContext *global, const void *iff_binary, unsigned long size)
- COLD_FUNC void module_destroy (Module *module)
-
const struct ExportedFunction *module_resolve_function0(Module *mod, int import_table_index, struct UnresolvedFunctionCall *unresolved, GlobalContext *glb)
-
static uint16_t *parse_line_refs(uint8_t **data, size_t num_refs, size_t len)
-
struct ModuleFilename *parse_filename_table(uint8_t **data, size_t num_filenames, size_t len)
-
void module_insert_line_ref_offset(Module *mod, int line_ref, int offset)
-
int module_find_line(Module *mod, unsigned int offset)
-
LITT_UNCOMPRESSED_SIZE_OFFSET
- file module.h
Include dependency graph for module.h:
This graph shows which files directly or indirectly include module.h:
Defines
-
SMP_MODULE_LOCK(mod)
-
SMP_MODULE_UNLOCK(mod)
Enums
-
enum ModuleLoadResult
Values:
-
enumerator MODULE_LOAD_OK
-
enumerator MODULE_ERROR_FAILED_ALLOCATION
-
enumerator MODULE_LOAD_OK
Functions
-
size_t module_get_exported_functions_count(Module *this_module)
-
uint32_t module_search_exported_function(Module *this_module, AtomString func_name, int func_arity, GlobalContext *glb)
-
static inline size_t module_get_exported_functions_list_size(Module *this_module)
-
term module_get_exported_functions(Module *this_module, Heap *heap, GlobalContext *global)
-
void module_destroy(Module *module)
-
Module *module_new_from_iff_binary(GlobalContext *global, const void *iff_binary, unsigned long size)
-
static inline AtomString module_get_atom_string_by_id(const Module *mod, int local_atom_id, GlobalContext *glb)
-
const struct ExportedFunction *module_resolve_function0(Module *mod, int import_table_index, struct UnresolvedFunctionCall *unresolved, GlobalContext *glb)
-
static inline const struct ExportedFunction *module_resolve_function(Module *mod, int import_table_index, GlobalContext *glb)
-
static inline term module_address(unsigned int module_index, unsigned int instruction_index)
-
static inline uint32_t module_get_fun_freeze(const Module *this_module, int fun_index)
-
static inline void module_get_fun(const Module *this_module, int fun_index, uint32_t *label, uint32_t *arity, uint32_t *n_freeze)
-
static inline const uint8_t *module_get_str(Module *mod, size_t offset, size_t *remaining)
-
bool module_get_function_from_label(Module *this_module, int label, AtomString *function_name, int *arity, GlobalContext *glb)
-
void module_insert_line_ref_offset(Module *mod, int line_ref, int offset)
-
int module_find_line(Module *mod, unsigned int offset)
-
static inline bool module_has_line_chunk(Module *mod)
-
SMP_MODULE_LOCK(mod)
- file nifs.c
Include dependency graph for nifs.c:
Defines
-
_GNU_SOURCE
-
MAX_NIF_NAME_LEN
-
FLOAT_BUF_SIZE
-
RAISE(a, b)
-
MAX(x, y)
-
NOT_FOUND
-
DECLARE_MATH_NIF_FUN(moniker)
-
DEFINE_MATH_NIF(moniker)
-
IF_HAVE_OPEN_CLOSE(expr)
-
IF_HAVE_MKFIFO(expr)
-
IF_HAVE_UNLINK(expr)
-
IF_HAVE_CLOCK_SETTIME_OR_SETTIMEOFDAY(expr)
-
DEFINE_UNARY_MATH_OP(moniker)
-
DEFINE_BINARY_MATH_OP(moniker)
Typedefs
-
typedef void *(*context_iterator)(Context *ctx, void *accum)
-
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)
-
int get_float_format_opts(term opts, int *scientific, int *decimals, int *compact)
-
static void *nif_increment_context_count(Context *ctx, void *accum)
-
static void *nif_increment_port_count(Context *ctx, void *accum)
-
static void *nif_cons_context(Context *ctx, void *p)
-
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)
-
static term math_binary_op(Context *ctx, term x_term, term y_term, binary_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+/"
-
_GNU_SOURCE
- file nifs.h
Include dependency graph for nifs.h:
This graph shows which files directly or indirectly include nifs.h:
Defines
-
VALIDATE_VALUE(value, verify_function)
-
RAISE_ERROR(error_type_atom)
Functions
-
const struct Nif *nifs_get(AtomString module, AtomString function, int arity)
-
VALIDATE_VALUE(value, verify_function)
- file opcodes.h
This graph shows which files directly or indirectly include opcodes.h:
Defines
-
OP_LABEL
-
OP_FUNC_INFO
-
OP_INT_CALL_END
-
OP_CALL
-
OP_CALL_LAST
-
OP_CALL_ONLY
-
OP_CALL_EXT
-
OP_CALL_EXT_LAST
-
OP_BIF0
-
OP_BIF1
-
OP_BIF2
-
OP_ALLOCATE
-
OP_ALLOCATE_HEAP
-
OP_ALLOCATE_ZERO
-
OP_ALLOCATE_HEAP_ZERO
-
OP_TEST_HEAP
-
OP_KILL
-
OP_DEALLOCATE
-
OP_RETURN
-
OP_SEND
-
OP_REMOVE_MESSAGE
-
OP_TIMEOUT
-
OP_LOOP_REC
-
OP_LOOP_REC_END
-
OP_WAIT
-
OP_WAIT_TIMEOUT
-
OP_IS_LT
-
OP_IS_GE
-
OP_IS_EQUAL
-
OP_IS_NOT_EQUAL
-
OP_IS_EQ_EXACT
-
OP_IS_NOT_EQ_EXACT
-
OP_IS_INTEGER
-
OP_IS_FLOAT
-
OP_IS_NUMBER
-
OP_IS_ATOM
-
OP_IS_PID
-
OP_IS_REFERENCE
-
OP_IS_PORT
-
OP_IS_NIL
-
OP_IS_BINARY
-
OP_IS_LIST
-
OP_IS_NONEMPTY_LIST
-
OP_IS_TUPLE
-
OP_TEST_ARITY
-
OP_SELECT_VAL
-
OP_SELECT_TUPLE_ARITY
-
OP_JUMP
-
OP_CATCH
-
OP_CATCH_END
-
OP_MOVE
-
OP_GET_LIST
-
OP_GET_TUPLE_ELEMENT
-
OP_SET_TUPLE_ELEMENT
-
OP_PUT_LIST
-
OP_PUT_TUPLE
-
OP_PUT
-
OP_BADMATCH
-
OP_IF_END
-
OP_CASE_END
-
OP_CALL_FUN
-
OP_IS_FUNCTION
-
OP_CALL_EXT_ONLY
-
OP_BS_PUT_INTEGER
-
OP_BS_PUT_BINARY
-
OP_BS_PUT_STRING
-
OP_FCLEARERROR
-
OP_FCHECKERROR
-
OP_FMOVE
-
OP_FCONV
-
OP_FADD
-
OP_FSUB
-
OP_FMUL
-
OP_FDIV
-
OP_FNEGATE
-
OP_MAKE_FUN2
-
OP_TRY
-
OP_TRY_END
-
OP_TRY_CASE
-
OP_TRY_CASE_END
-
OP_RAISE
-
OP_BS_INIT2
-
OP_BS_ADD
-
OP_APPLY
-
OP_APPLY_LAST
-
OP_IS_BOOLEAN
-
OP_IS_FUNCTION2
-
OP_BS_START_MATCH2
-
OP_BS_GET_INTEGER2
-
OP_BS_GET_FLOAT2
-
OP_BS_GET_BINARY2
-
OP_BS_SKIP_BITS2
-
OP_BS_TEST_TAIL2
-
OP_BS_SAVE2
-
OP_BS_RESTORE2
-
OP_GC_BIF1
-
OP_GC_BIF2
-
OP_IS_BITSTR
-
OP_BS_CONTEXT_TO_BINARY
-
OP_BS_TEST_UNIT
-
OP_BS_MATCH_STRING
-
OP_BS_INIT_WRITABLE
-
OP_BS_APPEND
-
OP_BS_PRIVATE_APPEND
-
OP_TRIM
-
OP_BS_INIT_BITS
-
OP_BS_GET_UTF8
-
OP_BS_SKIP_UTF8
-
OP_BS_GET_UTF16
-
OP_BS_SKIP_UTF16
-
OP_BS_GET_UTF32
-
OP_BS_SKIP_UTF32
-
OP_BS_UTF8_SIZE
-
OP_BS_PUT_UTF8
-
OP_BS_UTF16_SIZE
-
OP_BS_PUT_UTF16
-
OP_BS_PUT_UTF32
-
OP_RECV_MARK
-
OP_RECV_SET
-
OP_GC_BIF3
-
OP_LINE
-
OP_PUT_MAP_ASSOC
-
OP_PUT_MAP_EXACT
-
OP_IS_MAP
-
OP_HAS_MAP_FIELDS
-
OP_GET_MAP_ELEMENTS
-
OP_IS_TAGGED_TUPLE
-
OP_BUILD_STACKTRACE
-
OP_GET_HD
-
OP_GET_TL
-
OP_PUT_TUPLE2
-
OP_BS_GET_TAIL
-
OP_BS_START_MATCH3
-
OP_BS_GET_POSITION
-
OP_BS_SET_POSITION
-
OP_SWAP
-
OP_BS_START_MATCH4
-
OP_MAKE_FUN3
-
OP_INIT_YREGS
-
OP_RECV_MARKER_BIND
-
OP_RECV_MARKER_CLEAR
-
OP_RECV_MARKER_RESERVE
-
OP_RECV_MARKER_USE
-
OP_BS_CREATE_BIN
-
OP_CALL_FUN2
-
OP_BADRECORD
-
OP_UPDATE_RECORD
-
OP_BS_MATCH
-
OP_LABEL
- file opcodesswitch.h
Include dependency graph for opcodesswitch.h:
This graph shows which files directly or indirectly include opcodesswitch.h:
Defines
-
MINIMUM_OTP_COMPILER_VERSION
-
MAXIMUM_OTP_COMPILER_VERSION
-
COMPACT_LITERAL
-
COMPACT_INTEGER
-
COMPACT_ATOM
-
COMPACT_XREG
-
COMPACT_YREG
-
COMPACT_LABEL
-
COMPACT_EXTENDED
-
COMPACT_LARGE_LITERAL
-
COMPACT_LARGE_INTEGER
-
COMPACT_LARGE_ATOM
-
COMPACT_LARGE_YREG
-
COMPACT_EXTENDED_LIST
-
COMPACT_EXTENDED_FP_REGISTER
-
COMPACT_EXTENDED_ALLOCATION_LIST
-
COMPACT_EXTENDED_LITERAL
-
COMPACT_EXTENDED_TYPED_REGISTER
-
COMPACT_EXTENDED_ALLOCATOR_LIST_TAG_WORDS
-
COMPACT_EXTENDED_ALLOCATOR_LIST_TAG_FLOATS
-
COMPACT_EXTENDED_ALLOCATOR_LIST_TAG_FUNS
-
COMPACT_LARGE_IMM_MASK
-
COMPACT_11BITS_VALUE
-
COMPACT_NBITS_VALUE
-
SET_ERROR(error_type_atom)
-
RAISE_ERROR(error_type_atom)
-
VM_ABORT()
-
DEST_REGISTER(reg)
-
GC_SAFE_DEST_REGISTER(reg)
-
T_DEST_REG(dreg)
-
T_DEST_REG_GC_SAFE(dreg_gc_safe)
-
DECODE_COMPACT_TERM(dest_term, decode_pc)
-
READ_DEST_REGISTER(dreg)
-
READ_DEST_REGISTER_GC_SAFE(dreg_gc_safe)
-
WRITE_REGISTER(dreg, value)
-
WRITE_REGISTER_GC_SAFE(dreg_gc_safe, value)
-
DECODE_EXTENDED_LIST_TAG(decode_pc)
-
DECODE_DEST_REGISTER(dreg, decode_pc)
-
DECODE_DEST_REGISTER_GC_SAFE(dreg_gc_safe, decode_pc)
-
DECODE_FP_REGISTER(freg, decode_pc)
-
DECODE_VALUE(val, decode_pc)
-
DECODE_ATOM(atom, decode_pc)
-
DECODE_LABEL(label, decode_pc)
-
DECODE_LITERAL(val, decode_pc)
-
DECODE_INTEGER(integer, decode_pc)
-
DECODE_XREG(reg, decode_pc)
-
DECODE_YREG(reg, decode_pc)
-
DECODE_ALLOCATOR_LIST(need, decode_pc)
-
IS_EXTENDED_ALLOCATOR(decode_pc)
-
IS_EXTENDED_FP_REGISTER(decode_pc)
-
JUMP_TO_LABEL(module, label)
-
JUMP_TO_ADDRESS(address)
-
SCHEDULE_NEXT(restore_mod, restore_to)
-
PROCESS_SIGNAL_MESSAGES()
-
PROCESS_MAYBE_TRAP_RETURN_VALUE(return_value)
-
PROCESS_MAYBE_TRAP_RETURN_VALUE_RESTORE_PC(return_value, rest_pc)
-
PROCESS_MAYBE_TRAP_RETURN_VALUE_LAST(return_value)
-
DO_RETURN()
-
HANDLE_ERROR()
-
VERIFY_IS_INTEGER(t, opcode_name)
-
VERIFY_IS_ANY_INTEGER(t, opcode_name)
-
VERIFY_IS_BINARY(t, opcode_name)
-
VERIFY_IS_MATCH_STATE(t, opcode_name)
-
VERIFY_IS_MATCH_OR_BINARY(t, opcode_name)
-
CALL_FUN(fun, args_count)
-
DECODE_FLAGS_LIST(flags_value, flags, opcode)
-
MIN(X, Y)
-
SWAP_KV_PAIR(I, J)
-
TRACE_APPLY(...)
-
TRACE_CALL(...)
-
TRACE_CALL_EXT(...)
-
TRACE_RETURN(...)
-
TRACE_SEND(...)
-
TRACE_RECEIVE(...)
Typedefs
-
typedef term *dreg_t
Functions
-
static bool sort_kv_pairs(struct kv_pair *kv, int size, GlobalContext *global)
- static COLD_FUNC void cp_to_mod_lbl_off (term cp, Context *ctx, Module **cp_mod, int *label, int *l_off)
- static COLD_FUNC void dump (Context *ctx)
-
static term maybe_alloc_boxed_integer_fragment(Context *ctx, avm_int64_t value)
-
static inline term maybe_alloc_boxed_integer_fragment_helper(Context *ctx, avm_int64_t value, unsigned int bytes_count)
-
static bool maybe_call_native(Context *ctx, AtomString module_name, AtomString function_name, int arity, term *return_value)
- memcpy (tmp_atom_name+1, function_name, function_len)
-
free(tmp_atom_name)
- if (UNLIKELY(!label))
-
scheduler_init_ready(ctx)
- return scheduler_entry_point (ctx->global)
- HOT_FUNC int scheduler_entry_point (GlobalContext *glb)
Variables
-
int function_len = strlen(function_name)
-
uint8_t *tmp_atom_name = malloc(function_len + 1)
-
int label = module_search_exported_function(mod, tmp_atom_name, arity, ctx->global)
-
ctx saved_module = mod
-
ctx cp = module_address(mod->module_index, mod->end_instruction_ii)
-
ctx saved_ip = mod->labels[label]
- ctx global running_schedulers = 1
-
MINIMUM_OTP_COMPILER_VERSION
- file otp_crypto.c
Include dependency graph for otp_crypto.c:
Defines
-
MAX_MD_SIZE
-
DEFINE_HASH_FOLD(ALGORITHM, SUFFIX)
-
DEFINE_HASH_FOLD_NORET(ALGORITHM, SUFFIX)
-
DEFINE_DO_HASH(ALGORITHM, SUFFIX)
-
DEFINE_DO_HASH_IS_OTHER(ALGORITHM, SUFFIX, IS_OTHER)
-
DEFINE_DO_HASH_NORET(ALGORITHM, SUFFIX)
-
DEFINE_DO_HASH_NORET_IS_OTHER(ALGORITHM, SUFFIX, IS_OTHER)
Enums
-
enum crypto_algorithm
Values:
-
enumerator CryptoInvalidAlgorithm
-
enumerator CryptoMd5
-
enumerator CryptoSha1
-
enumerator CryptoSha224
-
enumerator CryptoSha256
-
enumerator CryptoSha384
-
enumerator CryptoSha512
-
enumerator CryptoInvalidAlgorithm
Functions
-
static bool bool_to_mbedtls_operation(term encrypt_flag, mbedtls_operation_t *operation)
-
const struct Nif *otp_crypto_nif_get_nif(const char *nifname)
Variables
-
static const AtomStringIntPair crypto_algorithm_table[] = {{ATOM_STR("\x3", "md5"), CryptoMd5}, {ATOM_STR("\x3", "sha"), CryptoSha1}, {ATOM_STR("\x6", "sha224"), CryptoSha224}, {ATOM_STR("\x6", "sha256"), CryptoSha256}, {ATOM_STR("\x6", "sha384"), CryptoSha384}, {ATOM_STR("\x6", "sha512"), CryptoSha512},}
-
static const AtomStringIntPair cipher_table[] = {{ATOM_STR("\xB", "aes_128_ecb"), MBEDTLS_CIPHER_AES_128_ECB}, {ATOM_STR("\xB", "aes_192_ecb"), MBEDTLS_CIPHER_AES_192_ECB}, {ATOM_STR("\xB", "aes_256_ecb"), MBEDTLS_CIPHER_AES_256_ECB}, {ATOM_STR("\xB", "aes_128_cbc"), MBEDTLS_CIPHER_AES_128_CBC}, {ATOM_STR("\xB", "aes_192_cbc"), MBEDTLS_CIPHER_AES_192_CBC}, {ATOM_STR("\xB", "aes_256_cbc"), MBEDTLS_CIPHER_AES_256_CBC}, {ATOM_STR("\xE", "aes_128_cfb128"), MBEDTLS_CIPHER_AES_128_CFB128}, {ATOM_STR("\xE", "aes_192_cfb128"), MBEDTLS_CIPHER_AES_192_CFB128}, {ATOM_STR("\xE", "aes_256_cfb128"), MBEDTLS_CIPHER_AES_256_CFB128}, {ATOM_STR("\xB", "aes_128_ctr"), MBEDTLS_CIPHER_AES_128_CTR}, {ATOM_STR("\xB", "aes_192_ctr"), MBEDTLS_CIPHER_AES_192_CTR}, {ATOM_STR("\xB", "aes_256_ctr"), MBEDTLS_CIPHER_AES_256_CTR},}
-
static const AtomStringIntPair padding_table[] = {{ATOM_STR("\x4", "none"), MBEDTLS_PADDING_NONE}, {ATOM_STR("\xC", "pkcs_padding"), MBEDTLS_PADDING_PKCS7},}
- static const struct Nif crypto_hash_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_crypto_hash}
- static const struct Nif crypto_crypto_one_time_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_crypto_crypto_one_time}
- static const struct Nif crypto_strong_rand_bytes_nif = {.base.type =NIFFunctionType,.nif_ptr =nif_crypto_strong_rand_bytes }
-
MAX_MD_SIZE
- file otp_crypto.h
Include dependency graph for otp_crypto.h:
This graph shows which files directly or indirectly include otp_crypto.h:
Functions
-
const struct Nif *otp_crypto_nif_get_nif(const char *nifname)
-
const struct Nif *otp_crypto_nif_get_nif(const char *nifname)
- file otp_net.c
Include dependency graph for otp_net.c:
Defines
-
UNKNOWN_TABLE_VALUE
Functions
-
static term eai_errno_to_term(int err, GlobalContext *glb)
-
static term make_getaddrinfo_result(term *keys, int ai_protocol, int ai_socktype, term inner_addr, GlobalContext *global, Heap *heap)
-
const struct Nif *otp_net_nif_get_nif(const char *nifname)
-
void otp_net_init(GlobalContext *global)
Variables
-
static const AtomStringIntPair protocol_table[] = {{ATOM_STR("\x3", "tcp"), IPPROTO_TCP}, {ATOM_STR("\x3", "udp"), IPPROTO_UDP},}
-
static const AtomStringIntPair type_table[] = {{ATOM_STR("\x5", "dgram"), SOCK_DGRAM}, {ATOM_STR("\x6", "stream"), SOCK_STREAM},}
- static const struct Nif net_getaddrinfo_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_net_getaddrinfo}
-
UNKNOWN_TABLE_VALUE
- file otp_net.h
Include dependency graph for otp_net.h:
This graph shows which files directly or indirectly include otp_net.h:
Functions
-
const struct Nif *otp_net_nif_get_nif(const char *nifname)
-
void otp_net_init(GlobalContext *global)
-
const struct Nif *otp_net_nif_get_nif(const char *nifname)
- file otp_socket.c
Include dependency graph for otp_socket.c:
Defines
-
CLOSED_FD
-
ADDR_ATOM
-
CLOSE_INTERNAL_ATOM
-
ACCEPT_ATOM
-
RECV_ATOM
-
DEFAULT_BUFFER_SIZE
-
MIN(A, B)
Enums
-
enum otp_socket_shutdown_direction
Values:
-
enumerator OtpSocketInvalidShutdownDirection
-
enumerator OtpSocketReadShutdownDirection
-
enumerator OtpSocketWriteShutdownDirection
-
enumerator OtpSocketReadWriteShutdownDirection
-
enumerator OtpSocketInvalidShutdownDirection
-
enum otp_socket_setopt_level
Values:
-
enumerator OtpSocketInvalidSetoptLevel
-
enumerator OtpSocketSetoptLevelSocket
-
enumerator OtpSocketSetoptLevelOTP
-
enumerator OtpSocketInvalidSetoptLevel
Functions
-
static void socket_dtor(ErlNifEnv *caller_env, void *obj)
-
static void socket_down(ErlNifEnv *caller_env, void *obj, ErlNifPid *pid, ErlNifMonitor *mon)
-
void otp_socket_init(GlobalContext *global)
-
static inline int get_domain(GlobalContext *global, term domain_term, bool *ok)
-
static inline int get_type(GlobalContext *global, term type_term, bool *ok)
-
static inline int get_protocol(GlobalContext *global, term protocol_term, bool *ok)
-
bool term_is_otp_socket(term socket_term)
-
static int send_closed_notification(Context *ctx, struct SocketResource *rsrc_obj)
- switch (level_val)
- if (UNLIKELY(memory_ensure_free(ctx, TUPLE_SIZE(2)+term_map_size_in_terms(2)+TUPLE_SIZE(4)) !=MEMORY_GC_OK))
- term_set_map_assoc (map, 0, ADDR_ATOM, address)
- term_set_map_assoc (map, 1, PORT_ATOM, port_number)
-
ssize_t socket_recv(struct SocketResource *rsrc_obj, uint8_t *buf, size_t len, int flags, term *from, Heap *heap)
-
ssize_t socket_send(struct SocketResource *rsrc_obj, const uint8_t *buf, size_t len, term dest)
-
const struct Nif *otp_socket_nif_get_nif(const char *nifname)
Variables
-
static const char *const addr_atom = ATOM_STR("\x4", "addr")
-
static const char *const any_atom = ATOM_STR("\x3", "any")
-
static const char *const invalid_option_atom = ATOM_STR("\xE", "invalid_option")
-
static const char *const invalid_value_atom = ATOM_STR("\xD", "invalid_value")
-
static const char *const linger_atom = ATOM_STR("\x6", "linger")
-
static const char *const loopback_atom = ATOM_STR("\x8", "loopback")
-
static const char *const onoff_atom = ATOM_STR("\x5", "onoff")
-
static const char *const port_atom = ATOM_STR("\x4", "port")
-
static const char *const rcvbuf_atom = ATOM_STR("\x6", "rcvbuf")
-
static const char *const reuseaddr_atom = ATOM_STR("\x9", "reuseaddr")
-
static const AtomStringIntPair otp_socket_shutdown_direction_table[] = {{ATOM_STR("\x4", "read"), OtpSocketReadShutdownDirection}, {ATOM_STR("\x5", "write"), OtpSocketWriteShutdownDirection}, {ATOM_STR("\xA", "read_write"), OtpSocketReadWriteShutdownDirection},}
-
static const AtomStringIntPair otp_socket_setopt_level_table[] = {{ATOM_STR("\x6", "socket"), OtpSocketSetoptLevelSocket}, {ATOM_STR("\x3", "otp"), OtpSocketSetoptLevelOTP},}
-
static ErlNifResourceType *socket_resource_type
- static const ErlNifResourceTypeInit SocketResourceTypeInit = {.members = 3,.dtor = socket_dtor,.stop = NULL,.down = socket_down,}
-
term level_tuple = argv[1]
-
term value = argv[2]
-
term level = term_get_tuple_element(level_tuple, 0)
-
int level_val = interop_atom_term_select_int(otp_socket_setopt_level_table, level, global)
- else = { term address = inet_make_addr4(ip4_u32, &ctx->heap)
-
term port_number = term_from_int(port_u16)
-
term map = term_alloc_map(2, &ctx->heap)
-
term return_value = port_create_tuple2(ctx, OK_ATOM, map)
-
term result = OK_ATOM
- static const struct Nif socket_open_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_socket_open}
- static const struct Nif socket_close_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_socket_close}
- static const struct Nif socket_select_stop_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_socket_select_stop}
- static const struct Nif socket_setopt_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_socket_setopt}
- static const struct Nif socket_bind_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_socket_bind}
- static const struct Nif socket_listen_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_socket_listen}
- static const struct Nif socket_sockname_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_socket_sockname}
- static const struct Nif socket_peername_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_socket_peername}
- static const struct Nif socket_select_read_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_socket_select_read}
- static const struct Nif socket_accept_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_socket_accept}
- static const struct Nif socket_recv_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_socket_recv}
- static const struct Nif socket_recvfrom_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_socket_recvfrom}
- static const struct Nif socket_send_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_socket_send}
- static const struct Nif socket_sendto_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_socket_sendto}
- static const struct Nif socket_connect_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_socket_connect}
- static const struct Nif socket_shutdown_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_socket_shutdown}
-
CLOSED_FD
- file otp_socket.h
Include dependency graph for otp_socket.h:
This graph shows which files directly or indirectly include otp_socket.h:
Enums
-
enum SocketErrors
Values:
-
enumerator SocketClosed
-
enumerator SocketWouldBlock
-
enumerator SocketOtherError
-
enumerator SocketClosed
Functions
-
const struct Nif *otp_socket_nif_get_nif(const char *nifname)
-
void otp_socket_init(GlobalContext *global)
-
bool term_is_otp_socket(term socket_term)
-
ssize_t socket_send(struct SocketResource *socket, const uint8_t *buf, size_t len, term dest)
-
enum SocketErrors
- file otp_ssl.c
Include dependency graph for otp_ssl.c:
Defines
-
MBEDTLS_PRIVATE(member)
-
DEFAULT_READ_BUFFER_FALLBACK
-
UNKNOWN_TABLE_VALUE
Functions
-
static void entropycontext_dtor(ErlNifEnv *caller_env, void *obj)
-
static void ctrdrbg_dtor(ErlNifEnv *caller_env, void *obj)
-
static void sslcontext_dtor(ErlNifEnv *caller_env, void *obj)
-
static void sslconfig_dtor(ErlNifEnv *caller_env, void *obj)
-
int mbedtls_ssl_send_cb(void *ctx, const unsigned char *buf, size_t len)
-
int mbedtls_ssl_recv_cb(void *ctx, unsigned char *buf, size_t len)
-
const struct Nif *otp_ssl_nif_get_nif(const char *nifname)
-
void otp_ssl_init(GlobalContext *global)
Variables
- static const ErlNifResourceTypeInit EntropyContextResourceTypeInit = {.members = 1,.dtor = entropycontext_dtor,}
- static const ErlNifResourceTypeInit CtrDrbgResourceTypeInit = {.members = 1,.dtor = ctrdrbg_dtor,}
- static const ErlNifResourceTypeInit SSLContextResourceTypeInit = {.members = 1,.dtor = sslcontext_dtor,}
- static const ErlNifResourceTypeInit SSLConfigResourceTypeInit = {.members = 1,.dtor = sslconfig_dtor,}
-
static ErlNifResourceType *entropycontext_resource_type
-
static ErlNifResourceType *ctrdrbg_resource_type
-
static ErlNifResourceType *sslcontext_resource_type
-
static ErlNifResourceType *sslconfig_resource_type
-
static const AtomStringIntPair endpoint_table[] = {{ATOM_STR("\x6", "client"), MBEDTLS_SSL_IS_CLIENT}, {ATOM_STR("\x6", "server"), MBEDTLS_SSL_IS_SERVER},}
-
static const AtomStringIntPair authmode_table[] = {{ATOM_STR("\x4", "none"), MBEDTLS_SSL_VERIFY_NONE}, {ATOM_STR("\x8", "optional"), MBEDTLS_SSL_VERIFY_OPTIONAL}, {ATOM_STR("\x8", "required"), MBEDTLS_SSL_VERIFY_REQUIRED},}
- static const struct Nif ssl_entropy_init_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_ssl_entropy_init}
- static const struct Nif ssl_ctr_drbg_init_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_ssl_ctr_drbg_init}
- static const struct Nif ssl_ctr_drbg_seed_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_ssl_ctr_drbg_seed}
- static const struct Nif ssl_init_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_ssl_init}
- static const struct Nif ssl_set_bio_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_ssl_set_bio}
- static const struct Nif ssl_config_init_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_ssl_config_init}
- static const struct Nif ssl_config_defaults_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_ssl_config_defaults}
- static const struct Nif ssl_conf_authmode_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_ssl_conf_authmode}
- static const struct Nif ssl_conf_rng_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_ssl_conf_rng}
- static const struct Nif ssl_set_hostname_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_ssl_set_hostname}
- static const struct Nif ssl_setup_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_ssl_setup}
- static const struct Nif ssl_handshake_step_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_ssl_handshake_step}
- static const struct Nif ssl_close_notify_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_ssl_close_notify}
- static const struct Nif ssl_write_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_ssl_write}
- static const struct Nif ssl_read_nif = {.base.type =NIFFunctionType,.nif_ptr = nif_ssl_read}
-
MBEDTLS_PRIVATE(member)
- file otp_ssl.h
Include dependency graph for otp_ssl.h:
This graph shows which files directly or indirectly include otp_ssl.h:
Functions
-
const struct Nif *otp_ssl_nif_get_nif(const char *nifname)
-
void otp_ssl_init(GlobalContext *global)
-
const struct Nif *otp_ssl_nif_get_nif(const char *nifname)
- file overflow_helpers.h
Include dependency graph for overflow_helpers.h:
This graph shows which files directly or indirectly include overflow_helpers.h:
Defines
-
BUILTIN_ADD_OVERFLOW
-
BUILTIN_ADD_OVERFLOW_INT
-
BUILTIN_ADD_OVERFLOW_INT64
-
BUILTIN_SUB_OVERFLOW
-
BUILTIN_SUB_OVERFLOW_INT
-
BUILTIN_SUB_OVERFLOW_INT64
-
BUILTIN_MUL_OVERFLOW
-
BUILTIN_MUL_OVERFLOW_INT
-
BUILTIN_MUL_OVERFLOW_INT64
Functions
-
static inline int atomvm_add_overflow_int64(avm_int64_t a, avm_int64_t b, avm_int64_t *res)
-
static inline int atomvm_sub_overflow_int64(avm_int64_t a, avm_int64_t b, avm_int64_t *res)
-
static inline int atomvm_mul_overflow_int64(avm_int64_t a, avm_int64_t b, avm_int64_t *res)
-
BUILTIN_ADD_OVERFLOW
- file platform_nifs.h
Include dependency graph for platform_nifs.h:
This graph shows which files directly or indirectly include platform_nifs.h:
Functions
-
const struct Nif *platform_nifs_get_nif(const char *nifname)
-
const struct Nif *platform_nifs_get_nif(const char *nifname)
- file port.c
Include dependency graph for port.c:
Functions
-
void port_send_message(GlobalContext *glb, term pid, term msg)
-
void port_send_message_nolock(GlobalContext *glb, term pid, term msg)
-
void port_ensure_available(Context *ctx, size_t size)
-
int port_is_standard_port_command(term t)
-
void port_send_message(GlobalContext *glb, term pid, term msg)
- file port.h
Include dependency graph for port.h:
This graph shows which files directly or indirectly include port.h:
Functions
-
void port_send_message(GlobalContext *glb, term pid, term msg)
-
void port_send_message_nolock(GlobalContext *glb, term pid, term msg)
-
void port_ensure_available(Context *ctx, size_t size)
-
int port_is_standard_port_command(term msg)
-
void port_send_message(GlobalContext *glb, term pid, term msg)
- file posix_nifs.c
Include dependency graph for posix_nifs.c:
Functions
-
term posix_errno_to_term(int err, GlobalContext *glb)
-
term posix_errno_to_term(int err, GlobalContext *glb)
- file posix_nifs.h
Include dependency graph for posix_nifs.h:
This graph shows which files directly or indirectly include posix_nifs.h:
Functions
-
term posix_errno_to_term(int err, GlobalContext *glb)
-
term posix_errno_to_term(int err, GlobalContext *glb)
- file refc_binary.c
Include dependency graph for refc_binary.c:
Functions
-
struct RefcBinary *refc_binary_create_resource(size_t size, struct ResourceType *resource_type)
-
const char *refc_binary_get_data(const struct RefcBinary *refc)
-
struct RefcBinary *refc_binary_from_data(void *ptr)
-
void refc_binary_increment_refcount(struct RefcBinary *refc)
-
bool refc_binary_decrement_refcount(struct RefcBinary *refc, struct GlobalContext *global)
-
void refc_binary_destroy(struct RefcBinary *refc, struct GlobalContext *global)
-
size_t refc_binary_total_size(Context *ctx)
-
struct RefcBinary *refc_binary_create_resource(size_t size, struct ResourceType *resource_type)
- file refc_binary.h
Include dependency graph for refc_binary.h:
This graph shows which files directly or indirectly include refc_binary.h:
Functions
-
struct RefcBinary *refc_binary_create_resource(size_t size, struct ResourceType *resource_type)
-
static inline struct RefcBinary *refc_binary_create_refc(size_t size)
-
const char *refc_binary_get_data(const struct RefcBinary *ptr)
-
struct RefcBinary *refc_binary_from_data(void *ptr)
-
void refc_binary_increment_refcount(struct RefcBinary *ptr)
-
bool refc_binary_decrement_refcount(struct RefcBinary *ptr, GlobalContext *global)
-
void refc_binary_destroy(struct RefcBinary *refc, struct GlobalContext *global)
-
size_t refc_binary_total_size(Context *ctx)
-
struct RefcBinary *refc_binary_create_resource(size_t size, struct ResourceType *resource_type)
- file resources.c
Include dependency graph for resources.c:
Functions
-
ErlNifResourceType *enif_init_resource_type(ErlNifEnv *env, const char *name, const ErlNifResourceTypeInit *init, ErlNifResourceFlags flags, ErlNifResourceFlags *tried)
-
void *enif_alloc_resource(ErlNifResourceType *type, unsigned size)
-
int enif_get_resource(ErlNifEnv *env, ERL_NIF_TERM t, ErlNifResourceType *type, void **objp)
-
int enif_keep_resource(void *resource)
-
int enif_release_resource(void *resource)
-
ERL_NIF_TERM enif_make_resource(ErlNifEnv *env, void *obj)
-
int enif_select(ErlNifEnv *env, ErlNifEvent event, enum ErlNifSelectFlags mode, void *obj, const ErlNifPid *pid, ERL_NIF_TERM ref)
-
static void select_event_send_notification(struct SelectEvent *select_event, bool is_write, GlobalContext *global)
-
bool select_event_notify(ErlNifEvent event, bool is_read, bool is_write, GlobalContext *global)
-
static inline void select_event_destroy(struct SelectEvent *select_event, GlobalContext *global)
-
void select_event_count_and_destroy_closed(struct ListHead *select_events, size_t *read, size_t *write, size_t *either, GlobalContext *global)
-
int enif_monitor_process(ErlNifEnv *env, void *obj, const ErlNifPid *target_pid, ErlNifMonitor *mon)
-
int enif_demonitor_process(ErlNifEnv *env, void *obj, const ErlNifMonitor *mon)
-
void destroy_resource_monitors(struct RefcBinary *resource, GlobalContext *global)
-
int enif_compare_monitors(const ErlNifMonitor *monitor1, const ErlNifMonitor *monitor2)
-
ErlNifResourceType *enif_init_resource_type(ErlNifEnv *env, const char *name, const ErlNifResourceTypeInit *init, ErlNifResourceFlags flags, ErlNifResourceFlags *tried)
- file resources.h
Include dependency graph for resources.h:
This graph shows which files directly or indirectly include resources.h:
Defines
-
TYPEDEF_GLOBALCONTEXT
-
SELECT_EVENT_NOTIFICATION_SIZE
Typedefs
-
typedef struct GlobalContext GlobalContext
Functions
-
static inline void resource_type_destroy(struct ResourceType *resource_type)
-
bool select_event_notify(ErlNifEvent event, bool is_read, bool is_write, GlobalContext *global)
-
void select_event_count_and_destroy_closed(struct ListHead *select_events, size_t *read, size_t *write, size_t *either, GlobalContext *global)
-
void destroy_resource_monitors(struct RefcBinary *resource, GlobalContext *global)
-
TYPEDEF_GLOBALCONTEXT
- file scheduler.c
Include dependency graph for scheduler.c:
Defines
-
SMP_SPINLOCK_LOCK(spinlock)
-
SMP_SPINLOCK_UNLOCK(spinlock)
-
SMP_MUTEX_LOCK(mtx)
-
SMP_MUTEX_TRYLOCK(mtx)
-
SMP_MUTEX_UNLOCK(mtx)
Functions
-
static void scheduler_timeout_callback(struct TimerListItem *it)
-
static void scheduler_make_ready(Context *ctx)
-
static int update_timer_list(GlobalContext *global)
-
static void scheduler_process_native_signal_messages(Context *ctx)
-
static Context *scheduler_run0(GlobalContext *global)
-
Context *scheduler_run(GlobalContext *global)
-
Context *scheduler_next(GlobalContext *global, Context *c)
-
void scheduler_init_ready(Context *c)
-
void scheduler_signal_message(Context *c)
-
void scheduler_terminate(Context *ctx)
-
void scheduler_stop_all(GlobalContext *global)
-
void scheduler_set_timeout(Context *ctx, avm_int64_t timeout)
-
void scheduler_cancel_timeout(Context *ctx)
-
SMP_SPINLOCK_LOCK(spinlock)
- file scheduler.h
Include dependency graph for scheduler.h:
This graph shows which files directly or indirectly include scheduler.h:
Defines
-
DEFAULT_REDUCTIONS_AMOUNT
Functions
-
Context *scheduler_run(GlobalContext *global)
-
void scheduler_init_ready(Context *c)
-
void scheduler_signal_message(Context *c)
-
void scheduler_kill(Context *ctx)
-
void scheduler_terminate(Context *c)
-
void scheduler_stop_all(GlobalContext *global)
-
Context *scheduler_next(GlobalContext *global, Context *c)
-
void scheduler_set_timeout(Context *ctx, avm_int64_t timeout)
-
void scheduler_cancel_timeout(Context *ctx)
-
int scheduler_entry_point(GlobalContext *glb)
-
DEFAULT_REDUCTIONS_AMOUNT
- file smp.h
Include dependency graph for smp.h:
This graph shows which files directly or indirectly include smp.h:
Defines
-
CLANG_THREAD_SANITIZE_SAFE
-
ATOMIC_COMPARE_EXCHANGE_WEAK
-
ATOMIC
-
TYPEDEF_MUTEX
-
TYPEDEF_SPINLOCK
-
TYPEDEF_CONDVAR
-
TYPEDEF_RWLOCK
-
TYPEDEF_GLOBALCONTEXT
Typedefs
-
typedef struct Mutex Mutex
-
typedef struct SpinLock SpinLock
-
typedef struct CondVar CondVar
-
typedef struct RWLock RWLock
-
typedef struct GlobalContext GlobalContext
Functions
-
Mutex *smp_mutex_create()
-
void smp_mutex_destroy(Mutex *mtx)
-
void smp_mutex_lock(Mutex *mtx)
-
bool smp_mutex_trylock(Mutex *mtx)
-
void smp_mutex_unlock(Mutex *mtx)
-
CondVar *smp_condvar_create()
-
void smp_condvar_destroy(CondVar *cv)
-
void smp_condvar_signal(CondVar *cv)
-
RWLock *smp_rwlock_create()
-
void smp_rwlock_destroy(RWLock *lock)
-
void smp_rwlock_rdlock(RWLock *lock)
-
void smp_rwlock_wrlock(RWLock *lock)
-
void smp_rwlock_unlock(RWLock *lock)
-
static inline void smp_spinlock_init(SpinLock *lock)
-
static inline void smp_spinlock_lock(SpinLock *lock)
-
static inline void smp_spinlock_unlock(SpinLock *lock)
-
int smp_get_online_processors()
-
void smp_scheduler_start(GlobalContext *glb)
-
bool smp_is_main_thread(GlobalContext *glb)
-
CLANG_THREAD_SANITIZE_SAFE
- file stacktrace.c
Include dependency graph for stacktrace.c:
- file stacktrace.h
Include dependency graph for stacktrace.h:
This graph shows which files directly or indirectly include stacktrace.h:
- file synclist.h
Include dependency graph for synclist.h:
This graph shows which files directly or indirectly include synclist.h:
Defines
-
TYPEDEF_RWLOCK
Typedefs
-
typedef struct RWLock RWLock
-
TYPEDEF_RWLOCK
- file sys.h
Include dependency graph for sys.h:
This graph shows which files directly or indirectly include sys.h:
Typedefs
-
typedef struct EventListener EventListener
-
typedef EventListener *(*event_handler_t)(GlobalContext *glb, EventListener *listener)
Enums
-
enum [anonymous]
Values:
-
enumerator SYS_POLL_EVENTS_DO_NOT_WAIT
-
enumerator SYS_POLL_EVENTS_WAIT_FOREVER
-
enumerator SYS_POLL_EVENTS_DO_NOT_WAIT
-
enum OpenAVMResult
Values:
-
enumerator AVM_OPEN_OK
-
enumerator AVM_OPEN_FAILED_ALLOC
-
enumerator AVM_OPEN_INVALID
-
enumerator AVM_OPEN_CANNOT_OPEN
-
enumerator AVM_OPEN_CANNOT_READ
-
enumerator AVM_OPEN_NOT_SUPPORTED
-
enumerator AVM_OPEN_OK
Functions
-
void sys_poll_events(GlobalContext *glb, int timeout_ms)
-
void sys_register_select_event(GlobalContext *glb, ErlNifEvent event, bool is_write)
-
void sys_unregister_select_event(GlobalContext *glb, ErlNifEvent event, bool is_write)
-
void sys_register_listener(GlobalContext *global, EventListener *listener)
-
void sys_unregister_listener(GlobalContext *global, EventListener *listener)
-
void sys_listener_destroy(struct ListHead *item)
-
void sys_signal(GlobalContext *glb)
-
enum OpenAVMResult sys_open_avm_from_file(GlobalContext *global, const char *path, struct AVMPackData **data)
-
void sys_time(struct timespec *t)
-
void sys_monotonic_time(struct timespec *t)
-
uint64_t sys_monotonic_time_u64()
-
uint64_t sys_monotonic_time_ms_to_u64(uint64_t ms)
-
uint64_t sys_monotonic_time_u64_to_ms(uint64_t t)
-
Module *sys_load_module(GlobalContext *global, const char *module_name)
-
Module *sys_load_module_from_file(GlobalContext *global, const char *path)
-
Context *sys_create_port(GlobalContext *glb, const char *driver_name, term opts)
-
void sys_init_platform(GlobalContext *global)
-
void sys_free_platform(GlobalContext *global)
-
typedef struct EventListener EventListener
- file sys_mbedtls.h
Include dependency graph for sys_mbedtls.h:
This graph shows which files directly or indirectly include sys_mbedtls.h:
Functions
-
mbedtls_entropy_context *sys_mbedtls_get_entropy_context_lock(GlobalContext *global)
-
void sys_mbedtls_entropy_context_unlock(GlobalContext *global)
-
int sys_mbedtls_entropy_func(void *entropy, unsigned char *buf, size_t size)
-
mbedtls_ctr_drbg_context *sys_mbedtls_get_ctr_drbg_context_lock(GlobalContext *global)
-
void sys_mbedtls_ctr_drbg_context_unlock(GlobalContext *global)
-
mbedtls_entropy_context *sys_mbedtls_get_entropy_context_lock(GlobalContext *global)
- file tempstack.h
Include dependency graph for tempstack.h:
This graph shows which files directly or indirectly include tempstack.h:
Defines
-
MIN_STACK_SIZE
Enums
-
enum TempStackResult
Values:
-
enumerator TempStackOk
-
enumerator TempStackFailedAlloc
-
enumerator TempStackOk
Functions
- static inline NO_DISCARD TempStackResult temp_stack_init (struct TempStack *temp_stack)
-
static inline void temp_stack_destroy(struct TempStack *temp_stack)
- static NO_DISCARD TempStackResult temp_stack_grow (struct TempStack *temp_stack)
-
static inline int temp_stack_is_empty(const struct TempStack *temp_stack)
- static inline NO_DISCARD TempStackResult temp_stack_push (struct TempStack *temp_stack, term value)
-
MIN_STACK_SIZE
- file term.c
Include dependency graph for term.c:
Defines
-
BEGIN_MAP_KEY
-
END_MAP_KEY
-
CMP_POP_AND_CONTINUE()
Functions
-
int fprintf_printer(PrinterFun *fun, const char *fmt, ...)
-
int snprintf_printer(PrinterFun *fun, const char *fmt, ...)
-
int term_fprint(FILE *stream, term t, const GlobalContext *global)
-
int term_snprint(char *buf, size_t size, term t, const GlobalContext *global)
-
int term_funprint(PrinterFun *fun, term t, const GlobalContext *global)
-
static int term_type_to_index(term t)
-
TermCompareResult term_compare(term t, term other, TermCompareOpts opts, GlobalContext *global)
-
term term_alloc_refc_binary(size_t size, bool is_const, Heap *heap, GlobalContext *glb)
-
term term_get_map_assoc(term map, term key, GlobalContext *glb)
Variables
-
const term empty_tuple = 0
-
BEGIN_MAP_KEY
- file term.h
Include dependency graph for term.h:
This graph shows which files directly or indirectly include term.h:
Defines
-
TERM_BOXED_VALUE_TAG
-
TERM_INTEGER_TAG
-
TERM_CATCH_TAG
-
TERM_BOXED_TAG_MASK
-
TERM_BOXED_TUPLE
-
TERM_BOXED_BIN_MATCH_STATE
-
TERM_BOXED_POSITIVE_INTEGER
-
TERM_BOXED_REF
-
TERM_BOXED_FUN
-
TERM_BOXED_FLOAT
-
TERM_BOXED_REFC_BINARY
-
TERM_BOXED_HEAP_BINARY
-
TERM_BOXED_MAP
-
TERM_BOXED_SUB_BINARY
-
TERM_UNUSED
-
TERM_RESERVED_MARKER(x)
-
TERM_BOXED_REFC_BINARY_SIZE
-
TERM_BOXED_BIN_MATCH_STATE_SIZE
-
TERM_BOXED_SUB_BINARY_SIZE
-
TERM_BOXED_RESOURCE_SIZE
-
REFC_BINARY_MIN
-
SUB_BINARY_MIN
-
BINARY_HEADER_SIZE
-
FUNCTION_REFERENCE_SIZE
-
BOXED_INT_SIZE
-
BOXED_INT64_SIZE
-
BOXED_FUN_SIZE
-
FLOAT_SIZE
-
REF_SIZE
-
TUPLE_SIZE(elems)
-
CONS_SIZE
-
REFC_BINARY_CONS_OFFSET
-
LIST_SIZE(num_elements, element_size)
-
TERM_MAP_SIZE(num_elements)
-
TERM_MAP_SHARED_SIZE(num_elements)
-
LIST_HEAD_INDEX
-
LIST_TAIL_INDEX
-
TERM_BINARY_SIZE_IS_HEAP(size)
-
TERM_BINARY_DATA_SIZE_IN_TERMS(size)
-
TERM_BINARY_HEAP_SIZE(size)
-
TERM_DEBUG_ASSERT(...)
-
TERM_FROM_ATOM_INDEX(atom_index)
-
TERM_MAP_NOT_FOUND
-
TERM_MAP_MEMORY_ALLOC_FAIL
Typedefs
-
typedef struct PrinterFun PrinterFun
- int(* printer_function_t )(PrinterFun *fun, const char *fmt,...) PRINTF_FORMAT_ARGS(2
Enums
-
enum RefcBinaryFlags
Values:
-
enumerator RefcNoFlags
-
enumerator RefcBinaryIsConst
-
enumerator RefcNoFlags
-
enum TermCompareOpts
Values:
-
enumerator TermCompareNoOpts
-
enumerator TermCompareExact
-
enumerator TermCompareNoOpts
-
enum TermCompareResult
Values:
-
enumerator TermCompareMemoryAllocFail
-
enumerator TermEquals
-
enumerator TermLessThan
-
enumerator TermGreaterThan
-
enumerator TermCompareMemoryAllocFail
Functions
-
TermCompareResult term_compare(term t, term other, TermCompareOpts opts, GlobalContext *global)
-
term term_alloc_refc_binary(size_t size, bool is_const, Heap *heap, GlobalContext *glb)
-
static inline int term_is_atom(term t)
-
static inline int term_is_invalid_term(term t)
-
static inline int term_is_nil(term t)
-
static inline int term_is_nonempty_list(term t)
-
static inline int term_is_list(term t)
-
static inline int term_is_boxed(term t)
-
static inline int term_is_movable_boxed(term t)
-
static inline size_t term_get_size_from_boxed_header(term header)
-
static inline size_t term_boxed_size(term t)
-
static inline int term_is_binary(term t)
-
static inline bool term_is_refc_binary(term t)
-
static inline bool term_refc_binary_is_const(term t)
-
static inline bool term_is_sub_binary(term t)
-
static inline int term_is_integer(term t)
-
static inline uint8_t term_is_uint8(term t)
-
static inline int term_is_boxed_integer(term t)
-
static inline int term_is_any_integer(term t)
-
static inline int term_is_catch_label(term t)
-
static inline int term_is_pid(term t)
-
static inline int term_is_tuple(term t)
-
static inline int term_is_reference(term t)
-
static inline int term_is_function(term t)
-
static inline int term_is_cp(term t)
-
static inline term term_invalid_term()
-
static inline term term_nil()
-
static inline int term_to_atom_index(term t)
-
static inline term term_from_atom_index(int atom_index)
-
static inline uint8_t term_to_uint8(term t)
-
static inline int32_t term_to_int32(term t)
-
static inline int term_to_catch_label_and_module(term t, int *module_index)
-
static inline int32_t term_to_local_process_id(term t)
-
static inline term term_from_int4(int8_t value)
-
static inline term term_from_int11(int16_t value)
-
static inline term term_from_int32(int32_t value)
-
static inline term term_from_int64(int64_t value)
-
static inline avm_int64_t term_unbox_int64(term boxed_long)
-
static inline avm_int64_t term_maybe_unbox_int64(term maybe_boxed_int)
-
static inline term term_make_boxed_int64(avm_int64_t large_int64, Heap *heap)
-
static inline term term_make_maybe_boxed_int64(avm_int64_t value, Heap *heap)
-
static inline size_t term_boxed_integer_size(avm_int64_t value)
-
static inline term term_from_catch_label(unsigned int module_index, unsigned int label)
-
static inline term term_from_local_process_id(uint32_t local_process_id)
-
static inline bool term_binary_size_is_heap_binary(size_t size)
-
static inline size_t term_binary_data_size_in_terms(size_t size)
-
static inline size_t term_binary_heap_size(size_t size)
-
static inline unsigned long term_binary_size(term t)
-
static inline void *term_refc_binary_ptr(term refc_binary)
-
static inline const char *term_binary_data(term t)
-
static inline term term_create_uninitialized_binary(size_t size, Heap *heap, GlobalContext *glb)
-
static inline term term_from_literal_binary(const void *data, size_t size, Heap *heap, GlobalContext *glb)
-
static inline size_t term_sub_binary_heap_size(term binary, size_t len)
-
static inline term term_maybe_create_sub_binary(term binary, size_t offset, size_t len, Heap *heap, GlobalContext *glb)
-
static inline void term_set_refc_binary_data(term t, const void *data)
-
static inline term term_from_const_binary(const void *data, size_t size, Heap *heap, GlobalContext *glb)
-
static inline term term_create_empty_binary(size_t size, Heap *heap, GlobalContext *glb)
-
static inline uint64_t term_to_ref_ticks(term rt)
-
static inline int term_get_tuple_arity(term t)
- static inline MALLOC_LIKE term * term_list_alloc (Heap *heap)
-
static inline int term_list_length(term t, int *proper)
-
static inline int term_is_float(term t)
-
static inline term term_from_float(avm_float_t f, Heap *heap)
-
static inline avm_float_t term_to_float(term t)
-
static inline avm_float_t term_conv_to_float(term t)
-
static inline int term_is_number(term t)
-
int term_funprint(PrinterFun *pf, term t, const GlobalContext *global)
-
int term_fprint(FILE *fd, term t, const GlobalContext *global)
-
int term_snprint(char *buf, size_t size, term t, const GlobalContext *global)
-
static inline int term_is_string(term t)
-
static inline int term_is_match_state(term t)
-
static inline void term_match_state_save_offset(term match_state, int index)
-
static inline void term_match_state_save_start_offset(term match_state)
-
static inline void term_match_state_restore_start_offset(term match_state)
-
static inline void term_match_state_restore_offset(term match_state, int index)
-
static inline int term_is_map(term t)
-
static inline size_t term_get_map_keys_offset()
-
static inline size_t term_get_map_value_offset()
-
static inline size_t term_map_size_in_terms(size_t num_entries)
-
static inline term term_alloc_map(avm_uint_t size, Heap *heap)
-
static inline int term_get_map_size(term t)
-
static inline void term_set_map_assoc(term map, avm_uint_t pos, term key, term value)
-
static inline term term_get_map_key(term map, avm_uint_t pos)
-
static inline term term_get_map_value(term map, avm_uint_t pos)
-
static inline int term_find_map_pos(term map, term key, GlobalContext *global)
-
term term_get_map_assoc(term map, term key, GlobalContext *glb)
-
static inline term term_get_map_assoc_default(term map, term key, term default_value, GlobalContext *glb)
Variables
-
const term empty_tuple
-
TERM_BOXED_VALUE_TAG
- file term_typedef.h
Include dependency graph for term_typedef.h:
This graph shows which files directly or indirectly include term_typedef.h:
Defines
-
TERM_U_FMT
-
TERM_X_FMT
-
TERM_BITS
-
TERM_BYTES
-
AVM_INT_MIN
-
AVM_INT_MAX
-
INT64_IS_ALWAYS_BOXED
-
BOXED_TERMS_REQUIRED_FOR_INT
-
BOXED_TERMS_REQUIRED_FOR_INT64
-
UNICODE_CHAR_MAX
-
MIN_NOT_BOXED_INT
-
MAX_NOT_BOXED_INT
-
AVM_INT_FMT
-
AVM_INT64_FMT
-
AVM_FLOAT_FMT
Typedefs
-
typedef uintptr_t term
-
typedef intptr_t avm_int_t
-
typedef uintptr_t avm_uint_t
-
typedef int64_t avm_int64_t
-
typedef uint64_t avm_uint64_t
-
typedef double avm_float_t
-
TERM_U_FMT
- file timer_list.c
Include dependency graph for timer_list.c:
Functions
-
void timer_list_next(struct TimerList *tw, uint64_t now, timer_list_callback_t cb)
-
void timer_list_next(struct TimerList *tw, uint64_t now, timer_list_callback_t cb)
- file timer_list.h
Include dependency graph for timer_list.h:
This graph shows which files directly or indirectly include timer_list.h:
Typedefs
- void() timer_list_callback_t (struct TimerListItem *)
Functions
-
static inline void timer_list_init(struct TimerList *tw)
-
static inline void timer_list_insert(struct TimerList *tw, struct TimerListItem *item)
-
static inline void timer_list_remove(struct TimerList *tw, struct TimerListItem *item)
-
static inline bool timer_list_is_empty(const struct TimerList *tw)
-
static inline int timer_list_timers_count(const struct TimerList *tw)
-
static inline void timer_list_item_init(struct TimerListItem *it, uint64_t expiry)
-
void timer_list_next(struct TimerList *tw, uint64_t now, timer_list_callback_t cb)
- file trace.h
This graph shows which files directly or indirectly include trace.h:
Defines
-
TRACE(...)
-
DEBUG_FAIL_NULL(expr)
-
USED_BY_TRACE(x)
-
TRACE(...)
- file utils.h
Include dependency graph for utils.h:
This graph shows which files directly or indirectly include utils.h:
Defines
-
READ_32_ALIGNED(ptr)
-
READ_64_UNALIGNED(ptr)
-
WRITE_64_UNALIGNED(ptr, val)
-
READ_32_UNALIGNED(ptr)
-
WRITE_32_UNALIGNED(ptr, val)
-
READ_16_UNALIGNED(ptr)
-
WRITE_16_UNALIGNED(ptr, val)
-
ENDIAN_SWAP_32(value)
-
UNUSED(x)
-
IS_NULL_PTR(x)
-
LIKELY(x)
-
UNLIKELY(x)
-
HOT_FUNC
-
COLD_FUNC
-
MALLOC_LIKE
-
MUST_CHECK
-
AVM_ABORT()
-
CAST_FUNC_TO_VOID_PTR(f)
-
CAST_VOID_TO_FUNC_PTR(f)
-
CONTAINER_OF(ptr, type, member)
-
PRINTF_FORMAT_ARGS(...)
-
NO_DISCARD(...)
-
UNREACHABLE(...)
Typedefs
-
typedef void (*func_ptr_t)(void)
-
READ_32_ALIGNED(ptr)
- file valueshashtable.c
Include dependency graph for valueshashtable.c:
Defines
-
SMP_RDLOCK(htable)
-
SMP_WRLOCK(htable)
-
SMP_UNLOCK(htable)
-
DEFAULT_SIZE
Functions
-
struct ValuesHashTable *valueshashtable_new()
-
int valueshashtable_insert(struct ValuesHashTable *hash_table, unsigned long key, unsigned long value)
-
unsigned long valueshashtable_get_value(const struct ValuesHashTable *hash_table, unsigned long key, unsigned long default_value)
-
int valueshashtable_has_key(const struct ValuesHashTable *hash_table, unsigned long key)
-
SMP_RDLOCK(htable)
- file valueshashtable.h
This graph shows which files directly or indirectly include valueshashtable.h:
Defines
-
TYPEDEF_RWLOCK
Typedefs
-
typedef struct RWLock RWLock
Functions
-
struct ValuesHashTable *valueshashtable_new()
-
int valueshashtable_insert(struct ValuesHashTable *hash_table, unsigned long key, unsigned long value)
-
unsigned long valueshashtable_get_value(const struct ValuesHashTable *hash_table, unsigned long key, unsigned long default_value)
-
int valueshashtable_has_key(const struct ValuesHashTable *hash_table, unsigned long key)
-
TYPEDEF_RWLOCK
- dir /home/runner/work/AtomVM/AtomVM/src/libAtomVM
- dir /home/runner/work/AtomVM/AtomVM/src