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