X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fbeaglelogic%2Fprotocol.h;h=521673eeb03b742e0d8cfb32405e5709e16d2a75;hb=9b2b3ef93e9821ffc9edc1c8bdd929c0143939dd;hp=90fad482e56b896c7f6d946f6e3f6703bbb1d133;hpb=e743a47d6d23050c72aa1276c5df4a45a6bc5357;p=libsigrok.git diff --git a/src/hardware/beaglelogic/protocol.h b/src/hardware/beaglelogic/protocol.h index 90fad482..521673ee 100644 --- a/src/hardware/beaglelogic/protocol.h +++ b/src/hardware/beaglelogic/protocol.h @@ -22,7 +22,7 @@ #include #include -#include "libsigrok.h" +#include #include "libsigrok-internal.h" #define LOG_PREFIX "beaglelogic" @@ -32,12 +32,23 @@ #define SAMPLEUNIT_TO_BYTES(x) ((x) == 1 ? 1 : 2) +#define TCP_BUFFER_SIZE (128 * 1024) + /** Private, per-device-instance driver context. */ struct dev_context { - /* Model-specific information */ int max_channels; uint32_t fw_ver; + /* Operations */ + const struct beaglelogic_ops *beaglelogic; + + /* TCP Settings */ + char *address; + char *port; + int socket; + unsigned int read_timeout; + unsigned char *tcp_buffer; + /* Acquisition settings: see beaglelogic.h */ uint64_t cur_samplerate; uint64_t limit_samples; @@ -49,7 +60,6 @@ struct dev_context { uint32_t bufunitsize; uint32_t buffersize; - /* Operational state */ int fd; GPollFD pollfd; int last_error; @@ -59,13 +69,12 @@ struct dev_context { uint32_t offset; uint8_t *sample_buf; /* mmap'd kernel buffer here */ - void *cb_data; - /* Trigger logic */ struct soft_trigger_logic *stl; gboolean trigger_fired; }; -SR_PRIV int beaglelogic_receive_data(int fd, int revents, void *cb_data); +SR_PRIV int beaglelogic_native_receive_data(int fd, int revents, void *cb_data); +SR_PRIV int beaglelogic_tcp_receive_data(int fd, int revents, void *cb_data); #endif