Messages in this thread | | | Subject | Re: [PATCH v4 03/21] perf arm-spe: Refactor payload size calculation | From | André Przywara <> | Date | Tue, 27 Oct 2020 14:53:49 +0000 |
| |
On 27/10/2020 03:08, Leo Yan wrote: > This patch defines macro to extract "sz" field from header, and renames > the function payloadlen() to arm_spe_payload_len(). > > Signed-off-by: Leo Yan <leo.yan@linaro.org>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Cheers, Andre
> --- > .../util/arm-spe-decoder/arm-spe-pkt-decoder.c | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c b/tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c > index 7c7b5eb09fba..06b3eec4494e 100644 > --- a/tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c > +++ b/tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c > @@ -69,22 +69,22 @@ const char *arm_spe_pkt_name(enum arm_spe_pkt_type type) > return arm_spe_packet_name[type]; > } > > -/* return ARM SPE payload size from its encoding, > - * which is in bits 5:4 of the byte. > - * 00 : byte > - * 01 : halfword (2) > - * 10 : word (4) > - * 11 : doubleword (8) > +/* > + * Extracts the field "sz" from header bits and converts to bytes: > + * 00 : byte (1) > + * 01 : halfword (2) > + * 10 : word (4) > + * 11 : doubleword (8) > */ > -static int payloadlen(unsigned char byte) > +static unsigned int arm_spe_payload_len(unsigned char hdr) > { > - return 1 << ((byte & 0x30) >> 4); > + return 1U << ((hdr & GENMASK_ULL(5, 4)) >> 4); > } > > static int arm_spe_get_payload(const unsigned char *buf, size_t len, > struct arm_spe_pkt *packet) > { > - size_t payload_len = payloadlen(buf[0]); > + size_t payload_len = arm_spe_payload_len(buf[0]); > > if (len < 1 + payload_len) > return ARM_SPE_NEED_MORE_BYTES; >
| |