Esempio n. 1
0
void
do_console(void)
{
  char line[256];
  unsigned long len;

  wrkgp();
  wrent(entInt, 0);
  set_console_alarm();
  swpipl(0);

  if (have_vga)
  {
    unsigned short *vga, attr;
    vga = pci_mem_base + SEG_CTEXT *16;
    attr = 0x2000;
    vga[0] = 'H' + attr;
    vga[1] = 'e' + attr;
    vga[2] = 'l' + attr;
    vga[3] = 'l' + attr;
    vga[4] = 'o' + attr;
  }

  while (1)
    {
      crb_puts(0, ">>> ", 4);
      len = getline(line, sizeof(line));
      crb_puts(0, "got: ", 5);
      crb_puts(0, line, len);
      output_crnl();
    }
}
Esempio n. 2
0
static long
tsunami_probe_read(volatile unsigned long *vaddr)
{
	long dont_care, probe_result;
	int cpu = smp_processor_id();
	int s = swpipl(6);	/* Block everything but machine checks. */

	TSUNAMI_mcheck_taken[cpu] = 0;
	TSUNAMI_mcheck_expected[cpu] = 1;
	dont_care = *vaddr;
	draina();
	TSUNAMI_mcheck_expected[cpu] = 0;
	probe_result = !TSUNAMI_mcheck_taken[cpu];
	TSUNAMI_mcheck_taken[cpu] = 0;
	setipl(s);

	printk("dont_care == 0x%lx\n", dont_care);

	return probe_result;
}