immu_flags
if (immu_devi_set(pdip, immu_flags) != DDI_SUCCESS) {
if (immu_flags & IMMU_FLAGS_DONTPASS) {
immu_flags_t immu_flags)
dev_info_t *rdip, immu_flags_t immu_flags)
vmem_flags = (immu_flags & IMMU_FLAGS_NOSLEEP) ? VM_NOSLEEP : VM_SLEEP;
device_domain(dev_info_t *rdip, dev_info_t **ddipp, immu_flags_t immu_flags)
immu = immu_dvma_get_immu(rdip, immu_flags);
immu_flags |= immu_devi_get(rdip)->imd_dvma_flags;
dvarg.dva_flags = immu_flags;
&dvarg, &level, immu_flags) != DDI_SUCCESS) {
domain = domain_create(immu, ddip, rdip, immu_flags);
immu_flags_t immu_flags)
did = did_alloc(immu, rdip, ddip, immu_flags);
kmflags = (immu_flags & IMMU_FLAGS_NOSLEEP) ? KM_NOSLEEP : KM_SLEEP;
create_xlate_arena(immu, domain, rdip, immu_flags);
domain->dom_pgtable_root = pgtable_alloc(immu, immu_flags);
dev_info_t *rdip, immu_flags_t immu_flags)
if (immu_devi_set(ddip, immu_flags) == DDI_FAILURE) {
if (immu_devi_set(rdip, immu_flags) == DDI_FAILURE) {
&pcibdip, NULL, immu_flags) == DDI_SUCCESS &&
dev_info_t *rdip, immu_flags_t immu_flags)
if ((immu_flags & IMMU_FLAGS_READ) && !PDTE_READ(pdte)) {
if ((immu_flags & IMMU_FLAGS_WRITE) && !PDTE_WRITE(pdte)) {
dev_info_t *rdip, immu_flags_t immu_flags)
if (immu_flags & IMMU_FLAGS_READ)
if (immu_flags & IMMU_FLAGS_WRITE)
int dcount, dev_info_t *rdip, immu_flags_t immu_flags)
PTE_set_one(immu, hwp, paddr, rdip, immu_flags);
ASSERT(PDTE_check(immu, *hwp, NULL, paddr, rdip, immu_flags)
dev_info_t *rdip, immu_flags_t immu_flags)
if (immu_flags & IMMU_FLAGS_READ)
if (immu_flags & IMMU_FLAGS_WRITE)
dev_info_t *rdip, immu_flags_t immu_flags)
new = pgtable_alloc(immu, immu_flags);
PDE_set_one(immu, hwp, next, rdip, immu_flags);
if (immu_flags & IMMU_FLAGS_READ)
if (immu_flags & IMMU_FLAGS_WRITE)
ASSERT(PDTE_check(immu, *hwp, next, 0, rdip, immu_flags)
immu_flags_t immu_flags)
if (PDE_set_all(immu, domain, xlate, nlevels, rdip, immu_flags)
dcount, rdip, immu_flags);
immu_flags_t immu_flags;
immu_flags = dma_to_immu_flags(dmareq);
if (immu_flags & IMMU_FLAGS_READ)
if (immu_flags & IMMU_FLAGS_WRITE)
immu_flags))
dmax + 1, rdip, immu_flags))
immu_devi_set(dev_info_t *dip, immu_flags_t immu_flags)
immu_dvma_device_setup(dev_info_t *rdip, immu_flags_t immu_flags)
immu = immu_dvma_get_immu(rdip, immu_flags);
rdip = get_lpc_devinfo(immu, rdip, immu_flags);
domain = device_domain(rdip, &ddip, immu_flags);
if (immu_context_update(immu, domain, ddip, rdip, immu_flags)
new_imd = create_immu_devi(dip, bus, dev, func, immu_flags);
get_lpc_devinfo(immu_t *immu, dev_info_t *rdip, immu_flags_t immu_flags)
&dvarg, NULL, immu_flags) != DDI_SUCCESS) {
pgtable_alloc(immu_t *immu, immu_flags_t immu_flags)
kmflags = (immu_flags & IMMU_FLAGS_NOSLEEP) ? KM_NOSLEEP : KM_SLEEP;
immu_dvma_get_immu(dev_info_t *dip, immu_flags_t immu_flags)
if (immu_devi_set(dip, immu_flags) != DDI_SUCCESS) {
immu_flags_t immu_flags)
kmflags = (immu_flags & IMMU_FLAGS_NOSLEEP) ? KM_NOSLEEP : KM_SLEEP;
dev_info_t *rdip, immu_flags_t immu_flags);
int dev, int func, immu_flags_t immu_flags);
dev_info_t *ddip, immu_flags_t immu_flags)
(immu_flags & IMMU_FLAGS_NOSLEEP) ? VM_NOSLEEP : VM_SLEEP);
immu_flags_t immu_flags);
int *level, immu_flags_t immu_flags);
int immu_devi_set(dev_info_t *dip, immu_flags_t immu_flags);
immu_t *immu_dvma_get_immu(dev_info_t *dip, immu_flags_t immu_flags);
int immu_dvma_device_setup(dev_info_t *rdip, immu_flags_t immu_flags);