1*4882a593Smuzhiyun /* SPDX-License-Identifier: MIT */ 2*4882a593Smuzhiyun #ifndef __NVIF_PARENT_H__ 3*4882a593Smuzhiyun #define __NVIF_PARENT_H__ 4*4882a593Smuzhiyun #include <nvif/os.h> 5*4882a593Smuzhiyun struct nvif_object; 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun struct nvif_parent { 8*4882a593Smuzhiyun const struct nvif_parent_func { 9*4882a593Smuzhiyun void (*debugf)(struct nvif_object *, const char *fmt, ...) __printf(2, 3); 10*4882a593Smuzhiyun void (*errorf)(struct nvif_object *, const char *fmt, ...) __printf(2, 3); 11*4882a593Smuzhiyun } *func; 12*4882a593Smuzhiyun }; 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun static inline void nvif_parent_dtor(struct nvif_parent * parent)15*4882a593Smuzhiyunnvif_parent_dtor(struct nvif_parent *parent) 16*4882a593Smuzhiyun { 17*4882a593Smuzhiyun parent->func = NULL; 18*4882a593Smuzhiyun } 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun static inline void nvif_parent_ctor(const struct nvif_parent_func * func,struct nvif_parent * parent)21*4882a593Smuzhiyunnvif_parent_ctor(const struct nvif_parent_func *func, struct nvif_parent *parent) 22*4882a593Smuzhiyun { 23*4882a593Smuzhiyun parent->func = func; 24*4882a593Smuzhiyun } 25*4882a593Smuzhiyun #endif 26