All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luca Tettamanti <kronos.it-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: qemu-devel-qX2TKyscuCcdnm+yROfE0A@public.gmane.org
Cc: kvm-devel-TtF/mJH4Jtrk1uMJSBkQmQ@public.gmane.org,
	Luca Tettamanti
	<kronos.it-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Subject: [PATCH 2/4] Add -clock option.
Date: Sat, 18 Aug 2007 01:11:51 +0200	[thread overview]
Message-ID: <20070817231406.125747382@gmail.com> (raw)
In-Reply-To: 20070817231149.544849769@gmail.com

[-- Attachment #1: clock-select --]
[-- Type: text/plain, Size: 3289 bytes --]

Allow user to override the list of available alarm timers and their
priority. The format of the options is -clock clk1,clk2,...

Signed-off-by: Luca Tettamanti <kronos.it-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

---
 vl.c |   72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)

Index: qemu/vl.c
===================================================================
--- qemu.orig/vl.c	2007-08-17 17:31:09.000000000 +0200
+++ qemu/vl.c	2007-08-18 00:40:22.000000000 +0200
@@ -829,6 +829,71 @@
     {NULL, }
 };
 
+static void show_available_alarms()
+{
+    int i;
+
+    printf("Available alarm timers, in order of precedence:\n");
+    for (i = 0; alarm_timers[i].name; i++)
+        printf("%s\n", alarm_timers[i].name);
+}
+
+static void configure_alarms(char const *opt)
+{
+    int i;
+    int cur = 0;
+    int count = (sizeof(alarm_timers) / sizeof(*alarm_timers)) - 1;
+    char *arg;
+    char *name;
+
+    if (!strcmp(opt, "help")) {
+        show_available_alarms();
+        exit(0);
+    }
+
+    arg = strdup(opt);
+
+    /* Reorder the array */
+    name = strtok(arg, ",");
+    while (name) {
+        struct qemu_alarm_timer tmp;
+
+        for (i = 0; i < count; i++) {
+            if (!strcmp(alarm_timers[i].name, name))
+                break;
+        }
+
+        if (i == count) {
+            fprintf(stderr, "Unknown clock %s\n", name);
+            goto next;
+        }
+
+        if (i < cur)
+            /* Ignore */
+            goto next;
+
+	/* Swap */
+        tmp = alarm_timers[i];
+        alarm_timers[i] = alarm_timers[cur];
+        alarm_timers[cur] = tmp;
+
+        cur++;
+next:
+        name = strtok(NULL, ",");
+    }
+
+    free(arg);
+
+    if (cur) {
+	/* Disable remaining timers */
+        for (i = cur; i < count; i++)
+            alarm_timers[i].name = NULL;
+    }
+
+    /* debug */
+    show_available_alarms();
+}
+
 QEMUClock *rt_clock;
 QEMUClock *vm_clock;
 
@@ -6791,6 +6856,8 @@
 #ifdef TARGET_SPARC
            "-prom-env variable=value  set OpenBIOS nvram variables\n"
 #endif
+           "-clock          force the use of the given methods for timer alarm.\n"
+           "                To see what timers are available use -clock help\n"
            "\n"
            "During emulation, the following keys are useful:\n"
            "ctrl-alt-f      toggle full screen\n"
@@ -6888,6 +6955,7 @@
     QEMU_OPTION_name,
     QEMU_OPTION_prom_env,
     QEMU_OPTION_old_param,
+    QEMU_OPTION_clock,
 };
 
 typedef struct QEMUOption {
@@ -6992,6 +7060,7 @@
 #if defined(TARGET_ARM)
     { "old-param", 0, QEMU_OPTION_old_param },
 #endif
+    { "clock", HAS_ARG, QEMU_OPTION_clock },
     { NULL },
 };
 
@@ -7771,6 +7840,9 @@
             case QEMU_OPTION_old_param:
                 old_param = 1;
 #endif
+            case QEMU_OPTION_clock:
+                configure_alarms(optarg);
+                break;
             }
         }
     }

