diff mbox series

[06/13] vl.c: Provide accessor function serial_hd() for serial_hds[] array

Message ID 20180420145249.32435-7-peter.maydell@linaro.org
State Accepted
Commit a8d78cd0ab6204b6ee8897e30d0fbb9c8979ddca
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
Provide an accessor function serial_hd() to return the Chardev
(if any) associated with the numbered serial port. This will
be used to replace direct accesses to the serial_hds[] array,
so that calling code doesn't need to care about the size of
that array.

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

---
 include/sysemu/sysemu.h | 3 +++
 vl.c                    | 9 +++++++++
 2 files changed, 12 insertions(+)

-- 
2.17.0

Comments

Philippe Mathieu-Daudé April 25, 2018, 2:39 p.m. UTC | #1
On 04/20/2018 11:52 AM, Peter Maydell wrote:
> Provide an accessor function serial_hd() to return the Chardev

> (if any) associated with the numbered serial port. This will

> be used to replace direct accesses to the serial_hds[] array,

> so that calling code doesn't need to care about the size of

> that array.

> 

> 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/sysemu/sysemu.h | 3 +++

>  vl.c                    | 9 +++++++++

>  2 files changed, 12 insertions(+)

> 

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

> index 2b42151c63..bd5b55c514 100644

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

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

> @@ -163,6 +163,9 @@ void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict);

>  

>  extern Chardev *serial_hds[MAX_SERIAL_PORTS];

>  

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

> +Chardev *serial_hd(int i);

> +

>  /* parallel ports */

>  

>  #define MAX_PARALLEL_PORTS 3

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

> index fce1fd12d8..6daf026da6 100644

> --- a/vl.c

> +++ b/vl.c

> @@ -2516,6 +2516,15 @@ static int serial_parse(const char *devname)

>      return 0;

>  }

>  

> +Chardev *serial_hd(int i)

> +{

> +    assert(i >= 0);

> +    if (i < ARRAY_SIZE(serial_hds)) {

> +        return serial_hds[i];

> +    }

> +    return NULL;

> +}

> +

>  static int parallel_parse(const char *devname)

>  {

>      static int index = 0;

>
Thomas Huth April 25, 2018, 2:43 p.m. UTC | #2
On 20.04.2018 16:52, Peter Maydell wrote:
> Provide an accessor function serial_hd() to return the Chardev

> (if any) associated with the numbered serial port. This will

> be used to replace direct accesses to the serial_hds[] array,

> so that calling code doesn't need to care about the size of

> that array.

> 

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

> ---

>  include/sysemu/sysemu.h | 3 +++

>  vl.c                    | 9 +++++++++

>  2 files changed, 12 insertions(+)

> 

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

> index 2b42151c63..bd5b55c514 100644

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

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

> @@ -163,6 +163,9 @@ void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict);

>  

>  extern Chardev *serial_hds[MAX_SERIAL_PORTS];

>  

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

> +Chardev *serial_hd(int i);

> +

>  /* parallel ports */

>  

>  #define MAX_PARALLEL_PORTS 3

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

> index fce1fd12d8..6daf026da6 100644

> --- a/vl.c

> +++ b/vl.c

> @@ -2516,6 +2516,15 @@ static int serial_parse(const char *devname)

>      return 0;

>  }

>  

> +Chardev *serial_hd(int i)

> +{

> +    assert(i >= 0);

> +    if (i < ARRAY_SIZE(serial_hds)) {

> +        return serial_hds[i];

> +    }

> +    return NULL;

> +}

> +

>  static int parallel_parse(const char *devname)

>  {

>      static int index = 0;

> 


Reviewed-by: Thomas Huth <thuth@redhat.com>
diff mbox series

Patch

diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h
index 2b42151c63..bd5b55c514 100644
--- a/include/sysemu/sysemu.h
+++ b/include/sysemu/sysemu.h
@@ -163,6 +163,9 @@  void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict);
 
 extern Chardev *serial_hds[MAX_SERIAL_PORTS];
 
+/* Return the Chardev for serial port i, or NULL if none */
+Chardev *serial_hd(int i);
+
 /* parallel ports */
 
 #define MAX_PARALLEL_PORTS 3
diff --git a/vl.c b/vl.c
index fce1fd12d8..6daf026da6 100644
--- a/vl.c
+++ b/vl.c
@@ -2516,6 +2516,15 @@  static int serial_parse(const char *devname)
     return 0;
 }
 
+Chardev *serial_hd(int i)
+{
+    assert(i >= 0);
+    if (i < ARRAY_SIZE(serial_hds)) {
+        return serial_hds[i];
+    }
+    return NULL;
+}
+
 static int parallel_parse(const char *devname)
 {
     static int index = 0;