/** * \brief Input driver front-end * \author Norman Feske * \author Christian Helmuth * \author Stefan Kalkowski * \date 2006-08-30 */ /* * Copyright (C) 2006-2015 Genode Labs GmbH * * This file is part of the Genode OS framework, which is distributed * under the terms of the GNU General Public License version 2. */ /* Genode includes */ #include #include #include #include #include #include #include #include #include /* local includes */ #include using namespace Genode; struct Main { Server::Entrypoint &ep; Input::Session_component session; Input::Root_component root; Main(Server::Entrypoint &ep) : ep(ep), root(ep.rpc_ep(), session) { Platform::Connection plat_drv; switch (plat_drv.revision()) { case Platform::Session::SMD: plat_drv.enable(Platform::Session::I2C_2); plat_drv.enable(Platform::Session::I2C_3); plat_drv.enable(Platform::Session::BUTTONS); Input::Tablet_driver::factory(ep, session.event_queue()); break; default: PWRN("No input driver available for this board"); } /* tell parent about the service */ env()->parent()->announce(ep.manage(root)); } }; /************ ** Server ** ************/ namespace Server { char const *name() { return "input_drv_ep"; } size_t stack_size() { return 2*1024*sizeof(long); } void construct(Entrypoint &ep) { static Main server(ep); } }