guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 02/04: Add 'scm_to_uintptr_t' and 'scm_from_uintptr_t'.


From: Ludovic Courtès
Subject: [Guile-commits] 02/04: Add 'scm_to_uintptr_t' and 'scm_from_uintptr_t'.
Date: Tue, 11 Oct 2016 09:12:02 +0000 (UTC)

civodul pushed a commit to branch stable-2.0
in repository guile.

commit 79bac3bf31f7e0142461007d9470e2afbfdb9efc
Author: Ludovic Courtès <address@hidden>
Date:   Tue Oct 11 10:55:23 2016 +0200

    Add 'scm_to_uintptr_t' and 'scm_from_uintptr_t'.
    
    * libguile/numbers.h (scm_to_uintptr_t, scm_from_uintptr_t): New
    macros.
    * doc/ref/api-data.texi (Integers): Document them.
    * NEWS: Mention it.
---
 NEWS                  |    2 ++
 doc/ref/api-data.texi |    4 +++-
 libguile/numbers.h    |   12 ++++++++++++
 3 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/NEWS b/NEWS
index c6d63a6..96c5c2a 100644
--- a/NEWS
+++ b/NEWS
@@ -13,6 +13,8 @@ Changes in 2.0.13 (since 2.0.12):
 
 See "File System" in the manual, for more.
 
+** New 'scm_to_uintptr_t' and 'scm_from_uintptr_t' C functions
+
 * Bug fixes
 
 ** 'mkdir' procedure no longer calls umask(2) (<http://bugs.gnu.org/24659>)
diff --git a/doc/ref/api-data.texi b/doc/ref/api-data.texi
index 188b3d5..7ac8e57 100644
--- a/doc/ref/api-data.texi
+++ b/doc/ref/api-data.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Guile Reference Manual.
address@hidden Copyright (C)  1996, 1997, 2000-2004, 2006-2015
address@hidden Copyright (C)  1996, 1997, 2000-2004, 2006-2016
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
@@ -434,6 +434,7 @@ function will always succeed and will always return an 
exact number.
 @deftypefnx {C Function} {unsigned long long} scm_to_ulong_long (SCM x)
 @deftypefnx {C Function} size_t scm_to_size_t (SCM x)
 @deftypefnx {C Function} ssize_t scm_to_ssize_t (SCM x)
address@hidden {C Function} scm_t_uintptr scm_to_uintptr_t (SCM x)
 @deftypefnx {C Function} scm_t_ptrdiff scm_to_ptrdiff_t (SCM x)
 @deftypefnx {C Function} scm_t_int8 scm_to_int8 (SCM x)
 @deftypefnx {C Function} scm_t_uint8 scm_to_uint8 (SCM x)
@@ -468,6 +469,7 @@ the corresponding types are.
 @deftypefnx {C Function} SCM scm_from_ulong_long (unsigned long long x)
 @deftypefnx {C Function} SCM scm_from_size_t (size_t x)
 @deftypefnx {C Function} SCM scm_from_ssize_t (ssize_t x)
address@hidden {C Function} SCM scm_from_uintptr_t (uintptr_t x)
 @deftypefnx {C Function} SCM scm_from_ptrdiff_t (scm_t_ptrdiff x)
 @deftypefnx {C Function} SCM scm_from_int8 (scm_t_int8 x)
 @deftypefnx {C Function} SCM scm_from_uint8 (scm_t_uint8 x)
diff --git a/libguile/numbers.h b/libguile/numbers.h
index 0119f16..9afd059 100644
--- a/libguile/numbers.h
+++ b/libguile/numbers.h
@@ -528,6 +528,18 @@ SCM_API SCM  scm_from_mpz (mpz_t rop);
 #endif
 #endif
 
+#if SCM_SIZEOF_UINTPTR_T == 4
+#define scm_to_uintptr_t    scm_to_uint32
+#define scm_from_uintptr_t  scm_from_uint32
+#else
+#if SCM_SIZEOF_UINTPTR_T == 8
+#define scm_to_uintptr_t    scm_to_uint64
+#define scm_from_uintptr_t  scm_from_uint64
+#else
+#error sizeof(scm_t_uintptr) is not 4 or 8.
+#endif
+#endif
+
 #if SCM_SIZEOF_SCM_T_PTRDIFF == 4
 #define scm_to_ptrdiff_t    scm_to_int32
 #define scm_from_ptrdiff_t  scm_from_int32



reply via email to

[Prev in Thread] Current Thread [Next in Thread]