]> sigrok.org Git - libsigrok.git/blobdiff - sigrok-internal.h
sr: Eliminate usb/serial instances from API.
[libsigrok.git] / sigrok-internal.h
index bf806313877f01a25f0e4889274dfbab7ba41149..4ec9339c2900e90cc9866258af85d27455445f64 100644 (file)
 #ifndef SIGROK_SIGROK_INTERNAL_H
 #define SIGROK_SIGROK_INTERNAL_H
 
+#include <stdarg.h>
+#include <glib.h>
+#ifdef HAVE_LIBUSB_1_0
+#include <libusb.h>
+#endif
+
+/*--- Macros ----------------------------------------------------------------*/
+
+#ifndef ARRAY_SIZE
+#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
+#endif
+
+#ifndef ARRAY_AND_SIZE
+#define ARRAY_AND_SIZE(a) (a), ARRAY_SIZE(a)
+#endif
+
+/* Size of a datastore chunk in units */
+#define DATASTORE_CHUNKSIZE (512 * 1024)
+
+/*--- hwplugin.c ------------------------------------------------------------*/
+
+int load_hwplugins(void);
+
+#ifdef HAVE_LIBUSB_1_0
+struct sr_usb_device_instance {
+       uint8_t bus;
+       uint8_t address;
+       struct libusb_device_handle *devhdl;
+};
+#endif
+
+struct sr_serial_device_instance {
+       char *port;
+       int fd;
+};
+
+#ifdef HAVE_LIBUSB_1_0
+/* USB-specific instances */
+struct sr_usb_device_instance *sr_usb_device_instance_new(uint8_t bus,
+               uint8_t address, struct libusb_device_handle *hdl);
+void sr_usb_device_instance_free(struct sr_usb_device_instance *usb);
+#endif
+
+/* Serial-specific instances */
+struct sr_serial_device_instance *sr_serial_device_instance_new(
+                                       const char *port, int fd);
+void sr_serial_device_instance_free(struct sr_serial_device_instance *serial);
+
+/*--- log.c -----------------------------------------------------------------*/
+
+int sr_log(int loglevel, const char *format, ...);
+int sr_spew(const char *format, ...);
+int sr_dbg(const char *format, ...);
+int sr_info(const char *format, ...);
+int sr_warn(const char *format, ...);
+int sr_err(const char *format, ...);
+
 /*--- hardware/common/serial.c ----------------------------------------------*/
 
 GSList *list_serial_ports(void);
@@ -35,18 +92,22 @@ int serial_set_params(int fd, int speed, int bits, int parity, int stopbits,
 
 /*--- hardware/common/ezusb.c -----------------------------------------------*/
 
+#ifdef HAVE_LIBUSB_1_0
 int ezusb_reset(struct libusb_device_handle *hdl, int set_clear);
-int ezusb_install_firmware(libusb_device_handle *hdl, char *filename);
+int ezusb_install_firmware(libusb_device_handle *hdl, const char *filename);
 int ezusb_upload_firmware(libusb_device *dev, int configuration,
                          const char *filename);
+#endif
 
 /*--- hardware/common/misc.c ------------------------------------------------*/
 
-int opendev2(int device_index, struct sigrok_device_instance **sdi,
+#ifdef HAVE_LIBUSB_1_0
+int opendev2(int device_index, struct sr_device_instance **sdi,
             libusb_device *dev, struct libusb_device_descriptor *des,
             int *skip, uint16_t vid, uint16_t pid, int interface);
-int opendev3(struct sigrok_device_instance **sdi, libusb_device *dev,
+int opendev3(struct sr_device_instance **sdi, libusb_device *dev,
             struct libusb_device_descriptor *des,
             uint16_t vid, uint16_t pid, int interface);
+#endif
 
 #endif