emlxs.c (291a2b48) emlxs.c (82527734)
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE

--- 7 unchanged lines hidden (view full) ---

16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22/*
23 * Copyright 2009 Emulex. All rights reserved.
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE

--- 7 unchanged lines hidden (view full) ---

16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22/*
23 * Copyright 2009 Emulex. All rights reserved.
24 * Use is subject to License terms.
24 * Use is subject to license terms.
25 */
26
27#define DUMP_SUPPORT
28
29#include <emlxs_mdb.h>
30#include <emlxs_msg.h>
31#include <emlxs_dump.h>
32#include <emlxs_device.h>

--- 50 unchanged lines hidden (view full) ---

83 emlxs_msg_log_t log;
84 uint32_t count;
85 uint32_t first;
86 uint32_t last;
87 uint32_t idx;
88 uint32_t i;
89 char *level;
90 emlxs_msg_t msg;
25 */
26
27#define DUMP_SUPPORT
28
29#include <emlxs_mdb.h>
30#include <emlxs_msg.h>
31#include <emlxs_dump.h>
32#include <emlxs_device.h>

--- 50 unchanged lines hidden (view full) ---

83 emlxs_msg_log_t log;
84 uint32_t count;
85 uint32_t first;
86 uint32_t last;
87 uint32_t idx;
88 uint32_t i;
89 char *level;
90 emlxs_msg_t msg;
91 uint32_t secs;
92 uint32_t hsecs;
91 char merge[1024];
92
93 emlxs_msg_entry_t entry;
94 char buffer[256];
95 char buffer2[256];
96 int32_t instance[MAX_FC_BRDS];
97 char driver[32];
98 int32_t instance_count;
99 uint32_t ddiinst;
100

--- 107 unchanged lines hidden (view full) ---

208
209 if (mdb_vread(&msg, sizeof (emlxs_msg_t),
210 (uintptr_t)entry.msg) != sizeof (emlxs_msg_t)) {
211 mdb_warn("Cannot read msg. index=%d count=%d\n",
212 idx, count);
213 return (DCMD_ERR);
214 }
215
93 emlxs_msg_entry_t entry;
94 char buffer[256];
95 char buffer2[256];
96 int32_t instance[MAX_FC_BRDS];
97 char driver[32];
98 int32_t instance_count;
99 uint32_t ddiinst;
100

--- 107 unchanged lines hidden (view full) ---

