From 649bc2686601d8c76c1aa76e62700067719e3312 Mon Sep 17 00:00:00 2001
From: Sverker Eriksson
Date: Mon, 19 Jul 2010 19:03:15 +0200
Subject: NIF 64-bit integer support
---
erts/doc/src/erl_nif.xml | 27 +++++++++++++++++++++++++--
1 file changed, 25 insertions(+), 2 deletions(-)
(limited to 'erts/doc/src')
diff --git a/erts/doc/src/erl_nif.xml b/erts/doc/src/erl_nif.xml
index f7b7b2f346..8d2913ba4f 100644
--- a/erts/doc/src/erl_nif.xml
+++ b/erts/doc/src/erl_nif.xml
@@ -456,6 +456,10 @@ typedef enum {
to return information about the runtime system. Contains currently
the exact same content as ErlDrvSysInfo.
+ ErlNifSInt64
+ A native signed 64-bit integer type.
+ ErlNifUInt64
+ A native unsigned 64-bit integer type.
@@ -571,7 +575,13 @@ typedef enum {
Read an integer term
Set *ip to the integer value of
term. Return true on success or false if term is not an
- integer or is outside the bounds of type int
+ integer or is outside the bounds of type int.
+
+ intenif_get_int64(ErlNifEnv* env, ERL_NIF_TERM term, ErlNifSInt64* ip)
+ Read a 64-bit integer term
+ Set *ip to the integer value of
+ term. Return true on success or false if term is not an
+ integer or is outside the bounds of a signed 64-bit integer.
intenif_get_local_pid(ErlNifEnv* env, ERL_NIF_TERM term, ErlNifPid* pid)
Read an local pid term
@@ -633,7 +643,12 @@ typedef enum {
return true, or return false if term is not an unsigned integer or
is outside the bounds of type unsigned int.
-
+ intenif_get_uint64(ErlNifEnv* env, ERL_NIF_TERM term, ErlNifUInt64* ip)
+ Read an unsigned 64-bit integer term.
+ Set *ip to the unsigned integer value of term and
+ return true, or return false if term is not an unsigned integer or
+ is outside the bounds of an unsigned 64-bit integer.
+
intenif_get_ulong(ErlNifEnv* env, ERL_NIF_TERM term, unsigned long* ip)
Read an unsigned integer term.
Set *ip to the unsigned long integer value of term
@@ -758,6 +773,10 @@ typedef enum {
Create an integer term
Create an integer term.
+ ERL_NIF_TERMenif_make_int64(ErlNifEnv* env, ErlNifSInt64 i)
+ Create an integer term
+ Create an integer term from a signed 64-bit integer.
+
ERL_NIF_TERMenif_make_list(ErlNifEnv* env, unsigned cnt, ...)
Create a list term.
Create an ordinary list term of length cnt. Expects
@@ -894,6 +913,10 @@ typedef enum {
Create an unsigned integer term
Create an integer term from an unsigned int.
+ ERL_NIF_TERMenif_make_uint64(ErlNifEnv* env, ErlNifUInt64 i)
+ Create an unsigned integer term
+ Create an integer term from an unsigned 64-bit integer.
+
ERL_NIF_TERMenif_make_ulong(ErlNifEnv* env, unsigned long i)
Create an integer term from an unsigned long int
Create an integer term from an unsigned long int.
--
cgit v1.2.3