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;
>