X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=source%2Fdrv-api.c;h=df3e3ece451b3bdbf2e221d639342bc22bc724de;hb=5c100b148be923f92c383b9fb233dfb4ba3b790e;hp=dbeea02fc826207e771ed104d85f84228202362c;hpb=2ef7b331cd4468e128c823cc7a055bdef97ee33b;p=sigrok-util.git diff --git a/source/drv-api.c b/source/drv-api.c index dbeea02..df3e3ec 100644 --- a/source/drv-api.c +++ b/source/drv-api.c @@ -17,9 +17,6 @@ * along with this program. If not, see . */ -#include -#include "libsigrok.h" -#include "libsigrok-internal.h" #include "protocol.h" SR_PRIV struct sr_dev_driver ${lib}_driver_info; @@ -33,7 +30,9 @@ static int clear_instances(void) struct dev_context *devc; GSList *l; - drvc = di->priv; + if (!(drvc = di->priv)) + return SR_OK; + for (l = drvc->instances; l; l = l->next) { if (!(sdi = l->data)) continue; @@ -51,20 +50,9 @@ static int clear_instances(void) return SR_OK; } -static int hw_init(void) +static int hw_init(struct sr_context *sr_ctx) { - struct drv_context *drvc; - - if (!(drvc = g_try_malloc0(sizeof(struct drv_context)))) { - sr_err("Driver context malloc failed."); - return SR_ERR; - } - - /* TODO */ - - di->priv = drvc; - - return SR_OK; + return std_hw_init(sr_ctx, di, DRIVER_LOG_DOMAIN); } static GSList *hw_scan(GSList *options) @@ -94,6 +82,8 @@ static GSList *hw_dev_list(void) static int hw_dev_open(struct sr_dev_inst *sdi) { + (void)sdi; + /* TODO */ return SR_OK; @@ -101,6 +91,8 @@ static int hw_dev_open(struct sr_dev_inst *sdi) static int hw_dev_close(struct sr_dev_inst *sdi) { + (void)sdi; + /* TODO */ return SR_OK; @@ -115,22 +107,26 @@ static int hw_cleanup(void) return SR_OK; } -static int hw_info_get(int info_id, const void **data, - const struct sr_dev_inst *sdi) +static int hw_config_get(int id, const void **value, + const struct sr_dev_inst *sdi) { - switch (info_id) { + (void)sdi; + (void)value; + + switch (id) { /* TODO */ default: - sr_err("Unknown info_id: %d.", info_id); return SR_ERR_ARG; } return SR_OK; } -static int hw_dev_config_set(const struct sr_dev_inst *sdi, int hwcap, - const void *value) +static int hw_config_set(int id, const void *value, + const struct sr_dev_inst *sdi) { + (void)value; + int ret; if (sdi->status != SR_ST_ACTIVE) { @@ -139,26 +135,42 @@ static int hw_dev_config_set(const struct sr_dev_inst *sdi, int hwcap, } ret = SR_OK; - switch (hwcap) { + switch (id) { /* TODO */ default: - sr_err("Unknown hardware capability: %d.", hwcap); + sr_err("Unknown hardware capability: %d.", id); ret = SR_ERR_ARG; } return ret; } +static int hw_config_list(int key, const void **data, + const struct sr_dev_inst *sdi) +{ + (void)sdi; + (void)data; + + switch (key) { + default: + return SR_ERR_ARG; + } + + return SR_OK; +} + static int hw_dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data) { + (void)sdi; + (void)cb_data; + /* TODO */ return SR_OK; } -static int hw_dev_acquisition_stop(const struct sr_dev_inst *sdi, - void *cb_data) +static int hw_dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data) { (void)cb_data; @@ -181,10 +193,11 @@ SR_PRIV struct sr_dev_driver ${lib}_driver_info = { .scan = hw_scan, .dev_list = hw_dev_list, .dev_clear = clear_instances, + .config_get = hw_config_get, + .config_set = hw_config_set, + .config_list = hw_config_list, .dev_open = hw_dev_open, .dev_close = hw_dev_close, - .info_get = hw_info_get, - .dev_config_set = hw_dev_config_set, .dev_acquisition_start = hw_dev_acquisition_start, .dev_acquisition_stop = hw_dev_acquisition_stop, .priv = NULL,