From 2dbd8949b2ac0aaa98f89a467c14bff857505794 Mon Sep 17 00:00:00 2001 From: Vladimir Chtchetkine Date: Thu, 4 Aug 2011 13:57:57 -0700 Subject: [PATCH] Enable QEMUD pipe connection for all legacy hw-control clients Change-Id: Ic713d4cdcddb724958fc8c1c8a82a1dc2733da32 --- qemu/qemu.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/qemu/qemu.c b/qemu/qemu.c index de029be..731df78 100644 --- a/qemu/qemu.c +++ b/qemu/qemu.c @@ -36,6 +36,7 @@ # define D(...) ((void)0) #endif +#include "hardware/qemu_pipe.h" int qemu_check(void) @@ -70,6 +71,24 @@ qemu_fd_read( int fd, char* buff, int len ) return len2; } +static int +qemu_channel_open_qemud_pipe( QemuChannel* channel, + const char* name ) +{ + int fd; + char pipe_name[512]; + + snprintf(pipe_name, sizeof(pipe_name), "qemud:%s", name); + fd = qemu_pipe_open(pipe_name); + if (fd < 0) { + D("no qemud pipe: %s", strerror(errno)); + return -1; + } + + channel->is_qemud = 1; + channel->fd = fd; + return 0; +} static int qemu_channel_open_qemud( QemuChannel* channel, @@ -174,6 +193,9 @@ qemu_channel_open( QemuChannel* channel, channel->is_inited = 1; do { + if (qemu_channel_open_qemud_pipe(channel, name) == 0) + break; + if (qemu_channel_open_qemud(channel, name) == 0) break; @@ -226,7 +248,7 @@ qemu_channel_open( QemuChannel* channel, static int -qemu_command_vformat( char* buffer, +qemu_command_vformat( char* buffer, int buffer_size, const char* format, va_list args ) @@ -247,7 +269,7 @@ qemu_command_vformat( char* buffer, } extern int -qemu_command_format( char* buffer, +qemu_command_format( char* buffer, int buffer_size, const char* format, ... )