diff options
| author | govinda <none@none> | 2005-11-22 09:04:33 -0800 |
|---|---|---|
| committer | govinda <none@none> | 2005-11-22 09:04:33 -0800 |
| commit | 9c75c6bf17b72bb057d7a8879feba77ece65241a (patch) | |
| tree | b57f6279f6889ff9a74d728102c7a18ac2739e22 /usr/src/cmd/mdb/sparc | |
| parent | e487bac029356f425a49182e98c030a816c1fd60 (diff) | |
| download | illumos-joyent-9c75c6bf17b72bb057d7a8879feba77ece65241a.tar.gz | |
6344060 Add MSI software support in bge driver
6344997 Add MSI software support in ohci driver
6344998 Add MSI software support in ehci driver
6348120 Add MSI software support in uhci driver
6349315 Add support for MSI64 transactions
6347105 Update MSI software support in mpt driver
6347109 Fix DDI framework MSI-X issues
6352670 Use proper behavior flag while calling ddi_intr_alloc
6343017 ddi_intr_remove_handler() returns DDI_FAILURE for MSI interrupts
6349316 px_pci should register legacy/fixed interrupt if MSIs are not available
6342807 Fire/Oberon driver panics on detach
6343874 Fire/Oberon Sun4u interrupt vector removal sequence incorrect
6343908 implement sun4v version of px_ib_intr_reset()
6348244 NGDR: panic when addboard resume on Starfire with socal
6348171 panic in ddi framework during esp_attach
6352440 sparc MDB ::interrupts output cleanup
Diffstat (limited to 'usr/src/cmd/mdb/sparc')
| -rw-r--r-- | usr/src/cmd/mdb/sparc/modules/intr/intr.c | 74 |
1 files changed, 24 insertions, 50 deletions
diff --git a/usr/src/cmd/mdb/sparc/modules/intr/intr.c b/usr/src/cmd/mdb/sparc/modules/intr/intr.c index 25439b1249..c37cf082b5 100644 --- a/usr/src/cmd/mdb/sparc/modules/intr/intr.c +++ b/usr/src/cmd/mdb/sparc/modules/intr/intr.c @@ -38,7 +38,6 @@ static int intr_px_walk_step(mdb_walk_state_t *); static void intr_pci_print_items(mdb_walk_state_t *); static void intr_px_print_items(mdb_walk_state_t *); static char *intr_get_intr_type(msiq_rec_type_t); -static void intr_print_line(int); static void intr_print_banner(void); typedef struct intr_info { @@ -108,6 +107,8 @@ intr_pci_walk_step(mdb_walk_state_t *wsp) /* Figure out how many items are here */ start_addr = (uintptr_t)pci_per_p; + intr_print_banner(); + while (mdb_vread(&pci_per_p, sizeof (uintptr_t), (uintptr_t)start_addr) != -1) { /* Read until nothing is left */ @@ -143,6 +144,8 @@ intr_px_walk_step(mdb_walk_state_t *wsp) /* Figure out how many items are here */ start_addr = (uintptr_t)px_state_p; + intr_print_banner(); + while (mdb_vread(&px_state_p, sizeof (uintptr_t), (uintptr_t)start_addr) != -1) { /* Read until nothing is left */ @@ -187,10 +190,6 @@ intr_pci_print_items(mdb_walk_state_t *wsp) return; } - intr_print_line(77); - intr_print_banner(); - intr_print_line(77); - do { if (mdb_vread(&ih, sizeof (ih_t), (uintptr_t)list.ino_ih_start) == -1) { @@ -246,8 +245,6 @@ intr_pci_print_items(mdb_walk_state_t *wsp) } while (mdb_vread(&list, sizeof (ib_ino_info_t), (uintptr_t)list.ino_next) != -1); - - intr_print_line(77); } static void @@ -276,10 +273,6 @@ intr_px_print_items(mdb_walk_state_t *wsp) return; } - intr_print_line(77); - intr_print_banner(); - intr_print_line(77); - do { if (mdb_vread(&px_ih, sizeof (px_ih_t), (uintptr_t)px_list.ino_ih_start) == -1) { @@ -335,8 +328,6 @@ intr_px_print_items(mdb_walk_state_t *wsp) } while (mdb_vread(&px_list, sizeof (px_ib_ino_info_t), (uintptr_t)px_list.ino_next) != -1); - - intr_print_line(77); } static char * @@ -355,33 +346,19 @@ intr_get_intr_type(msiq_rec_type_t rec_type) } static void -intr_print_line(int cnt) -{ - int x; - - if (!detailed) { - mdb_printf("+"); - for (x = 0; x < cnt; x++) { - mdb_printf("-"); - } - mdb_printf("+\n"); - } -} - -static void intr_print_banner(void) { if (!detailed) { - mdb_printf("| Device\t" - "| Shard\t" - "| Type\t" - "| MSG #\t" - "| State " - "| INO\t" - "| Mondo\t" - "| Pil\t" - "| CPU " - "|\n"); + mdb_printf("\n%<u>\tDevice\t" + " Shared\t" + " Type\t" + " MSG #\t" + " State\t" + " INO\t" + " Mondo\t" + " Pil\t" + " CPU %</u>" + "\n"); } } @@ -389,25 +366,22 @@ static void intr_print_elements(intr_info_t info) { if (!detailed) { - mdb_printf("| %11s#%d\t", info.driver_name, info.instance); - mdb_printf("| %s\t", + mdb_printf(" %11s#%d\t", info.driver_name, info.instance); + mdb_printf(" %5s\t", info.shared ? "yes" : "no"); - mdb_printf("| %s\t", intr_get_intr_type(info.intr_type)); + mdb_printf(" %s\t", intr_get_intr_type(info.intr_type)); if (strcmp("Fixed", intr_get_intr_type(info.intr_type)) == 0) { - mdb_printf("| --- \t"); + mdb_printf(" --- \t"); } else { - mdb_printf("| %4d\t", info.num); + mdb_printf(" %4d\t", info.num); } - mdb_printf("| %2s\t", + mdb_printf(" %2s\t", info.intr_state ? "enbl" : "disbl"); - mdb_printf("| 0x%x\t", info.ino_ino); - mdb_printf("| 0x%x", info.mondo); - if (!(info.mondo & 0xF000)) { /* Don't overrun table width */ - mdb_printf("\t"); - } - mdb_printf("| %4d\t", info.pil); - mdb_printf("| %3d |\n", info.cpuid); + mdb_printf(" 0x%x\t", info.ino_ino); + mdb_printf(" 0x%x\t", info.mondo); + mdb_printf(" %4d\t", info.pil); + mdb_printf(" %3d \n", info.cpuid); } else { mdb_printf("\n-------------------------------------------\n"); mdb_printf("Device:\t\t%s\n", info.driver_name); |
