xref: /netbsd-src/sys/dev/usb/usbhist.h (revision d914a3c1b942947a8b1fa87645678df29ac8e6ab)
1*d914a3c1Smrg /*	$NetBSD: usbhist.h,v 1.8 2021/12/11 19:24:21 mrg Exp $	*/
27c2a9a09Sskrll 
37c2a9a09Sskrll /*
47c2a9a09Sskrll  * Copyright (c) 2012 Matthew R. Green
57c2a9a09Sskrll  * All rights reserved.
67c2a9a09Sskrll  *
77c2a9a09Sskrll  * Redistribution and use in source and binary forms, with or without
87c2a9a09Sskrll  * modification, are permitted provided that the following conditions
97c2a9a09Sskrll  * are met:
107c2a9a09Sskrll  * 1. Redistributions of source code must retain the above copyright
117c2a9a09Sskrll  *    notice, this list of conditions and the following disclaimer.
127c2a9a09Sskrll  * 2. Redistributions in binary form must reproduce the above copyright
137c2a9a09Sskrll  *    notice, this list of conditions and the following disclaimer in the
147c2a9a09Sskrll  *    documentation and/or other materials provided with the distribution.
157c2a9a09Sskrll  *
167c2a9a09Sskrll  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
177c2a9a09Sskrll  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
187c2a9a09Sskrll  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
197c2a9a09Sskrll  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
207c2a9a09Sskrll  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
217c2a9a09Sskrll  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
227c2a9a09Sskrll  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
237c2a9a09Sskrll  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
247c2a9a09Sskrll  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
257c2a9a09Sskrll  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
267c2a9a09Sskrll  * SUCH DAMAGE.
277c2a9a09Sskrll  */
287c2a9a09Sskrll 
297c2a9a09Sskrll #ifndef _DEV_USB_USBHIST_H_
307c2a9a09Sskrll #define _DEV_USB_USBHIST_H_
317c2a9a09Sskrll 
327c2a9a09Sskrll #if defined(_KERNEL_OPT)
337c2a9a09Sskrll #include "opt_usb.h"
347c2a9a09Sskrll #endif
357c2a9a09Sskrll 
367c2a9a09Sskrll /*
377c2a9a09Sskrll  * Make USBHIST_PRINT force on KERNHIST_PRINT for at least USBHIST_* usage.
387c2a9a09Sskrll  */
397c2a9a09Sskrll #if defined(USBHIST_PRINT) && !defined(KERNHIST_PRINT)
407c2a9a09Sskrll #define KERNHIST_PRINT 1
417c2a9a09Sskrll #endif
427c2a9a09Sskrll 
437c2a9a09Sskrll #include <sys/kernhist.h>
447c2a9a09Sskrll 
454810df2dSmrg #ifdef USB_DEBUG
467c2a9a09Sskrll 
477c2a9a09Sskrll extern int usbdebug;
487c2a9a09Sskrll 
497c2a9a09Sskrll #define USBHIST_DECL(NAME)		KERNHIST_DECL(NAME)
507c2a9a09Sskrll #define USBHIST_DEFINE(NAME)		KERNHIST_DEFINE(NAME)
517c2a9a09Sskrll #define USBHIST_INIT(NAME,N)		KERNHIST_INIT(NAME,N)
52d5d53603Sskrll #define USBHIST_LINK_STATIC(NAME)	KERNHIST_LINK_STATIC(NAME)
537c2a9a09Sskrll #define USBHIST_LOGN(NAME,N,FMT,A,B,C,D)	do {		\
547c2a9a09Sskrll 	if ((NAME) >= (N)) {					\
557c2a9a09Sskrll 		KERNHIST_LOG(usbhist,FMT,A,B,C,D);		\
567c2a9a09Sskrll 	}							\
577c2a9a09Sskrll } while (0)
584e8e6643Sskrll #define USBHIST_LOGM(NAME,N,FMT,A,B,C,D)	do {		\
594e8e6643Sskrll 	if ((NAME) & (N)) {					\
604e8e6643Sskrll 		KERNHIST_LOG(usbhist,FMT,A,B,C,D);		\
614e8e6643Sskrll 	}							\
624e8e6643Sskrll } while (0)
637c2a9a09Sskrll #define USBHIST_LOG(NAME,FMT,A,B,C,D)	USBHIST_LOGN(NAME,1,FMT,A,B,C,D)
647c2a9a09Sskrll #define USBHIST_CALLED(NAME)			do {		\
657c2a9a09Sskrll 	if ((NAME) != 0) {					\
667c2a9a09Sskrll 		KERNHIST_CALLED(usbhist);			\
677c2a9a09Sskrll 	}							\
687c2a9a09Sskrll } while (0)
699e463835Smrg #define USBHIST_CALLARGS(NAME,FMT,A,B,C,D) do {			\
709e463835Smrg 	if ((NAME) != 0) {					\
719e463835Smrg 		KERNHIST_CALLARGS(usbhist,FMT,A,B,C,D);		\
729e463835Smrg 	}							\
739e463835Smrg } while (0)
74de0a3ab5Smrg #define USBHIST_CALLARGSN(NAME,N,FMT,A,B,C,D) do {		\
75de0a3ab5Smrg 	if ((NAME) >= (N)) {					\
76de0a3ab5Smrg 		KERNHIST_CALLARGS(usbhist,FMT,A,B,C,D);		\
77de0a3ab5Smrg 	}							\
78de0a3ab5Smrg } while (0)
797c2a9a09Sskrll #define USBHIST_FUNC()			KERNHIST_FUNC(__func__)
807c2a9a09Sskrll 
817c2a9a09Sskrll USBHIST_DECL(usbhist);
827c2a9a09Sskrll 
837c2a9a09Sskrll #else
847c2a9a09Sskrll 
857c2a9a09Sskrll #define USBHIST_DECL(NAME)
867c2a9a09Sskrll #define USBHIST_DEFINE(NAME)
877c2a9a09Sskrll #define USBHIST_INIT(NAME,N)
88d5d53603Sskrll #define USBHIST_LINK_STATIC(NAME)
897c2a9a09Sskrll #define USBHIST_LOGN(N,NAME,FMT,A,B,C,D)	do { } while(0)
904e8e6643Sskrll #define USBHIST_LOGM(N,NAME,FMT,A,B,C,D)	do { } while(0)
917c2a9a09Sskrll #define USBHIST_LOG(NAME,FMT,A,B,C,D)		do { } while(0)
929e463835Smrg #define USBHIST_CALLARGS(NAME,FMT,A,B,C,D)
93de0a3ab5Smrg #define USBHIST_CALLARGSN(NAME,N,FMT,A,B,C,D)
947c2a9a09Sskrll #define USBHIST_CALLED(NAME)
957c2a9a09Sskrll #define USBHIST_FUNC()
967c2a9a09Sskrll 
977c2a9a09Sskrll #endif
987c2a9a09Sskrll 
997c2a9a09Sskrll #endif /* _DEV_USBUSB_HIST_H_ */
100