13ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres/* 23ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * Copyright 2014 Martin Peres 33ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * 43ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * Permission is hereby granted, free of charge, to any person obtaining a 53ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * copy of this software and associated documentation files (the "Software"), 63ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * to deal in the Software without restriction, including without limitation 73ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * the rights to use, copy, modify, merge, publish, distribute, sublicense, 83ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * and/or sell copies of the Software, and to permit persons to whom the 93ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * Software is furnished to do so, subject to the following conditions: 103ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * 113ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * The above copyright notice and this permission notice shall be included in 123ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * all copies or substantial portions of the Software. 133ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * 143ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 153ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 163ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 173ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 183ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 193ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 203ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * OTHER DEALINGS IN THE SOFTWARE. 213ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * 223ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres * Authors: Martin Peres 233ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres */ 243ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres 253ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres#include <subdev/fuse.h> 263ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres 273ca6cd435effd1d762217529baaab010f34f8cc8Martin Peresint 283ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres_nouveau_fuse_init(struct nouveau_object *object) 293ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres{ 303ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres struct nouveau_fuse *fuse = (void *)object; 313ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres return nouveau_subdev_init(&fuse->base); 323ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres} 333ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres 343ca6cd435effd1d762217529baaab010f34f8cc8Martin Peresvoid 353ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres_nouveau_fuse_dtor(struct nouveau_object *object) 363ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres{ 373ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres struct nouveau_fuse *fuse = (void *)object; 383ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres nouveau_subdev_destroy(&fuse->base); 393ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres} 403ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres 413ca6cd435effd1d762217529baaab010f34f8cc8Martin Peresint 423ca6cd435effd1d762217529baaab010f34f8cc8Martin Peresnouveau_fuse_create_(struct nouveau_object *parent, 433ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres struct nouveau_object *engine, 443ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres struct nouveau_oclass *oclass, int length, void **pobject) 453ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres{ 463ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres struct nouveau_fuse *fuse; 473ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres int ret; 483ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres 493ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres ret = nouveau_subdev_create_(parent, engine, oclass, 0, "FUSE", 503ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres "fuse", length, pobject); 513ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres fuse = *pobject; 523ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres 533ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres return ret; 543ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres} 55