Messages in this thread |  | | | Date | Thu, 20 Nov 2008 20:11:35 +0100 | | From | Ingo Molnar <> | | Subject | Re: [PATCH 3/8] intel-iommu: move context entry defs out from dma_remapping.h |
| |
* Mark McLoughlin <markmc@redhat.com> wrote:
> Signed-off-by: Mark McLoughlin <markmc@redhat.com> > --- > drivers/pci/intel-iommu.c | 38 ++++++++++++++++++++++++++++++++++++++ > include/linux/dma_remapping.h | 38 -------------------------------------- > 2 files changed, 38 insertions(+), 38 deletions(-) > > diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c > index 2e56e5a..1c011bb 100644 > --- a/drivers/pci/intel-iommu.c > +++ b/drivers/pci/intel-iommu.c > @@ -90,6 +90,44 @@ get_context_addr_from_root(struct root_entry *root) > NULL); > } > > +/* > + * low 64 bits: > + * 0: present > + * 1: fault processing disable > + * 2-3: translation type > + * 12-63: address space root > + * high 64 bits: > + * 0-2: address width > + * 3-6: aval > + * 8-23: domain id > + */ > +struct context_entry { > + u64 lo; > + u64 hi; > +}; > +#define context_present(c) ((c).lo & 1) > +#define context_fault_disable(c) (((c).lo >> 1) & 1) > +#define context_translation_type(c) (((c).lo >> 2) & 3) > +#define context_address_root(c) ((c).lo & VTD_PAGE_MASK) > +#define context_address_width(c) ((c).hi & 7) > +#define context_domain_id(c) (((c).hi >> 8) & ((1 << 16) - 1)) > + > +#define context_set_present(c) do {(c).lo |= 1;} while (0) > +#define context_set_fault_enable(c) \ > + do {(c).lo &= (((u64)-1) << 2) | 1;} while (0) > +#define context_set_translation_type(c, val) \ > + do { \ > + (c).lo &= (((u64)-1) << 4) | 3; \ > + (c).lo |= ((val) & 3) << 2; \ > + } while (0) > +#define CONTEXT_TT_MULTI_LEVEL 0 > +#define context_set_address_root(c, val) \ > + do {(c).lo |= (val) & VTD_PAGE_MASK; } while (0) > +#define context_set_address_width(c, val) do {(c).hi |= (val) & 7;} while (0) > +#define context_set_domain_id(c, val) \ > + do {(c).hi |= ((val) & ((1 << 16) - 1)) << 8;} while (0) > +#define context_clear_entry(c) do {(c).lo = 0; (c).hi = 0;} while (0)
Since you move this code, please also do a patch to clean it up to use inlines, not macros.
Thanks,
Ingo
|  |