hw_x86_64_muen: Use Bitset template for MSI address handle
Use Bitset_2 to represent MSI address handle which renders the Msi_handle type unnecessary.
This commit is contained in:
parent
f5f8011d02
commit
cd420b05ec
|
@ -35,28 +35,22 @@ struct Mmconf_address : Register<64>
|
||||||
return Sid::get(addr - PCI_CONFIG_BASE); }
|
return Sid::get(addr - PCI_CONFIG_BASE); }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Msi_handle : Register<16>
|
|
||||||
{
|
|
||||||
struct Bits_0 : Bitfield<0, 15> { };
|
|
||||||
struct Bits_1 : Bitfield<15, 1> { };
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Msi_address : Register<32>
|
struct Msi_address : Register<32>
|
||||||
{
|
{
|
||||||
enum { BASE = 0xfee00010 };
|
enum { BASE = 0xfee00010 };
|
||||||
|
|
||||||
struct Bits_0 : Bitfield<5, 15> { };
|
struct Bits_0 : Bitfield<5, 15> { };
|
||||||
struct Bits_1 : Bitfield<2, 1> { };
|
struct Bits_1 : Bitfield<2, 1> { };
|
||||||
|
struct Handle : Bitset_2<Bits_0, Bits_1> { };
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return MSI address register value for given handle to enable Interrupt
|
* Return MSI address register value for given handle to enable Interrupt
|
||||||
* Requests in Remappable Format, see VT-d specification section 5.1.2.2.
|
* Requests in Remappable Format, see VT-d specification section 5.1.2.2.
|
||||||
*/
|
*/
|
||||||
static access_t to_msi_addr(Msi_handle::access_t const handle)
|
static access_t to_msi_addr(Msi_address::Handle::access_t const handle)
|
||||||
{
|
{
|
||||||
access_t addr = BASE;
|
access_t addr = BASE;
|
||||||
Bits_0::set(addr, Msi_handle::Bits_0::get(handle));
|
Handle::set(addr, handle);
|
||||||
Bits_1::set(addr, Msi_handle::Bits_1::get(handle));
|
|
||||||
return addr;
|
return addr;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user