X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=libsigrok-internal.h;h=61978c297911b73a91c4f7bce4f98058d06eadf6;hb=3544f848e0d7f67af8e11ce7ec344b34cd797df3;hp=c76f5983b7bddccf1d9388d0334ad0822c7fea5d;hpb=6640324f7f2730dc5a120af90a849b8d8fee52fa;p=libsigrok.git diff --git a/libsigrok-internal.h b/libsigrok-internal.h index c76f5983..61978c29 100644 --- a/libsigrok-internal.h +++ b/libsigrok-internal.h @@ -50,6 +50,42 @@ #define ARRAY_AND_SIZE(a) (a), ARRAY_SIZE(a) #endif +/** + * Read a 16 bits big endian integer out of memory. + * @param x a pointer to the input memory + * @return the corresponding integer + */ +#define RB16(x) ((((const uint8_t*)(x))[0] << 8) | \ + ((const uint8_t*)(x))[1]) + +/** + * Read a 16 bits little endian integer out of memory. + * @param x a pointer to the input memory + * @return the corresponding integer + */ +#define RL16(x) ((((const uint8_t*)(x))[1] << 8) | \ + ((const uint8_t*)(x))[0]) + +/** + * Read a 32 bits big endian integer out of memory. + * @param x a pointer to the input memory + * @return the corresponding integer + */ +#define RB32(x) ((((const uint8_t*)(x))[0] << 24) | \ + (((const uint8_t*)(x))[1] << 16) | \ + (((const uint8_t*)(x))[2] << 8) | \ + ((const uint8_t*)(x))[3]) + +/** + * Read a 32 bits little endian integer out of memory. + * @param x a pointer to the input memory + * @return the corresponding integer + */ +#define RL32(x) ((((const uint8_t*)(x))[3] << 24) | \ + (((const uint8_t*)(x))[2] << 16) | \ + (((const uint8_t*)(x))[1] << 8) | \ + ((const uint8_t*)(x))[0]) + /* Portability fixes for FreeBSD. */ #ifdef __FreeBSD__ #define LIBUSB_CLASS_APPLICATION 0xfe @@ -126,6 +162,16 @@ SR_PRIV int sr_info(const char *format, ...); SR_PRIV int sr_warn(const char *format, ...); SR_PRIV int sr_err(const char *format, ...); +/* Message logging helpers with subsystem-specific prefix string. */ +#ifndef NO_LOG_WRAPPERS +#define sr_log(l, s, args...) sr_log(l, "%s: " s, LOG_PREFIX, ## args) +#define sr_spew(s, args...) sr_spew("%s: " s, LOG_PREFIX, ## args) +#define sr_dbg(s, args...) sr_dbg("%s: " s, LOG_PREFIX, ## args) +#define sr_info(s, args...) sr_info("%s: " s, LOG_PREFIX, ## args) +#define sr_warn(s, args...) sr_warn("%s: " s, LOG_PREFIX, ## args) +#define sr_err(s, args...) sr_err("%s: " s, LOG_PREFIX, ## args) +#endif + /*--- device.c --------------------------------------------------------------*/ SR_PRIV struct sr_probe *sr_probe_new(int index, int type,