From: Andreas Ă–man Date: Sat, 29 Oct 2011 20:48:41 +0000 (+0200) Subject: Add some helers to sbuf X-Git-Tag: 2.99~33 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8a5567dda4e4d1fe51f5e03d3837823e793f1076;p=thirdparty%2Ftvheadend.git Add some helers to sbuf --- diff --git a/src/tvheadend.h b/src/tvheadend.h index 4dd4e2b9c..e1a4e4d04 100644 --- a/src/tvheadend.h +++ b/src/tvheadend.h @@ -436,8 +436,14 @@ void sbuf_err(sbuf_t *sb); void sbuf_alloc(sbuf_t *sb, int len); -void sbuf_append(sbuf_t *sb, const uint8_t *data, int len); +void sbuf_append(sbuf_t *sb, const void *data, int len); void sbuf_cut(sbuf_t *sb, int off); +void sbuf_put_be32(sbuf_t *sb, uint32_t u32); + +void sbuf_put_be16(sbuf_t *sb, uint16_t u16); + +void sbuf_put_byte(sbuf_t *sb, uint8_t u8); + #endif /* TV_HEAD_H */ diff --git a/src/utils.c b/src/utils.c index 1a293dc82..65a2de2f8 100644 --- a/src/utils.c +++ b/src/utils.c @@ -265,13 +265,34 @@ sbuf_alloc(sbuf_t *sb, int len) } void -sbuf_append(sbuf_t *sb, const uint8_t *data, int len) +sbuf_append(sbuf_t *sb, const void *data, int len) { sbuf_alloc(sb, len); memcpy(sb->sb_data + sb->sb_ptr, data, len); sb->sb_ptr += len; } +void +sbuf_put_be32(sbuf_t *sb, uint32_t u32) +{ + u32 = htonl(u32); + sbuf_append(sb, &u32, 4); +} + +void +sbuf_put_be16(sbuf_t *sb, uint16_t u16) +{ + u16 = htons(u16); + sbuf_append(sb, &u16, 2); +} + +void +sbuf_put_byte(sbuf_t *sb, uint8_t u8) +{ + sbuf_append(sb, &u8, 1); +} + + void sbuf_cut(sbuf_t *sb, int off) {