@ -0,0 +1,19 @@ | |||||
#include "erl_nif.h" | |||||
#include <stdio.h> | |||||
static ERL_NIF_TERM pidToInt(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[]) { | |||||
ErlNifUInt64 TermInt = (ErlNifUInt64)argv[0]; | |||||
return enif_make_uint64(env, TermInt); | |||||
} | |||||
static ERL_NIF_TERM intToPid(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[]) { | |||||
ERL_NIF_TERM TermPid = (ERL_NIF_TERM)enif_get_uint64(argv[0]); | |||||
return TermPid; | |||||
} | |||||
static ErlNifFunc nif_funcs[] = { | |||||
{"pidToInt", 1, pidToInt}, | |||||
{"intToPid", 1, intToPid} | |||||
}; | |||||
ERL_NIF_INIT(eGPidInt, nif_funcs, NULL, NULL, NULL, NULL); |
@ -0,0 +1,7 @@ | |||||
{port_specs, [ | |||||
{"../../priv/eGPidInt.so", ["*.c"]} | |||||
]}. | |||||
@ -1,7 +0,0 @@ | |||||
{port_specs, [ | |||||
{"../../priv/termInt.so", ["*.c"]} | |||||
]}. | |||||
@ -1,12 +0,0 @@ | |||||
#include "erl_nif.h" | |||||
#include <stdio.h> | |||||
static ERL_NIF_TERM termInt(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[]) { | |||||
ErlNifUInt64 TermInt = (ErlNifUInt64)argv[0]; | |||||
return enif_make_uint64(env, TermInt); | |||||
} | |||||
static ErlNifFunc nif_funcs[] = { | |||||
{"termInt", 1, termInt} | |||||
}; | |||||
ERL_NIF_INIT(termInt, nif_funcs, NULL, NULL, NULL, NULL); |
@ -0,0 +1,26 @@ | |||||
-module(eGPidInt). | |||||
-export([pidToInt/1, intToPid/1]). | |||||
-on_load(init/0). | |||||
init() -> | |||||
SoName = | |||||
case code:priv_dir(?MODULE) of | |||||
{error, _} -> | |||||
case code:which(?MODULE) of | |||||
Filename when is_list(Filename) -> | |||||
filename:join([filename:dirname(Filename), "../priv", "eGPidInt"]); | |||||
_ -> | |||||
filename:join("../priv", "eGPidInt") | |||||
end; | |||||
Dir -> | |||||
filename:join(Dir, "eGPidInt") | |||||
end, | |||||
erlang:load_nif(SoName, 0). | |||||
pidToInt(_Term) -> | |||||
erlang:nif_error({not_loaded, [{module, ?MODULE}, {line, ?LINE}]}). | |||||
intToPid(_Term) -> | |||||
erlang:nif_error({not_loaded, [{module, ?MODULE}, {line, ?LINE}]}). |
@ -1,23 +0,0 @@ | |||||
-module(termInt). | |||||
-export([termInt/1]). | |||||
-on_load(init/0). | |||||
init() -> | |||||
SoName = | |||||
case code:priv_dir(?MODULE) of | |||||
{error, _} -> | |||||
case code:which(?MODULE) of | |||||
Filename when is_list(Filename) -> | |||||
filename:join([filename:dirname(Filename), "../priv", "termInt"]); | |||||
_ -> | |||||
filename:join("../priv", "termInt") | |||||
end; | |||||
Dir -> | |||||
filename:join(Dir, "termInt") | |||||
end, | |||||
erlang:load_nif(SoName, 0). | |||||
termInt(_Term) -> | |||||
erlang:error({"NIF not implemented in nif_test at line", ?LINE}). |