diff mbox series

[13/13] vl.c: new function max_serial_hds()

Message ID 20180420145249.32435-14-peter.maydell@linaro.org
State Accepted
Headers show
Series Drop compile time limit on number of serial ports | expand

Commit Message

Peter Maydell April 20, 2018, 2:52 p.m. UTC
Create a new function max_serial_hds() which returns the number of
serial ports defined by the user. This is needed only by spapr.

This allows us to remove the MAX_SERIAL_PORTS define.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

---
 include/sysemu/sysemu.h | 6 ++++--
 hw/ppc/spapr.c          | 2 +-
 vl.c                    | 5 +++++
 3 files changed, 10 insertions(+), 3 deletions(-)

-- 
2.17.0

Comments

Philippe Mathieu-Daudé April 20, 2018, 5:50 p.m. UTC | #1
On 04/20/2018 11:52 AM, Peter Maydell wrote:
> Create a new function max_serial_hds() which returns the number of

> serial ports defined by the user. This is needed only by spapr.

> This allows us to remove the MAX_SERIAL_PORTS define.

> 

> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

> ---

>  include/sysemu/sysemu.h | 6 ++++--

>  hw/ppc/spapr.c          | 2 +-

>  vl.c                    | 5 +++++

>  3 files changed, 10 insertions(+), 3 deletions(-)

> 

> diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h

> index 989cbc2b7b..612659a718 100644

> --- a/include/sysemu/sysemu.h

> +++ b/include/sysemu/sysemu.h

> @@ -159,10 +159,12 @@ void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict);

>  

>  /* serial ports */

>  

> -#define MAX_SERIAL_PORTS 4

> -

>  /* Return the Chardev for serial port i, or NULL if none */

>  Chardev *serial_hd(int i);

> +/* return the number of serial ports defined by the user. serial_hd(i)

> + * will always return NULL for any i which is greater than or equal to this.

> + */

> +int max_serial_hds(void);


What about naming it serial_hds_count() to keep this under the serial_
namespace? And about using a size_t for num_serial_hds?

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


>  

>  /* parallel ports */

>  

> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c

> index b0ecfaca9e..8d2d36a606 100644

> --- a/hw/ppc/spapr.c

> +++ b/hw/ppc/spapr.c

> @@ -2589,7 +2589,7 @@ static void spapr_machine_init(MachineState *machine)

>      /* Set up VIO bus */

>      spapr->vio_bus = spapr_vio_bus_init();

>  

