Lines Matching full:fence
49 struct vmm_fence *fence; in vmm_fence_dequeue() local
53 fence = &queue[hypctx->fence_queue_head]; in vmm_fence_dequeue()
54 if (fence->type != VMM_RISCV_FENCE_INVALID) { in vmm_fence_dequeue()
55 *new_fence = *fence; in vmm_fence_dequeue()
56 fence->type = VMM_RISCV_FENCE_INVALID; in vmm_fence_dequeue()
72 struct vmm_fence *fence; in vmm_fence_enqueue() local
76 fence = &queue[hypctx->fence_queue_tail]; in vmm_fence_enqueue()
77 if (fence->type == VMM_RISCV_FENCE_INVALID) { in vmm_fence_enqueue()
78 *fence = *new_fence; in vmm_fence_enqueue()
91 vmm_fence_process_one(struct vmm_fence *fence) in vmm_fence_process_one() argument
95 KASSERT(fence->type == VMM_RISCV_FENCE_VMA || in vmm_fence_process_one()
96 fence->type == VMM_RISCV_FENCE_VMA_ASID, in vmm_fence_process_one()
97 ("%s: wrong fence type %d", __func__, fence->type)); in vmm_fence_process_one()
99 switch (fence->type) { in vmm_fence_process_one()
101 for (va = fence->start; va < fence->start + fence->size; in vmm_fence_process_one()
106 if ((fence->start == 0 && fence->size == 0) || in vmm_fence_process_one()
107 fence->size == -1) in vmm_fence_process_one()
108 sfence_vma_asid(fence->asid); in vmm_fence_process_one()
110 for (va = fence->start; va < fence->start + fence->size; in vmm_fence_process_one()
112 sfence_vma_asid_page(fence->asid, va); in vmm_fence_process_one()
122 struct vmm_fence fence; in vmm_fence_process() local
128 ("wrong fence bit mask")); in vmm_fence_process()
136 while (vmm_fence_dequeue(hypctx, &fence) == true) in vmm_fence_process()
137 vmm_fence_process_one(&fence); in vmm_fence_process()
141 vmm_fence_add(struct vm *vm, cpuset_t *cpus, struct vmm_fence *fence) in vmm_fence_add() argument
164 switch (fence->type) { in vmm_fence_add()
169 if ((fence->start == 0 && fence->size == 0) || in vmm_fence_add()
170 fence->size == -1) in vmm_fence_add()
180 KASSERT(0, ("%s: wrong fence type %d", __func__, in vmm_fence_add()
181 fence->type)); in vmm_fence_add()
190 if (vmm_fence_enqueue(hypctx, fence) == false) in vmm_fence_add()
203 * On entry back to the guest they will process fence request. in vmm_fence_add()