Loading drivers/gpu/drm/nouveau/include/nvif/object.h +29 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,35 @@ void nvif_object_unmap(struct nvif_object *); #define nvif_mthd(a,b,c,d) nvif_object_mthd((a), (b), (c), (d)) struct nvif_mclass { s32 oclass; int version; }; #define nvif_mclass(o,m) ({ \ struct nvif_object *object = (o); \ struct nvif_sclass *sclass; \ const typeof(m[0]) *mclass = (m); \ int ret = -ENODEV; \ int cnt, i, j; \ \ cnt = nvif_object_sclass_get(object, &sclass); \ if (cnt >= 0) { \ for (i = 0; ret < 0 && mclass[i].oclass; i++) { \ for (j = 0; j < cnt; j++) { \ if (mclass[i].oclass == sclass[j].oclass && \ mclass[i].version >= sclass[j].minver && \ mclass[i].version <= sclass[j].maxver) { \ ret = i; \ break; \ } \ } \ } \ nvif_object_sclass_put(&sclass); \ } \ ret; \ }) /*XXX*/ #include <core/object.h> #define nvxx_object(a) ({ \ Loading Loading
drivers/gpu/drm/nouveau/include/nvif/object.h +29 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,35 @@ void nvif_object_unmap(struct nvif_object *); #define nvif_mthd(a,b,c,d) nvif_object_mthd((a), (b), (c), (d)) struct nvif_mclass { s32 oclass; int version; }; #define nvif_mclass(o,m) ({ \ struct nvif_object *object = (o); \ struct nvif_sclass *sclass; \ const typeof(m[0]) *mclass = (m); \ int ret = -ENODEV; \ int cnt, i, j; \ \ cnt = nvif_object_sclass_get(object, &sclass); \ if (cnt >= 0) { \ for (i = 0; ret < 0 && mclass[i].oclass; i++) { \ for (j = 0; j < cnt; j++) { \ if (mclass[i].oclass == sclass[j].oclass && \ mclass[i].version >= sclass[j].minver && \ mclass[i].version <= sclass[j].maxver) { \ ret = i; \ break; \ } \ } \ } \ nvif_object_sclass_put(&sclass); \ } \ ret; \ }) /*XXX*/ #include <core/object.h> #define nvxx_object(a) ({ \ Loading