Changeset 6deb2cd in mainline for kernel/generic/src/ipc/sysipc.c


Ignore:
Timestamp:
2017-12-08T21:17:27Z (7 years ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
9233e9d
Parents:
125c09c
git-author:
Jiří Zárevúcky <zarevucky.jiri@…> (2017-12-07 16:46:52)
git-committer:
Jiří Zárevúcky <zarevucky.jiri@…> (2017-12-08 21:17:27)
Message:

Return capability handle in SYS_IPC_WAIT via call data structure, separately from error codes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/ipc/sysipc.c

    r125c09c r6deb2cd  
    744744 *                 for explanation.
    745745 *
    746  * @return Capability handle of the received request.
    747  * @return CAP_NIL for answers, notifications and when there is no call.
    748746 * @return Negative error code on error.
    749747 */
     
    767765
    768766        if (!call) {
    769                 STRUCT_TO_USPACE(calldata, &(ipc_data_t){});
    770                 return CAP_NIL;
     767                ipc_data_t data = {0};
     768                data.cap_handle = CAP_NIL;
     769                STRUCT_TO_USPACE(calldata, &data);
     770                return EOK;
    771771        }
    772772       
     
    776776               
    777777                call->data.flags = IPC_CALL_NOTIF;
     778                call->data.cap_handle = CAP_NIL;
    778779
    779780                STRUCT_TO_USPACE(calldata, &call->data);
    780781                kobject_put(call->kobject);
    781782               
    782                 return CAP_NIL;
     783                return EOK;
    783784        }
    784785       
     
    792793
    793794                call->data.flags = IPC_CALL_ANSWERED;
     795                call->data.cap_handle = CAP_NIL;
    794796               
    795797                STRUCT_TO_USPACE(calldata, &call->data);
    796798                kobject_put(call->kobject);
    797799               
    798                 return CAP_NIL;
     800                return EOK;
    799801        }
    800802       
     
    809811        }
    810812       
     813        call->data.cap_handle = handle;
     814
    811815        /*
    812816         * Include phone hash of the caller in the request, copy the whole
     
    819823        kobject_add_ref(call->kobject);
    820824        cap_publish(TASK, handle, call->kobject);
    821         return handle;
     825        return EOK;
    822826
    823827error:
Note: See TracChangeset for help on using the changeset viewer.