Subversion Repositories HelenOS

Rev

Rev 2787 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2787 Rev 3425
Line 94... Line 94...
94
rwait(struct timeval *tvp)
94
rwait(struct timeval *tvp)
95
{
95
{
96
    struct timeval starttv, endtv, *s;
96
    struct timeval starttv, endtv, *s;
97
    static ipc_call_t charcall;
97
    static ipc_call_t charcall;
98
    ipcarg_t rc;
98
    ipcarg_t rc;
-
 
99
    int cons_phone;
99
 
100
 
100
    /*
101
    /*
101
     * Someday, select() will do this for us.
102
     * Someday, select() will do this for us.
102
     * Just in case that day is now, and no one has
103
     * Just in case that day is now, and no one has
103
     * changed this, we use a temporary.
104
     * changed this, we use a temporary.
Line 108... Line 109...
108
        s = &endtv;
109
        s = &endtv;
109
    } else
110
    } else
110
        s = NULL;
111
        s = NULL;
111
 
112
 
112
    if (!lastchar) {
113
    if (!lastchar) {
113
        if (!getchar_inprog)
114
        if (!getchar_inprog) {
-
 
115
            cons_phone = get_cons_phone();
114
            getchar_inprog = async_send_2(1,CONSOLE_GETCHAR,0,0,&charcall);
116
            getchar_inprog = async_send_2(cons_phone,
-
 
117
                CONSOLE_GETCHAR, 0, 0, &charcall);
-
 
118
        }
115
        if (!s)
119
        if (!s)
116
            async_wait_for(getchar_inprog, &rc);
120
            async_wait_for(getchar_inprog, &rc);
117
        else if (async_wait_timeout(getchar_inprog, &rc, s->tv_usec) == ETIMEOUT) {
121
        else if (async_wait_timeout(getchar_inprog, &rc, s->tv_usec) == ETIMEOUT) {
118
            tvp->tv_sec = 0;
122
            tvp->tv_sec = 0;
119
            tvp->tv_usec = 0;
123
            tvp->tv_usec = 0;