Re: [PATCH v11 24/26] virt: gunyah: Add irqfd interface

From: Alex Elder
Date: Tue Apr 18 2023 - 08:55:39 EST


On 4/17/23 5:55 PM, Elliot Berman wrote:

+struct gh_fn_irqfd_arg {
+    __u32 fd;

Should the "fd" field be signed?  Should it be an int?  (Perhaps
you're trying to define a fixed kernel API, so __s32 if signed would
be better.)


It looked to me like some interfaces use __u32 and some use __s32. Is one technically correct?

Good question. It depends on how you use it.

It's a file descriptor, so it should be an int, and it appears
that's always a 32-bit signed (for 32 and 64 bit machines).
So the size seems to be right.

Whether it's signed or not I think depends on whether you
ever save an error value in this field. I doubt you do,
but if you do, it should be signed. Otherwise, the largest
value will never exceed INT_MAX/S32_MAX; and in that case
either is fine.

Will Gunyah ever run on a 32-bit machine?

-Alex