X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fresource.c;h=634159308ef5c057a51447e4327cc8d93c005065;hb=d3cc09a612a6f8f2bf258bbd33a7dfd2c3a30968;hp=3a63a06aaa5e81c34ffd15cc8b04372b3410c356;hpb=45d835edc7f1ce505245056021216d4bdc8a0ae0;p=libsigrok.git diff --git a/src/resource.c b/src/resource.c index 3a63a06a..63415930 100644 --- a/src/resource.c +++ b/src/resource.c @@ -135,7 +135,7 @@ static int resource_open_default(struct sr_resource *res, file = try_open_file(*datadirs++, subdir, name); } if (!file) { - sr_err("Failed to locate '%s'.", name); + sr_dbg("Failed to locate '%s'.", name); return SR_ERR; } @@ -173,7 +173,7 @@ static int resource_close_default(struct sr_resource *res, void *cb_data) return SR_OK; } -static ssize_t resource_read_default(const struct sr_resource *res, +static gssize resource_read_default(const struct sr_resource *res, void *buf, size_t count, void *cb_data) { FILE *file; @@ -186,7 +186,7 @@ static ssize_t resource_read_default(const struct sr_resource *res, sr_err("%s: invalid handle.", __func__); return SR_ERR_ARG; } - if (count > SSIZE_MAX) { + if (count > G_MAXSSIZE) { sr_err("%s: count %zu too large.", __func__, count); return SR_ERR_ARG; } @@ -224,15 +224,15 @@ SR_API int sr_resource_set_hooks(struct sr_context *ctx, return SR_ERR_ARG; } if (open_cb && close_cb && read_cb) { - ctx->resource_open_cb = open_cb; + ctx->resource_open_cb = open_cb; ctx->resource_close_cb = close_cb; - ctx->resource_read_cb = read_cb; - ctx->resource_cb_data = cb_data; + ctx->resource_read_cb = read_cb; + ctx->resource_cb_data = cb_data; } else if (!open_cb && !close_cb && !read_cb) { - ctx->resource_open_cb = &resource_open_default; + ctx->resource_open_cb = &resource_open_default; ctx->resource_close_cb = &resource_close_default; - ctx->resource_read_cb = &resource_read_default; - ctx->resource_cb_data = ctx; + ctx->resource_read_cb = &resource_read_default; + ctx->resource_cb_data = ctx; } else { sr_err("%s: inconsistent callback pointers.", __func__); return SR_ERR_ARG; @@ -266,7 +266,8 @@ SR_PRIV int sr_resource_open(struct sr_context *ctx, ret = (*ctx->resource_open_cb)(res, name, ctx->resource_cb_data); if (ret != SR_OK) - sr_err("Failed to open resource '%s'.", name); + sr_err("Failed to open resource '%s' (use loglevel 5/spew for" + " details).", name); return ret; } @@ -309,10 +310,10 @@ SR_PRIV int sr_resource_close(struct sr_context *ctx, struct sr_resource *res) * * @private */ -SR_PRIV ssize_t sr_resource_read(struct sr_context *ctx, +SR_PRIV gssize sr_resource_read(struct sr_context *ctx, const struct sr_resource *res, void *buf, size_t count) { - ssize_t n_read; + gssize n_read; n_read = (*ctx->resource_read_cb)(res, buf, count, ctx->resource_cb_data); @@ -332,7 +333,7 @@ SR_PRIV ssize_t sr_resource_read(struct sr_context *ctx, * @param max_size Size limit. Error out if the resource is larger than this. * * @return A buffer containing the resource data, or NULL on failure. Must - * be freed by the caller using g_free(). + * be freed by the caller using g_free(). * * @private */ @@ -342,7 +343,7 @@ SR_PRIV void *sr_resource_load(struct sr_context *ctx, struct sr_resource res; void *buf; size_t res_size; - ssize_t n_read; + gssize n_read; if (sr_resource_open(ctx, &res, type, name) != SR_OK) return NULL;