From: Blue Swirl <blauwirbel@gmail.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [4763] Add an opaque parameter to boot_set API, move function to monitor.c
Date: Fri, 20 Jun 2008 16:25:06 +0000 [thread overview]
Message-ID: <E1K9jQA-0002g0-RO@cvs.savannah.gnu.org> (raw)
Revision: 4763
http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=4763
Author: blueswir1
Date: 2008-06-20 16:25:06 +0000 (Fri, 20 Jun 2008)
Log Message:
-----------
Add an opaque parameter to boot_set API, move function to monitor.c
Modified Paths:
--------------
trunk/hw/hw.h
trunk/hw/pc.c
trunk/monitor.c
trunk/vl.c
Modified: trunk/hw/hw.h
===================================================================
--- trunk/hw/hw.h 2008-06-20 15:29:38 UTC (rev 4762)
+++ trunk/hw/hw.h 2008-06-20 16:25:06 UTC (rev 4763)
@@ -94,9 +94,8 @@
/* handler to set the boot_device for a specific type of QEMUMachine */
/* return 0 if success */
-typedef int QEMUBootSetHandler(const char *boot_device);
-extern QEMUBootSetHandler *qemu_boot_set_handler;
-void qemu_register_boot_set(QEMUBootSetHandler *func);
+typedef int QEMUBootSetHandler(void *opaque, const char *boot_device);
+void qemu_register_boot_set(QEMUBootSetHandler *func, void *opaque);
/* These should really be in isa.h, but are here to make pc.h happy. */
typedef void (IOPortWriteFunc)(void *opaque, uint32_t address, uint32_t data);
Modified: trunk/hw/pc.c
===================================================================
--- trunk/hw/pc.c 2008-06-20 15:29:38 UTC (rev 4762)
+++ trunk/hw/pc.c 2008-06-20 16:25:06 UTC (rev 4763)
@@ -192,10 +192,10 @@
/* copy/pasted from cmos_init, should be made a general function
and used there as well */
-int pc_boot_set(const char *boot_device)
+static int pc_boot_set(void *opaque, const char *boot_device)
{
#define PC_MAX_BOOT_DEVICES 3
- RTCState *s = rtc_state;
+ RTCState *s = (RTCState *)opaque;
int nbds, bds[3] = { 0, };
int i;
@@ -741,8 +741,6 @@
below_4g_mem_size = ram_size;
}
- qemu_register_boot_set(pc_boot_set);
-
linux_boot = (kernel_filename != NULL);
/* init CPUs */
@@ -917,6 +915,8 @@
rtc_state = rtc_init(0x70, i8259[8]);
+ qemu_register_boot_set(pc_boot_set, rtc_state);
+
register_ioport_read(0x92, 1, 1, ioport92_read, NULL);
register_ioport_write(0x92, 1, 1, ioport92_write, NULL);
Modified: trunk/monitor.c
===================================================================
--- trunk/monitor.c 2008-06-20 15:29:38 UTC (rev 4762)
+++ trunk/monitor.c 2008-06-20 16:25:06 UTC (rev 4763)
@@ -1044,12 +1044,22 @@
suffix, addr, size * 2, val);
}
+/* boot_set handler */
+static QEMUBootSetHandler *qemu_boot_set_handler = NULL;
+static void *boot_opaque;
+
+void qemu_register_boot_set(QEMUBootSetHandler *func, void *opaque)
+{
+ qemu_boot_set_handler = func;
+ boot_opaque = opaque;
+}
+
static void do_boot_set(const char *bootdevice)
{
int res;
if (qemu_boot_set_handler) {
- res = qemu_boot_set_handler(bootdevice);
+ res = qemu_boot_set_handler(boot_opaque, bootdevice);
if (res == 0)
term_printf("boot device list now set to %s\n", bootdevice);
else
Modified: trunk/vl.c
===================================================================
--- trunk/vl.c 2008-06-20 15:29:38 UTC (rev 4762)
+++ trunk/vl.c 2008-06-20 16:25:06 UTC (rev 4763)
@@ -6908,14 +6908,6 @@
cpu_interrupt(cpu_single_env, CPU_INTERRUPT_EXIT);
}
-/* boot_set handler */
-QEMUBootSetHandler *qemu_boot_set_handler = NULL;
-
-void qemu_register_boot_set(QEMUBootSetHandler *func)
-{
- qemu_boot_set_handler = func;
-}
-
void main_loop_wait(int timeout)
{
IOHandlerRecord *ioh;
reply other threads:[~2008-06-20 16:25 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=E1K9jQA-0002g0-RO@cvs.savannah.gnu.org \
--to=blauwirbel@gmail.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).