* Dump details about an interrupt handler */
| 1434 | * Dump details about an interrupt handler |
| 1435 | */ |
| 1436 | static void |
| 1437 | db_dump_intrhand(struct intr_handler *ih) |
| 1438 | { |
| 1439 | int comma; |
| 1440 | |
| 1441 | db_printf("\t%-10s ", ih->ih_name); |
| 1442 | switch (ih->ih_pri) { |
| 1443 | case PI_REALTIME: |
| 1444 | db_printf("CLK "); |
| 1445 | break; |
| 1446 | case PI_AV: |
| 1447 | db_printf("AV "); |
| 1448 | break; |
| 1449 | case PI_TTY: |
| 1450 | db_printf("TTY "); |
| 1451 | break; |
| 1452 | case PI_NET: |
| 1453 | db_printf("NET "); |
| 1454 | break; |
| 1455 | case PI_DISK: |
| 1456 | db_printf("DISK"); |
| 1457 | break; |
| 1458 | case PI_DULL: |
| 1459 | db_printf("DULL"); |
| 1460 | break; |
| 1461 | default: |
| 1462 | if (ih->ih_pri >= PI_SOFT) |
| 1463 | db_printf("SWI "); |
| 1464 | else |
| 1465 | db_printf("%4u", ih->ih_pri); |
| 1466 | break; |
| 1467 | } |
| 1468 | db_printf(" "); |
| 1469 | if (ih->ih_filter != NULL) { |
| 1470 | db_printf("[F]"); |
| 1471 | db_printsym((uintptr_t)ih->ih_filter, DB_STGY_PROC); |
| 1472 | } |
| 1473 | if (ih->ih_handler != NULL) { |
| 1474 | if (ih->ih_filter != NULL) |
| 1475 | db_printf(","); |
| 1476 | db_printf("[H]"); |
| 1477 | db_printsym((uintptr_t)ih->ih_handler, DB_STGY_PROC); |
| 1478 | } |
| 1479 | db_printf("(%p)", ih->ih_argument); |
| 1480 | if (ih->ih_need || |
| 1481 | (ih->ih_flags & (IH_EXCLUSIVE | IH_ENTROPY | IH_DEAD | |
| 1482 | IH_MPSAFE)) != 0) { |
| 1483 | db_printf(" {"); |
| 1484 | comma = 0; |
| 1485 | if (ih->ih_flags & IH_EXCLUSIVE) { |
| 1486 | if (comma) |
| 1487 | db_printf(", "); |
| 1488 | db_printf("EXCL"); |
| 1489 | comma = 1; |
| 1490 | } |
| 1491 | if (ih->ih_flags & IH_ENTROPY) { |
| 1492 | if (comma) |
| 1493 | db_printf(", "); |
no test coverage detected