diff options
author | Peter Lemenkov <[email protected]> | 2014-11-02 19:49:55 +0300 |
---|---|---|
committer | Peter Lemenkov <[email protected]> | 2014-11-02 19:52:00 +0300 |
commit | 1bc59d68f5d22650fa18aa064ed8e50fc9a6a216 (patch) | |
tree | bf0a5463c3ba1c84fa91e392cd8e9ca98b84d528 /erts/emulator/beam | |
parent | 4e969748e47566c974ce526ade50c34ab62e3b26 (diff) | |
download | otp-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')
-rw-r--r-- | erts/emulator/beam/erl_bif_info.c | 8 |
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); |