]> sigrok.org Git - libsigrok.git/commitdiff
hameg-hmo: Move the declaration of the driver info out of protocol.h
authorpoljar (Damir Jelić) <redacted>
Mon, 9 Dec 2013 13:35:29 +0000 (14:35 +0100)
committerBert Vermeulen <redacted>
Wed, 18 Dec 2013 21:17:30 +0000 (22:17 +0100)
This fixes duplicate symbol error on Mac OS X.

BugLink: http://sigrok.org/bugzilla/show_bug.cgi?id=216
hardware/hameg-hmo/api.c
hardware/hameg-hmo/protocol.c
hardware/hameg-hmo/protocol.h

index 6a16bb1dba832419eed31d151e8e06dad74bc218..ee7c74430b2ceb9ce63a2650b93918daa2cebaf4 100644 (file)
 
 #define SERIALCOMM "115200/8n1/flow=1"
 
+SR_PRIV struct sr_dev_driver hameg_hmo_driver_info;
+static struct sr_dev_driver *di = &hameg_hmo_driver_info;
+
+static const char *manufacturers[] = {
+       "HAMEG",
+};
+
 static const int32_t hwopts[] = {
        SR_CONF_CONN,
        SR_CONF_SERIALCOMM,
@@ -186,6 +193,79 @@ skip_device:
 #endif
 }
 
