OK, I wil chang all flags to 32bits
It is a little strange that the compiler give no warning when losing precision.


-----Original Message-----
From: Richard Henderson [mailto:richard.hender...@linaro.org] 
Sent: Wednesday, July 18, 2018 12:03 AM
To: junyan...@gmx.com; qemu-devel@nongnu.org
Cc: ehabk...@redhat.com; imamm...@redhat.com; pbonz...@redhat.com; 
crosthwaite.pe...@gmail.com; xiaoguangrong.e...@gmail.com; m...@redhat.com; 
quint...@redhat.com; dgilb...@redhat.com; stefa...@redhat.com; Zhang, Yi Z 
<yi.z.zh...@intel.com>; He, Junyan <junyan...@intel.com>; Haozhong Zhang 
<haozhong.zh...@intel.com>
Subject: Re: [PATCH 2/7 V10] memory, exec: switch file ram allocation functions 
to 'flags' parameters

On 07/16/2018 11:32 PM, junyan...@gmx.com wrote:
>  RAMBlock *qemu_ram_alloc_from_fd(ram_addr_t size, MemoryRegion *mr,
> -                                 bool share, int fd,
> +                                 uint64_t ram_flags, int fd,
>                                   Error **errp)  {
>      RAMBlock *new_block;
> @@ -2280,14 +2280,14 @@ RAMBlock *qemu_ram_alloc_from_fd(ram_addr_t size, 
> MemoryRegion *mr,
>      new_block->mr = mr;
>      new_block->used_length = size;
>      new_block->max_length = size;
> -    new_block->flags = share ? RAM_SHARED : 0;
> +    new_block->flags = ram_flags;

The type of "flags" within RAMBlock is uint32_t.

You should either change the member type in the struct, or change the argument 
type in all of these functions.

More likely the latter, since you seem to have just five used bits at the 
moment.


r~

Reply via email to