Rev 3997 | Rev 4154 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3997 | Rev 4033 | ||
---|---|---|---|
Line 56... | Line 56... | ||
56 | #include "input.h" |
56 | #include "input.h" |
57 | #include "tetris.h" |
57 | #include "tetris.h" |
58 | 58 | ||
59 | #include <async.h> |
59 | #include <async.h> |
60 | #include <ipc/console.h> |
60 | #include <ipc/console.h> |
- | 61 | #include <kbd/kbd.h> |
|
61 | 62 | ||
62 | /* return true iff the given timeval is positive */ |
63 | /* return true iff the given timeval is positive */ |
63 | #define TV_POS(tv) \ |
64 | #define TV_POS(tv) \ |
64 | ((tv)->tv_sec > 0 || ((tv)->tv_sec == 0 && (tv)->tv_usec > 0)) |
65 | ((tv)->tv_sec > 0 || ((tv)->tv_sec == 0 && (tv)->tv_usec > 0)) |
65 | 66 | ||
Line 109... | Line 110... | ||
109 | s = &endtv; |
110 | s = &endtv; |
110 | } else |
111 | } else |
111 | s = NULL; |
112 | s = NULL; |
112 | 113 | ||
113 | if (!lastchar) { |
114 | if (!lastchar) { |
- | 115 | again: |
|
114 | if (!getchar_inprog) { |
116 | if (!getchar_inprog) { |
115 | cons_phone = get_console_phone(); |
117 | cons_phone = get_console_phone(); |
116 | getchar_inprog = async_send_2(cons_phone, |
118 | getchar_inprog = async_send_2(cons_phone, |
117 | CONSOLE_GETKEY, 0, 0, &charcall); |
119 | CONSOLE_GETKEY, 0, 0, &charcall); |
118 | } |
120 | } |
Line 125... | Line 127... | ||
125 | } |
127 | } |
126 | getchar_inprog = 0; |
128 | getchar_inprog = 0; |
127 | if (rc) { |
129 | if (rc) { |
128 | stop("end of file, help"); |
130 | stop("end of file, help"); |
129 | } |
131 | } |
- | 132 | if (IPC_GET_ARG1(charcall) == KE_RELEASE) |
|
- | 133 | goto again; |
|
- | 134 | ||
130 | lastchar = IPC_GET_ARG4(charcall); |
135 | lastchar = IPC_GET_ARG4(charcall); |
131 | } |
136 | } |
132 | if (tvp) { |
137 | if (tvp) { |
133 | /* since there is input, we may not have timed out */ |
138 | /* since there is input, we may not have timed out */ |
134 | (void) gettimeofday(&endtv, NULL); |
139 | (void) gettimeofday(&endtv, NULL); |