예제 #1
0
파일: lamebus.c 프로젝트: ops-class/sys161
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);
	}
}
예제 #2
0
파일: dev_disk.c 프로젝트: ops-class/sys161
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);
}
예제 #3
0
파일: dev_net.c 프로젝트: alexleigh/sys161
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);
}
예제 #4
0
파일: lamebus.c 프로젝트: ops-class/sys161
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);
}