static int nvkm_ioctl_unmap(struct nvkm_object *object, void *data, u32 size) { union { struct nvif_ioctl_unmap none; } *args = data; int ret; nvif_ioctl(object, "unmap size %d\n", size); if (nvif_unvers(args->none)) { nvif_ioctl(object, "unmap\n"); } return ret; }
static int nvkm_ioctl_nop(struct nouveau_handle *handle, void *data, u32 size) { struct nouveau_object *object = handle->object; union { struct nvif_ioctl_nop none; } *args = data; int ret; nv_ioctl(object, "nop size %d\n", size); if (nvif_unvers(args->none)) { nv_ioctl(object, "nop\n"); } return ret; }
static int nvkm_ioctl_del(struct nvkm_object *object, void *data, u32 size) { union { struct nvif_ioctl_del none; } *args = data; int ret; nvif_ioctl(object, "delete size %d\n", size); if (nvif_unvers(args->none)) { nvif_ioctl(object, "delete\n"); nvkm_object_fini(object, false); nvkm_object_del(&object); } return ret; }
static int nvkm_ioctl_del(struct nouveau_handle *handle, void *data, u32 size) { struct nouveau_object *object = handle->object; union { struct nvif_ioctl_del none; } *args = data; int ret; nv_ioctl(object, "delete size %d\n", size); if (nvif_unvers(args->none)) { nv_ioctl(object, "delete\n"); nouveau_handle_fini(handle, false); nouveau_handle_destroy(handle); } return ret; }
int nv50_disp_chan_uevent_ctor(struct nvkm_object *object, void *data, u32 size, struct nvkm_notify *notify) { struct nv50_disp_chan *chan = nv50_disp_chan(object); union { struct nvif_notify_uevent_req none; } *args = data; int ret = -ENOSYS; if (!(ret = nvif_unvers(ret, &data, &size, args->none))) { notify->size = sizeof(struct nvif_notify_uevent_rep); notify->types = 1; notify->index = chan->chid.user; return 0; } return ret; }