+static int check_manufacturer(const char *manufacturer)
+{
+       unsigned int i;
+
+       for (i = 0; i < ARRAY_SIZE(manufacturers); ++i)
+               if (!strcmp(manufacturer, manufacturers[i]))
+                       return SR_OK;
+
+       return SR_ERR;
+}
+
+static struct sr_dev_inst *hmo_probe_serial_device(const char *serial_device,
+                                                   const char *serial_options)
+{
+       struct sr_dev_inst *sdi;
+       struct dev_context *devc;
+       struct sr_scpi_hw_info *hw_info;
+       struct sr_scpi_dev_inst *scpi;
+
+       sdi = NULL;
+       devc = NULL;
+       scpi = NULL;
+       hw_info = NULL;
+
+       if (!(scpi = scpi_serial_dev_inst_new(serial_device, serial_options)))
+               goto fail;
+
+       sr_info("Probing %s.", serial_device);
+       if (sr_scpi_open(scpi) != SR_OK)
+               goto fail;
+
+       if (sr_scpi_get_hw_id(scpi, &hw_info) != SR_OK) {
+               sr_info("Couldn't get IDN response.");
+               goto fail;
+       }
+
+       if (check_manufacturer(hw_info->manufacturer) != SR_OK)
+               goto fail;
+
+       if (!(sdi = sr_dev_inst_new(0, SR_ST_ACTIVE,
+                                   hw_info->manufacturer, hw_info->model,
+                                   hw_info->firmware_version))) {
+               goto fail;
+       }
+       sr_scpi_hw_info_free(hw_info);
+       hw_info = NULL;
+
+       if (!(devc = g_try_malloc0(sizeof(struct dev_context))))
+               goto fail;
+
+       sdi->driver = di;
+       sdi->priv = devc;
+       sdi->inst_type = SR_INST_SCPI;
+       sdi->conn = scpi;
+
+       if (hmo_init_device(sdi) != SR_OK)
+               goto fail;
+
+       return sdi;
+
+fail:
+       if (hw_info)
+               sr_scpi_hw_info_free(hw_info);
+       if (scpi)
+               sr_scpi_free(scpi);
+       if (sdi)
+               sr_dev_inst_free(sdi);
+       if (devc)
+               g_free(devc);
+
+       return NULL;
+}
+
 static GSList *scan(GSList *options)
 {
        GSList *devices;
index b4807990b1ba16c0f42e7a7a0576958b93b791f0..d014eafe9cec9ac2ae1ad6cf3e83232fdf7f3695 100644 (file)
 
 #include "protocol.h"
 
-static const char *manufacturers[] = {
-       "HAMEG",
-};
-
 static const char *hameg_scpi_dialect[] = {
        [SCPI_CMD_GET_DIG_DATA]             = ":POD%d:DATA?",
        [SCPI_CMD_GET_TIMEBASE]             = ":TIM:SCAL?",
@@ -256,17 +252,6 @@ static struct scope_config scope_models[] = {
        },
 };
 
-static int check_manufacturer(const char *manufacturer)
-{
-       unsigned int i;
-
-       for (i = 0; i < ARRAY_SIZE(manufacturers); ++i)
-               if (!strcmp(manufacturer, manufacturers[i]))
-                       return SR_OK;
-
-       return SR_ERR;
-}
-
 static void scope_state_dump(struct scope_config *config,
                             struct scope_state *state)
 {
@@ -560,68 +545,6 @@ SR_PRIV int hmo_init_device(struct sr_dev_inst *sdi)
        return SR_OK;
 }
 
-SR_PRIV struct sr_dev_inst *hmo_probe_serial_device(const char *serial_device,
-                                                   const char *serial_options)
-{
-       struct sr_dev_inst *sdi;
-       struct dev_context *devc;
-       struct sr_scpi_hw_info *hw_info;
-       struct sr_scpi_dev_inst *scpi;
-
-       sdi = NULL;
-       devc = NULL;
-       scpi = NULL;
-       hw_info = NULL;
-
-       if (!(scpi = scpi_serial_dev_inst_new(serial_device, serial_options)))
-               goto fail;
-
-       sr_info("Probing %s.", serial_device);
-       if (sr_scpi_open(scpi) != SR_OK)
-               goto fail;
-
-       if (sr_scpi_get_hw_id(scpi, &hw_info) != SR_OK) {
-               sr_info("Couldn't get IDN response.");
-               goto fail;
-       }
-
-       if (check_manufacturer(hw_info->manufacturer) != SR_OK)
-               goto fail;
-
-       if (!(sdi = sr_dev_inst_new(0, SR_ST_ACTIVE,
-                                   hw_info->manufacturer, hw_info->model,
-                                   hw_info->firmware_version))) {
-               goto fail;
-       }
-       sr_scpi_hw_info_free(hw_info);
-       hw_info = NULL;
-
-       if (!(devc = g_try_malloc0(sizeof(struct dev_context))))
-               goto fail;
-
-       sdi->driver = di;
-       sdi->priv = devc;
-       sdi->inst_type = SR_INST_SCPI;
-       sdi->conn = scpi;
-
-       if (hmo_init_device(sdi) != SR_OK)
-               goto fail;
-
-       return sdi;
-
-fail:
-       if (hw_info)
-               sr_scpi_hw_info_free(hw_info);
-       if (scpi)
-               sr_scpi_free(scpi);
-       if (sdi)
-               sr_dev_inst_free(sdi);
-       if (devc)
-               g_free(devc);
-
-       return NULL;
-}
-
 SR_PRIV int hmo_receive_data(int fd, int revents, void *cb_data)
 {
        struct sr_probe *probe;
index ff3b398208ab2c7997ef921d846eff537b953db5..370bc0088f5573dc60bc7769c1f5810e71c04236 100644 (file)
@@ -38,9 +38,6 @@
 #define MAX_INSTRUMENT_VERSIONS 10
 #define MAX_COMMAND_SIZE 31
 
-SR_PRIV struct sr_dev_driver hameg_hmo_driver_info;
-static struct sr_dev_driver *di = &hameg_hmo_driver_info;
-
 struct scope_config {
        const char *name[MAX_INSTRUMENT_VERSIONS];
        const uint8_t analog_channels;
@@ -115,8 +112,6 @@ struct dev_context {
 SR_PRIV int hmo_init_device(struct sr_dev_inst *sdi);
 SR_PRIV int hmo_request_data(const struct sr_dev_inst *sdi);
 SR_PRIV int hmo_receive_data(int fd, int revents, void *cb_data);
-SR_PRIV struct sr_dev_inst *hmo_probe_serial_device(const char *serial_device,
-                                                   const char *serial_options);
 
 SR_PRIV struct scope_state *hmo_scope_state_new(struct scope_config *config);
 SR_PRIV void hmo_scope_state_free(struct scope_state *state);