#include "nif_utils.h" #include "enlfq_nif.h" #include ERL_NIF_TERM make_atom(ErlNifEnv* env, const char* name) { ERL_NIF_TERM ret; if(enif_make_existing_atom(env, name, &ret, ERL_NIF_LATIN1)) return ret; return enif_make_atom(env, name); } ERL_NIF_TERM make_binary(ErlNifEnv* env, const char* buff, size_t length) { ERL_NIF_TERM term; unsigned char *destination_buffer = enif_make_new_binary(env, length, &term); memcpy(destination_buffer, buff, length); return term; } ERL_NIF_TERM make_error(ErlNifEnv* env, const char* error) { return enif_make_tuple2(env, ATOMS.atomError, make_binary(env, error, strlen(error))); }