Message ID | 20200305010446.17029-3-philmd@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/net,virtfs-proxy-helper: Reduce .data footprint | expand |
> On 5 Mar 2020, at 3:04, Philippe Mathieu-Daudé <philmd@redhat.com> wrote: > > Each array consumes 256KiB of .data. As we do not reassign entries, > we can move it to the .rodata section, and save a total of 1MiB of > .data (size reported on x86_64 host). > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Dmitry Fleytman <dmitry.fleytman@gmail.com> > --- > hw/net/e1000.c | 4 ++-- > hw/net/e1000e_core.c | 4 ++-- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/hw/net/e1000.c b/hw/net/e1000.c > index 972d9b5083..9233248c9a 100644 > --- a/hw/net/e1000.c > +++ b/hw/net/e1000.c > @@ -1151,7 +1151,7 @@ set_ims(E1000State *s, int index, uint32_t val) > > #define getreg(x) [x] = mac_readreg > typedef uint32_t (*readops)(E1000State *, int); > -static readops macreg_readops[] = { > +static const readops macreg_readops[] = { > getreg(PBA), getreg(RCTL), getreg(TDH), getreg(TXDCTL), > getreg(WUFC), getreg(TDT), getreg(CTRL), getreg(LEDCTL), > getreg(MANC), getreg(MDIC), getreg(SWSM), getreg(STATUS), > @@ -1207,7 +1207,7 @@ enum { NREADOPS = ARRAY_SIZE(macreg_readops) }; > > #define putreg(x) [x] = mac_writereg > typedef void (*writeops)(E1000State *, int, uint32_t); > -static writeops macreg_writeops[] = { > +static const writeops macreg_writeops[] = { > putreg(PBA), putreg(EERD), putreg(SWSM), putreg(WUFC), > putreg(TDBAL), putreg(TDBAH), putreg(TXDCTL), putreg(RDBAH), > putreg(RDBAL), putreg(LEDCTL), putreg(VET), putreg(FCRUC), > diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c > index 38bdb90114..df957e0c1a 100644 > --- a/hw/net/e1000e_core.c > +++ b/hw/net/e1000e_core.c > @@ -2856,7 +2856,7 @@ e1000e_set_gcr(E1000ECore *core, int index, uint32_t val) > > #define e1000e_getreg(x) [x] = e1000e_mac_readreg > typedef uint32_t (*readops)(E1000ECore *, int); > -static readops e1000e_macreg_readops[] = { > +static const readops e1000e_macreg_readops[] = { > e1000e_getreg(PBA), > e1000e_getreg(WUFC), > e1000e_getreg(MANC), > @@ -3063,7 +3063,7 @@ enum { E1000E_NREADOPS = ARRAY_SIZE(e1000e_macreg_readops) }; > > #define e1000e_putreg(x) [x] = e1000e_mac_writereg > typedef void (*writeops)(E1000ECore *, int, uint32_t); > -static writeops e1000e_macreg_writeops[] = { > +static const writeops e1000e_macreg_writeops[] = { > e1000e_putreg(PBA), > e1000e_putreg(SWSM), > e1000e_putreg(WUFC), > -- > 2.21.1 >
diff --git a/hw/net/e1000.c b/hw/net/e1000.c index 972d9b5083..9233248c9a 100644 --- a/hw/net/e1000.c +++ b/hw/net/e1000.c @@ -1151,7 +1151,7 @@ set_ims(E1000State *s, int index, uint32_t val) #define getreg(x) [x] = mac_readreg typedef uint32_t (*readops)(E1000State *, int); -static readops macreg_readops[] = { +static const readops macreg_readops[] = { getreg(PBA), getreg(RCTL), getreg(TDH), getreg(TXDCTL), getreg(WUFC), getreg(TDT), getreg(CTRL), getreg(LEDCTL), getreg(MANC), getreg(MDIC), getreg(SWSM), getreg(STATUS), @@ -1207,7 +1207,7 @@ enum { NREADOPS = ARRAY_SIZE(macreg_readops) }; #define putreg(x) [x] = mac_writereg typedef void (*writeops)(E1000State *, int, uint32_t); -static writeops macreg_writeops[] = { +static const writeops macreg_writeops[] = { putreg(PBA), putreg(EERD), putreg(SWSM), putreg(WUFC), putreg(TDBAL), putreg(TDBAH), putreg(TXDCTL), putreg(RDBAH), putreg(RDBAL), putreg(LEDCTL), putreg(VET), putreg(FCRUC), diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c index 38bdb90114..df957e0c1a 100644 --- a/hw/net/e1000e_core.c +++ b/hw/net/e1000e_core.c @@ -2856,7 +2856,7 @@ e1000e_set_gcr(E1000ECore *core, int index, uint32_t val) #define e1000e_getreg(x) [x] = e1000e_mac_readreg typedef uint32_t (*readops)(E1000ECore *, int); -static readops e1000e_macreg_readops[] = { +static const readops e1000e_macreg_readops[] = { e1000e_getreg(PBA), e1000e_getreg(WUFC), e1000e_getreg(MANC), @@ -3063,7 +3063,7 @@ enum { E1000E_NREADOPS = ARRAY_SIZE(e1000e_macreg_readops) }; #define e1000e_putreg(x) [x] = e1000e_mac_writereg typedef void (*writeops)(E1000ECore *, int, uint32_t); -static writeops e1000e_macreg_writeops[] = { +static const writeops e1000e_macreg_writeops[] = { e1000e_putreg(PBA), e1000e_putreg(SWSM), e1000e_putreg(WUFC),
Each array consumes 256KiB of .data. As we do not reassign entries, we can move it to the .rodata section, and save a total of 1MiB of .data (size reported on x86_64 host). Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- hw/net/e1000.c | 4 ++-- hw/net/e1000e_core.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-)