Lines Matching refs:ucmd
200 static int iommufd_destroy(struct iommufd_ucmd *ucmd)
202 struct iommu_destroy *cmd = ucmd->cmd;
204 return iommufd_object_remove(ucmd->ictx, NULL, cmd->id, 0);
278 static int iommufd_option(struct iommufd_ucmd *ucmd)
280 struct iommu_option *cmd = ucmd->cmd;
288 rc = iommufd_option_rlimit_mode(cmd, ucmd->ictx);
291 rc = iommufd_ioas_option(ucmd);
298 if (copy_to_user(&((struct iommu_option __user *)ucmd->ubuffer)->val64,
332 int (*execute)(struct iommufd_ucmd *ucmd);
392 struct iommufd_ucmd ucmd = {};
402 ucmd.ictx = ictx;
403 ucmd.ubuffer = (void __user *)arg;
404 ret = get_user(ucmd.user_size, (u32 __user *)ucmd.ubuffer);
411 if (ucmd.user_size < op->min_size)
414 ucmd.cmd = &buf;
415 ret = copy_struct_from_user(ucmd.cmd, op->size, ucmd.ubuffer,
416 ucmd.user_size);
419 ret = op->execute(&ucmd);