Message ID | 5571AC870200007800081573@mail.emea.novell.com |
---|---|
State | New |
Headers | show |
On Fri, 5 Jun 2015, Jan Beulich wrote: > This is done indirectly by adjusting two typedefs and helps emphasizing > that the respective tables aren't supposed to be modified at runtime > (as they may be shared between devices). > > Signed-off-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> > --- a/qemu/upstream/hw/xen/xen_pt.h > +++ b/qemu/upstream/hw/xen/xen_pt.h > @@ -31,7 +31,7 @@ void xen_pt_log(const PCIDevice *d, cons > /* Helper */ > #define XEN_PFN(x) ((x) >> XC_PAGE_SHIFT) > > -typedef struct XenPTRegInfo XenPTRegInfo; > +typedef const struct XenPTRegInfo XenPTRegInfo; > typedef struct XenPTReg XenPTReg; > > typedef struct XenPCIPassthroughState XenPCIPassthroughState; > @@ -135,11 +135,11 @@ struct XenPTReg { > uint32_t data; /* emulated value */ > }; > > -typedef struct XenPTRegGroupInfo XenPTRegGroupInfo; > +typedef const struct XenPTRegGroupInfo XenPTRegGroupInfo; > > /* emul reg group size initialize method */ > typedef int (*xen_pt_reg_size_init_fn) > - (XenPCIPassthroughState *, const XenPTRegGroupInfo *, > + (XenPCIPassthroughState *, XenPTRegGroupInfo *, > uint32_t base_offset, uint8_t *size); > > /* emulated register group information */ > @@ -154,7 +154,7 @@ struct XenPTRegGroupInfo { > /* emul register group management table */ > typedef struct XenPTRegGroup { > QLIST_ENTRY(XenPTRegGroup) entries; > - const XenPTRegGroupInfo *reg_grp; > + XenPTRegGroupInfo *reg_grp; > uint32_t base_offset; > uint8_t size; > QLIST_HEAD(, XenPTReg) reg_tbl_list; > --- a/qemu/upstream/hw/xen/xen_pt_config_init.c > +++ b/qemu/upstream/hw/xen/xen_pt_config_init.c > @@ -96,8 +96,7 @@ XenPTReg *xen_pt_find_reg(XenPTRegGroup > } > > static uint32_t get_throughable_mask(const XenPCIPassthroughState *s, > - const XenPTRegInfo *reg, > - uint32_t valid_mask) > + XenPTRegInfo *reg, uint32_t valid_mask) > { > uint32_t throughable_mask = ~(reg->emu_mask | reg->ro_mask);
>>> On 16.06.15 at 16:27, <stefano.stabellini@eu.citrix.com> wrote: > On Fri, 5 Jun 2015, Jan Beulich wrote: >> This is done indirectly by adjusting two typedefs and helps emphasizing >> that the respective tables aren't supposed to be modified at runtime >> (as they may be shared between devices). >> >> Signed-off-by: Jan Beulich <jbeulich@suse.com> > > Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Perhaps patch 5 and 6 could go in right away, without waiting for the issues on the other ones addressed? After all, it may well be that patch 1 will be dropped following the discussion on the hypervisor side patch series... Jan
On Tue, 16 Jun 2015, Jan Beulich wrote: > >>> On 16.06.15 at 16:27, <stefano.stabellini@eu.citrix.com> wrote: > > On Fri, 5 Jun 2015, Jan Beulich wrote: > >> This is done indirectly by adjusting two typedefs and helps emphasizing > >> that the respective tables aren't supposed to be modified at runtime > >> (as they may be shared between devices). > >> > >> Signed-off-by: Jan Beulich <jbeulich@suse.com> > > > > Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> > > Perhaps patch 5 and 6 could go in right away, without waiting > for the issues on the other ones addressed? After all, it may > well be that patch 1 will be dropped following the discussion on > the hypervisor side patch series... Yes, I'll queue them up.
--- a/qemu/upstream/hw/xen/xen_pt.h +++ b/qemu/upstream/hw/xen/xen_pt.h @@ -31,7 +31,7 @@ void xen_pt_log(const PCIDevice *d, cons /* Helper */ #define XEN_PFN(x) ((x) >> XC_PAGE_SHIFT) -typedef struct XenPTRegInfo XenPTRegInfo; +typedef const struct XenPTRegInfo XenPTRegInfo; typedef struct XenPTReg XenPTReg; typedef struct XenPCIPassthroughState XenPCIPassthroughState; @@ -135,11 +135,11 @@ struct XenPTReg { uint32_t data; /* emulated value */ }; -typedef struct XenPTRegGroupInfo XenPTRegGroupInfo; +typedef const struct XenPTRegGroupInfo XenPTRegGroupInfo; /* emul reg group size initialize method */ typedef int (*xen_pt_reg_size_init_fn) - (XenPCIPassthroughState *, const XenPTRegGroupInfo *, + (XenPCIPassthroughState *, XenPTRegGroupInfo *, uint32_t base_offset, uint8_t *size); /* emulated register group information */ @@ -154,7 +154,7 @@ struct XenPTRegGroupInfo { /* emul register group management table */ typedef struct XenPTRegGroup { QLIST_ENTRY(XenPTRegGroup) entries; - const XenPTRegGroupInfo *reg_grp; + XenPTRegGroupInfo *reg_grp; uint32_t base_offset; uint8_t size; QLIST_HEAD(, XenPTReg) reg_tbl_list; --- a/qemu/upstream/hw/xen/xen_pt_config_init.c +++ b/qemu/upstream/hw/xen/xen_pt_config_init.c @@ -96,8 +96,7 @@ XenPTReg *xen_pt_find_reg(XenPTRegGroup } static uint32_t get_throughable_mask(const XenPCIPassthroughState *s, - const XenPTRegInfo *reg, - uint32_t valid_mask) + XenPTRegInfo *reg, uint32_t valid_mask) { uint32_t throughable_mask = ~(reg->emu_mask | reg->ro_mask);