| 111 | } |
| 112 | |
| 113 | static dmar_ctx_entry_t * |
| 114 | dmar_map_ctx_entry(struct dmar_ctx *ctx, struct sf_buf **sfp) |
| 115 | { |
| 116 | struct dmar_unit *dmar; |
| 117 | dmar_ctx_entry_t *ctxp; |
| 118 | |
| 119 | dmar = CTX2DMAR(ctx); |
| 120 | |
| 121 | ctxp = dmar_map_pgtbl(dmar->ctx_obj, 1 + PCI_RID2BUS(ctx->context.rid), |
| 122 | IOMMU_PGF_NOALLOC | IOMMU_PGF_WAITOK, sfp); |
| 123 | ctxp += ctx->context.rid & 0xff; |
| 124 | return (ctxp); |
| 125 | } |
| 126 | |
| 127 | static void |
| 128 | device_tag_init(struct dmar_ctx *ctx, device_t dev) |
no test coverage detected