Пример #1
0
/*
 * this is usb keyboard test code.
 */
wait_keybard_input(int c, int timeout)
{
	int jx = 0, ix = 0;
	int chr = -1;
	extern struct stdio_dev* stdio_get_by_name(char* name);
	struct stdio_dev* std_dev = NULL;

	usb_stop();
	printf("start usb ...\n");
	usb_init();
	std_dev =  stdio_get_by_name("usbkbd");
	if (std_dev) {
		while (ix < 20000) {
			if (jx++ > 100) {
				if (!(ix % 100))
					printf(" \rWait for keyboard CTRL press %d ...",
					(ix/100));
				jx = 0;
				ix++;
			}
			if (std_dev->tstc()) {
				chr = std_dev->getc();
				printf(" \b%c", chr);
				if (chr == 0)
					break;
			}
			udelay(10);
		}
		printf("\n");
	}
}
Пример #2
0
struct stdio_dev *open_port(int num, int baudrate)
{
	struct stdio_dev *port;
	char env_var[16];
	char env_val[10];
	char name[7];

	if (num < 0 || num > 11)
		return NULL;

	sprintf(name, "psc%d", num);
	port = stdio_get_by_name(name);
	if (!port)
		return NULL;

	if (!test_bit(num, &initialized)) {
		sprintf(env_var, "psc%d_baudrate", num);
		sprintf(env_val, "%d", baudrate);
		setenv(env_var, env_val);

		if (port->start())
			return NULL;

		set_bit(num, &initialized);
	}

	return port;
}
Пример #3
0
struct stdio_dev *search_device(int flags, const char *name)
{
	struct stdio_dev *dev;

	dev = stdio_get_by_name(name);

	if (dev && (dev->flags & flags))
		return dev;

	return NULL;
}
Пример #4
0
void bootmenu(void)
{
	bm_con = stdio_get_by_name("vga");
	if (bm_con && bm_con->start && bm_con->start() < 0)
		bm_con = NULL;
	if (!bm_con)
		bm_con = stdio_devices[stdout];
	if (!bm_con)
		return;
#if 0
	console_assign(stdout, "vga");
	console_assign(stderr, "vga");
#endif
	show_bootmenu();
}
Пример #5
0
int close_port(int num)
{
	struct stdio_dev *port;
	int ret;
	char name[7];

	if (num < 0 || num > 11)
		return -1;

	sprintf(name, "psc%d", num);
	port = stdio_get_by_name(name);
	if (!port)
		return -1;

	ret = port->stop();
	clear_bit(num, &initialized);

	return ret;
}