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

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>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 20180420145249.32435-7-peter.maydell@linaro.org
This commit is contained in:
Peter Maydell 2018-04-20 15:52:42 +01:00
parent b82fcd3032
commit a8d78cd0ab
2 changed files with 12 additions and 0 deletions

View File

@ -163,6 +163,9 @@ void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict);
extern Chardev *serial_hds[MAX_SERIAL_PORTS]; 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 */ /* parallel ports */
#define MAX_PARALLEL_PORTS 3 #define MAX_PARALLEL_PORTS 3

9
vl.c
View File

@ -2516,6 +2516,15 @@ static int serial_parse(const char *devname)
return 0; 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 parallel_parse(const char *devname)
{ {
static int index = 0; static int index = 0;