audio: add deprecated_register_soundhw
Add helper function for -soundhw deprecation. It can replace the simple init functions which just call {isa,pci}_create_simple() with a hardcoded type. It also prints a deprecation message. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 20200702132525.6849-4-kraxel@redhat.com
This commit is contained in:
parent
3af87d9169
commit
542e0c557b
@ -22,6 +22,7 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu/option.h"
|
||||
#include "qemu/help_option.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qom/object.h"
|
||||
@ -32,6 +33,7 @@
|
||||
struct soundhw {
|
||||
const char *name;
|
||||
const char *descr;
|
||||
const char *typename;
|
||||
int enabled;
|
||||
int isa;
|
||||
union {
|
||||
@ -65,6 +67,17 @@ void pci_register_soundhw(const char *name, const char *descr,
|
||||
soundhw_count++;
|
||||
}
|
||||
|
||||
void deprecated_register_soundhw(const char *name, const char *descr,
|
||||
int isa, const char *typename)
|
||||
{
|
||||
assert(soundhw_count < ARRAY_SIZE(soundhw) - 1);
|
||||
soundhw[soundhw_count].name = name;
|
||||
soundhw[soundhw_count].descr = descr;
|
||||
soundhw[soundhw_count].isa = isa;
|
||||
soundhw[soundhw_count].typename = typename;
|
||||
soundhw_count++;
|
||||
}
|
||||
|
||||
void select_soundhw(const char *optarg)
|
||||
{
|
||||
struct soundhw *c;
|
||||
@ -136,7 +149,16 @@ void soundhw_init(void)
|
||||
|
||||
for (c = soundhw; c->name; ++c) {
|
||||
if (c->enabled) {
|
||||
if (c->isa) {
|
||||
if (c->typename) {
|
||||
warn_report("'-soundhw %s' is deprecated, "
|
||||
"please use '-device %s' instead",
|
||||
c->name, c->typename);
|
||||
if (c->isa) {
|
||||
isa_create_simple(isa_bus, c->typename);
|
||||
} else {
|
||||
pci_create_simple(pci_bus, -1, c->typename);
|
||||
}
|
||||
} else if (c->isa) {
|
||||
if (!isa_bus) {
|
||||
error_report("ISA bus not available for %s", c->name);
|
||||
exit(1);
|
||||
|
@ -6,6 +6,8 @@ void isa_register_soundhw(const char *name, const char *descr,
|
||||
|
||||
void pci_register_soundhw(const char *name, const char *descr,
|
||||
int (*init_pci)(PCIBus *bus));
|
||||
void deprecated_register_soundhw(const char *name, const char *descr,
|
||||
int isa, const char *typename);
|
||||
|
||||
void soundhw_init(void);
|
||||
void select_soundhw(const char *optarg);
|
||||
|
Loading…
Reference in New Issue
Block a user