Commit-ID: ce8c59eeaf8f24c47a7286935deab428f27a83c2 Gitweb: http://git.kernel.org/tip/ce8c59eeaf8f24c47a7286935deab428f27a83c2 Author: Lai Jiangshan <laijs@xxxxxxxxxxxxxx> AuthorDate: Tue, 20 Dec 2011 17:08:51 +0800 Committer: Pekka Enberg <penberg@xxxxxxxxxx> CommitDate: Wed, 21 Dec 2011 22:28:08 +0200 kvm tools: add kvm_ipc__send() and kvm_ipc__send_msg() Current code write the sock manually. There is nothing constrains the format of the written data is expect. Use kvm_ipc__send() and kvm_ipc__send_msg() for such constraint. Signed-off-by: Lai Jiangshan <laijs@xxxxxxxxxxxxxx> Signed-off-by: Pekka Enberg <penberg@xxxxxxxxxx> --- tools/kvm/include/kvm/kvm-ipc.h | 3 +++ tools/kvm/kvm-ipc.c | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+), 0 deletions(-) diff --git a/tools/kvm/include/kvm/kvm-ipc.h b/tools/kvm/include/kvm/kvm-ipc.h index c6f4582..5916c40 100644 --- a/tools/kvm/include/kvm/kvm-ipc.h +++ b/tools/kvm/include/kvm/kvm-ipc.h @@ -17,4 +17,7 @@ int kvm_ipc__register_handler(u32 type, void (*cb)(int fd, u32 type, u32 len, u8 int kvm_ipc__start(int sock); int kvm_ipc__stop(void); +int kvm_ipc__send(int fd, u32 type); +int kvm_ipc__send_msg(int fd, u32 type, u32 len, u8 *msg); + #endif diff --git a/tools/kvm/kvm-ipc.c b/tools/kvm/kvm-ipc.c index a875e7d..2036b91 100644 --- a/tools/kvm/kvm-ipc.c +++ b/tools/kvm/kvm-ipc.c @@ -33,6 +33,29 @@ int kvm_ipc__register_handler(u32 type, void (*cb)(int fd, u32 type, u32 len, u8 return 0; } +int kvm_ipc__send(int fd, u32 type) +{ + struct kvm_ipc_head head = {.type = type, .len = 0,}; + + if (write_in_full(fd, &head, sizeof(head)) != sizeof(head)) + return -1; + + return 0; +} + +int kvm_ipc__send_msg(int fd, u32 type, u32 len, u8 *msg) +{ + struct kvm_ipc_head head = {.type = type, .len = len,}; + + if (write_in_full(fd, &head, sizeof(head)) != sizeof(head)) + return -1; + + if (write_in_full(fd, msg, len) != len) + return -1; + + return 0; +} + static int kvm_ipc__handle(int fd, u32 type, u32 len, u8 *data) { void (*cb)(int fd, u32 type, u32 len, u8 *msg); -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html