|
@@ -0,0 +1,46 @@
|
|
|
+
|
|
|
+
|
|
|
+const erl = @cImport({
|
|
|
+ @cInclude("erl_nif.h");
|
|
|
+});
|
|
|
+
|
|
|
+
|
|
|
+pub export fn hello(env: ?*erl.ErlNifEnv, argc: c_int, argv: [*c]const erl.ERL_NIF_TERM) erl.ERL_NIF_TERM{
|
|
|
+ _ = argv;
|
|
|
+ _ = argc;
|
|
|
+ //const ERL_NIF_LATIN1 = @as(c_uint, 1);
|
|
|
+ return erl.enif_make_string(env, "Hello world!", 1); // ERL_NIF_LATIN1);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+const nif_funcs = [_]erl.ErlNifFunc{
|
|
|
+ .{
|
|
|
+ .name = "hello",
|
|
|
+ .arity = 0,
|
|
|
+ .fptr = hello,
|
|
|
+ .flags = 0,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
+export fn nif_init() ?*erl.ErlNifEntry{
|
|
|
+ return &nif_entry;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+var nif_entry: erl.ErlNifEntry = .{
|
|
|
+ .major = 2,
|
|
|
+ .minor = 16,
|
|
|
+ .name = "niftest",
|
|
|
+ .num_of_funcs = nif_funcs.len,
|
|
|
+ .funcs = @constCast(&nif_funcs),
|
|
|
+ .load = null,
|
|
|
+ .reload = null,
|
|
|
+ .upgrade = null,
|
|
|
+ .unload = null,
|
|
|
+ .vm_variant = "beam.vanilla",
|
|
|
+ .options = 1, // 0,
|
|
|
+ .sizeof_ErlNifResourceTypeInit = @sizeOf(erl.ErlNifResourceTypeInit),
|
|
|
+ .min_erts = "erts-12.0", // .entry_version = 3,
|
|
|
+};
|
|
|
+
|