Data Structures
-
struct AtomsHashTable
Collaboration diagram for AtomsHashTable:
-
struct AtomStringIntPair
A structure to represent atom strings and int pairs. Such as {“\x8” “universe”, 42}.
-
struct AtomTable
Collaboration diagram for AtomTable:
Public Members
-
int capacity
-
int count
-
int last_node_group_avail
-
RWLock *lock
-
struct HNodeGroup *first_node_group
-
struct HNodeGroup *last_node_group
-
int capacity
-
struct AVMPackData
Collaboration diagram for AVMPackData:
-
struct BuiltInAtomRequestSignal
Collaboration diagram for BuiltInAtomRequestSignal:
-
struct BuiltInAtomSignal
Collaboration diagram for BuiltInAtomSignal:
-
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]
-
int32_t process_id
-
struct TimerListItem timer_list_head
-
avm_float_t *fr
-
size_t min_heap_size
-
size_t max_heap_size
-
enum HeapGrowthStrategy heap_growth_strategy
-
unsigned long cp
-
const void *saved_ip
-
void *restore_trap_handler
-
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
-
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 bs
-
size_t bs_offset
-
term exit_reason
-
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
-
int32_t last_process_id
-
struct AtomsHashTable *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
-
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
-
void *import_table
-
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
-
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
-
void *import_table
-
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_resource
needs 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
-
int module_atom_index
-
int 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 LittleEndianInteger = 0x2
-
enumerator SignedInteger = 0x4
-
enumerator NativeEndianInteger = 0x10
-
enumerator LittleEndianIntegerMask = LittleEndianInteger
-
enumerator LittleEndianInteger = 0x2
-
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 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 ExternalTermOpts
Values:
-
enumerator ExternalTermNoOpts = 0
-
enumerator ExternalTermToHeapFragment = 1
-
enumerator ExternalTermNoOpts = 0
-
enum ExternalTermResult
Values:
-
enumerator EXTERNAL_TERM_OK = 0
-
enumerator EXTERNAL_TERM_BAD_ARG = 1
-
enumerator EXTERNAL_TERM_MALLOC = 2
-
enumerator EXTERNAL_TERM_HEAP_ALLOC = 3
-
enumerator EXTERNAL_TERM_OK = 0
-
enum FunctionType
Values:
-
enumerator InvalidFunctionType = 0
-
enumerator NIFFunctionType = 2
-
enumerator UnresolvedFunctionCall = 3
-
enumerator ModuleFunction = 4
-
enumerator BIFFunctionType = 5
-
enumerator GCBIFFunctionType = 6
-
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 NormalMessage
-
enum ModuleLoadResult
Values:
-
enumerator MODULE_LOAD_OK = 0
-
enumerator MODULE_ERROR_FAILED_ALLOCATION = 1
-
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 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