comparison pack.h @ 153:a6a7cd08be72

pack.c: o added two new functions pack_fmtlen, pack_vfmtlen, compute the number of bytes needed for format. o added support for buffer, pack_swrite, pack_vswrite, pack_sread, pack_vsread. Buffer will be automatically allocated for _write functions.
author David Demelier <markand@malikania.fr>
date Sun, 15 Jul 2012 20:40:54 +0200
parents 07800b7af208
children c7ad101ed4a1
comparison
equal deleted inserted replaced
152:54976019a5a8 153:a6a7cd08be72
18 18
19 #ifndef _PACK_H_ 19 #ifndef _PACK_H_
20 #define _PACK_H_ 20 #define _PACK_H_
21 21
22 #include <stdarg.h> 22 #include <stdarg.h>
23 #include <stdint.h>
23 24
24 #ifdef __cplusplus 25 #ifdef __cplusplus
25 extern "C" { 26 extern "C" {
26 #endif 27 #endif
27 28
54 55
55 #define pack_swap64(x) (((uint64_t) \ 56 #define pack_swap64(x) (((uint64_t) \
56 ((uint32_t) pack_swap32((uint32_t) (((x) << 32) >> 32))) << 32) \ 57 ((uint32_t) pack_swap32((uint32_t) (((x) << 32) >> 32))) << 32) \
57 | (uint32_t) pack_swap32((uint32_t) ((x) >> 32))) 58 | (uint32_t) pack_swap32((uint32_t) ((x) >> 32)))
58 59
60 size_t pack_fmtlen(int, const char *, ...);
61 size_t pack_vfmtlen(int, const char *, va_list);
62
63 int pack_swrite(int, uint8_t **, size_t *, const char *, ...);
64 int pack_vswrite(int, uint8_t **, size_t *, const char *, va_list);
59 int pack_write(int, const char *, const char *, ...); 65 int pack_write(int, const char *, const char *, ...);
60 int pack_vwrite(int, const char *, const char *, va_list); 66 int pack_vwrite(int, const char *, const char *, va_list);
61 int pack_fwrite(int, FILE *, const char *, ...); 67 int pack_fwrite(int, FILE *, const char *, ...);
62 int pack_vfwrite(int, FILE *, const char *, va_list); 68 int pack_vfwrite(int, FILE *, const char *, va_list);
63 69
70 int pack_sread(int, uint8_t *, size_t, const char *, ...);
71 int pack_vsread(int, uint8_t *, size_t, const char *, va_list);
64 int pack_read(int, const char *, const char *, ...); 72 int pack_read(int, const char *, const char *, ...);
65 int pack_vread(int, const char *, const char *, va_list); 73 int pack_vread(int, const char *, const char *, va_list);
66 int pack_fread(int, FILE *, const char *, ...); 74 int pack_fread(int, FILE *, const char *, ...);
67 int pack_vfread(int, FILE *, const char *, va_list); 75 int pack_vfread(int, FILE *, const char *, va_list);
68 76