[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] [PATCH v5 3/8] xen: add basic hypervisor filesystem support
- To: Jan Beulich <jbeulich@xxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>
- From: Julien Grall <julien@xxxxxxx>
- Date: Wed, 19 Feb 2020 16:19:01 +0000
- Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>, George Dunlap <George.Dunlap@xxxxxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Ian Jackson <ian.jackson@xxxxxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx, Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>
- Delivery-date: Wed, 19 Feb 2020 16:19:06 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
Hi,
On 19/02/2020 15:49, Jan Beulich wrote:
On 19.02.2020 09:11, Juergen Gross wrote:
+int hypfs_write_bool(struct hypfs_entry_leaf *leaf,
+ XEN_GUEST_HANDLE_PARAM(void) uaddr, unsigned long ulen)
+{
+ union {
+ char buf[8];
+ uint8_t u8;
+ uint16_t u16;
+ uint32_t u32;
+ uint64_t u64;
+ } u;
+
+ ASSERT(leaf->e.type == XEN_HYPFS_TYPE_UINT && leaf->e.size <= 8);
+
+ if ( ulen != leaf->e.size )
+ return -EDOM;
+
+ if ( copy_from_guest(u.buf, uaddr, ulen) )
+ return -EFAULT;
+
+ switch ( leaf->e.size )
+ {
+ case 1:
+ *(uint8_t *)leaf->write_ptr = !!u.u8;
+ break;
+ case 2:
+ *(uint16_t *)leaf->write_ptr = !!u.u16;
+ break;
+ case 4:
+ *(uint32_t *)leaf->write_ptr = !!u.u32;
+ break;
+ case 8:
+ *(uint64_t *)leaf->write_ptr = !!u.u64;
+ break;
+ }
Looking at this again, is there really a need for uint64_t support
here? I.e. can't you cap at unsigned long (or even unsigned int),
and perhaps additionally avoid use of fixed width types here
altogether (some trickery may be needed for 32-bit's
sizeof(long) == sizeof(int))?
On Arm, we want to have the interface exactly the same for 64-bit and
32-bit. If you plan to not support 8-byte here, this would effectively
mean that 8-byte could not be used on Arm.
However, I can't find any use of hypfs_write_bool, so I am not entirely
sure why we would want to cater size other than 1. Juerge, do you mind
expanding your thoughts?
Cheers,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|