Data Structures

struct AtomsHashTable

Collaboration diagram for AtomsHashTable:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "1" [label="AtomsHashTable" tooltip="AtomsHashTable" fillcolor="#BFBFBF"]
    "2" [label="HNode" tooltip="HNode"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "2" -> "2" [dir=forward tooltip="usage"]
}

Public Members

int capacity
int count
RWLock *lock
struct HNode **buckets
struct AtomStringIntPair

A structure to represent atom strings and int pairs. Such as {“\x8” “universe”, 42}.

Public Members

AtomString as_val
int i_val
struct AtomTable

Collaboration diagram for AtomTable:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "3" [label="HNodeGroup" tooltip="HNodeGroup"]
    "1" [label="AtomTable" tooltip="AtomTable" fillcolor="#BFBFBF"]
    "2" [label="HNode" tooltip="HNode"]
    "3" -> "2" [dir=forward tooltip="usage"]
    "3" -> "3" [dir=forward tooltip="usage"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "1" -> "3" [dir=forward tooltip="usage"]
    "2" -> "2" [dir=forward tooltip="usage"]
}

Public Members

int capacity
int count
int last_node_group_avail
RWLock *lock
struct HNode **buckets
struct HNodeGroup *first_node_group
struct HNodeGroup *last_node_group
struct AVMPackData

Collaboration diagram for AVMPackData:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "1" [label="AVMPackData" tooltip="AVMPackData" fillcolor="#BFBFBF"]
    "3" [label="ListHead" tooltip="ListHead"]
    "2" [label="AVMPackInfo" tooltip="AVMPackInfo"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "1" -> "3" [dir=forward tooltip="usage"]
    "3" -> "3" [dir=forward tooltip="usage"]
}

Public Members

const struct AVMPackInfo *obj_info
struct ListHead avmpack_head
bool in_use
int name_atom_id
const void *data
struct BuiltInAtomRequestSignal

Collaboration diagram for BuiltInAtomRequestSignal:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "1" [label="BuiltInAtomRequestSignal" tooltip="BuiltInAtomRequestSignal" fillcolor="#BFBFBF"]
    "2" [label="MailboxMessage" tooltip="MailboxMessage"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "2" -> "2" [dir=forward tooltip="usage"]
}

Public Members

MailboxMessage base
int32_t sender_pid
term atom
struct BuiltInAtomSignal

Collaboration diagram for BuiltInAtomSignal:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "1" [label="BuiltInAtomSignal" tooltip="BuiltInAtomSignal" fillcolor="#BFBFBF"]
    "2" [label="MailboxMessage" tooltip="MailboxMessage"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "2" -> "2" [dir=forward tooltip="usage"]
}

Public Members

MailboxMessage base
term atom
struct CharDataToBytesAcc

Collaboration diagram for CharDataToBytesAcc:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "3" [label="HeapFragment" tooltip="HeapFragment"]
    "2" [label="Heap" tooltip="Heap"]
    "1" [label="CharDataToBytesAcc" tooltip="CharDataToBytesAcc" fillcolor="#BFBFBF"]
    "3" -> "3" [dir=forward tooltip="usage"]
    "2" -> "3" [dir=forward tooltip="usage"]
    "1" -> "2" [dir=forward tooltip="usage"]
}

Public Members

enum CharDataEncoding in_encoding
enum CharDataEncoding out_encoding
uint8_t *output
term *rest
Heap *heap
bool badarg
bool incomplete_transform
struct CharDataToBytesSizeAcc

Public Members

enum CharDataEncoding in_encoding
enum CharDataEncoding out_encoding
size_t size
size_t rest_size
bool badarg
bool incomplete_transform
struct ConstAVMPack

Collaboration diagram for ConstAVMPack:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "2" [label="AVMPackData" tooltip="AVMPackData"]
    "4" [label="ListHead" tooltip="ListHead"]
    "3" [label="AVMPackInfo" tooltip="AVMPackInfo"]
    "1" [label="ConstAVMPack" tooltip="ConstAVMPack" fillcolor="#BFBFBF"]
    "2" -> "3" [dir=forward tooltip="usage"]
    "2" -> "4" [dir=forward tooltip="usage"]
    "4" -> "4" [dir=forward tooltip="usage"]
    "1" -> "2" [dir=forward tooltip="usage"]
}

Public Members

struct AVMPackData base
struct Context

Collaboration diagram for Context:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "23" [label="SpinLock" tooltip="SpinLock"]
    "19" [label="ResourceType" tooltip="ResourceType"]
    "6" [label="Module" tooltip="Module"]
    "5" [label="ListHead" tooltip="ListHead"]
    "11" [label="HeapFragment" tooltip="HeapFragment"]
    "17" [label="RefcBinaryQueueItem" tooltip="RefcBinaryQueueItem"]
    "12" [label="GlobalContext" tooltip="GlobalContext"]
    "8" [label="ModuleFilename" tooltip="ModuleFilename"]
    "16" [label="HNodeGroup" tooltip="HNodeGroup"]
    "22" [label="TimerList" tooltip="TimerList"]
    "9" [label="LiteralEntry" tooltip="LiteralEntry"]
    "3" [label="MailboxMessage" tooltip="MailboxMessage"]
    "10" [label="Heap" tooltip="Heap"]
    "1" [label="Context" tooltip="Context" fillcolor="#BFBFBF"]
    "13" [label="MessageQueueItem" tooltip="MessageQueueItem"]
    "21" [label="AtomsHashTable" tooltip="AtomsHashTable"]
    "18" [label="RefcBinary" tooltip="RefcBinary"]
    "2" [label="Mailbox" tooltip="Mailbox"]
    "14" [label="AtomTable" tooltip="AtomTable"]
    "7" [label="ExportedFunction" tooltip="ExportedFunction"]
    "4" [label="TimerListItem" tooltip="TimerListItem"]
    "20" [label="SyncList" tooltip="SyncList"]
    "15" [label="HNode" tooltip="HNode"]
    "19" -> "12" [dir=forward tooltip="usage"]
    "19" -> "5" [dir=forward tooltip="usage"]
    "6" -> "7" [dir=forward tooltip="usage"]
    "6" -> "8" [dir=forward tooltip="usage"]
    "6" -> "9" [dir=forward tooltip="usage"]
    "6" -> "5" [dir=forward tooltip="usage"]
    "5" -> "5" [dir=forward tooltip="usage"]
    "11" -> "11" [dir=forward tooltip="usage"]
    "17" -> "18" [dir=forward tooltip="usage"]
    "17" -> "17" [dir=forward tooltip="usage"]
    "12" -> "13" [dir=forward tooltip="usage"]
    "12" -> "14" [dir=forward tooltip="usage"]
    "12" -> "17" [dir=forward tooltip="usage"]
    "12" -> "20" [dir=forward tooltip="usage"]
    "12" -> "6" [dir=forward tooltip="usage"]
    "12" -> "21" [dir=forward tooltip="usage"]
    "12" -> "22" [dir=forward tooltip="usage"]
    "12" -> "23" [dir=forward tooltip="usage"]
    "12" -> "5" [dir=forward tooltip="usage"]
    "16" -> "15" [dir=forward tooltip="usage"]
    "16" -> "16" [dir=forward tooltip="usage"]
    "22" -> "5" [dir=forward tooltip="usage"]
    "3" -> "3" [dir=forward tooltip="usage"]
    "10" -> "11" [dir=forward tooltip="usage"]
    "1" -> "1" [dir=forward tooltip="usage"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "1" -> "4" [dir=forward tooltip="usage"]
    "1" -> "6" [dir=forward tooltip="usage"]
    "1" -> "10" [dir=forward tooltip="usage"]
    "1" -> "12" [dir=forward tooltip="usage"]
    "1" -> "5" [dir=forward tooltip="usage"]
    "13" -> "3" [dir=forward tooltip="usage"]
    "13" -> "13" [dir=forward tooltip="usage"]
    "21" -> "15" [dir=forward tooltip="usage"]
    "18" -> "19" [dir=forward tooltip="usage"]
    "18" -> "5" [dir=forward tooltip="usage"]
    "2" -> "3" [dir=forward tooltip="usage"]
    "14" -> "15" [dir=forward tooltip="usage"]
    "14" -> "16" [dir=forward tooltip="usage"]
    "4" -> "5" [dir=forward tooltip="usage"]
    "20" -> "5" [dir=forward tooltip="usage"]
    "15" -> "15" [dir=forward tooltip="usage"]
}

