Message ID | 20180420145249.32435-12-peter.maydell@linaro.org |
---|---|
State | Accepted |
Commit | 2cd4f8acb0e3416c7431d0e48d03f1a4c4a64cc1 |
Headers | show |
Series | Drop compile time limit on number of serial ports | expand |
On 04/20/2018 11:52 AM, Peter Maydell wrote: > The superio device has a limit on the number of serial > ports it supports which is really only there because > it has a fixed-size array serial[]. This limit isn't > related particularly to the global MAX_SERIAL_PORTS limit, > so use a different #define for it. > > (In practice the users of superio only ever want 2 serial ports.) The F81866A and IT8783 have 6 uarts :) For this reason I'd prefer to dynamically allocate ISASuperIODevice->serial, I might add that later on top of your series. > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > include/hw/isa/superio.h | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/include/hw/isa/superio.h b/include/hw/isa/superio.h > index f9ba29aa30..345f006081 100644 > --- a/include/hw/isa/superio.h > +++ b/include/hw/isa/superio.h > @@ -22,13 +22,15 @@ > #define ISA_SUPERIO_CLASS(klass) \ > OBJECT_CLASS_CHECK(ISASuperIOClass, (klass), TYPE_ISA_SUPERIO) > > +#define SUPERIO_MAX_SERIAL_PORTS 4 > + > typedef struct ISASuperIODevice { > /*< private >*/ > ISADevice parent_obj; > /*< public >*/ > > ISADevice *parallel[MAX_PARALLEL_PORTS]; > - ISADevice *serial[MAX_SERIAL_PORTS]; > + ISADevice *serial[SUPERIO_MAX_SERIAL_PORTS]; > ISADevice *floppy; > ISADevice *kbc; > ISADevice *ide; >
diff --git a/include/hw/isa/superio.h b/include/hw/isa/superio.h index f9ba29aa30..345f006081 100644 --- a/include/hw/isa/superio.h +++ b/include/hw/isa/superio.h @@ -22,13 +22,15 @@ #define ISA_SUPERIO_CLASS(klass) \ OBJECT_CLASS_CHECK(ISASuperIOClass, (klass), TYPE_ISA_SUPERIO) +#define SUPERIO_MAX_SERIAL_PORTS 4 + typedef struct ISASuperIODevice { /*< private >*/ ISADevice parent_obj; /*< public >*/ ISADevice *parallel[MAX_PARALLEL_PORTS]; - ISADevice *serial[MAX_SERIAL_PORTS]; + ISADevice *serial[SUPERIO_MAX_SERIAL_PORTS]; ISADevice *floppy; ISADevice *kbc; ISADevice *ide;
The superio device has a limit on the number of serial ports it supports which is really only there because it has a fixed-size array serial[]. This limit isn't related particularly to the global MAX_SERIAL_PORTS limit, so use a different #define for it. (In practice the users of superio only ever want 2 serial ports.) Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- include/hw/isa/superio.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -- 2.17.0