Lines Matching defs:abi16
45 if (!cli->abi16) {
46 struct nouveau_abi16 *abi16;
47 cli->abi16 = abi16 = kzalloc(sizeof(*abi16), GFP_KERNEL);
48 if (cli->abi16) {
49 abi16->cli = cli;
50 INIT_LIST_HEAD(&abi16->channels);
51 INIT_LIST_HEAD(&abi16->objects);
54 return cli->abi16;
63 return cli->abi16;
69 nouveau_abi16_put(struct nouveau_abi16 *abi16, int ret)
71 struct nouveau_cli *cli = abi16->cli;
99 nouveau_abi16_obj_find(struct nouveau_abi16 *abi16, u64 object)
103 list_for_each_entry(obj, &abi16->objects, head) {
119 nouveau_abi16_obj_new(struct nouveau_abi16 *abi16, enum nouveau_abi16_obj_type type, u64 object)
123 obj = nouveau_abi16_obj_find(abi16, object);
133 list_add_tail(&obj->head, &abi16->objects);
172 nouveau_abi16_chan_fini(struct nouveau_abi16 *abi16,
212 nouveau_abi16_fini(struct nouveau_abi16 *abi16)
214 struct nouveau_cli *cli = abi16->cli;
219 list_for_each_entry_safe(obj, tmp, &abi16->objects, head) {
224 list_for_each_entry_safe(chan, temp, &abi16->channels, head) {
225 nouveau_abi16_chan_fini(abi16, chan);
228 kfree(cli->abi16);
229 cli->abi16 = NULL;
342 struct nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv);
348 if (unlikely(!abi16))
352 return nouveau_abi16_put(abi16, -ENODEV);
383 return nouveau_abi16_put(abi16, -ENOSYS);
397 return nouveau_abi16_put(abi16, -EINVAL);
399 /* allocate "abi16 channel" data and make up a handle for it */
402 return nouveau_abi16_put(abi16, -ENOMEM);
405 list_add(&chan->head, &abi16->channels);
492 nouveau_abi16_chan_fini(abi16, chan);
493 return nouveau_abi16_put(abi16, ret);
497 nouveau_abi16_chan(struct nouveau_abi16 *abi16, int channel)
501 list_for_each_entry(chan, &abi16->channels, head) {
513 struct nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv);
516 if (unlikely(!abi16))
519 chan = nouveau_abi16_chan(abi16, req->channel);
521 return nouveau_abi16_put(abi16, -ENOENT);
522 nouveau_abi16_chan_fini(abi16, chan);
523 return nouveau_abi16_put(abi16, 0);
530 struct nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv);
537 if (unlikely(!abi16))
541 return nouveau_abi16_put(abi16, -EINVAL);
543 chan = nouveau_abi16_chan(abi16, init->channel);
545 return nouveau_abi16_put(abi16, -ENOENT);
549 return nouveau_abi16_put(abi16, ret);
598 return nouveau_abi16_put(abi16, -EINVAL);
602 return nouveau_abi16_put(abi16, -ENOMEM);
611 return nouveau_abi16_put(abi16, ret);
619 struct nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv);
626 if (unlikely(!abi16))
628 device = &abi16->cli->device;
632 return nouveau_abi16_put(abi16, -EINVAL);
634 chan = nouveau_abi16_chan(abi16, info->channel);
636 return nouveau_abi16_put(abi16, -ENOENT);
640 return nouveau_abi16_put(abi16, -ENOMEM);
679 return nouveau_abi16_put(abi16, ret);
686 struct nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv);
691 if (unlikely(!abi16))
694 chan = nouveau_abi16_chan(abi16, fini->channel);
696 return nouveau_abi16_put(abi16, -EINVAL);
709 return nouveau_abi16_put(abi16, ret);
713 nouveau_abi16_ioctl_mthd(struct nouveau_abi16 *abi16, struct nvif_ioctl_v0 *ioctl, u32 argc)
715 struct nouveau_cli *cli = abi16->cli;
725 obj = nouveau_abi16_obj_find(abi16, ioctl->object);
743 nouveau_abi16_ioctl_del(struct nouveau_abi16 *abi16, struct nvif_ioctl_v0 *ioctl, u32 argc)
750 obj = nouveau_abi16_obj_find(abi16, ioctl->object);
761 nouveau_abi16_ioctl_new(struct nouveau_abi16 *abi16, struct nvif_ioctl_v0 *ioctl, u32 argc)
780 obj = nouveau_abi16_obj_new(abi16, DEVICE, args->object);
787 chan = nouveau_abi16_chan(abi16, ioctl->token);
791 obj = nouveau_abi16_obj_new(abi16, ENGOBJ, args->object);
804 nouveau_abi16_ioctl_sclass(struct nouveau_abi16 *abi16, struct nvif_ioctl_v0 *ioctl, u32 argc)
819 chan = nouveau_abi16_chan(abi16, ioctl->token);
842 struct nouveau_abi16 *abi16;
864 abi16 = nouveau_abi16_get(filp);
865 if (unlikely(!abi16)) {
871 case NVIF_IOCTL_V0_SCLASS: ret = nouveau_abi16_ioctl_sclass(abi16, ioctl, argc); break;
872 case NVIF_IOCTL_V0_NEW : ret = nouveau_abi16_ioctl_new (abi16, ioctl, argc); break;
873 case NVIF_IOCTL_V0_DEL : ret = nouveau_abi16_ioctl_del (abi16, ioctl, argc); break;
874 case NVIF_IOCTL_V0_MTHD : ret = nouveau_abi16_ioctl_mthd (abi16, ioctl, argc); break;
880 nouveau_abi16_put(abi16, 0);