]> sigrok.org Git - libsigrok.git/commitdiff
sr: code organization cleanup
authorBert Vermeulen <redacted>
Tue, 24 Jul 2012 22:20:06 +0000 (00:20 +0200)
committerBert Vermeulen <redacted>
Fri, 3 Aug 2012 09:29:00 +0000 (11:29 +0200)
Device-specific functions (public and private) go in device.c,
more general driver-related code in hwdriver.c

device.c
hwdriver.c
libsigrok-internal.h
proto.h

index 528a2af11a26da317d2fd1c8e834bdcef959812e..533331141d4908e30ae4e1ee891e6242bab67c75 100644 (file)
--- a/device.c
+++ b/device.c
 #include "libsigrok.h"
 #include "libsigrok-internal.h"
 
+SR_PRIV struct sr_probe *sr_probe_new(int index, int type,
+               gboolean enabled, const char *name)
+{
+       struct sr_probe *probe;
+
+       if (!(probe = g_try_malloc0(sizeof(struct sr_probe)))) {
+               sr_err("hwdriver: probe malloc failed");
+               return NULL;
+       }
+
+       probe->index = index;
+       probe->type = type;
+       probe->enabled = enabled;
+       if (name)
+               probe->name = g_strdup(name);
+
+       return probe;
+}
+
 /**
  * Set the name of the specified probe in the specified device.
  *
@@ -165,3 +184,84 @@ SR_API gboolean sr_dev_has_hwcap(const struct sr_dev_inst *sdi, int hwcap)
        return FALSE;
 }
 
+SR_PRIV struct sr_dev_inst *sr_dev_inst_new(int index, int status,
+               const char *vendor, const char *model, const char *version)
+{
+       struct sr_dev_inst *sdi;
+
+       if (!(sdi = g_try_malloc(sizeof(struct sr_dev_inst)))) {
+               sr_err("hwdriver: %s: sdi malloc failed", __func__);
+               return NULL;
+       }
+
+       sdi->index = index;
+       sdi->status = status;
+       sdi->inst_type = -1;
+       sdi->vendor = vendor ? g_strdup(vendor) : NULL;
+       sdi->model = model ? g_strdup(model) : NULL;
+       sdi->version = version ? g_strdup(version) : NULL;
+       sdi->probes = NULL;
+       sdi->priv = NULL;
+
+       return sdi;
+}
+
+SR_PRIV void sr_dev_inst_free(struct sr_dev_inst *sdi)
+{
+       g_free(sdi->priv);
+       g_free(sdi->vendor);
+       g_free(sdi->model);
+       g_free(sdi->version);
+       g_free(sdi);
+}
+
+#ifdef HAVE_LIBUSB_1_0
+
+SR_PRIV struct sr_usb_dev_inst *sr_usb_dev_inst_new(uint8_t bus,
+                       uint8_t address, struct libusb_device_handle *hdl)
+{
+       struct sr_usb_dev_inst *udi;
+
+       if (!(udi = g_try_malloc(sizeof(struct sr_usb_dev_inst)))) {
+               sr_err("hwdriver: %s: udi malloc failed", __func__);
+               return NULL;
+       }
+
+       udi->bus = bus;
+       udi->address = address;
+       udi->devhdl = hdl;
+
+       return udi;
+}
+
+SR_PRIV void sr_usb_dev_inst_free(struct sr_usb_dev_inst *usb)
+{
+       /* Avoid compiler warnings. */
+       (void)usb;
+
+       /* Nothing to do for this device instance type. */
+}
+
+#endif
+
+SR_PRIV struct sr_serial_dev_inst *sr_serial_dev_inst_new(const char *port,
+                                                         int fd)
+{
+       struct sr_serial_dev_inst *serial;
+
+       if (!(serial = g_try_malloc(sizeof(struct sr_serial_dev_inst)))) {
+               sr_err("hwdriver: %s: serial malloc failed", __func__);
+               return NULL;
+       }
+
+       serial->port = g_strdup(port);
+       serial->fd = fd;
+
+       return serial;
+}
+
+SR_PRIV void sr_serial_dev_inst_free(struct sr_serial_dev_inst *serial)
+{
+       g_free(serial->port);
+}
+
index d1181a2f59dc3c1c8e98c0d769543a03ba6b9232..118e49a2571159ec5aec56789c12c12d33f84713 100644 (file)
@@ -210,106 +210,6 @@ SR_API int sr_info_get(struct sr_dev_driver *driver, int id,
        return ret;
 }
 
