|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v7 05/28] xen/arm: ITS: Port ITS driver to Xen
Hi Vijay,
The only things I haven't check on this patch was the ITS command structure.
On 18/09/15 14:08, vijay.kilari@xxxxxxxxx wrote:
> +/* ITS command structure */
> +typedef union {
Can you please sort this union by command name in alphabetical order.
It's way easier to find a command in the list.
> + u64 bits[4];
> + struct __packed {
> + uint8_t cmd;
NIT: Please stay consistent with usage of the type. You are using u8
everywhere within this union except here.
> + uint8_t pad[7];
Why a padding of only 56 bits? Shouldn't it be 248 bits (i.e 31 * 8
bits) to fit all the command?
> + } hdr;
> + struct __packed {
> + u8 cmd;
> + u8 res1[3];
> + u32 devid;
> + u64 size:5;
> + u64 res2:59;
> + /* XXX: Though itt is 40 bit. Keep it 48 to avoid shift */
> + u64 res3:8;
It's very confusing for the reviewer to see a mix of usage (u8 res1[n],
u64 res3:8) within the same structure.
The later (i.e u64 field:n) is the best to use because we can match
quickly the size with the spec.
> + u64 itt:40;
> + u64 res4:15;
> + u64 valid:1;
> + u64 res5;
> + } mapd;
[..]
> + struct __packed {
> + u8 cmd;
> + u8 res1[3];
> + u32 devid;
> + u32 event;
> + u32 res2;
> + u64 res3;
> + u64 res4;
> + } int_cmd;
Maybe you want to add the suffix _cmd to everyone to avoid having only
one because of C spec issue.
> + struct __packed {
> + u8 cmd;
> + u8 res1[3];
> + u32 devid;
> + u32 event;
> + u32 res2;
> + u64 res3;
> + u64 res4;
> + } clear;
> + struct __packed {
> + u8 cmd;
> + u8 res1[7];
> + u64 res2;
> + u16 res3;
> + u32 ta;
It would have been better to have a full name or a description rather
than only a 2 letter field "ta". I won't ask for a documentation of this
field right now, but it would be a nice follow-up of this series.
> + u16 res4;
> + u64 res5;
> + } sync;
> +} its_cmd_block;
Regards,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |