]> sigrok.org Git - libsigrok.git/commitdiff
Pass sr_datafeed_packets and payloads with const pointers
authorJoel Holdsworth <redacted>
Thu, 13 Dec 2012 21:07:53 +0000 (21:07 +0000)
committerJoel Holdsworth <redacted>
Thu, 20 Dec 2012 07:51:21 +0000 (07:51 +0000)
This patch marks packet structures and their payloads as const.
This indicates to packet receivers that modifications to these are
not allowed. In general all pointers should be marked const unless
modification of the referenced data is explicitly allowed.

libsigrok-internal.h
libsigrok.h
output/analog.c
proto.h
session.c

index 0dfbbe8a681874beae02b0deea952fae7ddb8da8..e63ea9305bdf3180215423686f02ed5bb370c9d9 100644 (file)
@@ -122,7 +122,7 @@ SR_PRIV int sr_source_add(int fd, int events, int timeout,
 /*--- session.c -------------------------------------------------------------*/
 
 SR_PRIV int sr_session_send(const struct sr_dev_inst *sdi,
-                           struct sr_datafeed_packet *packet);
+                           const struct sr_datafeed_packet *packet);
 
 /*--- hardware/common/serial.c ----------------------------------------------*/
 
index 9946691e267503cd6fab4abfbf681da39d83b334..f371c944fd6ff85ac6b699ec1cba06f40f272836 100644 (file)
@@ -268,7 +268,7 @@ struct sr_context;
 
 struct sr_datafeed_packet {
        uint16_t type;
-       void *payload;
+       const void *payload;
 };
 
 struct sr_datafeed_header {
@@ -336,7 +336,7 @@ struct sr_output_format {
        int (*event) (struct sr_output *o, int event_type, uint8_t **data_out,
                      uint64_t *length_out);
        GString *(*recv) (struct sr_output *o, const struct sr_dev_inst *sdi,
-                       struct sr_datafeed_packet *packet);
+                       const struct sr_datafeed_packet *packet);
        int (*cleanup) (struct sr_output *o);
 };
 
index 448b112efce12578c508980412a83d16c1b433b1..d2f28b6b2853bf94d6bb2ad91eea4c750c688900 100644 (file)
@@ -189,11 +189,11 @@ static void fancyprint(int unit, int mqflags, float value, GString *out)
 }
 
 static GString *receive(struct sr_output *o, const struct sr_dev_inst *sdi,
-               struct sr_datafeed_packet *packet)
+               const struct sr_datafeed_packet *packet)
 {
-       struct sr_datafeed_analog *analog;
+       const struct sr_datafeed_analog *analog;
        struct context *ctx;
-       float *fdata;
+       const float *fdata;
        int i, j;
 
        (void)sdi;
@@ -214,7 +214,7 @@ static GString *receive(struct sr_output *o, const struct sr_dev_inst *sdi,
                break;
        case SR_DF_ANALOG:
                analog = packet->payload;
-               fdata = (float *)analog->data;
+               fdata = (const float *)analog->data;
                for (i = 0; i < analog->num_samples; i++) {
                        for (j = 0; j < ctx->num_enabled_probes; j++) {
                                g_string_append_printf(ctx->out, "%s: ",
diff --git a/proto.h b/proto.h
index c93a796e94b50359a51f55737cbf30c85b9cba71..870dc985d74d5fb4509f0503d4170658b2073191 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -89,7 +89,7 @@ SR_API const struct sr_hwcap_option *sr_devopt_name_get(const char *optname);
 /*--- session.c -------------------------------------------------------------*/
 
 typedef void (*sr_datafeed_callback_t)(const struct sr_dev_inst *sdi,
-               struct sr_datafeed_packet *packet);
+               const struct sr_datafeed_packet *packet);
 
 /* Session setup */
 SR_API int sr_session_load(const char *filename);
index 81e09b114dc59c44a2300dd85ad927329a7714ba..6a4a3c99704b4e2c5f371911594c685a9417ed06 100644 (file)
--- a/session.c
+++ b/session.c
@@ -370,10 +370,10 @@ SR_API int sr_session_stop(void)
  *
  * @param packet The packet to show debugging information for.
  */
-static void datafeed_dump(struct sr_datafeed_packet *packet)
+static void datafeed_dump(const struct sr_datafeed_packet *packet)
 {
-       struct sr_datafeed_logic *logic;
-       struct sr_datafeed_analog *analog;
+       const struct sr_datafeed_logic *logic;
+       const struct sr_datafeed_analog *analog;
 
        switch (packet->type) {
        case SR_DF_HEADER:
@@ -426,7 +426,7 @@ static void datafeed_dump(struct sr_datafeed_packet *packet)
  * @private
  */
 SR_PRIV int sr_session_send(const struct sr_dev_inst *sdi,
-                           struct sr_datafeed_packet *packet)
+                           const struct sr_datafeed_packet *packet)
 {
        GSList *l;
        sr_datafeed_callback_t cb;