162306a36Sopenharmony_ci/* SPDX-License-Identifier: MIT */ 262306a36Sopenharmony_ci#ifndef __NVIF_PRINTF_H__ 362306a36Sopenharmony_ci#define __NVIF_PRINTF_H__ 462306a36Sopenharmony_ci#include <nvif/client.h> 562306a36Sopenharmony_ci#include <nvif/parent.h> 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#define NVIF_PRINT(l,o,f,a...) do { \ 862306a36Sopenharmony_ci struct nvif_object *_o = (o); \ 962306a36Sopenharmony_ci struct nvif_parent *_p = _o->parent; \ 1062306a36Sopenharmony_ci _p->func->l(_o, "[%s/%08x:%s] "f"\n", _o->client->object.name, _o->handle, _o->name, ##a); \ 1162306a36Sopenharmony_ci} while(0) 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#ifndef NVIF_DEBUG_PRINT_DISABLE 1462306a36Sopenharmony_ci#define NVIF_DEBUG(o,f,a...) NVIF_PRINT(debugf, (o), f, ##a) 1562306a36Sopenharmony_ci#else 1662306a36Sopenharmony_ci#define NVIF_DEBUG(o,f,a...) 1762306a36Sopenharmony_ci#endif 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci#define NVIF_ERROR(o,f,a...) NVIF_PRINT(errorf, (o), f, ##a) 2062306a36Sopenharmony_ci#define NVIF_ERRON(c,o,f,a...) do { \ 2162306a36Sopenharmony_ci struct nvif_object *_object = (o); \ 2262306a36Sopenharmony_ci int _cond = (c); \ 2362306a36Sopenharmony_ci if (_cond) { \ 2462306a36Sopenharmony_ci NVIF_ERROR(_object, f" (ret:%d)", ##a, _cond); \ 2562306a36Sopenharmony_ci } else { \ 2662306a36Sopenharmony_ci NVIF_DEBUG(_object, f, ##a); \ 2762306a36Sopenharmony_ci } \ 2862306a36Sopenharmony_ci} while(0) 2962306a36Sopenharmony_ci#endif 30