parent
f53e4ff8f5
commit
8d145bd80c
|
@ -25,25 +25,29 @@ namespace Kernel
|
||||||
{
|
{
|
||||||
class Pic : Genode::Mmio
|
class Pic : Genode::Mmio
|
||||||
{
|
{
|
||||||
struct Irq_pending_basic : Register<0x0, 32>
|
public:
|
||||||
{
|
|
||||||
struct Timer : Bitfield<0, 1> { };
|
|
||||||
struct Gpu : Bitfield<8, 2> { };
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Irq_pending_gpu_1 : Register<0x04, 32> { };
|
enum { MAX_INTERRUPT_ID = 64 };
|
||||||
struct Irq_pending_gpu_2 : Register<0x08, 32> { };
|
|
||||||
struct Irq_enable_gpu_1 : Register<0x10, 32> { };
|
|
||||||
struct Irq_enable_gpu_2 : Register<0x14, 32> { };
|
|
||||||
|
|
||||||
struct Irq_enable_basic : Register<0x18, 32> { };
|
|
||||||
|
|
||||||
struct Irq_disable_gpu_1 : Register<0x1c, 32> { };
|
|
||||||
struct Irq_disable_gpu_2 : Register<0x20, 32> { };
|
|
||||||
struct Irq_disable_basic : Register<0x24, 32> { };
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
struct Irq_pending_basic : Register<0x0, 32>
|
||||||
|
{
|
||||||
|
struct Timer : Bitfield<0, 1> { };
|
||||||
|
struct Gpu : Bitfield<8, 2> { };
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Irq_pending_gpu_1 : Register<0x04, 32> { };
|
||||||
|
struct Irq_pending_gpu_2 : Register<0x08, 32> { };
|
||||||
|
struct Irq_enable_gpu_1 : Register<0x10, 32> { };
|
||||||
|
struct Irq_enable_gpu_2 : Register<0x14, 32> { };
|
||||||
|
|
||||||
|
struct Irq_enable_basic : Register<0x18, 32> { };
|
||||||
|
|
||||||
|
struct Irq_disable_gpu_1 : Register<0x1c, 32> { };
|
||||||
|
struct Irq_disable_gpu_2 : Register<0x20, 32> { };
|
||||||
|
struct Irq_disable_basic : Register<0x24, 32> { };
|
||||||
|
|
||||||
typedef Genode::uint32_t uint32_t;
|
typedef Genode::uint32_t uint32_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -76,7 +80,7 @@ namespace Kernel
|
||||||
}
|
}
|
||||||
|
|
||||||
/* search for lowest set bit in pending masks */
|
/* search for lowest set bit in pending masks */
|
||||||
for (unsigned i = 0; i < 64; i++) {
|
for (unsigned i = 0; i < MAX_INTERRUPT_ID; i++) {
|
||||||
if (!_is_pending(i, p1, p2))
|
if (!_is_pending(i, p1, p2))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user