This series converted 'sendkey' command to qapi. The raw value in hexadecimal format is not supported by 'send-key' of qmp.
Amos Kong (7): fix doc of using raw values with sendkey monitor: rename keyname '<' to 'less' hmp: rename arguments qapi: generate list struct and visit_list for enum qapi: add the QKeyCode enum monitor: move key_defs[] table and introduce two help functions qapi: convert sendkey console.h | 5 + hmp-commands.hx | 10 +- hmp.c | 55 +++++++++++ hmp.h | 1 + input.c | 251 +++++++++++++++++++++++++++++++++++++++++++++++++ monitor.c | 245 +----------------------------------------------- qapi-schema.json | 46 +++++++++ qmp-commands.hx | 28 ++++++ scripts/qapi-types.py | 16 +++- scripts/qapi-visit.py | 14 +++- 10 files changed, 421 insertions(+), 250 deletions(-) --- Changes from v1: - using a JSON array for the key names - rename new error to 'QERR_OVERFLOW' - fix command descriptions - qapi: generate list struct for enum - add '<' fixing Changes from v2: - fix support of raw value in hexadecimal format - fix bug in processing of '<-x' - don't generate useless cleanup functions for enum - introduced two functions for enum in qapi scripts - fix command description - drop keys number limitation in sendkey - drop patch: qerror: add QERR_OVERFLOW Changes from v3: - move key_defs[] to console.h - link mapping tables by enum values - rename 'sendkey' to 'send-key' for qmp Changes from v4: - rename 'KeyCodes' to 'QKeyCode' - fix default hold-time - move qmp_send_key(), key_defs to input.c - duplicate the keylist in qmp_send_key() - drop struct KeyDef - handle invalid key/index in hmp_send_key() Changes from v5: - split the addition of the QKeyCode enum and the key_defs table - split help functions definition - fix cmd completion and make key_defs static - drop ps2 trival fix, will post it by another thread Changes from v6: - split convert patch to two patches, and do the refactorings in first patch. Changes from v7: - rebase patchset to latest upstream/master - move the addition of QKeyCode out of patch5 - update version to 1.3.0