Beispiel #1
0
static int bsp_in_char( void ){
	int tmp;
	ofw_read( &tmp, 1 ); /* blocks */
	if( tmp != 0 ) {
		return tmp>>24;
	}
	return -1;
}
Beispiel #2
0
int sun4v_console_poll_read(int minor){
	int a;
	ofw_read(&a,1);
	if(a!=0){
		return a>>24;
	}
	return -1;
}
Beispiel #3
0
menu_entry_t *execute_menu()
{
    menu_entry_t *menu = NULL;

    if (menu_entries_cnt == 1)
    {
        menu = menu_entries[0];
    }
    else if (menu_entries_cnt > 1)
    {
        int i;
        int selected = default_option;
        char chr;

        printf("\r\nAvailable boot configurations:\r\n");

        for (i=0; i < menu_entries_cnt; i++)
        {
        	printf("%c. %s\r\n", (i+1) < 10 ? i+'1':i+'A', menu_entries[i]->m_title);
        }

        printf("Boot? >");
        while (ofw_read(stdin, &chr, 1) < 0) {
        	ofw_interpret("10 ms");
        }

        if (chr >= '1' && chr <= '9')
        	chr-='0';
        else if (chr >= 'A' && chr <= 'Z')
        	chr = chr - 'A' + 10;

        printf("\r\n");

        if (1)
        {
			if (chr >= 1 && chr <= menu_entries_cnt) {
				D(bug("[BOOT] correct key\r\n"));
				selected = chr-1;
			}
			else return NULL;
        }

        menu = menu_entries[selected];
        D(bug("[BOOT] Selected configuration: \"%s\"\r\n", menu->m_title));
    }

    return menu;
}