Subversion Repositories HelenOS

Rev

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

Rev 4345 Rev 4346
Line 934... Line 934...
934
        goto restart;
934
        goto restart;
935
 
935
 
936
    /* Include phone address('id') of the caller in the request,
936
    /* Include phone address('id') of the caller in the request,
937
     * copy whole call->data, not only call->data.args */
937
     * copy whole call->data, not only call->data.args */
938
    if (STRUCT_TO_USPACE(calldata, &call->data)) {
938
    if (STRUCT_TO_USPACE(calldata, &call->data)) {
939
        /* XXX
939
        /*
940
         * To avoid deadlocks in synchronous calls
940
         * The callee will not receive this call and no one else has
941
         * this should be replaced by discarding
-
 
942
         * the call and notifying the caller.
941
         * a chance to answer it. Reply with the EPARTY error code.
943
         */
942
         */
-
 
943
        ipc_data_t saved_data;
-
 
944
        int saveddata = 0;
-
 
945
 
-
 
946
        if (answer_need_old(call)) {
-
 
947
            memcpy(&saved_data, &call->data, sizeof(call->data));
-
 
948
            saveddata = 1;
-
 
949
        }
-
 
950
       
-
 
951
        IPC_SET_RETVAL(call->data, EPARTY);
-
 
952
        (void) answer_preprocess(call, saveddata ? &saved_data : NULL);
-
 
953
        ipc_answer(&TASK->answerbox, call);
944
        return 0;
954
        return 0;
945
    }
955
    }
946
    return (unative_t)call;
956
    return (unative_t)call;
947
}
957
}
948
 
958