From a2381c7e4cd7efa46273149bdcd28779580c6f51 Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Thu, 13 Aug 2020 16:03:59 +0200 Subject: [PATCH] Turn USB HID drivers into event-session clients Issue #3845 --- repos/dde_linux/README | 5 ++- .../drivers_interactive-imx8q_evk/archives | 1 - .../pkg/drivers_interactive-rpi/archives | 1 - .../drivers.config | 10 +---- .../drivers_interactive-rpi/drivers.config | 11 +---- repos/dde_linux/recipes/src/usb_drv/used_apis | 2 +- .../recipes/src/usb_hid_drv/used_apis | 2 +- repos/dde_linux/run/usb_hid.run | 40 ++++++++++--------- repos/dde_linux/run/usb_hid_raw.run | 40 ++++++++++--------- repos/dde_linux/run/usb_hid_reconnect.run | 14 ++++--- .../src/drivers/usb/include/lx_emul.h | 2 +- .../src/drivers/usb/input/input_component.cc | 25 +++++------- repos/dde_linux/src/drivers/usb/main.cc | 4 +- repos/dde_linux/src/drivers/usb_hid/README | 7 ++-- repos/dde_linux/src/drivers/usb_hid/driver.h | 11 +++-- repos/dde_linux/src/drivers/usb_hid/main.cc | 10 +++-- .../recipes/pkg/drivers_managed-pc/archives | 1 - .../raw/drivers_managed-pc/drivers.config | 14 +------ .../pkg/drivers_interactive-muen/archives | 1 - .../pkg/drivers_interactive-pc/archives | 1 - .../drivers_interactive-muen/drivers.config | 13 +----- .../raw/drivers_interactive-pc/drivers.config | 13 +----- repos/ports/run/seoul.inc | 1 - repos/ports/run/vbox5_genode_usb_hid.run | 30 +++++++------- repos/ports/run/virtualbox.run | 11 +---- repos/ports/run/virtualbox_auto.inc | 21 ++-------- 26 files changed, 105 insertions(+), 186 deletions(-) diff --git a/repos/dde_linux/README b/repos/dde_linux/README index c2cc9ebc4c..732f178feb 100644 --- a/repos/dde_linux/README +++ b/repos/dde_linux/README @@ -39,12 +39,14 @@ Configuration snippet: ! ! -! ! ! ! ! +With '' config node in place, the USB driver requests an "Event" session +for reporting input events. + Note: It has been observed that certain 1.0 versions of Qemu do not generate mouse interrupts. The mouse driver should work correctly on Qemu 1.0.93 and above. @@ -92,7 +94,6 @@ Configuration snippet: ! ! ! -! ! ! ! diff --git a/repos/dde_linux/recipes/pkg/drivers_interactive-imx8q_evk/archives b/repos/dde_linux/recipes/pkg/drivers_interactive-imx8q_evk/archives index 0a883e4379..1f79737b50 100644 --- a/repos/dde_linux/recipes/pkg/drivers_interactive-imx8q_evk/archives +++ b/repos/dde_linux/recipes/pkg/drivers_interactive-imx8q_evk/archives @@ -1,5 +1,4 @@ _/src/imx8_fb_drv _/src/usb_host_drv _/src/usb_hid_drv -_/src/input_event_client _/raw/drivers_interactive-imx8q_evk diff --git a/repos/dde_linux/recipes/pkg/drivers_interactive-rpi/archives b/repos/dde_linux/recipes/pkg/drivers_interactive-rpi/archives index 80e7db6c73..9416721fac 100644 --- a/repos/dde_linux/recipes/pkg/drivers_interactive-rpi/archives +++ b/repos/dde_linux/recipes/pkg/drivers_interactive-rpi/archives @@ -1,5 +1,4 @@ _/src/platform_drv _/src/usb_drv _/src/rpi_fb_drv -_/src/input_event_client _/raw/drivers_interactive-rpi diff --git a/repos/dde_linux/recipes/raw/drivers_interactive-imx8q_evk/drivers.config b/repos/dde_linux/recipes/raw/drivers_interactive-imx8q_evk/drivers.config index 5ec272bb69..9365b94c42 100644 --- a/repos/dde_linux/recipes/raw/drivers_interactive-imx8q_evk/drivers.config +++ b/repos/dde_linux/recipes/raw/drivers_interactive-imx8q_evk/drivers.config @@ -46,6 +46,7 @@ + @@ -67,13 +68,4 @@ - - - - - - - - - diff --git a/repos/dde_linux/recipes/raw/drivers_interactive-rpi/drivers.config b/repos/dde_linux/recipes/raw/drivers_interactive-rpi/drivers.config index 9ca74a2dbe..0691af7601 100644 --- a/repos/dde_linux/recipes/raw/drivers_interactive-rpi/drivers.config +++ b/repos/dde_linux/recipes/raw/drivers_interactive-rpi/drivers.config @@ -51,7 +51,6 @@ - @@ -63,16 +62,8 @@ + - - - - - - - - - diff --git a/repos/dde_linux/recipes/src/usb_drv/used_apis b/repos/dde_linux/recipes/src/usb_drv/used_apis index cfa1f92e3b..3ef1daeb98 100644 --- a/repos/dde_linux/recipes/src/usb_drv/used_apis +++ b/repos/dde_linux/recipes/src/usb_drv/used_apis @@ -3,7 +3,7 @@ os nic_session usb_session gpio_session -input_session +event_session block_session platform_session timer_session diff --git a/repos/dde_linux/recipes/src/usb_hid_drv/used_apis b/repos/dde_linux/recipes/src/usb_hid_drv/used_apis index e8112b6721..f31bd17f5c 100644 --- a/repos/dde_linux/recipes/src/usb_hid_drv/used_apis +++ b/repos/dde_linux/recipes/src/usb_hid_drv/used_apis @@ -1,6 +1,6 @@ base os -input_session +event_session report_session usb_session timer_session diff --git a/repos/dde_linux/run/usb_hid.run b/repos/dde_linux/run/usb_hid.run index 3a57a69830..e149b7ee82 100644 --- a/repos/dde_linux/run/usb_hid.run +++ b/repos/dde_linux/run/usb_hid.run @@ -68,7 +68,7 @@ proc usb_drv_binary { } { set build_components { core init timer drivers/usb - test/input + server/event_dump server/dynamic_rom } @@ -115,7 +115,6 @@ append config { - @@ -136,6 +135,7 @@ append config { + @@ -171,8 +171,10 @@ append config { - + + + } @@ -184,7 +186,7 @@ install_config $config # generic modules set boot_modules { - core ld.lib.so init timer test-input dynamic_rom + core ld.lib.so init timer event_dump dynamic_rom } append boot_modules [usb_drv_binary] @@ -202,12 +204,12 @@ if { [have_include "power_on/qemu"] || ![get_cmd_switch --autopilot] } { run_gen # autopilot test -run_genode_until {\[init -\> test-input\] Input event #0\t} 60 +run_genode_until {\[init -\> event_dump\] Input event #0\t} 60 # remove everything before the first interesting line -regexp {(\[init -\> test-input\] Input event #0\t.*)} $output all output +regexp {(\[init -\> event_dump\] Input event #0\t.*)} $output all output -run_genode_until {\[init -\> test-input\] Input event #11.*\n} 40 [output_spawn_id] +run_genode_until {\[init -\> event_dump\] Input event #11.*\n} 40 [output_spawn_id] # pay only attention to the output of init and its children grep_output {^\[init } @@ -222,22 +224,22 @@ filter_out_color_escape_sequences trim_lines compare_output_to { -[init -> test-input] Input event #0 PRESS KEY_X 65534 key count: 1 -[init -> test-input] Input event #1 RELEASE KEY_X key count: 0 -[init -> test-input] Input event #2 PRESS BTN_LEFT 65534 key count: 1 -[init -> test-input] Input event #3 REL_MOTION -1+0 key count: 1 -[init -> test-input] Input event #4 REL_MOTION +0+1 key count: 1 -[init -> test-input] Input event #5 RELEASE BTN_LEFT key count: 0 +[init -> event_dump] Input event #0 PRESS KEY_X 65534 key count: 1 +[init -> event_dump] Input event #1 RELEASE KEY_X key count: 0 +[init -> event_dump] Input event #2 PRESS BTN_LEFT 65534 key count: 1 +[init -> event_dump] Input event #3 REL_MOTION -1+0 key count: 1 +[init -> event_dump] Input event #4 REL_MOTION +0+1 key count: 1 +[init -> event_dump] Input event #5 RELEASE BTN_LEFT key count: 0 [init -> usb_drv] dev_info: USB disconnect, device [init -> usb_drv] dev_info: new full-speed USB device [init -> usb_drv] dev_info: D L [init -> usb_drv] dev_info: input: USB HID v1.11 Keyboard [D L] [init -> usb_drv] dev_info: D L [init -> usb_drv] dev_info: input: USB HID v1.11 Mouse [D L] -[init -> test-input] Input event #6 PRESS KEY_X 65534 key count: 1 -[init -> test-input] Input event #7 RELEASE KEY_X key count: 0 -[init -> test-input] Input event #8 PRESS BTN_LEFT 65534 key count: 1 -[init -> test-input] Input event #9 REL_MOTION -1+0 key count: 1 -[init -> test-input] Input event #10 REL_MOTION +0+1 key count: 1 -[init -> test-input] Input event #11 RELEASE BTN_LEFT key count: 0 +[init -> event_dump] Input event #6 PRESS KEY_X 65534 key count: 1 +[init -> event_dump] Input event #7 RELEASE KEY_X key count: 0 +[init -> event_dump] Input event #8 PRESS BTN_LEFT 65534 key count: 1 +[init -> event_dump] Input event #9 REL_MOTION -1+0 key count: 1 +[init -> event_dump] Input event #10 REL_MOTION +0+1 key count: 1 +[init -> event_dump] Input event #11 RELEASE BTN_LEFT key count: 0 } diff --git a/repos/dde_linux/run/usb_hid_raw.run b/repos/dde_linux/run/usb_hid_raw.run index 96617609c7..fef8c0240f 100644 --- a/repos/dde_linux/run/usb_hid_raw.run +++ b/repos/dde_linux/run/usb_hid_raw.run @@ -66,7 +66,7 @@ set build_components { core init timer drivers/usb_host drivers/usb_hid - test/input + server/event_dump server/dynamic_rom server/report_rom } @@ -141,13 +141,13 @@ append config { - + @@ -184,8 +184,10 @@ append config { - + + + } @@ -197,7 +199,7 @@ install_config $config # generic modules set boot_modules { - core ld.lib.so init timer usb_hid_drv test-input dynamic_rom report_rom + core ld.lib.so init timer usb_hid_drv event_dump dynamic_rom report_rom } append boot_modules [usb_host_drv_binary] @@ -215,12 +217,12 @@ if { [have_include "power_on/qemu"] || ![get_cmd_switch --autopilot] } { run_gen # autopilot test -run_genode_until {\[init -\> test-input\] Input event #0\t} 60 +run_genode_until {\[init -\> event_dump\] Input event #0\t} 60 # remove everything before the first interesting line -regexp {(\[init -\> test-input\] Input event #0\t.*)} $output all output +regexp {(\[init -\> event_dump\] Input event #0\t.*)} $output all output -run_genode_until {\[init -\> test-input\] Input event #11.*\n} 40 [output_spawn_id] +run_genode_until {\[init -\> event_dump\] Input event #11.*\n} 40 [output_spawn_id] # pay only attention to the output of init and its children grep_output {^\[init } @@ -235,20 +237,20 @@ filter_out_color_escape_sequences trim_lines compare_output_to { -[init -> test-input] Input event #0 PRESS KEY_X 65534 key count: 1 -[init -> test-input] Input event #1 RELEASE KEY_X key count: 0 -[init -> test-input] Input event #2 PRESS BTN_LEFT 65534 key count: 1 -[init -> test-input] Input event #3 REL_MOTION -1+0 key count: 1 -[init -> test-input] Input event #4 REL_MOTION +0+1 key count: 1 -[init -> test-input] Input event #5 RELEASE BTN_LEFT key count: 0 +[init -> event_dump] Input event #0 PRESS KEY_X 65534 key count: 1 +[init -> event_dump] Input event #1 RELEASE KEY_X key count: 0 +[init -> event_dump] Input event #2 PRESS BTN_LEFT 65534 key count: 1 +[init -> event_dump] Input event #3 REL_MOTION -1+0 key count: 1 +[init -> event_dump] Input event #4 REL_MOTION +0+1 key count: 1 +[init -> event_dump] Input event #5 RELEASE BTN_LEFT key count: 0 [init -> usb_drv] dev_info: USB disconnect, device [init -> usb_drv] dev_info: new full-speed USB device [init -> usb_hid_drv] dev_info: input: USB HID v1.11 Keyboard [HID 03eb:204d] [init -> usb_hid_drv] dev_info: input: USB HID v1.11 Mouse [HID 03eb:204d] -[init -> test-input] Input event #6 PRESS KEY_X 65534 key count: 1 -[init -> test-input] Input event #7 RELEASE KEY_X key count: 0 -[init -> test-input] Input event #8 PRESS BTN_LEFT 65534 key count: 1 -[init -> test-input] Input event #9 REL_MOTION -1+0 key count: 1 -[init -> test-input] Input event #10 REL_MOTION +0+1 key count: 1 -[init -> test-input] Input event #11 RELEASE BTN_LEFT key count: 0 +[init -> event_dump] Input event #6 PRESS KEY_X 65534 key count: 1 +[init -> event_dump] Input event #7 RELEASE KEY_X key count: 0 +[init -> event_dump] Input event #8 PRESS BTN_LEFT 65534 key count: 1 +[init -> event_dump] Input event #9 REL_MOTION -1+0 key count: 1 +[init -> event_dump] Input event #10 REL_MOTION +0+1 key count: 1 +[init -> event_dump] Input event #11 RELEASE BTN_LEFT key count: 0 } diff --git a/repos/dde_linux/run/usb_hid_reconnect.run b/repos/dde_linux/run/usb_hid_reconnect.run index 5d67937c16..d2b63c81e4 100644 --- a/repos/dde_linux/run/usb_hid_reconnect.run +++ b/repos/dde_linux/run/usb_hid_reconnect.run @@ -27,7 +27,7 @@ if { [get_cmd_switch --autopilot] && ![have_spec x86_64] } { set build_components { core init timer drivers/usb - test/input + server/event_dump server/dynamic_rom } @@ -69,7 +69,6 @@ append config { - @@ -85,9 +84,10 @@ append config { - + - + + @@ -123,8 +123,10 @@ append config { - + + + } @@ -136,7 +138,7 @@ install_config $config # generic modules set boot_modules { - core ld.lib.so init timer usb_drv test-input dynamic_rom + core ld.lib.so init timer usb_drv event_dump dynamic_rom } append_platform_drv_boot_modules diff --git a/repos/dde_linux/src/drivers/usb/include/lx_emul.h b/repos/dde_linux/src/drivers/usb/include/lx_emul.h index 5252a166ac..ad71d59039 100644 --- a/repos/dde_linux/src/drivers/usb/include/lx_emul.h +++ b/repos/dde_linux/src/drivers/usb/include/lx_emul.h @@ -3194,7 +3194,7 @@ void genode_input_register(genode_input_event_cb handler, unsigned long res_x, void genode_evdev_event(struct input_handle *handle, unsigned int type, unsigned int code, int value); -void start_input_service(void *ep, void *); +void start_input_service(void *); /****************** diff --git a/repos/dde_linux/src/drivers/usb/input/input_component.cc b/repos/dde_linux/src/drivers/usb/input/input_component.cc index 77a672c3b4..b55bce56cc 100644 --- a/repos/dde_linux/src/drivers/usb/input/input_component.cc +++ b/repos/dde_linux/src/drivers/usb/input/input_component.cc @@ -14,7 +14,7 @@ */ #include -#include +#include #include #include @@ -28,13 +28,7 @@ using namespace Genode; /** * Singleton instance of input-session component */ -static Genode::Constructible _input_session; - - -/** - * Singleton instance of input-root component - */ -static Genode::Constructible _input_root; +static Genode::Constructible _event_session; /** @@ -43,9 +37,12 @@ static Genode::Constructible _input_root; static void input_callback(enum input_event_type type, unsigned code, int ax, int ay, int rx, int ry) { - using namespace Input; + auto submit = [&] (Input::Event const &ev) { + _event_session->with_batch([&] (Event::Session_client::Batch &batch) { + batch.submit(ev); }); + }; - auto submit = [&] (Event const &ev) { _input_session->submit(ev); }; + using namespace Input; switch (type) { case EVENT_TYPE_PRESS: submit(Press{Keycode(code)}); break; @@ -71,16 +68,12 @@ static void input_callback(enum input_event_type type, } -void start_input_service(void *ep_ptr, void * service_ptr) +void start_input_service(void *service_ptr) { - Rpc_entrypoint *ep = static_cast(ep_ptr); Services *service = static_cast(service_ptr); Env &env = service->env; - _input_session.construct(env, env.ram()); - _input_root.construct(*ep, *_input_session); - - env.parent().announce(ep->manage(&*_input_root)); + _event_session.construct(env); genode_input_register(input_callback, service->screen_width, service->screen_height, service->multitouch); diff --git a/repos/dde_linux/src/drivers/usb/main.cc b/repos/dde_linux/src/drivers/usb/main.cc index 36aef61a33..31077e50f0 100644 --- a/repos/dde_linux/src/drivers/usb/main.cc +++ b/repos/dde_linux/src/drivers/usb/main.cc @@ -45,8 +45,6 @@ extern "C" void module_mt_driver_init(); extern "C" void module_raw_driver_init(); extern "C" void module_led_init(); -extern "C" void start_input_service(void *ep, void *services); - struct workqueue_struct *system_power_efficient_wq; struct workqueue_struct *system_wq; struct workqueue_struct *tasklet_wq; @@ -122,7 +120,7 @@ void start_usb_driver(Genode::Env &env) static Services services(env); if (services.hid) - start_input_service(&env.ep().rpc_ep(), &services); + start_input_service(&services); Storage::init(env); Nic::init(env); diff --git a/repos/dde_linux/src/drivers/usb_hid/README b/repos/dde_linux/src/drivers/usb_hid/README index 27a657a6e8..95dc396b38 100644 --- a/repos/dde_linux/src/drivers/usb_hid/README +++ b/repos/dde_linux/src/drivers/usb_hid/README @@ -1,15 +1,14 @@ USB HID driver ############## -Supports keyboard and mouse connected via USB. -It connects to one or multiple USB sessions. A run script can be found -under 'run/usb_hid.run'. +Supports keyboard and mouse connected via USB. It connects to one or multiple +USB sessions and reports input events to an event session. A run script can be +found under 'run/usb_hid.run'. Configuration snippet: ! ! -! ! ! diff --git a/repos/dde_linux/src/drivers/usb_hid/driver.h b/repos/dde_linux/src/drivers/usb_hid/driver.h index 62f6978bab..e463e5bbac 100644 --- a/repos/dde_linux/src/drivers/usb_hid/driver.h +++ b/repos/dde_linux/src/drivers/usb_hid/driver.h @@ -17,8 +17,8 @@ #include #include #include -#include #include +#include #include struct usb_device_id; @@ -94,11 +94,10 @@ struct Driver Devices devices; Genode::Env &env; - Genode::Entrypoint &ep { env.ep() }; - Genode::Heap heap { env.ram(), env.rm() }; - Genode::Allocator_avl alloc { &heap }; - Input::Session_component session { env, env.ram() }; - Input::Root_component root { env.ep().rpc_ep(), session }; + Genode::Entrypoint &ep { env.ep() }; + Genode::Heap heap { env.ram(), env.rm() }; + Genode::Allocator_avl alloc { &heap }; + Event::Connection event { env }; Genode::Constructible main_task; Genode::Constructible report_rom; diff --git a/repos/dde_linux/src/drivers/usb_hid/main.cc b/repos/dde_linux/src/drivers/usb_hid/main.cc index dd6ff26f92..32d062d860 100644 --- a/repos/dde_linux/src/drivers/usb_hid/main.cc +++ b/repos/dde_linux/src/drivers/usb_hid/main.cc @@ -184,8 +184,6 @@ void Driver::main_task_entry(void * arg) Genode::log("Configured HID screen with ", screen_x, "x", screen_y, " (multitouch=", multi_touch ? "true" : "false", ")"); - driver->env.parent().announce(driver->ep.manage(driver->root)); - for (;;) { if (!use_report) static Device dev(*driver, Label("")); @@ -237,9 +235,13 @@ void Driver::scan_report() void Driver::input_callback(Input_event type, unsigned code, int ax, int ay, int rx, int ry) { - using namespace Input; + auto submit = [&] (Input::Event const &ev) + { + driver->event.with_batch([&] (Event::Session_client::Batch &batch) { + batch.submit(ev); }); + }; - auto submit = [&] (Event const &ev) { driver->session.submit(ev); }; + using namespace Input; switch (type) { case EVENT_TYPE_PRESS: submit(Press{Keycode(code)}); break; diff --git a/repos/gems/recipes/pkg/drivers_managed-pc/archives b/repos/gems/recipes/pkg/drivers_managed-pc/archives index 75016727d9..3b2d9712b1 100644 --- a/repos/gems/recipes/pkg/drivers_managed-pc/archives +++ b/repos/gems/recipes/pkg/drivers_managed-pc/archives @@ -13,5 +13,4 @@ _/src/init _/src/driver_manager _/src/rom_filter _/src/rom_reporter -_/src/input_event_client _/raw/drivers_managed-pc diff --git a/repos/gems/recipes/raw/drivers_managed-pc/drivers.config b/repos/gems/recipes/raw/drivers_managed-pc/drivers.config index fa98ef8e9b..d6fb1116b6 100644 --- a/repos/gems/recipes/raw/drivers_managed-pc/drivers.config +++ b/repos/gems/recipes/raw/drivers_managed-pc/drivers.config @@ -122,9 +122,10 @@ - + + @@ -184,17 +185,6 @@ - - - - - - - - - - - diff --git a/repos/os/recipes/pkg/drivers_interactive-muen/archives b/repos/os/recipes/pkg/drivers_interactive-muen/archives index 9d3ee359b0..7017e1602b 100644 --- a/repos/os/recipes/pkg/drivers_interactive-muen/archives +++ b/repos/os/recipes/pkg/drivers_interactive-muen/archives @@ -3,5 +3,4 @@ _/src/ps2_drv _/src/usb_drv _/src/vesa_drv _/src/event_filter -_/src/input_event_client _/raw/drivers_interactive-muen diff --git a/repos/os/recipes/pkg/drivers_interactive-pc/archives b/repos/os/recipes/pkg/drivers_interactive-pc/archives index 14e05d9899..9a43a00c3e 100644 --- a/repos/os/recipes/pkg/drivers_interactive-pc/archives +++ b/repos/os/recipes/pkg/drivers_interactive-pc/archives @@ -5,5 +5,4 @@ _/src/usb_drv _/src/vesa_drv _/src/report_rom _/src/event_filter -_/src/input_event_client _/raw/drivers_interactive-pc diff --git a/repos/os/recipes/raw/drivers_interactive-muen/drivers.config b/repos/os/recipes/raw/drivers_interactive-muen/drivers.config index 0ea3a14b5d..41e7ef2a0a 100644 --- a/repos/os/recipes/raw/drivers_interactive-muen/drivers.config +++ b/repos/os/recipes/raw/drivers_interactive-muen/drivers.config @@ -71,10 +71,10 @@ - + @@ -98,15 +98,4 @@ - - - - - - - - - - - diff --git a/repos/os/recipes/raw/drivers_interactive-pc/drivers.config b/repos/os/recipes/raw/drivers_interactive-pc/drivers.config index 59a605c918..ce4f89b8a5 100644 --- a/repos/os/recipes/raw/drivers_interactive-pc/drivers.config +++ b/repos/os/recipes/raw/drivers_interactive-pc/drivers.config @@ -104,10 +104,10 @@ - + @@ -131,15 +131,4 @@ - - - - - - - - - - - diff --git a/repos/ports/run/seoul.inc b/repos/ports/run/seoul.inc index 65151229f9..90cd365d7a 100644 --- a/repos/ports/run/seoul.inc +++ b/repos/ports/run/seoul.inc @@ -399,7 +399,6 @@ append config { append_if $use_usb config { - diff --git a/repos/ports/run/vbox5_genode_usb_hid.run b/repos/ports/run/vbox5_genode_usb_hid.run index 53105359d1..ccadfc9a32 100644 --- a/repos/ports/run/vbox5_genode_usb_hid.run +++ b/repos/ports/run/vbox5_genode_usb_hid.run @@ -274,12 +274,12 @@ if { ![get_cmd_switch --autopilot] } { run_genode_until forever } # autopilot test -run_genode_until {\[init -\> log_terminal\] \[init -\> test-input\] Input event #0\t} 90 +run_genode_until {\[init -\> log_terminal\] \[init -\> event_dump\] Input event #0\t} 90 # remove everything before the first interesting line -regexp {(\[init -\> log_terminal\] \[init -\> test-input\] Input event #0\t.*)} $output all output +regexp {(\[init -\> log_terminal\] \[init -\> event_dump\] Input event #0\t.*)} $output all output -run_genode_until {.*\[init -\> test-input\] Input event #11.*\n} 60 [output_spawn_id] +run_genode_until {.*\[init -\> event_dump\] Input event #11.*\n} 60 [output_spawn_id] unify_output { number [0-9]+} "" unify_output {(?n)on usb-dummy.*$} "" @@ -294,12 +294,12 @@ filter_out_color_escape_sequences trim_lines compare_output_to { -[init -> log_terminal] [init -> test-input] Input event #0 PRESS KEY_X 65534 key count: 1 -[init -> log_terminal] [init -> test-input] Input event #1 RELEASE KEY_X key count: 0 -[init -> log_terminal] [init -> test-input] Input event #2 PRESS BTN_LEFT 65534 key count: 1 -[init -> log_terminal] [init -> test-input] Input event #3 REL_MOTION -1+0 key count: 1 -[init -> log_terminal] [init -> test-input] Input event #4 REL_MOTION +0+1 key count: 1 -[init -> log_terminal] [init -> test-input] Input event #5 RELEASE BTN_LEFT key count: 0 +[init -> log_terminal] [init -> event_dump] Input event #0 PRESS KEY_X 65534 key count: 1 +[init -> log_terminal] [init -> event_dump] Input event #1 RELEASE KEY_X key count: 0 +[init -> log_terminal] [init -> event_dump] Input event #2 PRESS BTN_LEFT 65534 key count: 1 +[init -> log_terminal] [init -> event_dump] Input event #3 REL_MOTION -1+0 key count: 1 +[init -> log_terminal] [init -> event_dump] Input event #4 REL_MOTION +0+1 key count: 1 +[init -> log_terminal] [init -> event_dump] Input event #5 RELEASE BTN_LEFT key count: 0 [init -> usb_drv] dev_info: USB disconnect, device [init -> log_terminal] [init -> usb_drv] dev_info: USB disconnect, device [init -> usb_drv] dev_info: new full-speed USB device @@ -309,10 +309,10 @@ compare_output_to { [init -> log_terminal] [init -> usb_drv] dev_info: input: USB HID v1.11 Keyboard [D L] [init -> log_terminal] [init -> usb_drv] dev_info: D L [init -> log_terminal] [init -> usb_drv] dev_info: input: USB HID v1.11 Mouse [D L] -[init -> log_terminal] [init -> test-input] Input event #6 PRESS KEY_X 65534 key count: 1 -[init -> log_terminal] [init -> test-input] Input event #7 RELEASE KEY_X key count: 0 -[init -> log_terminal] [init -> test-input] Input event #8 PRESS BTN_LEFT 65534 key count: 1 -[init -> log_terminal] [init -> test-input] Input event #9 REL_MOTION -1+0 key count: 1 -[init -> log_terminal] [init -> test-input] Input event #10 REL_MOTION +0+1 key count: 1 -[init -> log_terminal] [init -> test-input] Input event #11 RELEASE BTN_LEFT key count: 0 +[init -> log_terminal] [init -> event_dump] Input event #6 PRESS KEY_X 65534 key count: 1 +[init -> log_terminal] [init -> event_dump] Input event #7 RELEASE KEY_X key count: 0 +[init -> log_terminal] [init -> event_dump] Input event #8 PRESS BTN_LEFT 65534 key count: 1 +[init -> log_terminal] [init -> event_dump] Input event #9 REL_MOTION -1+0 key count: 1 +[init -> log_terminal] [init -> event_dump] Input event #10 REL_MOTION +0+1 key count: 1 +[init -> log_terminal] [init -> event_dump] Input event #11 RELEASE BTN_LEFT key count: 0 } diff --git a/repos/ports/run/virtualbox.run b/repos/ports/run/virtualbox.run index ecfbaa20ca..72def0d44d 100644 --- a/repos/ports/run/virtualbox.run +++ b/repos/ports/run/virtualbox.run @@ -91,8 +91,7 @@ append_if [expr $use_ps2] config { append_if [expr $use_usb] config { - - } + } append_if [expr $use_usb] config { @@ -114,7 +113,6 @@ append_if [have_spec framebuffer] config { append_if [have_spec sdl] config { - } append_if [have_spec x86] config { @@ -172,9 +170,6 @@ append config { } -append_if [expr $use_usb] config { - } - append config { @@ -222,8 +217,6 @@ append_if [expr $use_gui] config { - - } @@ -256,8 +249,6 @@ append_if [expr $use_bridge] config { append config { - - diff --git a/repos/ports/run/virtualbox_auto.inc b/repos/ports/run/virtualbox_auto.inc index d5005488e5..6ee171e4bf 100644 --- a/repos/ports/run/virtualbox_auto.inc +++ b/repos/ports/run/virtualbox_auto.inc @@ -35,7 +35,6 @@ append build_components { server/fs_rom drivers/ahci drivers/framebuffer - app/input_event_client } lappend_if [expr $use_serial] build_components server/log_terminal @@ -340,28 +339,15 @@ append_if [expr $use_usb] config { - - - - + - + + - - - - - - - - - - - } append_if [have_spec framebuffer] config { @@ -400,7 +386,6 @@ append boot_modules { libc.lib.so vfs.lib.so libm.lib.so libiconv.lib.so stdcxx.lib.so qemu-usb.lib.so - input_event_client } lappend_if [expr $use_rumpfs] boot_modules rump.lib.so