Subversion Repositories HelenOS

Rev

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

Rev 2927 Rev 2948
Line 241... Line 241...
241
            /* The recipient agreed to send data. */
241
            /* The recipient agreed to send data. */
242
            uintptr_t src = IPC_GET_ARG1(answer->data);
242
            uintptr_t src = IPC_GET_ARG1(answer->data);
243
            uintptr_t dst = IPC_GET_ARG1(*olddata);
243
            uintptr_t dst = IPC_GET_ARG1(*olddata);
244
            size_t max_size = IPC_GET_ARG2(*olddata);
244
            size_t max_size = IPC_GET_ARG2(*olddata);
245
            size_t size = IPC_GET_ARG2(answer->data);
245
            size_t size = IPC_GET_ARG2(answer->data);
246
            if (size <= max_size) {
246
            if (size && size <= max_size) {
247
                /*
247
                /*
248
                 * Copy the destination VA so that this piece of
248
                 * Copy the destination VA so that this piece of
249
                 * information is not lost.
249
                 * information is not lost.
250
                 */
250
                 */
251
                IPC_SET_ARG1(answer->data, dst);
251
                IPC_SET_ARG1(answer->data, dst);
Line 256... Line 256...
256
                if (rc) {
256
                if (rc) {
257
                    IPC_SET_RETVAL(answer->data, rc);
257
                    IPC_SET_RETVAL(answer->data, rc);
258
                    free(answer->buffer);
258
                    free(answer->buffer);
259
                    answer->buffer = NULL;
259
                    answer->buffer = NULL;
260
                }
260
                }
-
 
261
            } else if (!size) {
-
 
262
                IPC_SET_RETVAL(answer->data, EOK);
261
            } else {
263
            } else {
262
                IPC_SET_RETVAL(answer->data, ELIMIT);
264
                IPC_SET_RETVAL(answer->data, ELIMIT);
263
            }
265
            }
264
        }
266
        }
265
    } else if (IPC_GET_METHOD(*olddata) == IPC_M_DATA_WRITE) {
267
    } else if (IPC_GET_METHOD(*olddata) == IPC_M_DATA_WRITE) {