[glib] Add byteswap macros for gsize/gssize.



commit 74a970f754bbffcc9f0a3fa6dd9977a8640544c8
Author: Ryan Lortie <desrt desrt ca>
Date:   Mon Nov 30 19:50:21 2009 -0500

    Add byteswap macros for gsize/gssize.

 configure.in                             |    5 ++
 docs/reference/glib/glib-sections.txt    |   12 +++++
 docs/reference/glib/tmpl/byte_order.sgml |   72 ++++++++++++++++++++++++++++++
 glib/gtypes.h                            |    5 ++
 glibconfig.h.win32.in                    |    4 ++
 5 files changed, 98 insertions(+), 0 deletions(-)
---
diff --git a/configure.in b/configure.in
index 116bcfa..723311f 100644
--- a/configure.in
+++ b/configure.in
@@ -3057,6 +3057,10 @@ _______EOF
 #define GUINT_TO_LE(val)	((guint) GUINT${gintbits}_TO_LE (val))
 #define GINT_TO_BE(val)		((gint) GINT${gintbits}_TO_BE (val))
 #define GUINT_TO_BE(val)	((guint) GUINT${gintbits}_TO_BE (val))
+#define GSIZE_TO_LE(val)	((gsize) GUINT${gsizebits}_TO_LE (val))
+#define GSSIZE_TO_LE(val)	((gssize) GINT${gsizebits}_TO_LE (val))
+#define GSIZE_TO_BE(val)	((gsize) GUINT${gsizebits}_TO_BE (val))
+#define GSSIZE_TO_BE(val)	((gssize) GINT${gsizebits}_TO_BE (val))
 #define G_BYTE_ORDER $g_byte_order
 
 #define GLIB_SYSDEF_POLLIN =$g_pollin
@@ -3256,6 +3260,7 @@ esac
 
 gintbits=`expr $ac_cv_sizeof_int \* 8`
 glongbits=`expr $ac_cv_sizeof_long \* 8`
+gsizebits=`expr $ac_cv_sizeof_size_t \* 8`
 
 case $ac_cv_sizeof_void_p in
 $ac_cv_sizeof_int)
diff --git a/docs/reference/glib/glib-sections.txt b/docs/reference/glib/glib-sections.txt
index d78fa4b..99483da 100644
--- a/docs/reference/glib/glib-sections.txt
+++ b/docs/reference/glib/glib-sections.txt
@@ -219,6 +219,18 @@ GULONG_TO_BE
 GULONG_TO_LE
 
 <SUBSECTION>
+GSIZE_FROM_BE
+GSIZE_FROM_LE
+GSIZE_TO_BE
+GSIZE_TO_LE
+
+<SUBSECTION>
+GSSIZE_FROM_BE
+GSSIZE_FROM_LE
+GSSIZE_TO_BE
+GSSIZE_TO_LE
+
+<SUBSECTION>
 GINT16_FROM_BE
 GINT16_FROM_LE
 GINT16_TO_BE
diff --git a/docs/reference/glib/tmpl/byte_order.sgml b/docs/reference/glib/tmpl/byte_order.sgml
index 47a7225..3f60fd7 100644
--- a/docs/reference/glib/tmpl/byte_order.sgml
+++ b/docs/reference/glib/tmpl/byte_order.sgml
@@ -265,6 +265,78 @@ Converts a #gulong value from host byte order to little-endian.
 @Returns: @val converted to little-endian.
 
 
+<!-- ##### MACRO GSIZE_FROM_BE ##### -->
+<para>
+Converts a #gsize value from big-endian to the host byte order.
+</para>
+
+ val: a #gsize value in big-endian byte order.
+ Returns: @val converted to host byte order.
+
+
+<!-- ##### MACRO GSIZE_FROM_LE ##### -->
+<para>
+Converts a #gsize value from little-endian to host byte order.
+</para>
+
+ val: a #gsize value in little-endian byte order.
+ Returns: @val converted to host byte order.
+
+
+<!-- ##### MACRO GSIZE_TO_BE ##### -->
+<para>
+Converts a #gsize value from host byte order to big-endian.
+</para>
+
+ val: a #gsize value in host byte order.
+ Returns: @val converted to big-endian byte order.
+
+
+<!-- ##### MACRO GSIZE_TO_LE ##### -->
+<para>
+Converts a #gsize value from host byte order to little-endian.
+</para>
+
+ val: a #gsize value in host byte order.
+ Returns: @val converted to little-endian.
+
+
+<!-- ##### MACRO GSSIZE_FROM_BE ##### -->
+<para>
+Converts a #gssize value from big-endian to host byte order.
+</para>
+
+ val: a #gssize value in big-endian byte order.
+ Returns: @val converted to host byte order.
+
+
+<!-- ##### MACRO GSSIZE_FROM_LE ##### -->
+<para>
+Converts a #gssize value from little-endian to host byte order.
+</para>
+
+ val: a #gssize value in little-endian byte order.
+ Returns: @val converted to host byte order.
+
+
+<!-- ##### MACRO GSSIZE_TO_BE ##### -->
+<para>
+Converts a #gssize value from host byte order to big-endian.
+</para>
+
+ val: a #gssize value in host byte order.
+ Returns: @val converted to big-endian.
+
+
+<!-- ##### MACRO GSSIZE_TO_LE ##### -->
+<para>
+Converts a #gssize value from host byte order to little-endian.
+</para>
+
+ val: a #gssize value in host byte order.
+ Returns: @val converted to little-endian.
+
+
 <!-- ##### MACRO GINT16_FROM_BE ##### -->
 <para>
 Converts a #gint16 value from big-endian to host byte order.
diff --git a/glib/gtypes.h b/glib/gtypes.h
index 571a7db..e616f99 100644
--- a/glib/gtypes.h
+++ b/glib/gtypes.h
@@ -335,6 +335,11 @@ typedef const gchar *   (*GTranslateFunc)       (const gchar   *str,
 #define GINT_FROM_BE(val)	(GINT_TO_BE (val))
 #define GUINT_FROM_BE(val)	(GUINT_TO_BE (val))
 
+#define GSIZE_FROM_LE(val)	(GSIZE_TO_LE (val))
+#define GSSIZE_FROM_LE(val)	(GSSIZE_TO_LE (val))
+#define GSIZE_FROM_BE(val)	(GSIZE_TO_BE (val))
+#define GSSIZE_FROM_BE(val)	(GSSIZE_TO_BE (val))
+
 
 /* Portable versions of host-network order stuff
  */
diff --git a/glibconfig.h.win32.in b/glibconfig.h.win32.in
index 2d5a96c..6967b14 100644
--- a/glibconfig.h.win32.in
+++ b/glibconfig.h.win32.in
@@ -239,6 +239,10 @@ union _GSystemThread
 #define GUINT_TO_LE(val)	((guint) GUINT32_TO_LE (val))
 #define GINT_TO_BE(val)		((gint) GINT32_TO_BE (val))
 #define GUINT_TO_BE(val)	((guint) GUINT32_TO_BE (val))
+#define GSIZE_TO_LE(val)	((gsize) GUINT32_TO_LE (val))
+#define GSSIZE_TO_LE(val)	((gssize) GINT32_TO_LE (val))
+#define GSIZE_TO_BE(val)	((gsize) GUINT32_TO_BE (val))
+#define GSSIZE_TO_BE(val)	((gssize) GINT32_TO_BE (val))
 #define G_BYTE_ORDER G_LITTLE_ENDIAN
 
 #define GLIB_SYSDEF_POLLIN =1



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