From 74a970f754bbffcc9f0a3fa6dd9977a8640544c8 Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Mon, 30 Nov 2009 19:50:21 -0500 Subject: [PATCH] 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(+) diff --git a/configure.in b/configure.in index 116bcfac3..723311f60 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 d78fa4b6a..99483da1f 100644 --- a/docs/reference/glib/glib-sections.txt +++ b/docs/reference/glib/glib-sections.txt @@ -218,6 +218,18 @@ GULONG_FROM_LE GULONG_TO_BE GULONG_TO_LE + +GSIZE_FROM_BE +GSIZE_FROM_LE +GSIZE_TO_BE +GSIZE_TO_LE + + +GSSIZE_FROM_BE +GSSIZE_FROM_LE +GSSIZE_TO_BE +GSSIZE_TO_LE + GINT16_FROM_BE GINT16_FROM_LE diff --git a/docs/reference/glib/tmpl/byte_order.sgml b/docs/reference/glib/tmpl/byte_order.sgml index 47a7225cb..3f60fd777 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. + + +Converts a #gsize value from big-endian to the host byte order. + + +@val: a #gsize value in big-endian byte order. +@Returns: @val converted to host byte order. + + + + +Converts a #gsize value from little-endian to host byte order. + + +@val: a #gsize value in little-endian byte order. +@Returns: @val converted to host byte order. + + + + +Converts a #gsize value from host byte order to big-endian. + + +@val: a #gsize value in host byte order. +@Returns: @val converted to big-endian byte order. + + + + +Converts a #gsize value from host byte order to little-endian. + + +@val: a #gsize value in host byte order. +@Returns: @val converted to little-endian. + + + + +Converts a #gssize value from big-endian to host byte order. + + +@val: a #gssize value in big-endian byte order. +@Returns: @val converted to host byte order. + + + + +Converts a #gssize value from little-endian to host byte order. + + +@val: a #gssize value in little-endian byte order. +@Returns: @val converted to host byte order. + + + + +Converts a #gssize value from host byte order to big-endian. + + +@val: a #gssize value in host byte order. +@Returns: @val converted to big-endian. + + + + +Converts a #gssize value from host byte order to little-endian. + + +@val: a #gssize value in host byte order. +@Returns: @val converted to little-endian. + + Converts a #gint16 value from big-endian to host byte order. diff --git a/glib/gtypes.h b/glib/gtypes.h index 571a7dbe4..e616f9988 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 2d5a96c32..6967b1471 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