aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_bif_info.c
diff options
context:
space:
mode:
authorPeter Lemenkov <[email protected]>2014-11-02 19:49:55 +0300
committerPeter Lemenkov <[email protected]>2014-11-02 19:52:00 +0300
commit1bc59d68f5d22650fa18aa064ed8e50fc9a6a216 (patch)
treebf0a5463c3ba1c84fa91e392cd8e9ca98b84d528 /erts/emulator/beam/erl_bif_info.c
parent4e969748e47566c974ce526ade50c34ab62e3b26 (diff)
downloadotp-1bc59d68f5d22650fa18aa064ed8e50fc9a6a216.tar.gz
otp-1bc59d68f5d22650fa18aa064ed8e50fc9a6a216.tar.bz2
otp-1bc59d68f5d22650fa18aa064ed8e50fc9a6a216.zip
Expose NIF version
This patch allows checking for NIF API version in a way similar to driver version. E.g. by calling erlang:system_info(nif_version). Signed-off-by: Peter Lemenkov <[email protected]>
Diffstat (limited to 'erts/emulator/beam/erl_bif_info.c')
-rw-r--r--erts/emulator/beam/erl_bif_info.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_bif_info.c b/erts/emulator/beam/erl_bif_info.c
index 61e4469600..2c00a5860e 100644
--- a/erts/emulator/beam/erl_bif_info.c
+++ b/erts/emulator/beam/erl_bif_info.c
@@ -27,6 +27,7 @@
#include "erl_process.h"
#include "error.h"
#include "erl_driver.h"
+#include "erl_nif.h"
#include "bif.h"
#include "big.h"
#include "erl_version.h"
@@ -2459,6 +2460,13 @@ BIF_RETTYPE system_info_1(BIF_ALIST_1)
ERL_DRV_EXTENDED_MINOR_VERSION);
hp = HAlloc(BIF_P, 2*n);
BIF_RET(buf_to_intlist(&hp, buf, n, NIL));
+ } else if (ERTS_IS_ATOM_STR("nif_version", BIF_ARG_1)) {
+ char buf[42];
+ int n = erts_snprintf(buf, 42, "%d.%d",
+ ERL_NIF_MAJOR_VERSION,
+ ERL_NIF_MINOR_VERSION);
+ hp = HAlloc(BIF_P, 2*n);
+ BIF_RET(buf_to_intlist(&hp, buf, n, NIL));
} else if (ERTS_IS_ATOM_STR("smp_support", BIF_ARG_1)) {
#ifdef ERTS_SMP
BIF_RET(am_true);