Public Members

GlobalContext *global
Heap heap
term *e
term x[16 + 1]
struct ListHead extended_x_regs
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
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
struct ContextAccumulator

Collaboration diagram for ContextAccumulator:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "24" [label="SpinLock" tooltip="SpinLock"]
    "20" [label="ResourceType" tooltip="ResourceType"]
    "7" [label="Module" tooltip="Module"]
    "6" [label="ListHead" tooltip="ListHead"]
    "12" [label="HeapFragment" tooltip="HeapFragment"]
    "18" [label="RefcBinaryQueueItem" tooltip="RefcBinaryQueueItem"]
    "13" [label="GlobalContext" tooltip="GlobalContext"]
    "9" [label="ModuleFilename" tooltip="ModuleFilename"]
    "17" [label="HNodeGroup" tooltip="HNodeGroup"]
    "23" [label="TimerList" tooltip="TimerList"]
    "10" [label="LiteralEntry" tooltip="LiteralEntry"]
    "4" [label="MailboxMessage" tooltip="MailboxMessage"]
    "11" [label="Heap" tooltip="Heap"]
    "2" [label="Context" tooltip="Context"]
    "14" [label="MessageQueueItem" tooltip="MessageQueueItem"]
    "22" [label="AtomsHashTable" tooltip="AtomsHashTable"]
    "19" [label="RefcBinary" tooltip="RefcBinary"]
    "1" [label="ContextAccumulator" tooltip="ContextAccumulator" fillcolor="#BFBFBF"]
    "3" [label="Mailbox" tooltip="Mailbox"]
    "15" [label="AtomTable" tooltip="AtomTable"]
    "8" [label="ExportedFunction" tooltip="ExportedFunction"]
    "5" [label="TimerListItem" tooltip="TimerListItem"]
    "21" [label="SyncList" tooltip="SyncList"]
    "16" [label="HNode" tooltip="HNode"]
    "20" -> "13" [dir=forward tooltip="usage"]
    "20" -> "6" [dir=forward tooltip="usage"]
    "7" -> "8" [dir=forward tooltip="usage"]
    "7" -> "9" [dir=forward tooltip="usage"]
    "7" -> "10" [dir=forward tooltip="usage"]
    "7" -> "6" [dir=forward tooltip="usage"]
    "6" -> "6" [dir=forward tooltip="usage"]
    "12" -> "12" [dir=forward tooltip="usage"]
    "18" -> "19" [dir=forward tooltip="usage"]
    "18" -> "18" [dir=forward tooltip="usage"]
    "13" -> "14" [dir=forward tooltip="usage"]
    "13" -> "15" [dir=forward tooltip="usage"]
    "13" -> "18" [dir=forward tooltip="usage"]
    "13" -> "21" [dir=forward tooltip="usage"]
    "13" -> "7" [dir=forward tooltip="usage"]
    "13" -> "22" [dir=forward tooltip="usage"]
    "13" -> "23" [dir=forward tooltip="usage"]
    "13" -> "24" [dir=forward tooltip="usage"]
    "13" -> "6" [dir=forward tooltip="usage"]
    "17" -> "16" [dir=forward tooltip="usage"]
    "17" -> "17" [dir=forward tooltip="usage"]
    "23" -> "6" [dir=forward tooltip="usage"]
    "4" -> "4" [dir=forward tooltip="usage"]
    "11" -> "12" [dir=forward tooltip="usage"]
    "2" -> "2" [dir=forward tooltip="usage"]
    "2" -> "3" [dir=forward tooltip="usage"]
    "2" -> "5" [dir=forward tooltip="usage"]
    "2" -> "7" [dir=forward tooltip="usage"]
    "2" -> "11" [dir=forward tooltip="usage"]
    "2" -> "13" [dir=forward tooltip="usage"]
    "2" -> "6" [dir=forward tooltip="usage"]
    "14" -> "4" [dir=forward tooltip="usage"]
    "14" -> "14" [dir=forward tooltip="usage"]
    "22" -> "16" [dir=forward tooltip="usage"]
    "19" -> "20" [dir=forward tooltip="usage"]
    "19" -> "6" [dir=forward tooltip="usage"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "3" -> "4" [dir=forward tooltip="usage"]
    "15" -> "16" [dir=forward tooltip="usage"]
    "15" -> "17" [dir=forward tooltip="usage"]
    "5" -> "6" [dir=forward tooltip="usage"]
    "21" -> "6" [dir=forward tooltip="usage"]
    "16" -> "16" [dir=forward tooltip="usage"]
}

Public Members

Context *ctx
term result
struct DictEntry

Collaboration diagram for DictEntry:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "2" [label="ListHead" tooltip="ListHead"]
    "1" [label="DictEntry" tooltip="DictEntry" fillcolor="#BFBFBF"]
    "2" -> "2" [dir=forward tooltip="usage"]
    "1" -> "2" [dir=forward tooltip="usage"]
}

Public Members

struct ListHead head
term key
term value
struct EntropyContextResource

Public Members

mbedtls_entropy_context context
struct ErlNifEnv

