Current section
Files
Jump to
Current section
Files
ios/driver_tab_ios.c
// driver_tab_ios.c — Static NIF table with dala_nif added.
// Link BEFORE libbeam.a to override the built-in driver_tab.
// Mirrors driver_tab_android.c for iOS.
#include <stddef.h>
typedef struct { void* de; int flags; } ErtsStaticDriver;
#define THE_NON_VALUE ((unsigned long)0)
typedef struct {
void* (*nif_init)(void);
int is_builtin;
unsigned long nif_mod;
void* entry;
} ErtsStaticNif;
typedef struct { void* de; int flags; } ErlDrvEntryStub;
extern ErlDrvEntryStub inet_driver_entry;
extern ErlDrvEntryStub ram_file_driver_entry;
ErtsStaticDriver driver_tab[] = {
{&inet_driver_entry, 0},
{&ram_file_driver_entry, 0},
{NULL, 0}
};
void erts_init_static_drivers(void) {}
void *prim_tty_nif_init(void);
void *erl_tracer_nif_init(void);
void *prim_buffer_nif_init(void);
void *prim_file_nif_init(void);
void *zlib_nif_init(void);
void *zstd_nif_init(void);
void *prim_socket_nif_init(void);
void *prim_net_nif_init(void);
void *asn1rt_nif_nif_init(void);
// dala_nif.m's ERL_NIF_INIT(dala_nif,...) with -DSTATIC_ERLANG_NIF
// generates function name: dala_nif_nif_init
void *dala_nif_nif_init(void);
// exqlite sqlite3_nif is linked statically on device (pass -DDALA_STATIC_SQLITE_NIF
// when compiling this file in device builds). On simulator it loads dynamically
// as a .so and must NOT appear in the static table.
#ifdef DALA_STATIC_SQLITE_NIF
void *sqlite3_nif_nif_init(void);
#endif
ErtsStaticNif erts_static_nif_tab[] = {
{prim_tty_nif_init, 0, THE_NON_VALUE, NULL},
{erl_tracer_nif_init, 0, THE_NON_VALUE, NULL},
{prim_buffer_nif_init, 0, THE_NON_VALUE, NULL},
{prim_file_nif_init, 0, THE_NON_VALUE, NULL},
{zlib_nif_init, 0, THE_NON_VALUE, NULL},
{zstd_nif_init, 0, THE_NON_VALUE, NULL},
{prim_socket_nif_init, 0, THE_NON_VALUE, NULL},
{prim_net_nif_init, 0, THE_NON_VALUE, NULL},
{asn1rt_nif_nif_init, 1, THE_NON_VALUE, NULL},
{dala_nif_nif_init, 0, THE_NON_VALUE, NULL},
#ifdef DALA_STATIC_SQLITE_NIF
{sqlite3_nif_nif_init, 0, THE_NON_VALUE, NULL},
#endif
{NULL, 0, THE_NON_VALUE, NULL}
};