162306a36Sopenharmony_ci/* SPDX-License-Identifier: MIT */ 262306a36Sopenharmony_ci#ifndef __NVIF_PARENT_H__ 362306a36Sopenharmony_ci#define __NVIF_PARENT_H__ 462306a36Sopenharmony_ci#include <nvif/os.h> 562306a36Sopenharmony_cistruct nvif_object; 662306a36Sopenharmony_ci 762306a36Sopenharmony_cistruct nvif_parent { 862306a36Sopenharmony_ci const struct nvif_parent_func { 962306a36Sopenharmony_ci void (*debugf)(struct nvif_object *, const char *fmt, ...) __printf(2, 3); 1062306a36Sopenharmony_ci void (*errorf)(struct nvif_object *, const char *fmt, ...) __printf(2, 3); 1162306a36Sopenharmony_ci } *func; 1262306a36Sopenharmony_ci}; 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_cistatic inline void 1562306a36Sopenharmony_cinvif_parent_dtor(struct nvif_parent *parent) 1662306a36Sopenharmony_ci{ 1762306a36Sopenharmony_ci parent->func = NULL; 1862306a36Sopenharmony_ci} 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_cistatic inline void 2162306a36Sopenharmony_cinvif_parent_ctor(const struct nvif_parent_func *func, struct nvif_parent *parent) 2262306a36Sopenharmony_ci{ 2362306a36Sopenharmony_ci parent->func = func; 2462306a36Sopenharmony_ci} 2562306a36Sopenharmony_ci#endif 26