X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fscpi-pps%2Fprotocol.h;h=bd0dc9332c8169f7e0ac550eea3ef60db4bdedad;hb=329733d92c5004f0fe308eff26b9537fded2cdf3;hp=189f1ed95d5c5643c3f7c1fcbf83745dd1dbfb4c;hpb=624503ae90a3583edd34fc28a62a037640984e36;p=libsigrok.git diff --git a/src/hardware/scpi-pps/protocol.h b/src/hardware/scpi-pps/protocol.h index 189f1ed9..bd0dc933 100644 --- a/src/hardware/scpi-pps/protocol.h +++ b/src/hardware/scpi-pps/protocol.h @@ -77,23 +77,26 @@ enum pps_features { }; struct scpi_pps { - char *vendor; - char *model; + const char *vendor; + const char *model; uint64_t features; const uint32_t *devopts; unsigned int num_devopts; const uint32_t *devopts_cg; unsigned int num_devopts_cg; - struct channel_spec *channels; + const struct channel_spec *channels; unsigned int num_channels; - struct channel_group_spec *channel_groups; + const struct channel_group_spec *channel_groups; unsigned int num_channel_groups; - struct scpi_command *commands; + const struct scpi_command *commands; unsigned int num_commands; + int (*probe_channels) (struct sr_dev_inst *sdi, struct sr_scpi_hw_info *hwinfo, + struct channel_spec **channels, unsigned int *num_channels, + struct channel_group_spec **channel_groups, unsigned int *num_channel_groups); }; struct channel_spec { - char *name; + const char *name; /* Min, max, programming resolution. */ float voltage[3]; float current[3]; @@ -101,11 +104,11 @@ struct channel_spec { struct scpi_command { int command; - char *string; + const char *string; }; struct channel_group_spec { - char *name; + const char *name; uint64_t channel_index_mask; uint64_t features; }; @@ -113,13 +116,13 @@ struct channel_group_spec { struct pps_channel { int mq; unsigned int hw_output_idx; - char *hwname; + const char *hwname; }; struct pps_channel_instance { int mq; int command; - char *prefix; + const char *prefix; }; struct pps_channel_group { @@ -142,13 +145,15 @@ struct dev_context { /* Operational state */ gboolean beeper_was_set; + struct channel_spec *channels; + struct channel_group_spec *channel_groups; /* Temporary state across callbacks */ struct sr_channel *cur_channel; }; const char *get_vendor(const char *raw_vendor); -SR_PRIV char *scpi_cmd_get(const struct sr_dev_inst *sdi, int command); +SR_PRIV const char *scpi_cmd_get(const struct sr_dev_inst *sdi, int command); SR_PRIV int scpi_cmd(const struct sr_dev_inst *sdi, int command, ...); SR_PRIV int scpi_cmd_resp(const struct sr_dev_inst *sdi, GVariant **gvar, const GVariantType *gvtype, int command, ...);