[Pdbg] [PATCH v2 16/24] libsbefifo: Refactor sbefifo transport function

Alistair Popple alistair at popple.id.au
Wed Nov 20 14:47:53 AEDT 2019


Reviewed-by: Alistair Popple <alistair at popple.id.au>

On Thursday, 7 November 2019 1:28:00 PM AEDT Amitay Isaacs wrote:
> Signed-off-by: Amitay Isaacs <amitay at ozlabs.org>
> ---
>  libsbefifo/operation.c | 35 ++++++++++++++++++++++++++---------
>  1 file changed, 26 insertions(+), 9 deletions(-)
> 
> diff --git a/libsbefifo/operation.c b/libsbefifo/operation.c
> index aaf2668..792b2ae 100644
> --- a/libsbefifo/operation.c
> +++ b/libsbefifo/operation.c
> @@ -55,6 +55,29 @@ static int sbefifo_write(struct sbefifo_context *sctx, void *buf, size_t buflen)
>  	return 0;
>  }
>  
> +static int sbefifo_transport(struct sbefifo_context *sctx, uint8_t *msg, uint32_t msg_len, uint8_t *out, uint32_t *out_len)
> +{
> +	int rc;
> +	size_t buflen;
> +
> +	buflen = msg_len;
> +	rc = sbefifo_write(sctx, msg, buflen);
> +	if (rc) {
> +		LOG("write: cmd=%08x, rc=%d\n", cmd, rc);
> +		return rc;
> +	}
> +
> +	buflen = *out_len;
> +	rc = sbefifo_read(sctx, out, &buflen);
> +	if (rc) {
> +		LOG("read: cmd=%08x, buflen=%zu, rc=%d\n", cmd, buflen, rc);
> +		return rc;
> +	}
> +
> +	*out_len = buflen;
> +	return 0;
> +}
> +
>  int sbefifo_parse_output(struct sbefifo_context *sctx, uint32_t cmd,
>  			 uint8_t *buf, uint32_t buflen,
>  			 uint8_t **out, uint32_t *out_len)
> @@ -117,7 +140,7 @@ int sbefifo_operation(struct sbefifo_context *sctx,
>  		      uint8_t **out, uint32_t *out_len)
>  {
>  	uint8_t *buf;
> -	size_t buflen;
> +	uint32_t buflen;
>  	uint32_t cmd;
>  	int rc;
>  
> @@ -140,15 +163,9 @@ int sbefifo_operation(struct sbefifo_context *sctx,
>  
>  	LOG("request: cmd=%08x, len=%u\n", cmd, msg_len);
>  
> -	rc = sbefifo_write(sctx, msg, msg_len);
> +	rc = sbefifo_transport(sctx, msg, msg_len, buf, &buflen);
>  	if (rc) {
> -		LOG("write: cmd=%08x, rc=%d\n", cmd, rc);
> -		return rc;
> -	}
> -
> -	rc = sbefifo_read(sctx, buf, &buflen);
> -	if (rc) {
> -		LOG("read: cmd=%08x, buflen=%zu, rc=%d\n", cmd, buflen, rc);
> +		free(buf);
>  		return rc;
>  	}
>  
> 






More information about the Pdbg mailing list