Rev 2479 | Rev 2677 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2479 | Rev 2619 | ||
---|---|---|---|
Line 193... | Line 193... | ||
193 | keyfield_t *interbuf = NULL; |
193 | keyfield_t *interbuf = NULL; |
194 | size_t intersize = 0; |
194 | size_t intersize = 0; |
195 | int i; |
195 | int i; |
196 | 196 | ||
197 | if (client_connected) { |
197 | if (client_connected) { |
198 | ipc_answer_fast(iid, ELIMIT, 0,0); |
198 | ipc_answer_0(iid, ELIMIT); |
199 | return; |
199 | return; |
200 | } |
200 | } |
201 | client_connected = 1; |
201 | client_connected = 1; |
202 | ipc_answer_fast(iid, 0, 0, 0); /* Accept connection */ |
202 | ipc_answer_0(iid, EOK); /* Accept connection */ |
203 | 203 | ||
204 | while (1) { |
204 | while (1) { |
205 | callid = async_get_call(&call); |
205 | callid = async_get_call(&call); |
206 | switch (IPC_GET_METHOD(call)) { |
206 | switch (IPC_GET_METHOD(call)) { |
207 | case IPC_M_PHONE_HUNGUP: |
207 | case IPC_M_PHONE_HUNGUP: |
208 | client_connected = 0; |
208 | client_connected = 0; |
209 | ipc_answer_fast(callid, 0, 0, 0); |
209 | ipc_answer_0(callid, EOK); |
210 | return; /* Exit thread */ |
210 | return; /* Exit thread */ |
211 | case IPC_M_AS_AREA_SEND: |
211 | case IPC_M_AS_AREA_SEND: |
212 | /* We accept one area for data interchange */ |
212 | /* We accept one area for data interchange */ |
213 | intersize = IPC_GET_ARG2(call); |
213 | intersize = IPC_GET_ARG2(call); |
214 | if (intersize >= scr_width * scr_height * |
214 | if (intersize >= scr_width * scr_height * |
215 | sizeof(*interbuf)) { |
215 | sizeof(*interbuf)) { |
216 | receive_comm_area(callid, &call, (void *) |
216 | receive_comm_area(callid, &call, |
217 | &interbuf); |
217 | (void *) &interbuf); |
218 | continue; |
218 | continue; |
219 | } |
219 | } |
220 | retval = EINVAL; |
220 | retval = EINVAL; |
221 | break; |
221 | break; |
222 | case FB_DRAW_TEXT_DATA: |
222 | case FB_DRAW_TEXT_DATA: |
Line 226... | Line 226... | ||
226 | } |
226 | } |
227 | draw_text_data(interbuf); |
227 | draw_text_data(interbuf); |
228 | retval = 0; |
228 | retval = 0; |
229 | break; |
229 | break; |
230 | case FB_GET_CSIZE: |
230 | case FB_GET_CSIZE: |
231 | ipc_answer_fast(callid, 0, scr_height, scr_width); |
231 | ipc_answer_2(callid, EOK, scr_height, scr_width); |
232 | continue; |
232 | continue; |
233 | case FB_CLEAR: |
233 | case FB_CLEAR: |
234 | clrscr(); |
234 | clrscr(); |
235 | retval = 0; |
235 | retval = 0; |
236 | break; |
236 | break; |
Line 298... | Line 298... | ||
298 | break; |
298 | break; |
299 | 299 | ||
300 | default: |
300 | default: |
301 | retval = ENOENT; |
301 | retval = ENOENT; |
302 | } |
302 | } |
303 | ipc_answer_fast(callid, retval, 0, 0); |
303 | ipc_answer_0(callid, retval); |
304 | } |
304 | } |
305 | } |
305 | } |
306 | 306 | ||
307 | int ega_init(void) |
307 | int ega_init(void) |
308 | { |
308 | { |