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 --- |