aboutsummaryrefslogtreecommitdiffstats
path: root/xen/drivers
diff options
context:
space:
mode:
authorAndrew Cooper <andrew.cooper3@citrix.com>2013-08-06 17:44:31 +0200
committerJan Beulich <jbeulich@suse.com>2013-08-06 17:44:31 +0200
commitcc90bf1894daf9f97791495e2256e7e342e25704 (patch)
tree9690abeae7ed05e8c4eb0fdc01ebcc902e139822 /xen/drivers
parente1ab5c77b44b7bd835a2c032fa4963b36545fdb3 (diff)
downloadxen-cc90bf1894daf9f97791495e2256e7e342e25704.tar.gz
xen-cc90bf1894daf9f97791495e2256e7e342e25704.tar.bz2
xen-cc90bf1894daf9f97791495e2256e7e342e25704.zip
xen/conring: Clean up writing to the console ring
Refactor putchar_console_ring() to conring_puts(). This allows for consistency with {sercon,vga}_puts(), prevents needless recalculation of the conring consumer index, and slight cleanup at the two callsites. There is no functional change. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Matt Wilson <msw@amazon.com> Acked-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/drivers')
-rw-r--r--xen/drivers/char/console.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index b696b3e54d..45b81b3013 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -175,10 +175,15 @@ static char * __init loglvl_str(int lvl)
* ********************************************************
*/
-static void putchar_console_ring(int c)
+static void conring_puts(const char *str)
{
+ char c;
+
ASSERT(spin_is_locked(&console_lock));
- conring[CONRING_IDX_MASK(conringp++)] = c;
+
+ while ( (c = *str++) != '\0' )
+ conring[CONRING_IDX_MASK(conringp++)] = c;
+
if ( (uint32_t)(conringp - conringc) > conring_size )
conringc = conringp - conring_size;
}
@@ -368,7 +373,7 @@ static DECLARE_SOFTIRQ_TASKLET(notify_dom0_con_ring_tasklet,
static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer, int count)
{
- char kbuf[128], *kptr;
+ char kbuf[128];
int kcount;
while ( count > 0 )
@@ -390,8 +395,7 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer, int count)
if ( opt_console_to_ring )
{
- for ( kptr = kbuf; *kptr != '\0'; kptr++ )
- putchar_console_ring(*kptr);
+ conring_puts(kbuf);
tasklet_schedule(&notify_dom0_con_ring_tasklet);
}
@@ -456,8 +460,6 @@ static bool_t console_locks_busted;
static void __putstr(const char *str)
{
- int c;
-
ASSERT(spin_is_locked(&console_lock));
sercon_puts(str);
@@ -465,8 +467,7 @@ static void __putstr(const char *str)
if ( !console_locks_busted )
{
- while ( (c = *str++) != '\0' )
- putchar_console_ring(c);
+ conring_puts(str);
tasklet_schedule(&notify_dom0_con_ring_tasklet);
}
}