> -    for (i = 0; i < MAX_SERIAL_PORTS; i++) {

> +    for (i = 0; i < max_serial_hds(); i++) {

>          if (serial_hd(i)) {

>              spapr_vty_create(spapr->vio_bus, serial_hd(i));

>          }

> diff --git a/vl.c b/vl.c

> index a8a98c5a37..b587187052 100644

> --- a/vl.c

> +++ b/vl.c

> @@ -2524,6 +2524,11 @@ Chardev *serial_hd(int i)

>      return NULL;

>  }

>  

> +int max_serial_hds(void)

> +{

> +    return num_serial_hds;

> +}

> +

>  static int parallel_parse(const char *devname)

>  {

>      static int index = 0;

>
Thomas Huth April 25, 2018, 3:19 p.m. UTC | #2
On 20.04.2018 16:52, Peter Maydell wrote:
> Create a new function max_serial_hds() which returns the number of

> serial ports defined by the user. This is needed only by spapr.

> 

> This allows us to remove the MAX_SERIAL_PORTS define.

> 

> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

> ---

>  include/sysemu/sysemu.h | 6 ++++--

>  hw/ppc/spapr.c          | 2 +-

>  vl.c                    | 5 +++++

>  3 files changed, 10 insertions(+), 3 deletions(-)

> 

> diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h

> index 989cbc2b7b..612659a718 100644

> --- a/include/sysemu/sysemu.h

> +++ b/include/sysemu/sysemu.h

> @@ -159,10 +159,12 @@ void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict);

>  

>  /* serial ports */

>  

> -#define MAX_SERIAL_PORTS 4

> -

>  /* Return the Chardev for serial port i, or NULL if none */

>  Chardev *serial_hd(int i);

> +/* return the number of serial ports defined by the user. serial_hd(i)

> + * will always return NULL for any i which is greater than or equal to this.

> + */

> +int max_serial_hds(void);

>  

>  /* parallel ports */

>  

> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c

> index b0ecfaca9e..8d2d36a606 100644

> --- a/hw/ppc/spapr.c

> +++ b/hw/ppc/spapr.c

> @@ -2589,7 +2589,7 @@ static void spapr_machine_init(MachineState *machine)

>      /* Set up VIO bus */

>      spapr->vio_bus = spapr_vio_bus_init();

>  

> -    for (i = 0; i < MAX_SERIAL_PORTS; i++) {

> +    for (i = 0; i < max_serial_hds(); i++) {

>          if (serial_hd(i)) {

>              spapr_vty_create(spapr->vio_bus, serial_hd(i));

>          }

> diff --git a/vl.c b/vl.c

> index a8a98c5a37..b587187052 100644

> --- a/vl.c

> +++ b/vl.c

> @@ -2524,6 +2524,11 @@ Chardev *serial_hd(int i)

>      return NULL;

>  }

>  

> +int max_serial_hds(void)

> +{

> +    return num_serial_hds;

> +}

> +

>  static int parallel_parse(const char *devname)

>  {

>      static int index = 0;

> 


Reviewed-by: Thomas Huth <thuth@redhat.com>
Peter Maydell April 26, 2018, 1 p.m. UTC | #3
On 20 April 2018 at 18:50, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
> On 04/20/2018 11:52 AM, Peter Maydell wrote:

>> Create a new function max_serial_hds() which returns the number of

>> serial ports defined by the user. This is needed only by spapr.

>> This allows us to remove the MAX_SERIAL_PORTS define.

>>

>> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

>> ---

>>  include/sysemu/sysemu.h | 6 ++++--

>>  hw/ppc/spapr.c          | 2 +-

>>  vl.c                    | 5 +++++

>>  3 files changed, 10 insertions(+), 3 deletions(-)

>>

>> diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h

>> index 989cbc2b7b..612659a718 100644

>> --- a/include/sysemu/sysemu.h

>> +++ b/include/sysemu/sysemu.h

>> @@ -159,10 +159,12 @@ void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict);

>>

>>  /* serial ports */

>>

>> -#define MAX_SERIAL_PORTS 4

>> -

>>  /* Return the Chardev for serial port i, or NULL if none */

>>  Chardev *serial_hd(int i);

>> +/* return the number of serial ports defined by the user. serial_hd(i)

>> + * will always return NULL for any i which is greater than or equal to this.

>> + */

>> +int max_serial_hds(void);

>

> What about naming it serial_hds_count() to keep this under the serial_

> namespace?


OK, makes sense.

> And about using a size_t for num_serial_hds?


This doesn't seem worthwhile though.

Since the rename of max_serial_hds is the only change here, I
propose to apply this to master (fixing up the function name in
this patch in the process), to reduce the number of conflicts
with other changes currently in-flight.

thanks
-- PMM
diff mbox series

Patch

diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h
index 989cbc2b7b..612659a718 100644
--- a/include/sysemu/sysemu.h
+++ b/include/sysemu/sysemu.h
@@ -159,10 +159,12 @@  void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict);
 
 /* serial ports */
 
-#define MAX_SERIAL_PORTS 4
-
 /* Return the Chardev for serial port i, or NULL if none */
 Chardev *serial_hd(int i);
+/* return the number of serial ports defined by the user. serial_hd(i)
+ * will always return NULL for any i which is greater than or equal to this.
+ */
+int max_serial_hds(void);
 
 /* parallel ports */
 
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index b0ecfaca9e..8d2d36a606 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -2589,7 +2589,7 @@  static void spapr_machine_init(MachineState *machine)
     /* Set up VIO bus */
     spapr->vio_bus = spapr_vio_bus_init();
 
-    for (i = 0; i < MAX_SERIAL_PORTS; i++) {
+    for (i = 0; i < max_serial_hds(); i++) {
         if (serial_hd(i)) {
             spapr_vty_create(spapr->vio_bus, serial_hd(i));
         }
diff --git a/vl.c b/vl.c
index a8a98c5a37..b587187052 100644
--- a/vl.c
+++ b/vl.c
@@ -2524,6 +2524,11 @@  Chardev *serial_hd(int i)
     return NULL;
 }
 
+int max_serial_hds(void)
+{
+    return num_serial_hds;
+}
+
 static int parallel_parse(const char *devname)
 {
     static int index = 0;