| 850 | */ |
| 851 | #ifdef DDB |
| 852 | static void |
| 853 | db_show_print_syinit(struct sysinit *sip, bool ddb) |
| 854 | { |
| 855 | const char *sname, *funcname; |
| 856 | c_db_sym_t sym; |
| 857 | db_expr_t offset; |
| 858 | |
| 859 | #define xprint(...) \ |
| 860 | if (ddb) \ |
| 861 | db_printf(__VA_ARGS__); \ |
| 862 | else \ |
| 863 | printf(__VA_ARGS__) |
| 864 | |
| 865 | if (sip == NULL) { |
| 866 | xprint("%s: no sysinit * given\n", __func__); |
| 867 | return; |
| 868 | } |
| 869 | |
| 870 | sym = db_search_symbol((vm_offset_t)sip, DB_STGY_ANY, &offset); |
| 871 | db_symbol_values(sym, &sname, NULL); |
| 872 | sym = db_search_symbol((vm_offset_t)sip->func, DB_STGY_PROC, &offset); |
| 873 | db_symbol_values(sym, &funcname, NULL); |
| 874 | xprint("%s(%p)\n", (sname != NULL) ? sname : "", sip); |
| 875 | xprint(" %#08x %#08x\n", sip->subsystem, sip->order); |
| 876 | xprint(" %p(%s)(%p)\n", |
| 877 | sip->func, (funcname != NULL) ? funcname : "", sip->udata); |
| 878 | #undef xprint |
| 879 | } |
| 880 | |
| 881 | DB_SHOW_COMMAND(sysinit, db_show_sysinit) |
| 882 | { |
no test coverage detected