Data Structures
Warning
doxygenstruct: Cannot find class “AtomsHashTable” in doxygen xml output for project “libatomvm” from directory: /__w/AtomVM/AtomVM/build/doc/xml/
-
struct AtomStringIntPair
A structure to represent atom strings and int pairs. Such as {“\x8” “universe”, 42}.
-
struct AtomTable
Collaboration diagram for AtomTable:
Public Members
-
size_t capacity
-
size_t count
-
int last_node_group_avail
-
RWLock *lock
-
struct HNodeGroup *first_node_group
-
struct HNodeGroup *last_node_group
-
size_t capacity
-
struct AVMPackData
Collaboration diagram for AVMPackData:
-
struct BuiltInAtomRequestSignal
Collaboration diagram for BuiltInAtomRequestSignal:
Warning
doxygenstruct: Cannot find class “BuiltInAtomSignal” in doxygen xml output for project “libatomvm” from directory: /__w/AtomVM/AtomVM/build/doc/xml/
-
struct CharDataToBytesAcc
Collaboration diagram for CharDataToBytesAcc:
-
struct CharDataToBytesSizeAcc
-
struct ConstAVMPack
Collaboration diagram for ConstAVMPack:
Public Members
-
struct AVMPackData base
-
struct AVMPackData base
-
struct Context
Collaboration diagram for Context:
Public Members
-
GlobalContext *global
-
term *e
-
term x[16 + 1]
-
term cp
-
avm_float_t *fr
-
term bs
-
size_t bs_offset
-
int32_t process_id
-
struct TimerListItem timer_list_head
-
size_t min_heap_size
-
size_t max_heap_size
-
enum HeapGrowthStrategy heap_growth_strategy
-
const void *saved_ip
-
NativeContinuation saved_function_ptr
- union Context
-
void *restore_trap_handler
-
native_handler_f native_handler
-
unsigned int leader
-
unsigned int has_min_heap_size
-
unsigned int has_max_heap_size
-
bool trap_exit
-
bool waiting_with_timeout
-
unsigned int trace_calls
-
unsigned int trace_call_args
-
unsigned int trace_returns
-
unsigned int trace_send
-
unsigned int trace_receive
-
enum ContextFlags flags
-
void *platform_data
-
term group_leader
-
term exit_reason
-
uintptr_t exception_class
-
term exception_reason
-
term exception_stacktrace
-
GlobalContext *global
-
struct ContextAccumulator
Collaboration diagram for ContextAccumulator:
-
struct DictEntry
Collaboration diagram for DictEntry:
-
struct ErlNifEnv
Collaboration diagram for ErlNifEnv:
-
struct ErlNifResourceTypeInit
Resource callbacks.
Members should be set to 0, 1 or 2 depending on provided callbacks. Callbacks can also be NULL if not used.
-
struct FprintfFun
Collaboration diagram for FprintfFun:
-
struct GenMessage
-
struct GlobalContext
Collaboration diagram for GlobalContext:
Public Members
-
SpinLock processes_spinlock
-
struct MessageQueueItem *message_queue
-
struct RefcBinaryQueueItem *refc_queue
-
struct Ets ets
-
int32_t last_process_id
-
struct ValuesHashTable *modules_table
-
RWLock *modules_lock
-
int loaded_modules_count
-
SpinLock timer_spinlock
-
unsigned long long ref_ticks
-
SpinLock ref_ticks_spinlock
-
int online_schedulers
-
int running_schedulers
-
bool waiting_scheduler
-
Mutex *schedulers_mutex
-
CondVar *schedulers_cv
-
bool scheduler_stop_all
-
SpinLock env_spinlock
-
term node_name
-
uint32_t creation
-
ErlNifResourceType *resource_binary_resource_type
-
ErlNifResourceType *dist_connection_resource_type
-
void *platform_data
-
SpinLock processes_spinlock
-
struct Heap
Collaboration diagram for Heap:
-
struct HNodeGroup
Collaboration diagram for HNodeGroup:
-
struct IFFRecord
-
struct InMemoryAVMPack
Collaboration diagram for InMemoryAVMPack:
Public Members
-
struct AVMPackData base
-
struct AVMPackData base
-
struct LineRefOffset
Collaboration diagram for LineRefOffset:
-
struct ListHead
Collaboration diagram for ListHead:
-
struct LiteralEntry
-
struct Mailbox
Collaboration diagram for Mailbox:
-
struct Message
Collaboration diagram for Message:
-
struct Module
Collaboration diagram for Module:
Public Members
-
int module_index
-
CodeChunk *code
-
void *import_table
-
void *export_table
-
void *local_table
-
void *atom_table
-
void *fun_table
-
void *str_table
-
size_t str_table_len
-
size_t line_refs_count
-
const uint8_t *line_refs_table
-
size_t locations_count
-
const uint8_t *locations_table
-
uint8_t *binary
-
size_t binary_size
-
ModuleNativeEntryPoint native_code
-
unsigned int *line_refs_offsets
-
size_t line_refs_offsets_count
-
const struct ExportedFunction **imported_funcs
-
const uint8_t **labels
-
void *literals_data
-
struct LiteralEntry *literals_table
-
void *types_data
-
atom_index_t *local_atoms_to_global_table
-
void *module_platform_data
-
unsigned int end_instruction_ii
-
unsigned int free_literals_data
-
Mutex *mutex
-
int module_index
-
struct ModuleFilename
-
struct ModuleFunction
Collaboration diagram for ModuleFunction:
-
struct Monitor
Collaboration diagram for Monitor:
A regular monitor or a half link.
-
struct Nif
Collaboration diagram for Nif:
-
struct RefcBinary
Collaboration diagram for RefcBinary:
-
struct RefcBinaryAVMPack
Collaboration diagram for RefcBinaryAVMPack:
-
struct RefSignal
Collaboration diagram for RefSignal:
-
struct RegisteredProcess
Collaboration diagram for RegisteredProcess:
-
struct ResourceMonitor
Collaboration diagram for ResourceMonitor:
A resource monitor.
-
struct ResourceType
Collaboration diagram for ResourceType:
A resource type.
we need a reference to the global context as
enif_release_resourceneeds to access the synchronized list of refc_binaries
-
struct SelectEvent
Collaboration diagram for SelectEvent:
A selectable event.
-
struct SnprintfFun
Collaboration diagram for SnprintfFun:
-
struct SyncList
Collaboration diagram for SyncList:
-
struct TermSignal
Collaboration diagram for TermSignal:
-
struct TimerList
Collaboration diagram for TimerList:
-
struct TimerListItem
Collaboration diagram for TimerListItem:
-
struct UnresolvedFunctionCall
Collaboration diagram for UnresolvedFunctionCall:
Public Members
-
struct ExportedFunction base
-
atom_index_t module_atom_index
-
atom_index_t function_atom_index
-
int arity
-
struct ExportedFunction base
-
struct ValuesHashTable
Collaboration diagram for ValuesHashTable:
Enumerations
-
enum AtomTableCopyOpt
Values:
-
enumerator AtomTableNoOpts = 0
-
enumerator AtomTableCopyAtom = 1
-
enumerator AtomTableAlreadyExisting = 2
-
enumerator AtomTableNoOpts = 0
-
enum BitstringFlags
Values:
-
enumerator BigEndianInteger = 0x0
-
enumerator LittleEndianInteger = 0x2
-
enumerator SignedInteger = 0x4
-
enumerator NativeEndianInteger = 0x10
-
enumerator LittleEndianIntegerMask = LittleEndianInteger | NativeEndianInteger
-
enumerator BigEndianInteger = 0x0
-
enum CharDataEncoding
Values:
-
enumerator Latin1Encoding
-
enumerator UTF8Encoding
-
enumerator UCS4NativeEncoding
-
enumerator Latin1Encoding
-
enum ContextFlags
Values:
-
enumerator NoFlags = 0
-
enumerator WaitingTimeout = 1
-
enumerator WaitingTimeoutExpired = 2
-
enumerator Running = 4
-
enumerator Ready = 8
-
enumerator Killed = 16
-
enumerator Trap = 32
-
enumerator Distribution = 64
-
enumerator Spawning = 128
-
enumerator NoFlags = 0
-
enum DictionaryFunctionResult
Values:
-
enumerator DictionaryOk
-
enumerator DictionaryMemoryAllocFail
-
enumerator DictionaryOk
-
enum ErlNifSelectFlags
enif_select mode flags
ERL_NIF_SELECT_CANCEL which was introduced with OTP-22, is unimplemented.
Values:
-
enumerator ERL_NIF_SELECT_READ = 1
-
enumerator ERL_NIF_SELECT_WRITE = 2
-
enumerator ERL_NIF_SELECT_STOP = 4
-
enumerator ERL_NIF_SELECT_READ = 1
-
enum external_term_read_opts_t
Options for external term read operations.
Passed to validate and deserialize functions to control their behavior. Values are bit flags and can be combined with bitwise OR.
ExternalTermReadSafematches the OTPsafeoption ofbinary_to_term/2: it forbids creation of new atoms (directly or embedded in pids/ports/refs/funs).Values:
-
enumerator ExternalTermReadNoOpts = 0
-
enumerator ExternalTermReadSafe = 1
-
enumerator ExternalTermReadNoOpts = 0
-
enum external_term_read_result_t
Result of an external term read operation.
Returned by validate and deserialize functions to indicate whether the operation succeeded or the input was malformed.
Values:
-
enumerator ExternalTermReadOk
-
enumerator ExternalTermReadInvalid
-
enumerator ExternalTermReadOk
-
enum external_term_write_result_t
Result of an external term write operation.
Returned by serialize and compute-size functions to indicate whether the operation succeeded.
Values:
-
enumerator ExternalTermWriteOk
-
enumerator ExternalTermWriteOk
-
enum FunctionType
Values:
-
enumerator InvalidFunctionType = 0
-
enumerator NIFFunctionType = 2
-
enumerator UnresolvedFunctionCall = 3
-
enumerator ModuleFunction = 4
-
enumerator BIFFunctionType = 5
-
enumerator GCBIFFunctionType = 6
-
enumerator ModuleNativeFunction = 7
-
enumerator InvalidFunctionType = 0
-
enum HeapGrowthStrategy
Values:
-
enumerator BoundedFreeHeapGrowth = 0
-
enumerator MinimumHeapGrowth
-
enumerator FibonacciHeapGrowth
-
enumerator BoundedFreeHeapGrowth = 0
-
enum inet_protocol
Values:
-
enumerator InetInvalidProtocol = 0
-
enumerator InetIpProtocol
-
enumerator InetTcpProtocol
-
enumerator InetUdpProtocol
-
enumerator InetInvalidProtocol = 0
-
enum inet_type
Values:
-
enumerator InetInvalidType = 0
-
enumerator InetStreamType
-
enumerator InetDgramType
-
enumerator InetInvalidType = 0
-
enum InteropFunctionResult
Values:
-
enumerator InteropOk
-
enumerator InteropMemoryAllocFail
-
enumerator InteropBadArg
-
enumerator InteropOk
-
enum MemoryAllocMode
Values:
-
enumerator MEMORY_NO_SHRINK = 0
-
enumerator MEMORY_CAN_SHRINK = 1
-
enumerator MEMORY_FORCE_SHRINK = 2
-
enumerator MEMORY_NO_GC = 3
-
enumerator MEMORY_NO_SHRINK = 0
-
enum MemoryGCResult
Values:
-
enumerator MEMORY_GC_OK = 0
-
enumerator MEMORY_GC_ERROR_FAILED_ALLOCATION = 1
-
enumerator MEMORY_GC_DENIED_ALLOCATION = 2
-
enumerator MEMORY_GC_OK = 0
-
enum MessageType
Values:
-
enumerator NormalMessage
-
enumerator KillSignal
-
enumerator GCSignal
-
enumerator ProcessInfoRequestSignal
-
enumerator TrapAnswerSignal
-
enumerator TrapExceptionSignal
-
enumerator FlushMonitorSignal
-
enumerator FlushInfoMonitorSignal
-
enumerator SetGroupLeaderSignal
-
enumerator MonitorSignal
-
enumerator UnlinkIDSignal
-
enumerator UnlinkIDAckSignal
-
enumerator UnlinkRemoteIDSignal
-
enumerator UnlinkRemoteIDAckSignal
-
enumerator LinkExitSignal
-
enumerator DemonitorSignal
-
enumerator MonitorDownSignal
-
enumerator CodeServerResumeSignal
-
enumerator NormalMessage
-
enum ModuleLoadResult
Values:
-
enumerator MODULE_LOAD_OK = 0
-
enumerator MODULE_ERROR_FAILED_ALLOCATION = 1
-
enumerator MODULE_ERROR_INVALID = 2
-
enumerator MODULE_LOAD_OK = 0
-
enum OpenAVMResult
Values:
-
enumerator AVM_OPEN_OK = 0
-
enumerator AVM_OPEN_FAILED_ALLOC = 1
-
enumerator AVM_OPEN_INVALID = 2
-
enumerator AVM_OPEN_CANNOT_OPEN = 3
-
enumerator AVM_OPEN_CANNOT_READ = 4
-
enumerator AVM_OPEN_NOT_SUPPORTED = 5
-
enumerator AVM_OPEN_OK = 0
-
enum RefcBinaryFlags
Values:
-
enumerator RefcNoFlags = 0
-
enumerator RefcBinaryIsConst = 1
-
enumerator RefcBinaryIsResourceManaged = 2
-
enumerator RefcNoFlags = 0
-
enum SocketErrors
Values:
-
enumerator SocketClosed = 0
-
enumerator SocketWouldBlock = -1
-
enumerator SocketOtherError = -2
-
enumerator SocketClosed = 0
-
enum TermCompareResult
Values:
-
enumerator TermCompareMemoryAllocFail = 0
-
enumerator TermEquals = 1
-
enumerator TermLessThan = 2
-
enumerator TermGreaterThan = 4
-
enumerator TermCompareMemoryAllocFail = 0
-
enum UnicodeConversionResult
Values:
-
enumerator UnicodeMemoryAllocFail = InteropMemoryAllocFail
-
enumerator UnicodeBadArg = InteropBadArg
-
enumerator UnicodeError
-
enumerator UnicodeIncompleteTransform
-
enumerator UnicodeMemoryAllocFail = InteropMemoryAllocFail