-- 

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/

WARNING: multiple messages have this Message-ID (diff)
From: Luca Tettamanti <kronos.it@gmail.com>
To: qemu-devel@nongnu.org
Cc: kvm-devel@lists.sf.net, Luca Tettamanti <kronos.it@gmail.com>
Subject: [Qemu-devel] [PATCH 2/4] Add -clock option.
Date: Sat, 18 Aug 2007 01:11:51 +0200	[thread overview]
Message-ID: <20070817231406.125747382@gmail.com> (raw)
In-Reply-To: 20070817231149.544849769@gmail.com

[-- Attachment #1: clock-select --]
[-- Type: text/plain, Size: 2942 bytes --]

Allow user to override the list of available alarm timers and their
priority. The format of the options is -clock clk1,clk2,...

Signed-off-by: Luca Tettamanti <kronos.it@gmail.com>

---
 vl.c |   72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)

Index: qemu/vl.c
===================================================================
--- qemu.orig/vl.c	2007-08-17 17:31:09.000000000 +0200
+++ qemu/vl.c	2007-08-18 00:40:22.000000000 +0200
@@ -829,6 +829,71 @@
     {NULL, }
 };
 
+static void show_available_alarms()
+{
+    int i;
+
+    printf("Available alarm timers, in order of precedence:\n");
+    for (i = 0; alarm_timers[i].name; i++)
+        printf("%s\n", alarm_timers[i].name);
+}
+
+static void configure_alarms(char const *opt)
+{
+    int i;
+    int cur = 0;
+    int count = (sizeof(alarm_timers) / sizeof(*alarm_timers)) - 1;
+    char *arg;
+    char *name;
+
+    if (!strcmp(opt, "help")) {
+        show_available_alarms();
+        exit(0);
+    }
+
+    arg = strdup(opt);
+
+    /* Reorder the array */
+    name = strtok(arg, ",");
+    while (name) {
+        struct qemu_alarm_timer tmp;
+
+        for (i = 0; i < count; i++) {
+            if (!strcmp(alarm_timers[i].name, name))
+                break;
+        }
+
+        if (i == count) {
+            fprintf(stderr, "Unknown clock %s\n", name);
+            goto next;
+        }
+
+        if (i < cur)
+            /* Ignore */
+            goto next;
+
+	/* Swap */
+        tmp = alarm_timers[i];
+        alarm_timers[i] = alarm_timers[cur];
+        alarm_timers[cur] = tmp;
+
+        cur++;
+next:
+        name = strtok(NULL, ",");
+    }
+
+    free(arg);
+
+    if (cur) {
+	/* Disable remaining timers */
+        for (i = cur; i < count; i++)
+            alarm_timers[i].name = NULL;
+    }
+
+    /* debug */
+    show_available_alarms();
+}
+
 QEMUClock *rt_clock;
 QEMUClock *vm_clock;
 
@@ -6791,6 +6856,8 @@
 #ifdef TARGET_SPARC
            "-prom-env variable=value  set OpenBIOS nvram variables\n"
 #endif
+           "-clock          force the use of the given methods for timer alarm.\n"
+           "                To see what timers are available use -clock help\n"
            "\n"
            "During emulation, the following keys are useful:\n"
            "ctrl-alt-f      toggle full screen\n"
@@ -6888,6 +6955,7 @@
     QEMU_OPTION_name,
     QEMU_OPTION_prom_env,
     QEMU_OPTION_old_param,
+    QEMU_OPTION_clock,
 };
 
 typedef struct QEMUOption {
@@ -6992,6 +7060,7 @@
 #if defined(TARGET_ARM)
     { "old-param", 0, QEMU_OPTION_old_param },
 #endif
+    { "clock", HAS_ARG, QEMU_OPTION_clock },
     { NULL },
 };
 
@@ -7771,6 +7840,9 @@
             case QEMU_OPTION_old_param:
                 old_param = 1;
 #endif
+            case QEMU_OPTION_clock:
+                configure_alarms(optarg);
+                break;
             }
         }
     }