Collaboration diagram for ErlNifEnv:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "21" [label="SpinLock" tooltip="SpinLock"]
    "12" [label="ResourceType" tooltip="ResourceType"]
    "15" [label="Module" tooltip="Module"]
    "13" [label="ListHead" tooltip="ListHead"]
    "3" [label="HeapFragment" tooltip="HeapFragment"]
    "10" [label="RefcBinaryQueueItem" tooltip="RefcBinaryQueueItem"]
    "4" [label="GlobalContext" tooltip="GlobalContext"]
    "17" [label="ModuleFilename" tooltip="ModuleFilename"]
    "9" [label="HNodeGroup" tooltip="HNodeGroup"]
    "20" [label="TimerList" tooltip="TimerList"]
    "18" [label="LiteralEntry" tooltip="LiteralEntry"]
    "6" [label="MailboxMessage" tooltip="MailboxMessage"]
    "2" [label="Heap" tooltip="Heap"]
    "5" [label="MessageQueueItem" tooltip="MessageQueueItem"]
    "19" [label="AtomsHashTable" tooltip="AtomsHashTable"]
    "11" [label="RefcBinary" tooltip="RefcBinary"]
    "1" [label="ErlNifEnv" tooltip="ErlNifEnv" fillcolor="#BFBFBF"]
    "7" [label="AtomTable" tooltip="AtomTable"]
    "16" [label="ExportedFunction" tooltip="ExportedFunction"]
    "14" [label="SyncList" tooltip="SyncList"]
    "8" [label="HNode" tooltip="HNode"]
    "12" -> "4" [dir=forward tooltip="usage"]
    "12" -> "13" [dir=forward tooltip="usage"]
    "15" -> "16" [dir=forward tooltip="usage"]
    "15" -> "17" [dir=forward tooltip="usage"]
    "15" -> "18" [dir=forward tooltip="usage"]
    "15" -> "13" [dir=forward tooltip="usage"]
    "13" -> "13" [dir=forward tooltip="usage"]
    "3" -> "3" [dir=forward tooltip="usage"]
    "10" -> "11" [dir=forward tooltip="usage"]
    "10" -> "10" [dir=forward tooltip="usage"]
    "4" -> "5" [dir=forward tooltip="usage"]
    "4" -> "7" [dir=forward tooltip="usage"]
    "4" -> "10" [dir=forward tooltip="usage"]
    "4" -> "14" [dir=forward tooltip="usage"]
    "4" -> "15" [dir=forward tooltip="usage"]
    "4" -> "19" [dir=forward tooltip="usage"]
    "4" -> "20" [dir=forward tooltip="usage"]
    "4" -> "21" [dir=forward tooltip="usage"]
    "4" -> "13" [dir=forward tooltip="usage"]
    "9" -> "8" [dir=forward tooltip="usage"]
    "9" -> "9" [dir=forward tooltip="usage"]
    "20" -> "13" [dir=forward tooltip="usage"]
    "6" -> "6" [dir=forward tooltip="usage"]
    "2" -> "3" [dir=forward tooltip="usage"]
    "5" -> "6" [dir=forward tooltip="usage"]
    "5" -> "5" [dir=forward tooltip="usage"]
    "19" -> "8" [dir=forward tooltip="usage"]
    "11" -> "12" [dir=forward tooltip="usage"]
    "11" -> "13" [dir=forward tooltip="usage"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "1" -> "4" [dir=forward tooltip="usage"]
    "7" -> "8" [dir=forward tooltip="usage"]
    "7" -> "9" [dir=forward tooltip="usage"]
    "14" -> "13" [dir=forward tooltip="usage"]
    "8" -> "8" [dir=forward tooltip="usage"]
}

Public Members

GlobalContext *global
Heap heap
term *stack_pointer
term x[2]
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.

Public Members

int members
ErlNifResourceDtor *dtor
ErlNifResourceStop *stop
ErlNifResourceDown *down
struct ExportedFunction

Public Members

enum FunctionType type
struct FprintfFun

Collaboration diagram for FprintfFun:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "1" [label="FprintfFun" tooltip="FprintfFun" fillcolor="#BFBFBF"]
    "2" [label="PrinterFun" tooltip="PrinterFun"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "2" -> "2" [dir=forward tooltip="usage"]
}

Public Members

PrinterFun base
FILE *stream
struct GenMessage

Public Members

term req
term pid
term ref
struct GlobalContext

Collaboration diagram for GlobalContext:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "18" [label="SpinLock" tooltip="SpinLock"]
    "9" [label="ResourceType" tooltip="ResourceType"]
    "12" [label="Module" tooltip="Module"]
    "10" [label="ListHead" tooltip="ListHead"]
    "7" [label="RefcBinaryQueueItem" tooltip="RefcBinaryQueueItem"]
    "1" [label="GlobalContext" tooltip="GlobalContext" fillcolor="#BFBFBF"]
    "14" [label="ModuleFilename" tooltip="ModuleFilename"]
    "6" [label="HNodeGroup" tooltip="HNodeGroup"]
    "17" [label="TimerList" tooltip="TimerList"]
    "15" [label="LiteralEntry" tooltip="LiteralEntry"]
    "3" [label="MailboxMessage" tooltip="MailboxMessage"]
    "2" [label="MessageQueueItem" tooltip="MessageQueueItem"]
    "16" [label="AtomsHashTable" tooltip="AtomsHashTable"]
    "8" [label="RefcBinary" tooltip="RefcBinary"]
    "4" [label="AtomTable" tooltip="AtomTable"]
    "13" [label="ExportedFunction" tooltip="ExportedFunction"]
    "11" [label="SyncList" tooltip="SyncList"]
    "5" [label="HNode" tooltip="HNode"]
    "9" -> "1" [dir=forward tooltip="usage"]
    "9" -> "10" [dir=forward tooltip="usage"]
    "12" -> "13" [dir=forward tooltip="usage"]
    "12" -> "14" [dir=forward tooltip="usage"]
    "12" -> "15" [dir=forward tooltip="usage"]
    "12" -> "10" [dir=forward tooltip="usage"]
    "10" -> "10" [dir=forward tooltip="usage"]
    "7" -> "8" [dir=forward tooltip="usage"]
    "7" -> "7" [dir=forward tooltip="usage"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "1" -> "4" [dir=forward tooltip="usage"]
    "1" -> "7" [dir=forward tooltip="usage"]
    "1" -> "11" [dir=forward tooltip="usage"]
    "1" -> "12" [dir=forward tooltip="usage"]
    "1" -> "16" [dir=forward tooltip="usage"]
    "1" -> "17" [dir=forward tooltip="usage"]
    "1" -> "18" [dir=forward tooltip="usage"]
    "1" -> "10" [dir=forward tooltip="usage"]
    "6" -> "5" [dir=forward tooltip="usage"]
    "6" -> "6" [dir=forward tooltip="usage"]
    "17" -> "10" [dir=forward tooltip="usage"]
    "3" -> "3" [dir=forward tooltip="usage"]
    "2" -> "3" [dir=forward tooltip="usage"]
    "2" -> "2" [dir=forward tooltip="usage"]
    "16" -> "5" [dir=forward tooltip="usage"]
    "8" -> "9" [dir=forward tooltip="usage"]
    "8" -> "10" [dir=forward tooltip="usage"]
    "4" -> "5" [dir=forward tooltip="usage"]
    "4" -> "6" [dir=forward tooltip="usage"]
    "11" -> "10" [dir=forward tooltip="usage"]
    "5" -> "5" [dir=forward tooltip="usage"]
}

