1*4882a593Smuzhiyun /* SPDX-License-Identifier: MIT */ 2*4882a593Smuzhiyun #ifndef __NVIF_PRINTF_H__ 3*4882a593Smuzhiyun #define __NVIF_PRINTF_H__ 4*4882a593Smuzhiyun #include <nvif/client.h> 5*4882a593Smuzhiyun #include <nvif/parent.h> 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #define NVIF_PRINT(l,o,f,a...) do { \ 8*4882a593Smuzhiyun struct nvif_object *_o = (o); \ 9*4882a593Smuzhiyun struct nvif_parent *_p = _o->parent; \ 10*4882a593Smuzhiyun _p->func->l(_o, "[%s/%08x:%s] "f"\n", _o->client->object.name, _o->handle, _o->name, ##a); \ 11*4882a593Smuzhiyun } while(0) 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun #ifndef NVIF_DEBUG_PRINT_DISABLE 14*4882a593Smuzhiyun #define NVIF_DEBUG(o,f,a...) NVIF_PRINT(debugf, (o), f, ##a) 15*4882a593Smuzhiyun #else 16*4882a593Smuzhiyun #define NVIF_DEBUG(o,f,a...) 17*4882a593Smuzhiyun #endif 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun #define NVIF_ERROR(o,f,a...) NVIF_PRINT(errorf, (o), f, ##a) 20*4882a593Smuzhiyun #endif 21