13ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres#ifndef __NOUVEAU_FUSE_H__ 23ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres#define __NOUVEAU_FUSE_H__ 33ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres 43ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres#include <core/subdev.h> 53ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres#include <core/device.h> 63ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres 73ca6cd435effd1d762217529baaab010f34f8cc8Martin Peresstruct nouveau_fuse { 83ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres struct nouveau_subdev base; 93ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres}; 103ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres 113ca6cd435effd1d762217529baaab010f34f8cc8Martin Peresstatic inline struct nouveau_fuse * 123ca6cd435effd1d762217529baaab010f34f8cc8Martin Peresnouveau_fuse(void *obj) 133ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres{ 143ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_FUSE]; 153ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres} 163ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres 173ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres#define nouveau_fuse_create(p, e, o, d) \ 183ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres nouveau_fuse_create_((p), (e), (o), sizeof(**d), (void **)d) 193ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres 203ca6cd435effd1d762217529baaab010f34f8cc8Martin Peresint nouveau_fuse_create_(struct nouveau_object *, struct nouveau_object *, 213ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres struct nouveau_oclass *, int, void **); 223ca6cd435effd1d762217529baaab010f34f8cc8Martin Peresvoid _nouveau_fuse_dtor(struct nouveau_object *); 233ca6cd435effd1d762217529baaab010f34f8cc8Martin Peresint _nouveau_fuse_init(struct nouveau_object *); 243ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres#define _nouveau_fuse_fini _nouveau_subdev_fini 253ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres 263ca6cd435effd1d762217529baaab010f34f8cc8Martin Peresextern struct nouveau_oclass g80_fuse_oclass; 273ca6cd435effd1d762217529baaab010f34f8cc8Martin Peresextern struct nouveau_oclass gf100_fuse_oclass; 283ca6cd435effd1d762217529baaab010f34f8cc8Martin Peresextern struct nouveau_oclass gm107_fuse_oclass; 293ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres 303ca6cd435effd1d762217529baaab010f34f8cc8Martin Peres#endif 31