Public Members

struct ListHead ready_processes
struct ListHead running_processes
struct ListHead waiting_processes
SpinLock processes_spinlock
struct MessageQueueItem *message_queue
struct RefcBinaryQueueItem *refc_queue
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
struct AtomTable *atom_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 online_schedulers
int running_schedulers
bool waiting_scheduler
Mutex *schedulers_mutex
CondVar *schedulers_cv
bool scheduler_stop_all
SpinLock env_spinlock
void *platform_data
struct Heap

Collaboration diagram for Heap:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "2" [label="HeapFragment" tooltip="HeapFragment"]
    "1" [label="Heap" tooltip="Heap" fillcolor="#BFBFBF"]
    "2" -> "2" [dir=forward tooltip="usage"]
    "1" -> "2" [dir=forward tooltip="usage"]
}

Public Members

HeapFragment *root
term *heap_start
term *heap_ptr
term *heap_end
struct HNode

Public Members

struct HNode *next
AtomString key
unsigned long value
struct HNodeGroup

Collaboration diagram for HNodeGroup:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "1" [label="HNodeGroup" tooltip="HNodeGroup" fillcolor="#BFBFBF"]
    "2" [label="HNode" tooltip="HNode"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "1" -> "1" [dir=forward tooltip="usage"]
    "2" -> "2" [dir=forward tooltip="usage"]
}

Public Members

struct HNodeGroup *next
long first_index
uint16_t len
struct HNode nodes[]
struct IFFRecord

Public Members

const char name[4]
uint32_t size
struct InMemoryAVMPack

Collaboration diagram for InMemoryAVMPack:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "1" [label="InMemoryAVMPack" tooltip="InMemoryAVMPack" fillcolor="#BFBFBF"]
    "2" [label="AVMPackData" tooltip="AVMPackData"]
    "4" [label="ListHead" tooltip="ListHead"]
    "3" [label="AVMPackInfo" tooltip="AVMPackInfo"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "2" -> "3" [dir=forward tooltip="usage"]
    "2" -> "4" [dir=forward tooltip="usage"]
    "4" -> "4" [dir=forward tooltip="usage"]
}

Public Members

struct AVMPackData base
struct Int24
int32_t val24 : 24
struct Int40
int64_t val40 : 40
struct Int48
int64_t val48 : 48
struct Int56
int64_t val56 : 56
struct kv_pair

Public Members

term key
term value
struct LineRefOffset

Collaboration diagram for LineRefOffset:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "1" [label="LineRefOffset" tooltip="LineRefOffset" fillcolor="#BFBFBF"]
    "2" [label="ListHead" tooltip="ListHead"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "2" -> "2" [dir=forward tooltip="usage"]
}

Public Members

struct ListHead head
unsigned int offset
uint16_t line_ref
struct ListHead

Collaboration diagram for ListHead:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "1" [label="ListHead" tooltip="ListHead" fillcolor="#BFBFBF"]
    "1" -> "1" [dir=forward tooltip="usage"]
}

Public Members

struct ListHead *next
struct ListHead *prev
struct LiteralEntry

Public Members

uint32_t size
void const *data
struct Mailbox

Collaboration diagram for Mailbox:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "2" [label="MailboxMessage" tooltip="MailboxMessage"]
    "1" [label="Mailbox" tooltip="Mailbox" fillcolor="#BFBFBF"]
    "2" -> "2" [dir=forward tooltip="usage"]
    "1" -> "2" [dir=forward tooltip="usage"]
}

Public Members

MailboxMessage *outer_first
MailboxMessage *inner_first
MailboxMessage *inner_last
MailboxMessage *receive_pointer
MailboxMessage *receive_pointer_prev
struct Message

Collaboration diagram for Message:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "1" [label="Message" tooltip="Message" fillcolor="#BFBFBF"]
    "2" [label="MailboxMessage" tooltip="MailboxMessage"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "2" -> "2" [dir=forward tooltip="usage"]
}

Public Members

MailboxMessage base
term message
term *heap_end
term storage[]
struct Module

Collaboration diagram for Module:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "1" [label="Module" tooltip="Module" fillcolor="#BFBFBF"]
    "5" [label="ListHead" tooltip="ListHead"]
    "3" [label="ModuleFilename" tooltip="ModuleFilename"]
    "4" [label="LiteralEntry" tooltip="LiteralEntry"]
    "2" [label="ExportedFunction" tooltip="ExportedFunction"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "1" -> "3" [dir=forward tooltip="usage"]
    "1" -> "4" [dir=forward tooltip="usage"]
    "1" -> "5" [dir=forward tooltip="usage"]
    "5" -> "5" [dir=forward tooltip="usage"]
}

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
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
struct ModuleFilename

Public Members

uint8_t *data
size_t len
struct ModuleFunction

Collaboration diagram for ModuleFunction:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "3" [label="Module" tooltip="Module"]
    "1" [label="ModuleFunction" tooltip="ModuleFunction" fillcolor="#BFBFBF"]
    "6" [label="ListHead" tooltip="ListHead"]
    "4" [label="ModuleFilename" tooltip="ModuleFilename"]
    "5" [label="LiteralEntry" tooltip="LiteralEntry"]
    "2" [label="ExportedFunction" tooltip="ExportedFunction"]
    "3" -> "2" [dir=forward tooltip="usage"]
    "3" -> "4" [dir=forward tooltip="usage"]
    "3" -> "5" [dir=forward tooltip="usage"]
    "3" -> "6" [dir=forward tooltip="usage"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "1" -> "3" [dir=forward tooltip="usage"]
    "6" -> "6" [dir=forward tooltip="usage"]
}

Public Members

struct ExportedFunction base
Module *target
int label
struct Monitor

Collaboration diagram for Monitor:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "1" [label="Monitor" tooltip="Monitor" fillcolor="#BFBFBF"]
    "2" [label="ListHead" tooltip="ListHead"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "2" -> "2" [dir=forward tooltip="usage"]
}

A regular monitor or a half link.

Public Members

struct ListHead monitor_list_head
uint64_t ref_ticks
term monitor_obj
struct Nif