-SR_PRIV struct sr_dev_inst *sr_dev_inst_new(int index, int status,
-               const char *vendor, const char *model, const char *version)
-{
-       struct sr_dev_inst *sdi;
-
-       if (!(sdi = g_try_malloc(sizeof(struct sr_dev_inst)))) {
-               sr_err("hwdriver: %s: sdi malloc failed", __func__);
-               return NULL;
-       }
-
-       sdi->index = index;
-       sdi->status = status;
-       sdi->inst_type = -1;
-       sdi->vendor = vendor ? g_strdup(vendor) : NULL;
-       sdi->model = model ? g_strdup(model) : NULL;
-       sdi->version = version ? g_strdup(version) : NULL;
-       sdi->probes = NULL;
-       sdi->priv = NULL;
-
-       return sdi;
-}
-
-SR_PRIV void sr_dev_inst_free(struct sr_dev_inst *sdi)
-{
-       g_free(sdi->priv);
-       g_free(sdi->vendor);
-       g_free(sdi->model);
-       g_free(sdi->version);
-       g_free(sdi);
-}
-
-SR_PRIV struct sr_probe *sr_probe_new(int index, int type,
-               gboolean enabled, const char *name)
-{
-       struct sr_probe *probe;
-
-       if (!(probe = g_try_malloc0(sizeof(struct sr_probe)))) {
-               sr_err("hwdriver: probe malloc failed");
-               return NULL;
-       }
-
-       probe->index = index;
-       probe->type = type;
-       probe->enabled = enabled;
-       if (name)
-               probe->name = g_strdup(name);
-
-       return probe;
-}
-
-#ifdef HAVE_LIBUSB_1_0
-
-SR_PRIV struct sr_usb_dev_inst *sr_usb_dev_inst_new(uint8_t bus,
-                       uint8_t address, struct libusb_device_handle *hdl)
-{
-       struct sr_usb_dev_inst *udi;
-
-       if (!(udi = g_try_malloc(sizeof(struct sr_usb_dev_inst)))) {
-               sr_err("hwdriver: %s: udi malloc failed", __func__);
-               return NULL;
-       }
-
-       udi->bus = bus;
-       udi->address = address;
-       udi->devhdl = hdl;
-
-       return udi;
-}
-
-SR_PRIV void sr_usb_dev_inst_free(struct sr_usb_dev_inst *usb)
-{
-       /* Avoid compiler warnings. */
-       (void)usb;
-
-       /* Nothing to do for this device instance type. */
-}
-
-#endif
-
-SR_PRIV struct sr_serial_dev_inst *sr_serial_dev_inst_new(const char *port,
-                                                         int fd)
-{
-       struct sr_serial_dev_inst *serial;
-
-       if (!(serial = g_try_malloc(sizeof(struct sr_serial_dev_inst)))) {
-               sr_err("hwdriver: %s: serial malloc failed", __func__);
-               return NULL;
-       }
-
-       serial->port = g_strdup(port);
-       serial->fd = fd;
-
-       return serial;
-}
-
-SR_PRIV void sr_serial_dev_inst_free(struct sr_serial_dev_inst *serial)
-{
-       g_free(serial->port);
-}
-
 /**
  * Find out if a hardware driver has a specific capability.
  *
@@ -342,7 +242,7 @@ SR_API gboolean sr_driver_hwcap_exists(struct sr_dev_driver *driver, int hwcap)
 }
 
 /**
- * Get a hardware driver option.
+ * Get information about a hardware driver option.
  *
  * @param hwopt The option to get.
  *
@@ -362,7 +262,7 @@ SR_API const struct sr_hwcap_option *sr_drvopt_get(int hwopt)
 }
 
 /**
- * Get a hardware driver capability option.
+ * Get information about a device option.
  *
  * @param hwcap The capability to get.
  *
index 1d93d9e5baa76d414a8397b52e5a309dbde9b813..b45b078670f2e0fa6a9efadbfa2966fa38002154 100644 (file)
@@ -56,7 +56,26 @@ struct sr_serial_dev_inst {
        int fd;
 };
 
+/*--- log.c -----------------------------------------------------------------*/
+
+SR_PRIV int sr_log(int loglevel, const char *format, ...);
+SR_PRIV int sr_spew(const char *format, ...);
+SR_PRIV int sr_dbg(const char *format, ...);
+SR_PRIV int sr_info(const char *format, ...);
+SR_PRIV int sr_warn(const char *format, ...);
+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);
+
+/* 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 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);
@@ -68,35 +87,19 @@ SR_PRIV struct sr_serial_dev_inst *sr_serial_dev_inst_new(
                                        const char *port, int fd);
 SR_PRIV void sr_serial_dev_inst_free(struct sr_serial_dev_inst *serial);
 
-/*--- log.c -----------------------------------------------------------------*/
-
-SR_PRIV int sr_log(int loglevel, const char *format, ...);
-SR_PRIV int sr_spew(const char *format, ...);
-SR_PRIV int sr_dbg(const char *format, ...);
-SR_PRIV int sr_info(const char *format, ...);
-SR_PRIV int sr_warn(const char *format, ...);
-SR_PRIV int sr_err(const char *format, ...);
 
 /*--- hwdriver.c ------------------------------------------------------------*/
 
 SR_PRIV void sr_hw_cleanup_all(void);
+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);
 
 /*--- session.c -------------------------------------------------------------*/
 
 SR_PRIV int sr_session_send(const struct sr_dev_inst *sdi,
                            struct sr_datafeed_packet *packet);
 
-/* 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 void sr_dev_inst_free(struct sr_dev_inst *sdi);
-SR_PRIV struct sr_probe *sr_probe_new(int index, int type,
-               gboolean enabled, const char *name);
-
-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);
-
 /*--- hardware/common/serial.c ----------------------------------------------*/
 
 SR_PRIV GSList *list_serial_ports(void);
diff --git a/proto.h b/proto.h
index d79e017be1cafa6fa67291da53038610ee6989cd..7ac3d09e480b7151fce56a623207eac30d1a3d9d 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -67,11 +67,11 @@ SR_API int sr_filter_probes(int in_unitsize, int out_unitsize,
 SR_API struct sr_dev_driver **sr_driver_list(void);
 SR_API int sr_driver_init(struct sr_dev_driver *driver);
 SR_API GSList *sr_driver_scan(struct sr_dev_driver *driver, GSList *options);
+SR_API int sr_info_get(struct sr_dev_driver *driver, int id,
+               const void **data, const struct sr_dev_inst *sdi);
 SR_API gboolean sr_driver_hwcap_exists(struct sr_dev_driver *driver, int hwcap);
 SR_API const struct sr_hwcap_option *sr_drvopt_get(int hwopt);
 SR_API const struct sr_hwcap_option *sr_hw_hwcap_get(int hwcap);
-SR_API int sr_info_get(struct sr_dev_driver *driver, int id,
-               const void **data, const struct sr_dev_inst *sdi);
 
 /*--- session.c -------------------------------------------------------------*/