X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fipdbg-logic-analyser%2Fprotocol.h;h=7f4052c2951306b5152f6c342f2a63d4f765e6d1;hb=ed186484237797e29c6c58355718fdc6b3039920;hp=bf57fd5371ef19362459387165a029278b33b2d3;hpb=b51288e3da87626637d8c11a5cb22918d0e60ba8;p=libsigrok.git diff --git a/src/hardware/ipdbg-logic-analyser/protocol.h b/src/hardware/ipdbg-logic-analyser/protocol.h index bf57fd53..7f4052c2 100644 --- a/src/hardware/ipdbg-logic-analyser/protocol.h +++ b/src/hardware/ipdbg-logic-analyser/protocol.h @@ -27,53 +27,63 @@ #define LOG_PREFIX "ipdbg-org-la" - struct ipdbg_org_la_tcp { - char *address; - char *port; - int socket; + char *address; + char *port; + int socket; }; /** Private, per-device-instance driver context. */ -struct ipdbg_org_la_dev_context -{ - unsigned int DATA_WIDTH; - unsigned int DATA_WIDTH_BYTES; - unsigned int ADDR_WIDTH; - unsigned int ADDR_WIDTH_BYTES ; +struct ipdbg_org_la_dev_context { + uint32_t DATA_WIDTH; + uint32_t DATA_WIDTH_BYTES; + uint32_t ADDR_WIDTH; + uint32_t ADDR_WIDTH_BYTES; - unsigned int limit_samples; - unsigned int limit_samples_max; - char capture_ratio; - char *trigger_mask; - char *trigger_value; - char *trigger_mask_last; - char *trigger_value_last; - char *trigger_edge_mask; - unsigned int delay_value; - int num_stages; - unsigned int num_transfers; - unsigned char *raw_sample_buf; + uint64_t limit_samples; + uint64_t limit_samples_max; + uint8_t capture_ratio; + uint8_t *trigger_mask; + uint8_t *trigger_value; + uint8_t *trigger_mask_last; + uint8_t *trigger_value_last; + uint8_t *trigger_edge_mask; + uint64_t delay_value; + int num_stages; + uint64_t num_transfers; + uint8_t *raw_sample_buf; }; -SR_PRIV struct ipdbg_org_la_tcp *ipdbg_org_la_new_tcp(void); +int data_available(struct ipdbg_org_la_tcp *tcp); + +SR_PRIV struct ipdbg_org_la_tcp *ipdbg_org_la_tcp_new(void); +SR_PRIV void ipdbg_org_la_tcp_free(struct ipdbg_org_la_tcp *tcp); SR_PRIV int ipdbg_org_la_tcp_open(struct ipdbg_org_la_tcp *tcp); SR_PRIV int ipdbg_org_la_tcp_close(struct ipdbg_org_la_tcp *tcp); -SR_PRIV void ipdbg_org_la_tcp_free(struct ipdbg_org_la_tcp *tcp); -SR_PRIV int ipdbg_org_la_tcp_send(struct ipdbg_org_la_tcp *tcp, const uint8_t *buf, size_t len); -SR_PRIV int ipdbg_org_la_tcp_receive(struct ipdbg_org_la_tcp *tcp, uint8_t *buf); +SR_PRIV int ipdbg_org_la_tcp_send(struct ipdbg_org_la_tcp *tcp, + const uint8_t *buf, size_t len); +SR_PRIV int ipdbg_org_la_tcp_receive_blocking(struct ipdbg_org_la_tcp *tcp, + uint8_t *buf, int bufsize); +SR_PRIV int ipdbg_org_la_tcp_receive(struct ipdbg_org_la_tcp *tcp, + uint8_t *buf); -SR_PRIV struct ipdbg_org_la_dev_context *ipdbg_org_la_dev_new(void); -SR_PRIV void ipdbg_org_la_get_addrwidth_and_datawidth(struct ipdbg_org_la_tcp *tcp, struct ipdbg_org_la_dev_context *devc); -SR_PRIV int ipdbg_org_la_sendReset(struct ipdbg_org_la_tcp *tcp); -SR_PRIV int ipdbg_org_la_requestID(struct ipdbg_org_la_tcp *tcp); -SR_PRIV int ipdbg_org_la_sendStart(struct ipdbg_org_la_tcp *tcp); -SR_PRIV int ipdbg_org_la_sendTrigger(struct ipdbg_org_la_dev_context *devc, struct ipdbg_org_la_tcp *tcp); -SR_PRIV int ipdbg_org_la_sendDelay(struct ipdbg_org_la_dev_context *devc, struct ipdbg_org_la_tcp *tcp); SR_PRIV int ipdbg_org_la_convert_trigger(const struct sr_dev_inst *sdi); + +SR_PRIV struct ipdbg_org_la_dev_context *ipdbg_org_la_dev_new(void); +SR_PRIV void ipdbg_org_la_get_addrwidth_and_datawidth( + struct ipdbg_org_la_tcp *tcp, struct ipdbg_org_la_dev_context *devc); +SR_PRIV int send_escaping(struct ipdbg_org_la_tcp *tcp, uint8_t *dataToSend, + uint32_t length); +SR_PRIV int ipdbg_org_la_send_reset(struct ipdbg_org_la_tcp *tcp); +SR_PRIV int ipdbg_org_la_request_id(struct ipdbg_org_la_tcp *tcp); +SR_PRIV int ipdbg_org_la_send_start(struct ipdbg_org_la_tcp *tcp); +SR_PRIV int ipdbg_org_la_send_trigger(struct ipdbg_org_la_dev_context *devc, + struct ipdbg_org_la_tcp *tcp); +SR_PRIV int ipdbg_org_la_send_delay(struct ipdbg_org_la_dev_context *devc, + struct ipdbg_org_la_tcp *tcp); SR_PRIV int ipdbg_org_la_receive_data(int fd, int revents, void *cb_data); SR_PRIV void ipdbg_org_la_abort_acquisition(const struct sr_dev_inst *sdi); -SR_PRIV int ipdbg_org_la_tcp_receive_blocking(struct ipdbg_org_la_tcp *tcp, uint8_t *buf, int bufsize); -int hasData(struct ipdbg_org_la_tcp *tcp); +SR_PRIV int ipdbg_org_la_tcp_receive_blocking(struct ipdbg_org_la_tcp *tcp, + uint8_t * buf, int bufsize); #endif