Collaboration diagram for Nif:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "24" [label="SpinLock" tooltip="SpinLock"]
    "20" [label="ResourceType" tooltip="ResourceType"]
    "8" [label="Module" tooltip="Module"]
    "7" [label="ListHead" tooltip="ListHead"]
    "12" [label="HeapFragment" tooltip="HeapFragment"]
    "18" [label="RefcBinaryQueueItem" tooltip="RefcBinaryQueueItem"]
    "13" [label="GlobalContext" tooltip="GlobalContext"]
    "9" [label="ModuleFilename" tooltip="ModuleFilename"]
    "17" [label="HNodeGroup" tooltip="HNodeGroup"]
    "23" [label="TimerList" tooltip="TimerList"]
    "10" [label="LiteralEntry" tooltip="LiteralEntry"]
    "5" [label="MailboxMessage" tooltip="MailboxMessage"]
    "11" [label="Heap" tooltip="Heap"]
    "1" [label="Nif" tooltip="Nif" fillcolor="#BFBFBF"]
    "3" [label="Context" tooltip="Context"]
    "14" [label="MessageQueueItem" tooltip="MessageQueueItem"]
    "22" [label="AtomsHashTable" tooltip="AtomsHashTable"]
    "19" [label="RefcBinary" tooltip="RefcBinary"]
    "4" [label="Mailbox" tooltip="Mailbox"]
    "15" [label="AtomTable" tooltip="AtomTable"]
    "2" [label="ExportedFunction" tooltip="ExportedFunction"]
    "6" [label="TimerListItem" tooltip="TimerListItem"]
    "21" [label="SyncList" tooltip="SyncList"]
    "16" [label="HNode" tooltip="HNode"]
    "20" -> "13" [dir=forward tooltip="usage"]
    "20" -> "7" [dir=forward tooltip="usage"]
    "8" -> "2" [dir=forward tooltip="usage"]
    "8" -> "9" [dir=forward tooltip="usage"]
    "8" -> "10" [dir=forward tooltip="usage"]
    "8" -> "7" [dir=forward tooltip="usage"]
    "7" -> "7" [dir=forward tooltip="usage"]
    "12" -> "12" [dir=forward tooltip="usage"]
    "18" -> "19" [dir=forward tooltip="usage"]
    "18" -> "18" [dir=forward tooltip="usage"]
    "13" -> "14" [dir=forward tooltip="usage"]
    "13" -> "15" [dir=forward tooltip="usage"]
    "13" -> "18" [dir=forward tooltip="usage"]
    "13" -> "21" [dir=forward tooltip="usage"]
    "13" -> "8" [dir=forward tooltip="usage"]
    "13" -> "22" [dir=forward tooltip="usage"]
    "13" -> "23" [dir=forward tooltip="usage"]
    "13" -> "24" [dir=forward tooltip="usage"]
    "13" -> "7" [dir=forward tooltip="usage"]
    "17" -> "16" [dir=forward tooltip="usage"]
    "17" -> "17" [dir=forward tooltip="usage"]
    "23" -> "7" [dir=forward tooltip="usage"]
    "5" -> "5" [dir=forward tooltip="usage"]
    "11" -> "12" [dir=forward tooltip="usage"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "1" -> "3" [dir=forward tooltip="usage"]
    "3" -> "3" [dir=forward tooltip="usage"]
    "3" -> "4" [dir=forward tooltip="usage"]
    "3" -> "6" [dir=forward tooltip="usage"]
    "3" -> "8" [dir=forward tooltip="usage"]
    "3" -> "11" [dir=forward tooltip="usage"]
    "3" -> "13" [dir=forward tooltip="usage"]
    "3" -> "7" [dir=forward tooltip="usage"]
    "14" -> "5" [dir=forward tooltip="usage"]
    "14" -> "14" [dir=forward tooltip="usage"]
    "22" -> "16" [dir=forward tooltip="usage"]
    "19" -> "20" [dir=forward tooltip="usage"]
    "19" -> "7" [dir=forward tooltip="usage"]
    "4" -> "5" [dir=forward tooltip="usage"]
    "15" -> "16" [dir=forward tooltip="usage"]
    "15" -> "17" [dir=forward tooltip="usage"]
    "6" -> "7" [dir=forward tooltip="usage"]
    "21" -> "7" [dir=forward tooltip="usage"]
    "16" -> "16" [dir=forward tooltip="usage"]
}

Public Members

struct ExportedFunction base
NifImpl nif_ptr
struct PrinterFun

Public Members

printer_function_t print
struct RefcBinary

Collaboration diagram for RefcBinary:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "18" [label="SpinLock" tooltip="SpinLock"]
    "2" [label="ResourceType" tooltip="ResourceType"]
    "12" [label="Module" tooltip="Module"]
    "11" [label="ListHead" tooltip="ListHead"]
    "9" [label="RefcBinaryQueueItem" tooltip="RefcBinaryQueueItem"]
    "3" [label="GlobalContext" tooltip="GlobalContext"]
    "14" [label="ModuleFilename" tooltip="ModuleFilename"]
    "8" [label="HNodeGroup" tooltip="HNodeGroup"]
    "17" [label="TimerList" tooltip="TimerList"]
    "15" [label="LiteralEntry" tooltip="LiteralEntry"]
    "5" [label="MailboxMessage" tooltip="MailboxMessage"]
    "4" [label="MessageQueueItem" tooltip="MessageQueueItem"]
    "16" [label="AtomsHashTable" tooltip="AtomsHashTable"]
    "1" [label="RefcBinary" tooltip="RefcBinary" fillcolor="#BFBFBF"]
    "6" [label="AtomTable" tooltip="AtomTable"]
    "13" [label="ExportedFunction" tooltip="ExportedFunction"]
    "10" [label="SyncList" tooltip="SyncList"]
    "7" [label="HNode" tooltip="HNode"]
    "2" -> "3" [dir=forward tooltip="usage"]
    "2" -> "11" [dir=forward tooltip="usage"]
    "12" -> "13" [dir=forward tooltip="usage"]
    "12" -> "14" [dir=forward tooltip="usage"]
    "12" -> "15" [dir=forward tooltip="usage"]
    "12" -> "11" [dir=forward tooltip="usage"]
    "11" -> "11" [dir=forward tooltip="usage"]
    "9" -> "1" [dir=forward tooltip="usage"]
    "9" -> "9" [dir=forward tooltip="usage"]
    "3" -> "4" [dir=forward tooltip="usage"]
    "3" -> "6" [dir=forward tooltip="usage"]
    "3" -> "9" [dir=forward tooltip="usage"]
    "3" -> "10" [dir=forward tooltip="usage"]
    "3" -> "12" [dir=forward tooltip="usage"]
    "3" -> "16" [dir=forward tooltip="usage"]
    "3" -> "17" [dir=forward tooltip="usage"]
    "3" -> "18" [dir=forward tooltip="usage"]
    "3" -> "11" [dir=forward tooltip="usage"]
    "8" -> "7" [dir=forward tooltip="usage"]
    "8" -> "8" [dir=forward tooltip="usage"]
    "17" -> "11" [dir=forward tooltip="usage"]
    "5" -> "5" [dir=forward tooltip="usage"]
    "4" -> "5" [dir=forward tooltip="usage"]
    "4" -> "4" [dir=forward tooltip="usage"]
    "16" -> "7" [dir=forward tooltip="usage"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "1" -> "11" [dir=forward tooltip="usage"]
    "6" -> "7" [dir=forward tooltip="usage"]
    "6" -> "8" [dir=forward tooltip="usage"]
    "10" -> "11" [dir=forward tooltip="usage"]
    "7" -> "7" [dir=forward tooltip="usage"]
}