208
209 if (mdb_vread(&msg, sizeof (emlxs_msg_t),
210 (uintptr_t)entry.msg) != sizeof (emlxs_msg_t)) {
211 mdb_warn("Cannot read msg. index=%d count=%d\n",
212 idx, count);
213 return (DCMD_ERR);
214 }
215
216 hsecs = (entry.time%100);
217 secs = entry.time/100;
218
219 switch (msg.level) {
220 case EMLXS_DEBUG:
221 level = " DEBUG";
222 break;
223
224 case EMLXS_NOTICE:
225 level = " NOTICE";
226 break;

--- 5 unchanged lines hidden (view full) ---

232 case EMLXS_ERROR:
233 level = " ERROR";
234 break;
235
236 case EMLXS_PANIC:
237 level = " PANIC";
238 break;
239
216 switch (msg.level) {
217 case EMLXS_DEBUG:
218 level = " DEBUG";
219 break;
220
221 case EMLXS_NOTICE:
222 level = " NOTICE";
223 break;

--- 5 unchanged lines hidden (view full) ---

229 case EMLXS_ERROR:
230 level = " ERROR";
231 break;
232
233 case EMLXS_PANIC:
234 level = " PANIC";
235 break;
236
240 case EMLXS_EVENT:
241 level = " EVENT";
242 break;
243
244 default:
245 level = "UNKNOWN";
246 break;
247 }
248
249 if (entry.vpi == 0) {
250 mdb_snprintf(driver, sizeof (driver), "%s%d",
251 DRIVER_NAME, entry.instance);
252 } else {
253 mdb_snprintf(driver, sizeof (driver), "%s%d.%d",
254 DRIVER_NAME, entry.instance, entry.vpi);
255 }
256
257 /* Generate the message string */
258 if (msg.buffer[0] != 0) {
259 if (entry.buffer[0] != 0) {
237 default:
238 level = "UNKNOWN";
239 break;
240 }
241
242 if (entry.vpi == 0) {
243 mdb_snprintf(driver, sizeof (driver), "%s%d",
244 DRIVER_NAME, entry.instance);
245 } else {
246 mdb_snprintf(driver, sizeof (driver), "%s%d.%d",
247 DRIVER_NAME, entry.instance, entry.vpi);
248 }
249
250 /* Generate the message string */
251 if (msg.buffer[0] != 0) {
252 if (entry.buffer[0] != 0) {
260 mdb_snprintf(buffer, sizeof (buffer),
261 "%8d.%02d: "
253 mdb_snprintf(merge, sizeof (merge),
254 "[%Y:%03d:%03d:%03d] "
262 "%6d:[%1X.%04X]%s:%7s:%4d: %s\n(%s)\n",
255 "%6d:[%1X.%04X]%s:%7s:%4d: %s\n(%s)\n",
263 secs, hsecs, entry.id, entry.fileno,
256 entry.id_time.tv_sec,
257 (int)entry.id_time.tv_nsec/1000000,
258 (int)(entry.id_time.tv_nsec/1000)%1000,
259 (int)entry.id_time.tv_nsec%1000,
260 entry.id, entry.fileno,
264 entry.line, driver, level, msg.id,
265 msg.buffer, entry.buffer);
266
267 } else {
261 entry.line, driver, level, msg.id,
262 msg.buffer, entry.buffer);
263
264 } else {
268 mdb_snprintf(buffer, sizeof (buffer),
269 "%8d.%02d: %6d:[%1X.%04X]%s:%7s:%4d: %s\n",
270 secs, hsecs, entry.id, entry.fileno,
265 mdb_snprintf(merge, sizeof (merge),
266 "[%Y:%03d:%03d:%03d] "
267 "%6d:[%1X.%04X]%s:%7s:%4d: %s\n",
268 entry.id_time.tv_sec,
269 (int)entry.id_time.tv_nsec/1000000,
270 (int)(entry.id_time.tv_nsec/1000)%1000,
271 (int)entry.id_time.tv_nsec%1000,
272 entry.id, entry.fileno,
271 entry.line, driver, level, msg.id,
272 msg.buffer);
273 }
274 } else {
275 if (entry.buffer[0] != 0) {
273 entry.line, driver, level, msg.id,
274 msg.buffer);
275 }
276 } else {
277 if (entry.buffer[0] != 0) {
276 mdb_snprintf(buffer, sizeof (buffer),
277 "%8d.%02d: "
278 mdb_snprintf(merge, sizeof (merge),
279 "[%Y:%03d:%03d:%03d] "
278 "%6d:[%1X.%04X]%s:%7s:%4d:\n(%s)\n",
280 "%6d:[%1X.%04X]%s:%7s:%4d:\n(%s)\n",
279 secs, hsecs, entry.id, entry.fileno,
281 entry.id_time.tv_sec,
282 (int)entry.id_time.tv_nsec/1000000,
283 (int)(entry.id_time.tv_nsec/1000)%1000,
284 (int)entry.id_time.tv_nsec%1000,
285 entry.id, entry.fileno,
280 entry.line, driver, level, msg.id,
281 entry.buffer);
286 entry.line, driver, level, msg.id,
287 entry.buffer);
288
282 } else {
289 } else {
283 mdb_snprintf(buffer, sizeof (buffer),
284 "%8d.%02d: %6d:[%1X.%04X]%s:%7s:%4d:\n",
285 secs, hsecs, entry.id, entry.fileno,
286 entry.line, driver, level, msg.id);
290 mdb_snprintf(merge, sizeof (merge),
291 "[%Y:%03d:%03d:%03d] "
292 "%6d:[%1X.%04X]%s:%7s:%4d: %s\n",
293 entry.id_time.tv_sec,
294 (int)entry.id_time.tv_nsec/1000000,
295 (int)(entry.id_time.tv_nsec/1000)%1000,
296 (int)entry.id_time.tv_nsec%1000,
297 entry.id, entry.fileno,
298 entry.line, driver, level, msg.id,
299 msg.buffer);
287 }
288 }
289
300 }
301 }
302
290 mdb_printf("%s", buffer);
303 mdb_printf("%s", merge);
291
292 /* Increment index */
293 if (++idx >= log.size) {
294 idx = 0;
295 }
296 }
297
298 mdb_printf("\n");

--- 348 unchanged lines hidden ---
304
305 /* Increment index */
306 if (++idx >= log.size) {
307 idx = 0;
308 }
309 }
310
311 mdb_printf("\n");

--- 348 unchanged lines hidden ---