-- 

  parent reply	other threads:[~2007-08-17 23:11 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-17 23:11 [PATCH 0/4] Rework alarm timer infrastrucure - take 2 Luca Tettamanti
2007-08-17 23:11 ` [Qemu-devel] " Luca Tettamanti
2007-08-17 23:11 ` [PATCH 1/4] Rework alarm timer infrastrucure Luca Tettamanti
2007-08-17 23:11   ` [Qemu-devel] " Luca Tettamanti
2007-08-17 23:11 ` Luca Tettamanti [this message]
2007-08-17 23:11   ` [Qemu-devel] [PATCH 2/4] Add -clock option Luca Tettamanti
2007-08-17 23:11 ` [PATCH 3/4] Add support for HPET periodic timer Luca Tettamanti
2007-08-17 23:11   ` [Qemu-devel] " Luca Tettamanti
     [not found]   ` <20070817231406.493008599-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2007-08-21 19:24     ` Matthew Kent
2007-08-21 19:24       ` Matthew Kent
2007-08-21 19:40       ` Luca
2007-08-21 19:40         ` Luca
     [not found]         ` <68676e00708211240k7237bf21k131257dd28063d26-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-08-21 20:15           ` Matthew Kent
2007-08-21 20:15             ` Matthew Kent
2007-08-22  6:48             ` Dan Kenigsberg
2007-08-22  6:48               ` [kvm-devel] " Dan Kenigsberg
     [not found]               ` <20070822064851.GA16295-RO/WWmT55CHJJbofclyLPCHBx9XpghdU@public.gmane.org>
2007-08-22  7:03                 ` Avi Kivity
2007-08-22  7:03                   ` [kvm-devel] " Avi Kivity
     [not found]                   ` <46CBDFC4.5060207-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-08-22 12:34                     ` Andi Kleen
2007-08-22 12:34                       ` [kvm-devel] " Andi Kleen
     [not found]                       ` <20070822123424.GK2642-KvMlXPVkKihbpigZmTR7Iw@public.gmane.org>
2007-08-22 21:11                         ` Dan Kenigsberg
2007-08-22 21:11                           ` [kvm-devel] " Dan Kenigsberg
     [not found]                           ` <20070822211150.GA22093-RO/WWmT55CHJJbofclyLPCHBx9XpghdU@public.gmane.org>
2007-08-22 22:09                             ` Andi Kleen
2007-08-22 22:09                               ` [kvm-devel] " Andi Kleen
     [not found]                               ` <20070822220947.GK8058-KvMlXPVkKihbpigZmTR7Iw@public.gmane.org>
2007-08-23  7:02                                 ` Dan Kenigsberg
2007-08-23  7:02                                   ` [kvm-devel] " Dan Kenigsberg
     [not found]                                   ` <20070823070230.GA24942-RO/WWmT55CHJJbofclyLPCHBx9XpghdU@public.gmane.org>
2007-08-24 20:18                                     ` Luca
2007-08-24 20:18                                       ` [kvm-devel] " Luca
2007-08-25  8:24                                       ` Dan Kenigsberg
2007-09-03  8:40         ` GUERRAZ Francois
2007-08-17 23:11 ` [PATCH 4/4] Add support for dynamic ticks Luca Tettamanti
2007-08-17 23:11   ` [Qemu-devel] " Luca Tettamanti
     [not found] ` <20070817231149.544849769-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2007-08-17 23:48   ` [Qemu-devel] [PATCH 0/4] Rework alarm timer infrastrucure - take 2 Christian MICHON
2007-08-17 23:48     ` Christian MICHON
     [not found]     ` <46d6db660708171648m3a798685q6514261bc097bc62-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-08-18  0:10       ` Luca
2007-08-18  0:10         ` [kvm-devel] " Luca
2007-08-18 15:17   ` Anthony Liguori
2007-08-18 15:17     ` [Qemu-devel] Re: [kvm-devel] " Anthony Liguori
2007-08-18 16:53     ` [Qemu-devel] RE: [kvm-devel] [PATCH 0/4] Rework alarm timer infrastrucure - take2 Dor Laor
     [not found]       ` <64F9B87B6B770947A9F8391472E032160D4645F0-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-08-18 22:02         ` Luca Tettamanti
2007-08-18 22:02           ` [Qemu-devel] Re: [kvm-devel] " Luca Tettamanti
     [not found]           ` <20070818220252.GA19526-sTXFmx6KbOnUXq0IF5SVAZ4oGUkBHcCu@public.gmane.org>
2007-08-18 23:58             ` Anthony Liguori
2007-08-18 23:58               ` [Qemu-devel] Re: [kvm-devel] " Anthony Liguori
2007-08-19  7:36               ` [PATCH 0/4] Rework alarm timer infrastrucure -take2 Dor Laor
2007-08-19  7:36                 ` [Qemu-devel] RE: [kvm-devel] " Dor Laor
2007-08-19  8:24               ` [PATCH 0/4] Rework alarm timer infrastrucure - take2 Avi Kivity
2007-08-19  8:24                 ` [Qemu-devel] Re: [kvm-devel] " Avi Kivity
     [not found]                 ` <46C7FE32.4050309-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-08-19 13:10                   ` [Qemu-devel] " Jamie Lokier
2007-08-19 13:10                     ` [Qemu-devel] Re: [kvm-devel] " Jamie Lokier
     [not found]                     ` <20070819131042.GA22798-tp2ajI7sM85Y6zH9YvfY1x2eb7JE58TQ@public.gmane.org>
2007-08-19 13:48                       ` [Qemu-devel] " Avi Kivity
2007-08-19 13:48                         ` [kvm-devel] " Avi Kivity
     [not found]                         ` <46C84A16.7040305-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-08-19 13:57                           ` Paul Brook
2007-08-19 13:57                             ` [kvm-devel] " Paul Brook
     [not found]                             ` <200708191457.21237.paul-qD8j1LwMmJjtCj0u4l0SBw@public.gmane.org>
2007-08-19 14:07                               ` Avi Kivity
2007-08-19 14:07                                 ` [kvm-devel] " Avi Kivity
     [not found]                                 ` <46C84E95.7070802-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-08-19 14:27                                   ` Dor Laor
2007-08-19 14:27                                     ` [kvm-devel] " Dor Laor
2007-08-20  9:25                                   ` Avi Kivity
2007-08-20  9:25                                     ` [kvm-devel] " Avi Kivity
2007-08-19 17:15                               ` Jamie Lokier
2007-08-19 17:15                                 ` [kvm-devel] " Jamie Lokier
     [not found]                                 ` <20070819171545.GB16928-tp2ajI7sM85Y6zH9YvfY1x2eb7JE58TQ@public.gmane.org>
2007-08-19 19:29                                   ` [Qemu-devel] Re: [PATCH 0/4] Rework alarmtimer " Dor Laor
2007-08-19 19:29                                     ` [kvm-devel] " Dor Laor
2007-08-19 19:30                                   ` [Qemu-devel] Re: [PATCH 0/4] Rework alarm timer " Avi Kivity
2007-08-19 19:30                                     ` [kvm-devel] " Avi Kivity
2007-08-19 16:52             ` Luca
2007-08-19 16:52               ` [Qemu-devel] Re: [kvm-devel] " Luca
     [not found]               ` <68676e00708190952g7d4751c2g87a6ff71dd278f71-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-08-19 19:31                 ` Avi Kivity
2007-08-19 19:31                   ` [Qemu-devel] Re: [kvm-devel] " Avi Kivity
     [not found]                   ` <46C89A8E.7040609-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-08-20 21:20                     ` Luca Tettamanti
2007-08-20 21:20                       ` [Qemu-devel] Re: [kvm-devel] " Luca Tettamanti
     [not found]                       ` <20070820212058.GA6713-sTXFmx6KbOnUXq0IF5SVAZ4oGUkBHcCu@public.gmane.org>
2007-08-20 21:55                         ` [Qemu-devel] " malc
2007-08-20 21:55                           ` [Qemu-devel] Re: [kvm-devel] " malc
     [not found]                           ` <Pine.LNX.4.64.0708210140540.16421-KsBd/I2zj1m2ZGm1qqSgDg@public.gmane.org>
2007-08-20 22:49                             ` [Qemu-devel] " Luca
2007-08-20 22:49                               ` [kvm-devel] " Luca
2007-08-21 12:09                         ` Avi Kivity
2007-08-21 12:09                           ` [Qemu-devel] Re: [kvm-devel] " Avi Kivity
     [not found]                           ` <46CAD607.2080504-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-08-21 19:38                             ` Luca Tettamanti
2007-08-21 19:38                               ` [Qemu-devel] Re: [kvm-devel] " Luca Tettamanti
     [not found]                               ` <20070821193834.GB13544-sTXFmx6KbOnUXq0IF5SVAZ4oGUkBHcCu@public.gmane.org>
2007-08-21 19:44                                 ` malc
2007-08-21 19:44                                   ` [Qemu-devel] Re: [kvm-devel] " malc
2007-08-22  5:02                                 ` Avi Kivity
2007-08-22  5:02                                   ` [Qemu-devel] Re: [kvm-devel] " Avi Kivity
     [not found]                                   ` <46CBC34F.6060601-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-08-22 16:12                                     ` Luca Tettamanti
2007-08-22 16:12                                       ` [Qemu-devel] Re: [kvm-devel] " Luca Tettamanti
     [not found]                                       ` <20070822161211.GA30147-sTXFmx6KbOnUXq0IF5SVAZ4oGUkBHcCu@public.gmane.org>
2007-08-22 16:21                                         ` Avi Kivity
2007-08-22 16:21                                           ` [Qemu-devel] Re: [kvm-devel] " Avi Kivity
     [not found]                                           ` <46CC6285.3090904-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-08-22 16:38                                             ` Luca
2007-08-22 16:38                                               ` [Qemu-devel] Re: [kvm-devel] " Luca
     [not found]                                               ` <68676e00708220938y57c07edas705fc8360aefcb78-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-08-22 16:45                                                 ` Avi Kivity
2007-08-22 16:45                                                   ` [Qemu-devel] Re: [kvm-devel] " Avi Kivity
     [not found]                                                   ` <46CC680C.1030307-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-08-22 17:23                                                     ` Luca
2007-08-22 17:23                                                       ` [Qemu-devel] Re: [kvm-devel] " Luca
     [not found]                                                       ` <68676e00708221023m352c2de3y3b19188dbb9ef49e-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-08-22 17:39                                                         ` Luca
2007-08-22 17:39                                                           ` [Qemu-devel] Re: [kvm-devel] " Luca
2007-08-22 19:21                                                         ` Luca
2007-08-22 19:21                                                           ` [Qemu-devel] Re: [kvm-devel] " Luca
     [not found]                                                           ` <68676e00708221221n6f8fcd67m9d15f7fea663ec71-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-08-22 21:35                                                             ` Dor Laor
2007-08-22 21:35                                                               ` [Qemu-devel] RE: [kvm-devel] " Dor Laor
     [not found]                                                               ` <64F9B87B6B770947A9F8391472E032160D5042F3-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-08-22 22:07                                                                 ` Luca
2007-08-22 22:07                                                                   ` [Qemu-devel] Re: [kvm-devel] " Luca
2007-08-22 20:42                                                 ` Dan Kenigsberg
2007-08-22 20:42                                                   ` [Qemu-devel] Re: [kvm-devel] " Dan Kenigsberg
2007-08-18 16:53     ` Dor Laor

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=20070817231406.125747382@gmail.com \
    --to=kronos.it-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=kvm-devel-TtF/mJH4Jtrk1uMJSBkQmQ@public.gmane.org \
    --cc=qemu-devel-qX2TKyscuCcdnm+yROfE0A@public.gmane.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.