Public Members

struct ListHead head
size_t ref_count
size_t size
struct ResourceType *resource_type
uint8_t data[]
struct RefcBinaryAVMPack

Collaboration diagram for RefcBinaryAVMPack:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "21" [label="SpinLock" tooltip="SpinLock"]
    "6" [label="ResourceType" tooltip="ResourceType"]
    "15" [label="Module" tooltip="Module"]
    "2" [label="AVMPackData" tooltip="AVMPackData"]
    "4" [label="ListHead" tooltip="ListHead"]
    "13" [label="RefcBinaryQueueItem" tooltip="RefcBinaryQueueItem"]
    "7" [label="GlobalContext" tooltip="GlobalContext"]
    "3" [label="AVMPackInfo" tooltip="AVMPackInfo"]
    "17" [label="ModuleFilename" tooltip="ModuleFilename"]
    "12" [label="HNodeGroup" tooltip="HNodeGroup"]
    "20" [label="TimerList" tooltip="TimerList"]
    "18" [label="LiteralEntry" tooltip="LiteralEntry"]
    "9" [label="MailboxMessage" tooltip="MailboxMessage"]
    "1" [label="RefcBinaryAVMPack" tooltip="RefcBinaryAVMPack" fillcolor="#BFBFBF"]
    "8" [label="MessageQueueItem" tooltip="MessageQueueItem"]
    "19" [label="AtomsHashTable" tooltip="AtomsHashTable"]
    "5" [label="RefcBinary" tooltip="RefcBinary"]
    "10" [label="AtomTable" tooltip="AtomTable"]
    "16" [label="ExportedFunction" tooltip="ExportedFunction"]
    "14" [label="SyncList" tooltip="SyncList"]
    "11" [label="HNode" tooltip="HNode"]
    "6" -> "7" [dir=forward tooltip="usage"]
    "6" -> "4" [dir=forward tooltip="usage"]
    "15" -> "16" [dir=forward tooltip="usage"]
    "15" -> "17" [dir=forward tooltip="usage"]
    "15" -> "18" [dir=forward tooltip="usage"]
    "15" -> "4" [dir=forward tooltip="usage"]
    "2" -> "3" [dir=forward tooltip="usage"]
    "2" -> "4" [dir=forward tooltip="usage"]
    "4" -> "4" [dir=forward tooltip="usage"]
    "13" -> "5" [dir=forward tooltip="usage"]
    "13" -> "13" [dir=forward tooltip="usage"]
    "7" -> "8" [dir=forward tooltip="usage"]
    "7" -> "10" [dir=forward tooltip="usage"]
    "7" -> "13" [dir=forward tooltip="usage"]
    "7" -> "14" [dir=forward tooltip="usage"]
    "7" -> "15" [dir=forward tooltip="usage"]
    "7" -> "19" [dir=forward tooltip="usage"]
    "7" -> "20" [dir=forward tooltip="usage"]
    "7" -> "21" [dir=forward tooltip="usage"]
    "7" -> "4" [dir=forward tooltip="usage"]
    "12" -> "11" [dir=forward tooltip="usage"]
    "12" -> "12" [dir=forward tooltip="usage"]
    "20" -> "4" [dir=forward tooltip="usage"]
    "9" -> "9" [dir=forward tooltip="usage"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "1" -> "5" [dir=forward tooltip="usage"]
    "8" -> "9" [dir=forward tooltip="usage"]
    "8" -> "8" [dir=forward tooltip="usage"]
    "19" -> "11" [dir=forward tooltip="usage"]
    "5" -> "6" [dir=forward tooltip="usage"]
    "5" -> "4" [dir=forward tooltip="usage"]
    "10" -> "11" [dir=forward tooltip="usage"]
    "10" -> "12" [dir=forward tooltip="usage"]
    "14" -> "4" [dir=forward tooltip="usage"]
    "11" -> "11" [dir=forward tooltip="usage"]
}

Public Members

struct AVMPackData base
struct RefcBinary *refc
struct RefSignal

Collaboration diagram for RefSignal:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "1" [label="RefSignal" tooltip="RefSignal" fillcolor="#BFBFBF"]
    "2" [label="MailboxMessage" tooltip="MailboxMessage"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "2" -> "2" [dir=forward tooltip="usage"]
}

Public Members

MailboxMessage base
uint64_t ref_ticks
struct RegisteredProcess

Collaboration diagram for RegisteredProcess:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "1" [label="RegisteredProcess" tooltip="RegisteredProcess" fillcolor="#BFBFBF"]
    "2" [label="ListHead" tooltip="ListHead"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "2" -> "2" [dir=forward tooltip="usage"]
}

Public Members

struct ListHead registered_processes_list_head
int atom_index
int local_process_id
struct ResourceMonitor

Collaboration diagram for ResourceMonitor:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "2" [label="Monitor" tooltip="Monitor"]
    "3" [label="ListHead" tooltip="ListHead"]
    "1" [label="ResourceMonitor" tooltip="ResourceMonitor" fillcolor="#BFBFBF"]
    "2" -> "3" [dir=forward tooltip="usage"]
    "3" -> "3" [dir=forward tooltip="usage"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "1" -> "3" [dir=forward tooltip="usage"]
}

A resource monitor.

Public Members

struct Monitor base
struct ListHead resource_list_head
struct ResourceType

