13e176fd0SBen Skeggs /* SPDX-License-Identifier: MIT */ 23e176fd0SBen Skeggs #ifndef __NVIF_PRINTF_H__ 33e176fd0SBen Skeggs #define __NVIF_PRINTF_H__ 43e176fd0SBen Skeggs #include <nvif/client.h> 53e176fd0SBen Skeggs #include <nvif/parent.h> 63e176fd0SBen Skeggs 73e176fd0SBen Skeggs #define NVIF_PRINT(l,o,f,a...) do { \ 83e176fd0SBen Skeggs struct nvif_object *_o = (o); \ 93e176fd0SBen Skeggs struct nvif_parent *_p = _o->parent; \ 103e176fd0SBen Skeggs _p->func->l(_o, "[%s/%08x:%s] "f"\n", _o->client->object.name, _o->handle, _o->name, ##a); \ 113e176fd0SBen Skeggs } while(0) 123e176fd0SBen Skeggs 133e176fd0SBen Skeggs #ifndef NVIF_DEBUG_PRINT_DISABLE 143e176fd0SBen Skeggs #define NVIF_DEBUG(o,f,a...) NVIF_PRINT(debugf, (o), f, ##a) 153e176fd0SBen Skeggs #else 163e176fd0SBen Skeggs #define NVIF_DEBUG(o,f,a...) 173e176fd0SBen Skeggs #endif 183e176fd0SBen Skeggs 193e176fd0SBen Skeggs #define NVIF_ERROR(o,f,a...) NVIF_PRINT(errorf, (o), f, ##a) 20*168c0299SBen Skeggs #define NVIF_ERRON(c,o,f,a...) do { \ 21*168c0299SBen Skeggs struct nvif_object *_object = (o); \ 22*168c0299SBen Skeggs int _cond = (c); \ 23*168c0299SBen Skeggs if (_cond) { \ 24*168c0299SBen Skeggs NVIF_ERROR(_object, f" (ret:%d)", ##a, _cond); \ 25*168c0299SBen Skeggs } else { \ 26*168c0299SBen Skeggs NVIF_DEBUG(_object, f, ##a); \ 27*168c0299SBen Skeggs } \ 28*168c0299SBen Skeggs } while(0) 293e176fd0SBen Skeggs #endif 30