summaryrefslogtreecommitdiff
path: root/pjlib/include/pj/types.h
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2006-03-24 20:45:22 +0000
committerBenny Prijono <bennylp@teluu.com>2006-03-24 20:45:22 +0000
commitd40f548adc55a8c79e1ff21f349535ac2f921895 (patch)
treed0399f25c457e939867b4741c8190e925b54b21f /pjlib/include/pj/types.h
parenta82abf01b16983b97036a5e0e11e70d188970256 (diff)
Added byte order swapping utilities
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@362 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjlib/include/pj/types.h')
-rw-r--r--pjlib/include/pj/types.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/pjlib/include/pj/types.h b/pjlib/include/pj/types.h
index 6f86895e..d471428a 100644
--- a/pjlib/include/pj/types.h
+++ b/pjlib/include/pj/types.h
@@ -294,6 +294,41 @@ typedef int pj_exception_id_t;
*/
PJ_DECL(pj_status_t) pj_init(void);
+/**
+ * Swap the byte order of an 16bit data.
+ *
+ * @param val16 The 16bit data.
+ *
+ * @return An 16bit data with swapped byte order.
+ */
+PJ_INLINE(pj_int16_t) pj_swap16(pj_int16_t val16)
+{
+ pj_uint8_t *p = (pj_uint8_t*)&val16;
+ pj_uint8_t tmp = *p;
+ *p = *(p+1);
+ *(p+1) = tmp;
+ return val16;
+}
+
+/**
+ * Swap the byte order of an 32bit data.
+ *
+ * @param val16 The 32bit data.
+ *
+ * @return An 32bit data with swapped byte order.
+ */
+PJ_INLINE(pj_int32_t) pj_swap32(pj_int32_t val32)
+{
+ pj_uint8_t *p = (pj_uint8_t*)&val32;
+ pj_uint8_t tmp = *p;
+ *p = *(p+3);
+ *(p+3) = tmp;
+ tmp = *(p+1);
+ *(p+1) = *(p+2);
+ *(p+2) = tmp;
+ return val32;
+}
+
/**
* @}