From 358cb4197113a64b9eddf9807245668f32142346 Mon Sep 17 00:00:00 2001 From: Yaniv Kamay Date: Wed, 6 Jan 2010 19:03:25 +0200 Subject: server: add new vd interface QTerm2Interface --- server/vd_interface.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'server/vd_interface.h') diff --git a/server/vd_interface.h b/server/vd_interface.h index 932c0b13..d4765c8c 100644 --- a/server/vd_interface.h +++ b/server/vd_interface.h @@ -253,6 +253,56 @@ struct QTermInterface { void (*remove_info_command_handler)(QTermInterface *term, VDObjectRef obj); }; +#define VD_INTERFACE_QTERM2 "qemu_terminal_2" +#define VD_INTERFACE_QTERM2_MAJOR 1 +#define VD_INTERFACE_QTERM2_MINOR 0 +typedef struct QTerm2Interface QTerm2Interface; + +enum VDIArgType{ + ARG_TYPE_INVALID, + ARG_TYPE_INT, + ARG_TYPE_STRING, +}; + +typedef struct VDIArgDescriptor { + char* name; + int type; + int optional; +} VDIArgDescriptor; + +typedef struct VDICmdArg { + VDIArgDescriptor descriptor; + union { + uint64_t int_val; + const char *string_val; + }; +} VDICmdArg; + +typedef void (*VDICmdHandler)(const VDICmdArg* args); +typedef void (*VDIInfoCmdHandler)(void); + +struct QTerm2Interface { + VDInterface base; + + VDObjectRef (*add_action_command_handler)(QTerm2Interface *term, + const char *module_name, + const char *command_name, + const VDIArgDescriptor *args_type, + VDICmdHandler handler, + const char *params_text, + const char *help_text); + + void (*remove_action_command_handler)(QTerm2Interface *term, VDObjectRef obj); + + VDObjectRef (*add_info_command_handler)(QTerm2Interface *term, + const char *module_name, + const char *command_name, + VDIInfoCmdHandler handler, + const char *help_text); + + void (*remove_info_command_handler)(QTerm2Interface *term, VDObjectRef obj); +}; + #define VD_INTERFACE_PLAYBACK "playback" #define VD_INTERFACE_PLAYBACK_MAJOR 1 #define VD_INTERFACE_PLAYBACK_MINOR 1 -- cgit