platform_drv: use shared irq path for ps/2

Issue #1740
This commit is contained in:
Alexander Boettcher 2015-10-06 16:45:35 +02:00 committed by Christian Helmuth
parent 8701b7d517
commit 04cca1edb1
2 changed files with 16 additions and 6 deletions

View File

@ -10,8 +10,8 @@
* under the terms of the GNU General Public License version 2.
*/
#include <irq_session/connection.h>
#include "pci_session_component.h"
#include "irq.h"
namespace Nonpci { class Ps2; }
@ -29,18 +29,24 @@ class Nonpci::Ps2 : public Platform::Device_component
REG_STATUS = 0x64,
};
Genode::Irq_connection _irq_mouse;
Genode::Io_port_connection _data;
Genode::Io_port_connection _status;
Platform::Irq_session_component _irq_mouse;
Genode::Io_port_connection _data;
Genode::Io_port_connection _status;
public:
Ps2(Genode::Rpc_entrypoint * ep, Platform::Session_component * session)
:
Platform::Device_component(ep, session, IRQ_KEYBOARD),
_irq_mouse(IRQ_MOUSE),
_irq_mouse(IRQ_MOUSE, ~0UL),
_data(REG_DATA, ACCESS_WIDTH), _status(REG_STATUS, ACCESS_WIDTH)
{ }
{
ep->manage(&_irq_mouse);
}
~Ps2() {
ep()->dissolve(&_irq_mouse);
}
Genode::Irq_session_capability irq(Genode::uint8_t virt_irq) override
{

View File

@ -180,6 +180,10 @@ class Platform::Device_component : public Genode::Rpc_object<Platform::Device>,
}
protected:
Genode::Rpc_entrypoint * ep() { return _ep; }
public:
/**