X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=libsigrok-internal.h;h=aa8086ea0d922e8d286eb4ea1a4b8110d98243e2;hb=refs%2Fheads%2Fdslogic;hp=bed792b0f6d31af8c1f71d7de88a9942a363ff1e;hpb=ce3777ada98c5099d2867653f25239b85cf55708;p=libsigrok.git diff --git a/libsigrok-internal.h b/libsigrok-internal.h index bed792b0..aa8086ea 100644 --- a/libsigrok-internal.h +++ b/libsigrok-internal.h @@ -1,7 +1,7 @@ /* - * This file is part of the sigrok project. + * This file is part of the libsigrok project. * - * Copyright (C) 2010-2012 Bert Vermeulen + * Copyright (C) 2013 Bert Vermeulen * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -43,14 +43,6 @@ #define ARRAY_AND_SIZE(a) (a), ARRAY_SIZE(a) #endif -/* Versions < 2.30.0 of glib don't have g_match_info_unref(). */ -#if !GLIB_CHECK_VERSION(2,30,0) -#define g_match_info_unref g_match_info_free -#endif - -/* Size of a datastore chunk in units */ -#define DATASTORE_CHUNKSIZE (512 * 1024) - struct sr_context { #ifdef HAVE_LIBUSB_1_0 libusb_context *libusb_ctx; @@ -76,6 +68,7 @@ struct sr_serial_dev_inst { /* Private driver context. */ struct drv_context { + struct sr_context *sr_ctx; GSList *instances; }; @@ -91,17 +84,19 @@ SR_PRIV int sr_err(const char *format, ...); /*--- device.c --------------------------------------------------------------*/ SR_PRIV struct sr_probe *sr_probe_new(int index, int type, - gboolean enabled, const char *name); + gboolean enabled, const char *name); +SR_PRIV void sr_dev_probes_free(struct sr_dev_inst *sdi); /* Generic device instances */ -SR_PRIV struct sr_dev_inst *sr_dev_inst_new(int index, int status, - const char *vendor, const char *model, const char *version); +SR_PRIV struct sr_dev_inst *sr_dev_inst_new(int mode, int index, int status, + const char *vendor, const char *model, const char *version); SR_PRIV void sr_dev_inst_free(struct sr_dev_inst *sdi); #ifdef HAVE_LIBUSB_1_0 /* USB-specific instances */ SR_PRIV struct sr_usb_dev_inst *sr_usb_dev_inst_new(uint8_t bus, uint8_t address, struct libusb_device_handle *hdl); +SR_PRIV GSList *sr_usb_find_usbtmc(libusb_context *usb_ctx); SR_PRIV void sr_usb_dev_inst_free(struct sr_usb_dev_inst *usb); #endif @@ -114,14 +109,40 @@ SR_PRIV void sr_serial_dev_inst_free(struct sr_serial_dev_inst *serial); /*--- hwdriver.c ------------------------------------------------------------*/ SR_PRIV void sr_hw_cleanup_all(void); +SR_PRIV struct sr_config *sr_config_new(int key, GVariant *data); +SR_PRIV void sr_config_free(struct sr_config *src); SR_PRIV int sr_source_remove(int fd); SR_PRIV int sr_source_add(int fd, int events, int timeout, - sr_receive_data_callback_t cb, void *cb_data); + sr_receive_data_callback_t cb, void *cb_data); /*--- session.c -------------------------------------------------------------*/ SR_PRIV int sr_session_send(const struct sr_dev_inst *sdi, - struct sr_datafeed_packet *packet); + const struct sr_datafeed_packet *packet); +SR_PRIV int sr_session_stop_sync(void); + +/*--- std.c -----------------------------------------------------------------*/ + +typedef int (*dev_close_t)(struct sr_dev_inst *sdi); +typedef void (*std_dev_clear_t)(void *priv); + +SR_PRIV int std_hw_init(struct sr_context *sr_ctx, struct sr_dev_driver *di, + const char *prefix); +SR_PRIV int std_hw_dev_acquisition_stop_serial(struct sr_dev_inst *sdi, + void *cb_data, dev_close_t hw_dev_close_fn, + struct sr_serial_dev_inst *serial, const char *prefix); +SR_PRIV int std_session_send_df_header(const struct sr_dev_inst *sdi, + const char *prefix); +SR_PRIV int std_dev_clear(const struct sr_dev_driver *driver, + std_dev_clear_t clear_private); + +/*--- trigger.c -------------------------------------------------*/ +SR_PRIV uint64_t sr_trigger_get_mask0(uint16_t stage); +SR_PRIV uint64_t sr_trigger_get_mask1(uint16_t stage); +SR_PRIV uint64_t sr_trigger_get_value0(uint16_t stage); +SR_PRIV uint64_t sr_trigger_get_value1(uint16_t stage); +SR_PRIV uint64_t sr_trigger_get_edge0(uint16_t stage); +SR_PRIV uint64_t sr_trigger_get_edge1(uint16_t stage); /*--- hardware/common/serial.c ----------------------------------------------*/ @@ -164,45 +185,10 @@ SR_PRIV int ezusb_upload_firmware(libusb_device *dev, int configuration, /*--- hardware/common/usb.c -------------------------------------------------*/ #ifdef HAVE_LIBUSB_1_0 -SR_PRIV GSList *sr_usb_connect(libusb_context *usb_ctx, const char *conn); +SR_PRIV GSList *sr_usb_find(libusb_context *usb_ctx, const char *conn); SR_PRIV int sr_usb_open(libusb_context *usb_ctx, struct sr_usb_dev_inst *usb); #endif -/*--- hardware/common/dmm/fs9922.c ------------------------------------------*/ - -SR_PRIV int sr_dmm_parse_fs9922(const uint8_t *buf, float *floatval, - struct sr_datafeed_analog *analog); - -/*--- hardware/common/dmm/fs9721.c ------------------------------------------*/ - -#define FS9721_PACKET_SIZE 14 - -struct fs9721_info { - gboolean is_ac, is_dc, is_auto, is_rs232, is_micro, is_nano, is_kilo; - gboolean is_diode, is_milli, is_percent, is_mega, is_beep, is_farad; - gboolean is_ohm, is_rel, is_hold, is_ampere, is_volt, is_hz, is_bat; - gboolean is_c2c1_11, is_c2c1_10, is_c2c1_01, is_c2c1_00, is_sign; -}; - -SR_PRIV gboolean sr_fs9721_is_packet_start(uint8_t b); -SR_PRIV gboolean sr_fs9721_packet_valid(const uint8_t *buf); -SR_PRIV int sr_fs9721_parse(const uint8_t *buf, float *floatval, - struct sr_datafeed_analog *analog, void *info); - -/*--- hardware/common/dmm/metex14.c -----------------------------------------*/ - -#define METEX14_PACKET_SIZE 14 - -struct metex14_info { - gboolean is_ac, is_dc, is_resistance, is_capacity, is_temperature; - gboolean is_diode, is_frequency, is_ampere, is_volt, is_farad; - gboolean is_hertz, is_ohm, is_celsius, is_nano, is_micro, is_milli; - gboolean is_kilo, is_mega; -}; -SR_PRIV int sr_metex14_packet_request(struct sr_serial_dev_inst *serial); -SR_PRIV gboolean sr_metex14_packet_valid(const uint8_t *buf); -SR_PRIV int sr_metex14_parse(const uint8_t *buf, float *floatval, - struct sr_datafeed_analog *analog, void *info); #endif