diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-03-24 20:45:22 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-03-24 20:45:22 +0000 |
commit | d40f548adc55a8c79e1ff21f349535ac2f921895 (patch) | |
tree | d0399f25c457e939867b4741c8190e925b54b21f /pjlib | |
parent | a82abf01b16983b97036a5e0e11e70d188970256 (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')
-rw-r--r-- | pjlib/include/pj/types.h | 35 |
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; +} + /** * @} |