13e176fd0SBen Skeggs /* SPDX-License-Identifier: MIT */ 23e176fd0SBen Skeggs #ifndef __NVIF_PARENT_H__ 33e176fd0SBen Skeggs #define __NVIF_PARENT_H__ 43e176fd0SBen Skeggs #include <nvif/os.h> 53e176fd0SBen Skeggs struct nvif_object; 63e176fd0SBen Skeggs 73e176fd0SBen Skeggs struct nvif_parent { 83e176fd0SBen Skeggs const struct nvif_parent_func { 93e176fd0SBen Skeggs void (*debugf)(struct nvif_object *, const char *fmt, ...) __printf(2, 3); 103e176fd0SBen Skeggs void (*errorf)(struct nvif_object *, const char *fmt, ...) __printf(2, 3); 113e176fd0SBen Skeggs } *func; 123e176fd0SBen Skeggs }; 133e176fd0SBen Skeggs 143e176fd0SBen Skeggs static inline void nvif_parent_dtor(struct nvif_parent * parent)153e176fd0SBen Skeggsnvif_parent_dtor(struct nvif_parent *parent) 163e176fd0SBen Skeggs { 173e176fd0SBen Skeggs parent->func = NULL; 183e176fd0SBen Skeggs } 193e176fd0SBen Skeggs 203e176fd0SBen Skeggs static inline void nvif_parent_ctor(const struct nvif_parent_func * func,struct nvif_parent * parent)213e176fd0SBen Skeggsnvif_parent_ctor(const struct nvif_parent_func *func, struct nvif_parent *parent) 223e176fd0SBen Skeggs { 233e176fd0SBen Skeggs parent->func = func; 243e176fd0SBen Skeggs } 253e176fd0SBen Skeggs #endif 26