xref: /illumos-gate/usr/src/uts/common/io/bnx/bnxdbg.c (revision eef4f27b)
1*eef4f27bSRobert Mustacchi /*
2*eef4f27bSRobert Mustacchi  * Copyright 2014-2017 Cavium, Inc.
3*eef4f27bSRobert Mustacchi  * The contents of this file are subject to the terms of the Common Development
4*eef4f27bSRobert Mustacchi  * and Distribution License, v.1,  (the "License").
5*eef4f27bSRobert Mustacchi  *
6*eef4f27bSRobert Mustacchi  * You may not use this file except in compliance with the License.
7*eef4f27bSRobert Mustacchi  *
8*eef4f27bSRobert Mustacchi  * You can obtain a copy of the License at available
9*eef4f27bSRobert Mustacchi  * at http://opensource.org/licenses/CDDL-1.0
10*eef4f27bSRobert Mustacchi  *
11*eef4f27bSRobert Mustacchi  * See the License for the specific language governing permissions and
12*eef4f27bSRobert Mustacchi  * limitations under the License.
13*eef4f27bSRobert Mustacchi  */
14*eef4f27bSRobert Mustacchi 
15*eef4f27bSRobert Mustacchi /*
16*eef4f27bSRobert Mustacchi  * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
17*eef4f27bSRobert Mustacchi  * Copyright (c) 2019, Joyent, Inc.
18*eef4f27bSRobert Mustacchi  */
19*eef4f27bSRobert Mustacchi 
20*eef4f27bSRobert Mustacchi #include "bnx.h"
21*eef4f27bSRobert Mustacchi 
22*eef4f27bSRobert Mustacchi #define	BNX_BUF_SIZE 256
23*eef4f27bSRobert Mustacchi 
24*eef4f27bSRobert Mustacchi 
25*eef4f27bSRobert Mustacchi void
debug_break(void * ctx)26*eef4f27bSRobert Mustacchi debug_break(void *ctx)
27*eef4f27bSRobert Mustacchi {
28*eef4f27bSRobert Mustacchi 	um_device_t *um = (um_device_t *)ctx;
29*eef4f27bSRobert Mustacchi 	cmn_err(CE_PANIC, "-> %s panic <-", (um) ? um->dev_name : "(unknown)");
30*eef4f27bSRobert Mustacchi }
31*eef4f27bSRobert Mustacchi 
32*eef4f27bSRobert Mustacchi 
33*eef4f27bSRobert Mustacchi void
debug_msg(void * ctx,unsigned long level,char * file,unsigned long line,char * msg,...)34*eef4f27bSRobert Mustacchi debug_msg(void *ctx, unsigned long level, char *file, unsigned long line,
35*eef4f27bSRobert Mustacchi     char *msg, ...)
36*eef4f27bSRobert Mustacchi {
37*eef4f27bSRobert Mustacchi 	um_device_t *um = (um_device_t *)ctx;
38*eef4f27bSRobert Mustacchi 	char buf[BNX_BUF_SIZE];
39*eef4f27bSRobert Mustacchi 	va_list argp;
40*eef4f27bSRobert Mustacchi 
41*eef4f27bSRobert Mustacchi 	*buf = '\0';
42*eef4f27bSRobert Mustacchi 
43*eef4f27bSRobert Mustacchi 	if (um != NULL) {
44*eef4f27bSRobert Mustacchi 		(void) snprintf(buf, BNX_BUF_SIZE, "%s %s:%lu ", um->dev_name,
45*eef4f27bSRobert Mustacchi 		    file, line);
46*eef4f27bSRobert Mustacchi 	} else {
47*eef4f27bSRobert Mustacchi 		(void) snprintf(buf, BNX_BUF_SIZE, "%s:%lu ", file, line);
48*eef4f27bSRobert Mustacchi 	}
49*eef4f27bSRobert Mustacchi 
50*eef4f27bSRobert Mustacchi 	(void) strlcat(buf, msg, BNX_BUF_SIZE);
51*eef4f27bSRobert Mustacchi 
52*eef4f27bSRobert Mustacchi 	va_start(argp, msg);
53*eef4f27bSRobert Mustacchi 	vcmn_err(CE_WARN, buf, argp);
54*eef4f27bSRobert Mustacchi 	va_end(argp);
55*eef4f27bSRobert Mustacchi }
56*eef4f27bSRobert Mustacchi 
57*eef4f27bSRobert Mustacchi 
58*eef4f27bSRobert Mustacchi void
debug_msgx(void * ctx,unsigned long level,char * msg,...)59*eef4f27bSRobert Mustacchi debug_msgx(void *ctx, unsigned long level, char *msg, ...)
60*eef4f27bSRobert Mustacchi {
61*eef4f27bSRobert Mustacchi 	um_device_t *um = (um_device_t *)ctx;
62*eef4f27bSRobert Mustacchi 	char buf[BNX_BUF_SIZE];
63*eef4f27bSRobert Mustacchi 	va_list argp;
64*eef4f27bSRobert Mustacchi 
65*eef4f27bSRobert Mustacchi 	*buf = '\0';
66*eef4f27bSRobert Mustacchi 
67*eef4f27bSRobert Mustacchi 	if (um != NULL) {
68*eef4f27bSRobert Mustacchi 		(void) snprintf(buf, BNX_BUF_SIZE, "%s ", um->dev_name);
69*eef4f27bSRobert Mustacchi 	}
70*eef4f27bSRobert Mustacchi 
71*eef4f27bSRobert Mustacchi 	(void) strlcat(buf, msg, BNX_BUF_SIZE);
72*eef4f27bSRobert Mustacchi 
73*eef4f27bSRobert Mustacchi 	va_start(argp, msg);
74*eef4f27bSRobert Mustacchi 	vcmn_err(CE_WARN, buf, argp);
75*eef4f27bSRobert Mustacchi 	va_end(argp);
76*eef4f27bSRobert Mustacchi }
77