+#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
+
+struct am7xxx_usb_device_descriptor {
+ const char *name;
+ uint16_t vendor_id;
+ uint16_t product_id;
+};
+
+static struct am7xxx_usb_device_descriptor supported_devices[] = {
+ {
+ .name = "Acer C110",
+ .vendor_id = 0x1de1,
+ .product_id = 0xc101,
+ },
+ {
+ .name = "Philips/Sagemcom PicoPix 1020",
+ .vendor_id = 0x21e7,
+ .product_id = 0x000e,
+ },
+};
+
+/* The header size on the wire is known to be always 24 bytes, regardless of
+ * the memory configuration enforced by different architechtures or compilers
+ * for struct am7xxx_header
+ */
+#define AM7XXX_HEADER_WIRE_SIZE 24
+
+struct _am7xxx_device {
+ libusb_device_handle *usb_device;
+ uint8_t buffer[AM7XXX_HEADER_WIRE_SIZE];
+};