Collaboration diagram for ResourceType:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "18" [label="SpinLock" tooltip="SpinLock"]
    "1" [label="ResourceType" tooltip="ResourceType" fillcolor="#BFBFBF"]
    "12" [label="Module" tooltip="Module"]
    "10" [label="ListHead" tooltip="ListHead"]
    "8" [label="RefcBinaryQueueItem" tooltip="RefcBinaryQueueItem"]
    "2" [label="GlobalContext" tooltip="GlobalContext"]
    "14" [label="ModuleFilename" tooltip="ModuleFilename"]
    "7" [label="HNodeGroup" tooltip="HNodeGroup"]
    "17" [label="TimerList" tooltip="TimerList"]
    "15" [label="LiteralEntry" tooltip="LiteralEntry"]
    "4" [label="MailboxMessage" tooltip="MailboxMessage"]
    "3" [label="MessageQueueItem" tooltip="MessageQueueItem"]
    "16" [label="AtomsHashTable" tooltip="AtomsHashTable"]
    "9" [label="RefcBinary" tooltip="RefcBinary"]
    "5" [label="AtomTable" tooltip="AtomTable"]
    "13" [label="ExportedFunction" tooltip="ExportedFunction"]
    "11" [label="SyncList" tooltip="SyncList"]
    "6" [label="HNode" tooltip="HNode"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "1" -> "10" [dir=forward tooltip="usage"]
    "12" -> "13" [dir=forward tooltip="usage"]
    "12" -> "14" [dir=forward tooltip="usage"]
    "12" -> "15" [dir=forward tooltip="usage"]
    "12" -> "10" [dir=forward tooltip="usage"]
    "10" -> "10" [dir=forward tooltip="usage"]
    "8" -> "9" [dir=forward tooltip="usage"]
    "8" -> "8" [dir=forward tooltip="usage"]
    "2" -> "3" [dir=forward tooltip="usage"]
    "2" -> "5" [dir=forward tooltip="usage"]
    "2" -> "8" [dir=forward tooltip="usage"]
    "2" -> "11" [dir=forward tooltip="usage"]
    "2" -> "12" [dir=forward tooltip="usage"]
    "2" -> "16" [dir=forward tooltip="usage"]
    "2" -> "17" [dir=forward tooltip="usage"]
    "2" -> "18" [dir=forward tooltip="usage"]
    "2" -> "10" [dir=forward tooltip="usage"]
    "7" -> "6" [dir=forward tooltip="usage"]
    "7" -> "7" [dir=forward tooltip="usage"]
    "17" -> "10" [dir=forward tooltip="usage"]
    "4" -> "4" [dir=forward tooltip="usage"]
    "3" -> "4" [dir=forward tooltip="usage"]
    "3" -> "3" [dir=forward tooltip="usage"]
    "16" -> "6" [dir=forward tooltip="usage"]
    "9" -> "1" [dir=forward tooltip="usage"]
    "9" -> "10" [dir=forward tooltip="usage"]
    "5" -> "6" [dir=forward tooltip="usage"]
    "5" -> "7" [dir=forward tooltip="usage"]
    "11" -> "10" [dir=forward tooltip="usage"]
    "6" -> "6" [dir=forward tooltip="usage"]
}

A resource type.

we need a reference to the global context as enif_release_resource needs to access the synchronized list of refc_binaries

Public Members

struct ListHead head
const char *name
GlobalContext *global
struct ListHead monitors
ErlNifResourceDtor *dtor
ErlNifResourceStop *stop
ErlNifResourceDown *down
struct SelectEvent

Collaboration diagram for SelectEvent:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "19" [label="SpinLock" tooltip="SpinLock"]
    "1" [label="SelectEvent" tooltip="SelectEvent" fillcolor="#BFBFBF"]
    "3" [label="ResourceType" tooltip="ResourceType"]
    "13" [label="Module" tooltip="Module"]
    "12" [label="ListHead" tooltip="ListHead"]
    "10" [label="RefcBinaryQueueItem" tooltip="RefcBinaryQueueItem"]
    "4" [label="GlobalContext" tooltip="GlobalContext"]
    "15" [label="ModuleFilename" tooltip="ModuleFilename"]
    "9" [label="HNodeGroup" tooltip="HNodeGroup"]
    "18" [label="TimerList" tooltip="TimerList"]
    "16" [label="LiteralEntry" tooltip="LiteralEntry"]
    "6" [label="MailboxMessage" tooltip="MailboxMessage"]
    "5" [label="MessageQueueItem" tooltip="MessageQueueItem"]
    "17" [label="AtomsHashTable" tooltip="AtomsHashTable"]
    "2" [label="RefcBinary" tooltip="RefcBinary"]
    "7" [label="AtomTable" tooltip="AtomTable"]
    "14" [label="ExportedFunction" tooltip="ExportedFunction"]
    "11" [label="SyncList" tooltip="SyncList"]
    "8" [label="HNode" tooltip="HNode"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "1" -> "12" [dir=forward tooltip="usage"]
    "3" -> "4" [dir=forward tooltip="usage"]
    "3" -> "12" [dir=forward tooltip="usage"]
    "13" -> "14" [dir=forward tooltip="usage"]
    "13" -> "15" [dir=forward tooltip="usage"]
    "13" -> "16" [dir=forward tooltip="usage"]
    "13" -> "12" [dir=forward tooltip="usage"]
    "12" -> "12" [dir=forward tooltip="usage"]
    "10" -> "2" [dir=forward tooltip="usage"]
    "10" -> "10" [dir=forward tooltip="usage"]
    "4" -> "5" [dir=forward tooltip="usage"]
    "4" -> "7" [dir=forward tooltip="usage"]
    "4" -> "10" [dir=forward tooltip="usage"]
    "4" -> "11" [dir=forward tooltip="usage"]
    "4" -> "13" [dir=forward tooltip="usage"]
    "4" -> "17" [dir=forward tooltip="usage"]
    "4" -> "18" [dir=forward tooltip="usage"]
    "4" -> "19" [dir=forward tooltip="usage"]
    "4" -> "12" [dir=forward tooltip="usage"]
    "9" -> "8" [dir=forward tooltip="usage"]
    "9" -> "9" [dir=forward tooltip="usage"]
    "18" -> "12" [dir=forward tooltip="usage"]
    "6" -> "6" [dir=forward tooltip="usage"]
    "5" -> "6" [dir=forward tooltip="usage"]
    "5" -> "5" [dir=forward tooltip="usage"]
    "17" -> "8" [dir=forward tooltip="usage"]
    "2" -> "3" [dir=forward tooltip="usage"]
    "2" -> "12" [dir=forward tooltip="usage"]
    "7" -> "8" [dir=forward tooltip="usage"]
    "7" -> "9" [dir=forward tooltip="usage"]
    "11" -> "12" [dir=forward tooltip="usage"]
    "8" -> "8" [dir=forward tooltip="usage"]
}

A selectable event.

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 SnprintfFun

Collaboration diagram for SnprintfFun:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "1" [label="SnprintfFun" tooltip="SnprintfFun" fillcolor="#BFBFBF"]
    "2" [label="PrinterFun" tooltip="PrinterFun"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "2" -> "2" [dir=forward tooltip="usage"]
}

Public Members

PrinterFun base
int size
char *buf
struct SSLConfigResource

Public Members

mbedtls_ssl_config config
struct SSLContextResource

Public Members

mbedtls_ssl_context context
struct SyncList

