int nouveau_ramht_new(struct nouveau_object *parent, struct nouveau_object *pargpu, u32 size, u32 align, struct nouveau_ramht **pramht) { struct nouveau_ramht *ramht; int ret; ret = nouveau_gpuobj_create(parent, parent->engine ? parent->engine : parent, /* <nv50 ramht */ &nouveau_ramht_oclass, 0, pargpu, size, align, NVOBJ_FLAG_ZERO_ALLOC, &ramht); *pramht = ramht; if (ret) return ret; ramht->bits = order_base_2(nv_gpuobj(ramht)->size >> 3); return 0; }
static int _nouveau_gpuobj_ctor(struct nouveau_object *parent, struct nouveau_object *engine, struct nouveau_oclass *oclass, void *data, u32 size, struct nouveau_object **pobject) { struct nouveau_gpuobj_class *args = data; struct nouveau_gpuobj *object; int ret; ret = nouveau_gpuobj_create(parent, engine, oclass, 0, args->pargpu, args->size, args->align, args->flags, &object); *pobject = nv_object(object); if (ret) return ret; return 0; }
static int nv84_crypt_object_ctor(struct nouveau_object *parent, struct nouveau_object *engine, struct nouveau_oclass *oclass, void *data, u32 size, struct nouveau_object **pobject) { struct nouveau_gpuobj *obj; int ret; ret = nouveau_gpuobj_create(parent, engine, oclass, 0, parent, 16, 16, 0, &obj); *pobject = nv_object(obj); if (ret) return ret; nv_wo32(obj, 0x00, nv_mclass(obj)); nv_wo32(obj, 0x04, 0x00000000); nv_wo32(obj, 0x08, 0x00000000); nv_wo32(obj, 0x0c, 0x00000000); return 0; }