X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Flibsigrok-internal.h;h=3c18ffaf19c7d184d57b90f4e57198652a3cb6cd;hb=1393bccfcbfa47c55e29b5a453d9d976ebd58a03;hp=3413f9208fae0377e3633ef2c329bc9239394cdf;hpb=4d376e082cbc17da30cf20d18bec8f65b14b7ae0;p=libsigrok.git diff --git a/src/libsigrok-internal.h b/src/libsigrok-internal.h index 3413f920..3c18ffaf 100644 --- a/src/libsigrok-internal.h +++ b/src/libsigrok-internal.h @@ -65,7 +65,7 @@ struct zip_stat; * @param x a pointer to the input memory * @return the corresponding unsigned integer */ -#define RB16(x) (((unsigned)((const uint8_t*)(x))[0] << 8) | \ +#define RB16(x) (((unsigned)((const uint8_t*)(x))[0] << 8) | \ (unsigned)((const uint8_t*)(x))[1]) /** @@ -100,8 +100,8 @@ struct zip_stat; * @return the corresponding unsigned integer */ #define RB32(x) (((unsigned)((const uint8_t*)(x))[0] << 24) | \ - ((unsigned)((const uint8_t*)(x))[1] << 16) | \ - ((unsigned)((const uint8_t*)(x))[2] << 8) | \ + ((unsigned)((const uint8_t*)(x))[1] << 16) | \ + ((unsigned)((const uint8_t*)(x))[2] << 8) | \ (unsigned)((const uint8_t*)(x))[3]) /** @@ -110,8 +110,8 @@ struct zip_stat; * @return the corresponding unsigned integer */ #define RL32(x) (((unsigned)((const uint8_t*)(x))[3] << 24) | \ - ((unsigned)((const uint8_t*)(x))[2] << 16) | \ - ((unsigned)((const uint8_t*)(x))[1] << 8) | \ + ((unsigned)((const uint8_t*)(x))[2] << 16) | \ + ((unsigned)((const uint8_t*)(x))[1] << 8) | \ (unsigned)((const uint8_t*)(x))[0]) /** @@ -132,8 +132,8 @@ struct zip_stat; */ #define RL32S(x) ((int32_t) \ (((unsigned)((const uint8_t*)(x))[3] << 24) | \ - ((unsigned)((const uint8_t*)(x))[2] << 16) | \ - ((unsigned)((const uint8_t*)(x))[1] << 8) | \ + ((unsigned)((const uint8_t*)(x))[2] << 16) | \ + ((unsigned)((const uint8_t*)(x))[1] << 8) | \ (unsigned)((const uint8_t*)(x))[0])) /** @@ -142,14 +142,43 @@ struct zip_stat; * @return the corresponding unsigned integer */ #define RB64(x) (((uint64_t)((const uint8_t*)(x))[0] << 56) | \ - ((uint64_t)((const uint8_t*)(x))[1] << 48) | \ - ((uint64_t)((const uint8_t*)(x))[2] << 40) | \ - ((uint64_t)((const uint8_t*)(x))[3] << 32) | \ - ((uint64_t)((const uint8_t*)(x))[4] << 24) | \ - ((uint64_t)((const uint8_t*)(x))[5] << 16) | \ - ((uint64_t)((const uint8_t*)(x))[6] << 8) | \ + ((uint64_t)((const uint8_t*)(x))[1] << 48) | \ + ((uint64_t)((const uint8_t*)(x))[2] << 40) | \ + ((uint64_t)((const uint8_t*)(x))[3] << 32) | \ + ((uint64_t)((const uint8_t*)(x))[4] << 24) | \ + ((uint64_t)((const uint8_t*)(x))[5] << 16) | \ + ((uint64_t)((const uint8_t*)(x))[6] << 8) | \ (uint64_t)((const uint8_t*)(x))[7]) +/** + * Read a 64 bits little endian unsigned integer out of memory. + * @param x a pointer to the input memory + * @return the corresponding unsigned integer + */ +#define RL64(x) (((uint64_t)((const uint8_t*)(x))[7] << 56) | \ + ((uint64_t)((const uint8_t*)(x))[6] << 48) | \ + ((uint64_t)((const uint8_t*)(x))[5] << 40) | \ + ((uint64_t)((const uint8_t*)(x))[4] << 32) | \ + ((uint64_t)((const uint8_t*)(x))[3] << 24) | \ + ((uint64_t)((const uint8_t*)(x))[2] << 16) | \ + ((uint64_t)((const uint8_t*)(x))[1] << 8) | \ + (uint64_t)((const uint8_t*)(x))[0]) + +/** + * Read a 64 bits little endian signed integer out of memory. + * @param x a pointer to the input memory + * @return the corresponding unsigned integer + */ +#define RL64S(x) ((int64_t) \ + (((uint64_t)((const uint8_t*)(x))[7] << 56) | \ + ((uint64_t)((const uint8_t*)(x))[6] << 48) | \ + ((uint64_t)((const uint8_t*)(x))[5] << 40) | \ + ((uint64_t)((const uint8_t*)(x))[4] << 32) | \ + ((uint64_t)((const uint8_t*)(x))[3] << 24) | \ + ((uint64_t)((const uint8_t*)(x))[2] << 16) | \ + ((uint64_t)((const uint8_t*)(x))[1] << 8) | \ + (uint64_t)((const uint8_t*)(x))[0])) + /** * Read a 32 bits big endian float out of memory. * @param x a pointer to the input memory @@ -646,6 +675,15 @@ SR_PRIV int sr_log(int loglevel, const char *format, ...) G_GNUC_PRINTF(2, 3); /*--- device.c --------------------------------------------------------------*/ +/** Scan options supported by a driver. */ +#define SR_CONF_SCAN_OPTIONS 0x7FFF0000 + +/** Device options for a particular device. */ +#define SR_CONF_DEVICE_OPTIONS 0x7FFF0001 + +/** Mask for separating config keys from capabilities. */ +#define SR_CONF_MASK 0x1fffffff + /** Values for the changes argument of sr_dev_driver.config_channel_set. */ enum { /** The enabled state of the channel has been changed. */ @@ -830,7 +868,7 @@ SR_PRIV int sr_resource_open(struct sr_context *ctx, G_GNUC_WARN_UNUSED_RESULT; SR_PRIV int sr_resource_close(struct sr_context *ctx, struct sr_resource *res); -SR_PRIV ssize_t sr_resource_read(struct sr_context *ctx, +SR_PRIV gssize sr_resource_read(struct sr_context *ctx, const struct sr_resource *res, void *buf, size_t count) G_GNUC_WARN_UNUSED_RESULT; SR_PRIV void *sr_resource_load(struct sr_context *ctx, int type, @@ -1158,13 +1196,13 @@ struct vc870_info { gboolean is_voltage, is_dc, is_ac, is_temperature, is_resistance; gboolean is_continuity, is_capacitance, is_diode, is_loop_current; gboolean is_current, is_micro, is_milli, is_power; - gboolean is_power_factor_freq, is_power_apparent_power, is_v_a_eff_value; + gboolean is_power_factor_freq, is_power_apparent_power, is_v_a_rms_value; gboolean is_sign2, is_sign1, is_batt, is_ol1, is_max, is_min; gboolean is_maxmin, is_rel, is_ol2, is_open, is_manu, is_hold; gboolean is_light, is_usb, is_warning, is_auto_power, is_misplug_warn; gboolean is_lo, is_hi, is_open2; - gboolean is_frequency, is_dual_display, is_auto, is_rms; + gboolean is_frequency, is_dual_display, is_auto; }; SR_PRIV gboolean sr_vc870_packet_valid(const uint8_t *buf);