30 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: MIT */
 | 
						|
#ifndef __NVIF_PRINTF_H__
 | 
						|
#define __NVIF_PRINTF_H__
 | 
						|
#include <nvif/client.h>
 | 
						|
#include <nvif/parent.h>
 | 
						|
 | 
						|
#define NVIF_PRINT(l,o,f,a...) do {                                                                \
 | 
						|
	struct nvif_object *_o = (o);                                                              \
 | 
						|
	struct nvif_parent *_p = _o->parent;                                                       \
 | 
						|
	_p->func->l(_o, "[%s/%08x:%s] "f"\n", _o->client->object.name, _o->handle, _o->name, ##a); \
 | 
						|
} while(0)
 | 
						|
 | 
						|
#ifndef NVIF_DEBUG_PRINT_DISABLE
 | 
						|
#define NVIF_DEBUG(o,f,a...) NVIF_PRINT(debugf, (o), f, ##a)
 | 
						|
#else
 | 
						|
#define NVIF_DEBUG(o,f,a...)
 | 
						|
#endif
 | 
						|
 | 
						|
#define NVIF_ERROR(o,f,a...) NVIF_PRINT(errorf, (o), f, ##a)
 | 
						|
#define NVIF_ERRON(c,o,f,a...) do {                            \
 | 
						|
	struct nvif_object *_object = (o);                     \
 | 
						|
	int _cond = (c);                                       \
 | 
						|
	if (_cond) {                                           \
 | 
						|
		NVIF_ERROR(_object, f" (ret:%d)", ##a, _cond); \
 | 
						|
	} else {                                               \
 | 
						|
		NVIF_DEBUG(_object, f, ##a);                   \
 | 
						|
	}                                                      \
 | 
						|
} while(0)
 | 
						|
#endif
 |