Changeset b5e68c8 in mainline for kernel/generic/include/ipc/ipc.h


Ignore:
Timestamp:
2011-05-12T16:49:44Z (14 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
f36787d7
Parents:
e80329d6 (diff), 750636a (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge mainline changes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/ipc/ipc.h

    re80329d6 rb5e68c8  
    4343#define IPC_CALL_LEN  6
    4444
    45 /** Maximum active async calls per thread */
    46 #ifdef CONFIG_DEBUG
    47         #define IPC_MAX_ASYNC_CALLS  4
    48 #else
    49         #define IPC_MAX_ASYNC_CALLS  4000
    50 #endif
     45/** Maximum active async calls per phone */
     46#define IPC_MAX_ASYNC_CALLS  4
    5147
    5248/* Flags for calls */
     
    8884/* Macros for manipulating calling data */
    8985#define IPC_SET_RETVAL(data, retval)  ((data).args[0] = (retval))
    90 #define IPC_SET_METHOD(data, val)     ((data).args[0] = (val))
     86#define IPC_SET_IMETHOD(data, val)    ((data).args[0] = (val))
    9187#define IPC_SET_ARG1(data, val)       ((data).args[1] = (val))
    9288#define IPC_SET_ARG2(data, val)       ((data).args[2] = (val))
     
    9591#define IPC_SET_ARG5(data, val)       ((data).args[5] = (val))
    9692
    97 #define IPC_GET_METHOD(data)  ((data).args[0])
    98 #define IPC_GET_RETVAL(data)  ((data).args[0])
     93#define IPC_GET_IMETHOD(data)  ((data).args[0])
     94#define IPC_GET_RETVAL(data)   ((data).args[0])
    9995
    10096#define IPC_GET_ARG1(data)  ((data).args[1])
     
    120116#define IPC_FF_ROUTE_FROM_ME  (1 << 0)
    121117
     118/* Data transfer flags. */
     119#define IPC_XF_NONE             0
     120
     121/** Restrict the transfer size if necessary. */
     122#define IPC_XF_RESTRICT         (1 << 0)
     123
     124/** Kernel IPC interfaces
     125 *
     126 */
     127#define IPC_IF_KERNEL  0
     128
    122129/** System-specific methods - only through special syscalls
    123  * These methods have special behaviour
     130 *
     131 * These methods have special behaviour. These methods also
     132 * have the implicit kernel interface 0.
    124133 *
    125134 */
     
    162171 *                       error is sent back to caller. Otherwise
    163172 *                       the call is accepted and the response is sent back.
    164  *                     - the allocated phoneid is passed to userspace
     173 *                     - the hash of the client task is passed to userspace
     174 *                       (on the receiving side) as ARG4 of the call.
     175 *                     - the hash of the allocated phone is passed to userspace
    165176 *                       (on the receiving side) as ARG5 of the call.
    166177 *
     
    315326
    316327typedef struct {
    317         unative_t args[IPC_CALL_LEN];
     328        sysarg_t args[IPC_CALL_LEN];
     329        /** Task which made or forwarded the call with IPC_FF_ROUTE_FROM_ME. */
     330        struct task *task;
     331        /** Phone which made or last masqueraded this call. */
    318332        phone_t *phone;
    319333} ipc_data_t;
     
    330344         * The caller box is different from sender->answerbox
    331345         * for synchronous calls.
    332          *
    333346         */
    334347        answerbox_t *callerbox;
    335348       
    336349        /** Private data to internal IPC. */
    337         unative_t priv;
     350        sysarg_t priv;
    338351       
    339352        /** Data passed from/to userspace. */
     
    347360         * cases, we must keep it aside so that the answer is processed
    348361         * correctly.
    349          *
    350362         */
    351363        phone_t *caller_phone;
     
    372384
    373385extern void ipc_cleanup(void);
    374 extern void ipc_backsend_err(phone_t *, call_t *, unative_t);
     386extern void ipc_backsend_err(phone_t *, call_t *, sysarg_t);
    375387extern void ipc_answerbox_slam_phones(answerbox_t *, bool);
    376388extern void ipc_cleanup_call_list(link_t *);
Note: See TracChangeset for help on using the changeset viewer.