Collaboration diagram for SyncList:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "2" [label="ListHead" tooltip="ListHead"]
    "1" [label="SyncList" tooltip="SyncList" fillcolor="#BFBFBF"]
    "2" -> "2" [dir=forward tooltip="usage"]
    "1" -> "2" [dir=forward tooltip="usage"]
}

Public Members

RWLock *lock
struct ListHead head
struct TermSignal

Collaboration diagram for TermSignal:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "1" [label="TermSignal" tooltip="TermSignal" fillcolor="#BFBFBF"]
    "2" [label="MailboxMessage" tooltip="MailboxMessage"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "2" -> "2" [dir=forward tooltip="usage"]
}

Public Members

MailboxMessage base
term signal_term
term *heap_end
term storage[]
struct TimerList

Collaboration diagram for TimerList:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "2" [label="ListHead" tooltip="ListHead"]
    "1" [label="TimerList" tooltip="TimerList" fillcolor="#BFBFBF"]
    "2" -> "2" [dir=forward tooltip="usage"]
    "1" -> "2" [dir=forward tooltip="usage"]
}

Public Members

struct ListHead head
int timers
uint64_t next_timer
struct TimerListItem

Collaboration diagram for TimerListItem:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "2" [label="ListHead" tooltip="ListHead"]
    "1" [label="TimerListItem" tooltip="TimerListItem" fillcolor="#BFBFBF"]
    "2" -> "2" [dir=forward tooltip="usage"]
    "1" -> "2" [dir=forward tooltip="usage"]
}

Public Members

uint64_t expiry_time
struct ListHead head
struct UnresolvedFunctionCall

Collaboration diagram for UnresolvedFunctionCall:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "1" [label="UnresolvedFunctionCall" tooltip="UnresolvedFunctionCall" fillcolor="#BFBFBF"]
    "2" [label="ExportedFunction" tooltip="ExportedFunction"]
    "1" -> "2" [dir=forward tooltip="usage"]
}

Public Members

struct ExportedFunction base
int module_atom_index
int function_atom_index
int arity
struct ValuesHashTable

Collaboration diagram for ValuesHashTable:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "1" [label="ValuesHashTable" tooltip="ValuesHashTable" fillcolor="#BFBFBF"]
    "2" [label="HNode" tooltip="HNode"]
    "1" -> "2" [dir=forward tooltip="usage"]
    "2" -> "2" [dir=forward tooltip="usage"]
}

Public Members

int capacity
int count
RWLock *lock
struct HNode **buckets

Enumerations

enum AtomTableCopyOpt

Values:

enumerator AtomTableNoOpts = 0
enumerator AtomTableCopyAtom = 1
enumerator AtomTableAlreadyExisting = 2
enum BitstringFlags

Values:

enumerator LittleEndianInteger = 0x2
enumerator SignedInteger = 0x4
enumerator NativeEndianInteger = 0x10
enumerator LittleEndianIntegerMask = LittleEndianInteger
enum CharDataEncoding

Values:

enumerator Latin1Encoding
enumerator UTF8Encoding
enumerator UCS4NativeEncoding
enum ContextFlags

Values:

enumerator NoFlags = 0
enumerator WaitingTimeout = 1
enumerator WaitingTimeoutExpired = 2
enumerator Running = 4
enumerator Ready = 8
enumerator Killed = 16
enumerator Trap = 32
enum DictionaryFunctionResult

Values:

enumerator DictionaryOk
enumerator DictionaryMemoryAllocFail
enum ErlNifResourceFlags

resource flags

Values:

enumerator ERL_NIF_RT_CREATE = 1
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
enum ExternalTermOpts

Values:

enumerator ExternalTermNoOpts = 0
enumerator ExternalTermToHeapFragment = 1
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
enum FunctionType

Values:

enumerator InvalidFunctionType = 0
enumerator NIFFunctionType = 2
enumerator UnresolvedFunctionCall = 3
enumerator ModuleFunction = 4
enumerator BIFFunctionType = 5
enumerator GCBIFFunctionType = 6
enum GenMessageParseResult

Values:

enumerator GenCallMessage
enumerator GenMessageParseError
enum HeapGrowthStrategy

Values:

enumerator BoundedFreeHeapGrowth = 0
enumerator MinimumHeapGrowth
enumerator FibonacciHeapGrowth
enum inet_domain

Values:

enumerator InetInvalidDomain = 0
enumerator InetDomain
enum inet_protocol

Values:

enumerator InetInvalidProtocol = 0
enumerator InetIpProtocol
enumerator InetTcpProtocol
enumerator InetUdpProtocol
enum inet_type

Values:

enumerator InetInvalidType = 0
enumerator InetStreamType
enumerator InetDgramType
enum InteropFunctionResult

Values:

enumerator InteropOk
enumerator InteropMemoryAllocFail
enumerator InteropBadArg
enum MemoryAllocMode

Values:

enumerator MEMORY_NO_SHRINK = 0
enumerator MEMORY_CAN_SHRINK = 1
enumerator MEMORY_FORCE_SHRINK = 2
enumerator MEMORY_NO_GC = 3
enum MemoryGCResult

Values:

enumerator MEMORY_GC_OK = 0
enumerator MEMORY_GC_ERROR_FAILED_ALLOCATION = 1
enumerator MEMORY_GC_DENIED_ALLOCATION = 2
enum MessageType

Values:

enumerator NormalMessage
enumerator KillSignal
enumerator GCSignal
enumerator ProcessInfoRequestSignal
enumerator TrapAnswerSignal
enumerator TrapExceptionSignal
enumerator FlushMonitorSignal
enumerator FlushInfoMonitorSignal
enum ModuleLoadResult

Values:

enumerator MODULE_LOAD_OK = 0
enumerator MODULE_ERROR_FAILED_ALLOCATION = 1
enum NativeHandlerResult

Values:

enumerator NativeTerminate = 1
enumerator NativeContinue
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
enum RefcBinaryFlags

Values:

enumerator RefcNoFlags = 0
enumerator RefcBinaryIsConst
enum SocketErrors

Values:

enumerator SocketClosed = 0
enumerator SocketWouldBlock = -1
enumerator SocketOtherError = -2
enum TermCompareOpts

Values:

enumerator TermCompareNoOpts = 0
enumerator TermCompareExact = 1
enum TermCompareResult

Values:

enumerator TermCompareMemoryAllocFail = 0
enumerator TermEquals = 1
enumerator TermLessThan = 2
enumerator TermGreaterThan = 4
enum UnicodeConversionResult

Values:

enumerator UnicodeOk = InteropOk
enumerator UnicodeMemoryAllocFail = InteropMemoryAllocFail
enumerator UnicodeBadArg = InteropBadArg
enumerator UnicodeError
enumerator UnicodeIncompleteTransform
enum UnicodeTransformDecodeResult

Values:

enumerator UnicodeTransformDecodeSuccess
enumerator UnicodeTransformDecodeFail
enumerator UnicodeTransformDecodeIncomplete