Changeset 51ec40f in mainline for kernel/generic/src/ipc/sysipc.c


Ignore:
Timestamp:
2007-05-18T10:27:01Z (17 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
f6d2c81
Parents:
ddf1255
Message:

Improve comments for the IPC subsystem.
Fix formatting and indentation.

File:
1 edited

Legend:

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

    rddf1255 r51ec40f  
    5050#include <print.h>
    5151
    52 #define GET_CHECK_PHONE(phone,phoneid,err) { \
     52#define GET_CHECK_PHONE(phone, phoneid, err) { \
    5353      if (phoneid > IPC_MAX_PHONES) { err; } \
    5454      phone = &TASK->phones[phoneid]; \
    5555}
    5656
    57 #define STRUCT_TO_USPACE(dst,src) copy_to_uspace(dst,src,sizeof(*(src)))
     57#define STRUCT_TO_USPACE(dst, src) copy_to_uspace(dst, src, sizeof(*(src)))
    5858
    5959/** Return true if the method is a system method */
     
    7272static inline int is_forwardable(unative_t method)
    7373{
    74         if (method == IPC_M_PHONE_HUNGUP || method == IPC_M_AS_AREA_SEND \
    75             || method == IPC_M_AS_AREA_RECV)
     74        if (method == IPC_M_PHONE_HUNGUP || method == IPC_M_AS_AREA_SEND ||
     75            method == IPC_M_AS_AREA_RECV)
    7676                return 0; /* This message is meant only for the receiver */
    7777        return 1;
     
    131131                } else {
    132132                        /* The connection was accepted */
    133                         phone_connect(phoneid,&answer->sender->answerbox);
     133                        phone_connect(phoneid, &answer->sender->answerbox);
    134134                        /* Set 'phone identification' as arg3 of response */
    135                         IPC_SET_ARG3(answer->data, (unative_t)&TASK->phones[phoneid]);
     135                        IPC_SET_ARG3(answer->data,
     136                            (unative_t) &TASK->phones[phoneid]);
    136137                }
    137138        } else if (IPC_GET_METHOD(*olddata) == IPC_M_CONNECT_ME_TO) {
    138139                /* If the users accepted call, connect */
    139140                if (!IPC_GET_RETVAL(answer->data)) {
    140                         ipc_phone_connect((phone_t *)IPC_GET_ARG3(*olddata),
    141                                           &TASK->answerbox);
     141                        ipc_phone_connect((phone_t *) IPC_GET_ARG3(*olddata),
     142                            &TASK->answerbox);
    142143                }
    143144        } else if (IPC_GET_METHOD(*olddata) == IPC_M_AS_AREA_SEND) {
    144                 if (!IPC_GET_RETVAL(answer->data)) { /* Accepted, handle as_area receipt */
     145                if (!IPC_GET_RETVAL(answer->data)) {
     146                        /* Accepted, handle as_area receipt */
    145147                        ipl_t ipl;
    146148                        int rc;
     
    153155                        interrupts_restore(ipl);
    154156                       
    155                         rc = as_area_share(as, IPC_GET_ARG1(*olddata), IPC_GET_ARG2(*olddata),
    156                                            AS, IPC_GET_ARG1(answer->data), IPC_GET_ARG3(*olddata));
     157                        rc = as_area_share(as, IPC_GET_ARG1(*olddata),
     158                            IPC_GET_ARG2(*olddata), AS,
     159                            IPC_GET_ARG1(answer->data), IPC_GET_ARG3(*olddata));
    157160                        IPC_SET_RETVAL(answer->data, rc);
    158161                        return rc;
     
    170173                        interrupts_restore(ipl);
    171174                       
    172                         rc = as_area_share(AS, IPC_GET_ARG1(answer->data), IPC_GET_ARG2(*olddata),
    173                                            as, IPC_GET_ARG1(*olddata), IPC_GET_ARG2(answer->data));
     175                        rc = as_area_share(AS, IPC_GET_ARG1(answer->data),
     176                            IPC_GET_ARG2(*olddata), as, IPC_GET_ARG1(*olddata),
     177                            IPC_GET_ARG2(answer->data));
    174178                        IPC_SET_RETVAL(answer->data, rc);
    175179                }
     
    193197                        return ELIMIT;
    194198                /* Set arg3 for server */
    195                 IPC_SET_ARG3(call->data, (unative_t)&TASK->phones[newphid]);
     199                IPC_SET_ARG3(call->data, (unative_t) &TASK->phones[newphid]);
    196200                call->flags |= IPC_CALL_CONN_ME_TO;
    197201                call->priv = newphid;
     
    218222static void process_answer(call_t *call)
    219223{
    220         if (IPC_GET_RETVAL(call->data) == EHANGUP && \
    221             call->flags & IPC_CALL_FORWARDED)
     224        if (IPC_GET_RETVAL(call->data) == EHANGUP &&
     225            (call->flags & IPC_CALL_FORWARDED))
    222226                IPC_SET_RETVAL(call->data, EFORWARD);
    223227
     
    234238 * @return 0 - the call should be passed to userspace, 1 - ignore call
    235239 */
    236 static int process_request(answerbox_t *box,call_t *call)
     240static int process_request(answerbox_t *box, call_t *call)
    237241{
    238242        int phoneid;
     
    255259           -2 on 'Too many async request, handle answers first
    256260 */
    257 unative_t sys_ipc_call_sync_fast(unative_t phoneid, unative_t method, 
    258                                 unative_t arg1, ipc_data_t *data)
     261unative_t sys_ipc_call_sync_fast(unative_t phoneid, unative_t method,
     262    unative_t arg1, ipc_data_t *data)
    259263{
    260264        call_t call;
     
    279283
    280284/** Synchronous IPC call allowing to send whole message */
    281 unative_t sys_ipc_call_sync(unative_t phoneid, ipc_data_t *question, 
    282                            ipc_data_t *reply)
     285unative_t sys_ipc_call_sync(unative_t phoneid, ipc_data_t *question,
     286    ipc_data_t *reply)
    283287{
    284288        call_t call;
     
    288292
    289293        ipc_call_static_init(&call);
    290         rc = copy_from_uspace(&call.data.args, &question->args, sizeof(call.data.args));
     294        rc = copy_from_uspace(&call.data.args, &question->args,
     295            sizeof(call.data.args));
    291296        if (rc != 0)
    292297                return (unative_t) rc;
     
    325330           -2 on 'Too many async request, handle answers first
    326331 */
    327 unative_t sys_ipc_call_async_fast(unative_t phoneid, unative_t method, 
    328                                 unative_t arg1, unative_t arg2)
     332unative_t sys_ipc_call_async_fast(unative_t phoneid, unative_t method,
     333    unative_t arg1, unative_t arg2)
    329334{
    330335        call_t *call;
     
    343348        IPC_SET_ARG3(call->data, 0);
    344349
    345         if (!(res=request_preprocess(call)))
     350        if (!(res = request_preprocess(call)))
    346351                ipc_call(phone, call);
    347352        else
     
    368373
    369374        call = ipc_call_alloc(0);
    370         rc = copy_from_uspace(&call->data.args, &data->args, sizeof(call->data.args));
     375        rc = copy_from_uspace(&call->data.args, &data->args,
     376            sizeof(call->data.args));
    371377        if (rc != 0) {
    372378                ipc_call_free(call);
    373379                return (unative_t) rc;
    374380        }
    375         if (!(res=request_preprocess(call)))
     381        if (!(res = request_preprocess(call)))
    376382                ipc_call(phone, call);
    377383        else
     
    389395 */
    390396unative_t sys_ipc_forward_fast(unative_t callid, unative_t phoneid,
    391                               unative_t method, unative_t arg1)
     397    unative_t method, unative_t arg1)
    392398{
    393399        call_t *call;
     
    430436
    431437/** Send IPC answer */
    432 unative_t sys_ipc_answer_fast(unative_t callid, unative_t retval, 
    433                              unative_t arg1, unative_t arg2)
     438unative_t sys_ipc_answer_fast(unative_t callid, unative_t retval,
     439    unative_t arg1, unative_t arg2)
    434440{
    435441        call_t *call;
     
    481487        }
    482488        rc = copy_from_uspace(&call->data.args, &data->args,
    483                         sizeof(call->data.args));
     489            sizeof(call->data.args));
    484490        if (rc != 0)
    485491                return rc;
     
    509515/** Wait for incoming ipc call or answer
    510516 *
    511  * @param calldata Pointer to buffer where the call/answer data is stored
    512  * @param usec Timeout. See waitq_sleep_timeout() for explanation.
    513  * @param flags Select mode of sleep operation. See waitq_sleep_timeout() for explanation.
     517 * @param calldata      Pointer to buffer where the call/answer data is stored.
     518 * @param usec          Timeout. See waitq_sleep_timeout() for explanation.
     519 * @param flags         Select mode of sleep operation. See waitq_sleep_timeout()
     520 *                      for explanation.
    514521 *
    515522 * @return Callid, if callid & 1, then the call is answer
     
    520527
    521528restart:       
    522         call = ipc_wait_for_call(&TASK->answerbox, usec, flags | SYNCH_FLAGS_INTERRUPTIBLE);
     529        call = ipc_wait_for_call(&TASK->answerbox, usec,
     530            flags | SYNCH_FLAGS_INTERRUPTIBLE);
    523531        if (!call)
    524532                return 0;
     
    575583 * @return EPERM or a return code returned by ipc_irq_register().
    576584 */
    577 unative_t sys_ipc_register_irq(inr_t inr, devno_t devno, unative_t method, irq_code_t *ucode)
     585unative_t sys_ipc_register_irq(inr_t inr, devno_t devno, unative_t method,
     586    irq_code_t *ucode)
    578587{
    579588        if (!(cap_get(TASK) & CAP_IRQ_REG))
Note: See TracChangeset for help on using the changeset viewer.