+/* Size of acquisition buffers */
+#define ACQ_BUFFER_SIZE 32768
+
+#define MAX_ANALOG_PROBES 4
+#define MAX_DIGITAL_PROBES 16
+
+enum rigol_ds_series {
+ RIGOL_DS1000,
+ RIGOL_DS1000Z,
+ RIGOL_DS2000,
+ RIGOL_DS4000,
+ RIGOL_DS6000,
+ RIGOL_VS5000,
+ AGILENT_DSO1000,
+};
+
+enum rigol_protocol_flavor {
+ /* Used by DS1000 and VS5000 series */
+ PROTOCOL_LEGACY,
+ /* Used by DS2000, DS4000, DS6000, ... series */
+ PROTOCOL_IEEE488_2,
+};
+
+enum data_source {
+ DATA_SOURCE_LIVE,
+ DATA_SOURCE_MEMORY,
+ DATA_SOURCE_SEGMENTED,
+};
+
+struct rigol_ds_model {
+ char *vendor;
+ char *name;
+ enum rigol_ds_series series;
+ enum rigol_protocol_flavor protocol;
+ uint64_t min_timebase[2];
+ uint64_t max_timebase[2];
+ uint64_t min_vdiv[2];
+ unsigned int analog_channels;
+ bool has_digital;
+ int num_horizontal_divs;
+};
+
+enum wait_events {
+ WAIT_NONE, /* Don't wait */
+ WAIT_TRIGGER, /* Wait for trigger (only live capture) */
+ WAIT_BLOCK, /* Wait for block data (only when reading sample mem) */
+ WAIT_STOP, /* Wait for scope stopping (only single shots) */
+};