Lines Matching defs:map
356 struct bus_dmamap_iommu *map);
437 struct bus_dmamap_iommu *map;
440 map = malloc_domainset(sizeof(*map), M_IOMMU_DMAMAP,
442 if (map == NULL) {
451 free(map, M_IOMMU_DMAMAP);
456 IOMMU_DMAMAP_INIT(map);
457 TAILQ_INIT(&map->map_entries);
458 map->tag = tag;
459 map->locked = true;
460 map->cansleep = false;
462 *mapp = (bus_dmamap_t)map;
471 struct bus_dmamap_iommu *map;
474 map = (struct bus_dmamap_iommu *)map1;
475 if (map != NULL) {
476 IOMMU_DMAMAP_LOCK(map);
477 if (!TAILQ_EMPTY(&map->map_entries)) {
478 IOMMU_DMAMAP_UNLOCK(map);
481 IOMMU_DMAMAP_DESTROY(map);
482 free(map, M_IOMMU_DMAMAP);
494 struct bus_dmamap_iommu *map;
508 map = (struct bus_dmamap_iommu *)*mapp;
515 map->flags |= BUS_DMAMAP_IOMMU_MALLOC;
520 map->flags |= BUS_DMAMAP_IOMMU_KMEM_ALLOC;
534 struct bus_dmamap_iommu *map;
537 map = (struct bus_dmamap_iommu *)map1;
539 if ((map->flags & BUS_DMAMAP_IOMMU_MALLOC) != 0) {
541 map->flags &= ~BUS_DMAMAP_IOMMU_MALLOC;
543 KASSERT((map->flags & BUS_DMAMAP_IOMMU_KMEM_ALLOC) != 0,
544 ("iommu_bus_dmamem_free for non alloced map %p", map));
546 map->flags &= ~BUS_DMAMAP_IOMMU_KMEM_ALLOC;
554 struct bus_dmamap_iommu *map, vm_page_t *ma, int offset, bus_size_t buflen,
587 gas_flags = map->cansleep ? IOMMU_MF_CANWAIT : 0;
641 struct bus_dmamap_iommu *map, vm_page_t *ma, int offset, bus_size_t buflen,
654 error = iommu_bus_dmamap_load_something1(tag, map, ma, offset,
657 IOMMU_DMAMAP_LOCK(map);
658 TAILQ_CONCAT(&map->map_entries, &entries, dmamap_link);
659 IOMMU_DMAMAP_UNLOCK(map);
674 !map->cansleep)
677 iommu_bus_schedule_dmamap(domain->iommu, map);
687 struct bus_dmamap_iommu *map;
690 map = (struct bus_dmamap_iommu *)map1;
691 return (iommu_bus_dmamap_load_something(tag, map, ma, ma_offs, tlen,
701 struct bus_dmamap_iommu *map;
707 map = (struct bus_dmamap_iommu *)map1;
712 mflags = map->cansleep ? M_WAITOK : M_NOWAIT;
739 error = iommu_bus_dmamap_load_something(tag, map, ma, offset, buflen,
752 struct bus_dmamap_iommu *map;
758 map = (struct bus_dmamap_iommu *)map1;
763 mflags = map->cansleep ? M_WAITOK : M_NOWAIT;
792 error = iommu_bus_dmamap_load_something(tag, map, ma, offset, buflen,
803 struct bus_dmamap_iommu *map;
807 map = (struct bus_dmamap_iommu *)map1;
808 map->mem = *mem;
809 map->tag = (struct bus_dma_tag_iommu *)dmat;
810 map->callback = callback;
811 map->callback_arg = callback_arg;
819 struct bus_dmamap_iommu *map;
822 map = (struct bus_dmamap_iommu *)map1;
824 if (!map->locked) {
825 KASSERT(map->cansleep,
826 ("map not locked and not sleepable context %p", map));
833 map->locked = true;
843 * unload, consisting of the unmapping of the map entries page tables,
855 struct bus_dmamap_iommu *map;
861 map = (struct bus_dmamap_iommu *)map1;
867 IOMMU_DMAMAP_LOCK(map);
868 TAILQ_CONCAT(&entries, &map->map_entries, dmamap_link);
869 IOMMU_DMAMAP_UNLOCK(map);
888 struct bus_dmamap_iommu *map __unused;
890 map = (struct bus_dmamap_iommu *)map1;
891 kmsan_bus_dmamap_sync(&map->kmsan_mem, op);
898 struct bus_dmamap_iommu *map;
900 map = (struct bus_dmamap_iommu *)map1;
901 if (map == NULL)
903 memcpy(&map->kmsan_mem, mem, sizeof(struct memdesc));
932 struct bus_dmamap_iommu *map;
937 while ((map = TAILQ_FIRST(&unit->delayed_maps)) != NULL) {
938 TAILQ_REMOVE(&unit->delayed_maps, map, delay_link);
940 tag = map->tag;
941 map->cansleep = true;
942 map->locked = false;
943 bus_dmamap_load_mem((bus_dma_tag_t)tag, (bus_dmamap_t)map,
944 &map->mem, map->callback, map->callback_arg,
946 map->cansleep = false;
947 if (map->locked) {
951 map->locked = true;
952 map->cansleep = false;
959 iommu_bus_schedule_dmamap(struct iommu_unit *unit, struct bus_dmamap_iommu *map)
962 map->locked = false;
964 TAILQ_INSERT_TAIL(&unit->delayed_maps, map, delay_link);
1009 struct bus_dmamap_iommu *map;
1031 map = (struct bus_dmamap_iommu *)map1;
1053 IOMMU_DMAMAP_LOCK(map);
1054 TAILQ_INSERT_TAIL(&map->map_entries, entry, dmamap_link);
1055 IOMMU_DMAMAP_UNLOCK(map);