diff options
author | Guy Harris <guy@alum.mit.edu> | 2017-11-23 11:19:38 -0800 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2017-11-23 11:19:38 -0800 |
commit | c45bfbe0abffa23618e622cc984f97244b5608dd (patch) | |
tree | 49786306f2b9f1cee2616242f1c441981a48ace4 /cpack.h | |
parent | d42f1df527f024122815ddfab1d7cebee042e87c (diff) | |
download | tcpdump-c45bfbe0abffa23618e622cc984f97244b5608dd.tar.gz |
Clean up signed vs. unsigned.
Have separate cpack_ routines for signed and unsigned numbers, with the
signed ones using _S_ extract macros. That way, we can do more type
checking.
Add EXTRACT_LE_S_ macros.
Use signed variables for IEEE80211_RADIOTAP_TX_ATTENUATION and
IEEE80211_RADIOTAP_DB_TX_ATTENUATION, rather than using unsigned
variables that we cast to int.
Also, use EXTRACT_U_1() in cpack_uint8.
Diffstat (limited to 'cpack.h')
-rw-r--r-- | cpack.h | 9 |
1 files changed, 4 insertions, 5 deletions
@@ -39,18 +39,17 @@ struct cpack_state { int cpack_init(struct cpack_state *, const uint8_t *, size_t); int cpack_uint8(struct cpack_state *, uint8_t *); +int cpack_int8(struct cpack_state *, int8_t *); int cpack_uint16(struct cpack_state *, uint16_t *); +int cpack_int16(struct cpack_state *, int16_t *); int cpack_uint32(struct cpack_state *, uint32_t *); +int cpack_int32(struct cpack_state *, int32_t *); int cpack_uint64(struct cpack_state *, uint64_t *); +int cpack_int64(struct cpack_state *, int64_t *); const uint8_t *cpack_next_boundary(const uint8_t *buf, const uint8_t *p, size_t alignment); const uint8_t *cpack_align_and_reserve(struct cpack_state *cs, size_t wordsize); -#define cpack_int8(__s, __p) cpack_uint8((__s), (uint8_t*)(__p)) -#define cpack_int16(__s, __p) cpack_uint16((__s), (uint16_t*)(__p)) -#define cpack_int32(__s, __p) cpack_uint32((__s), (uint32_t*)(__p)) -#define cpack_int64(__s, __p) cpack_uint64((__s), (uint64_t*)(__p)) - extern int cpack_advance(struct cpack_state *, const size_t); #endif /* _CPACK_H */ |