static void lamebus_mainboard_dumpstate(void *data) { unsigned i; (void)data; msg("LAMEbus multiprocessor controller rev %d", MAINBOARD_REVISION); msg(" ramsize: %lu (%luk)", (unsigned long)bus_ramsize, (unsigned long)bus_ramsize/1024); msg(" irqs: 0x%08x", bus_raised_interrupts); msg(" irqe: 0x%08x", bus_enabled_interrupts); msg(" cpus: %u", ncpus); msg(" cpue: 0x%08x", get_cpue()); for (i=0; i<ncpus; i++) { msg(" cpu %d: %s", i, cpus[i].cpu_enabled ? "ENABLED" : "DISABLED"); msg(" cpu %d cirqe: 0x%08x", i, cpus[i].cpu_enabled_interrupts); msg(" cpu %d cipi: %d", i, cpus[i].cpu_ipi); msg(" cpu %d interrupting: %d", i, cpus[i].cpu_interrupting); msg(" cpu %d cram:", i); dohexdump(cpus[i].cpu_cram, LAMEBUS_CRAM_SIZE); } }
static void disk_dumpstate(void *data) { struct disk_data *dd = data; msg("System/161 disk rev %d", DISK_REVISION); msg(" Paranoid flag: %s", dd->dd_paranoid ? "ON" : "off"); msg(" Tracks: %lu Total sectors: %lu RPM: %lu", (unsigned long) dd->dd_tracks, (unsigned long) dd->dd_totsectors, (unsigned long) dd->dd_rpm); msg(" Current track: %d [arrived: %lu.%09lu]", dd->dd_current_track, (unsigned long) dd->dd_trackarrival_secs, (unsigned long) dd->dd_trackarrival_nsecs); msg(" Status: try %d, code %d, %s", dd->dd_worktries, dd->dd_iostatus, dd->dd_timedop ? "event in progress" : "idle"); msg(" Registers: status 0x%08lx sector 0x%08lx", (unsigned long) dd->dd_stat, (unsigned long) dd->dd_sect); msg(" Transfer buffer:"); dohexdump(dd->dd_buf, SECTSIZE); }
static void net_dumpstate(void *data) { struct net_data *nd = data; msg("System/161 network interface rev %d", NET_REVISION); msg(" Hub: %s", nd->nd_hubaddr.sun_path); msg(" Carrier: %s", nd->nd_lostcarrier ? "none" : "detected"); msg(" rirq: %lu wirq: %lu control: %lu status: 0x%04lx", (unsigned long) nd->nd_rirq, (unsigned long) nd->nd_wirq, (unsigned long) nd->nd_control, (unsigned long) nd->nd_status); msg(" rx buffer:"); dohexdump(nd->nd_rbuf, NET_BUFSIZE); msg(" tx buffer:"); dohexdump(nd->nd_wbuf, NET_BUFSIZE); }
void bus_dumpstate(void) { int i; for (i=0; i<LAMEBUS_NSLOTS; i++) { if (devices[i].ls_info==NULL) { continue; } msg("************ Slot %d ************", i); devices[i].ls_info->ldi_dumpstate(devices[i].ls_devdata); } msg("RAM:"); dohexdump(ram, bus_ramsize); }