Changeset 085bd54 in mainline for libc/include/async.h


Ignore:
Timestamp:
2006-06-06T15:16:08Z (19 years ago)
Author:
Ondrej Palkovsky <ondrap@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
63bb83e
Parents:
d7eafd8
Message:

Revised ipc. Now it is preferrable to use only functions from async.h, they
take care of correct buffering, waiting for answers etc.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libc/include/async.h

    rd7eafd8 r085bd54  
    3838typedef void (*async_client_conn_t)(ipc_callid_t callid, ipc_call_t *call);
    3939
    40 int async_manager(void);
     40static inline void async_manager(void)
     41{
     42        psthread_schedule_next_adv(PS_TO_MANAGER);
     43}
     44
    4145ipc_callid_t async_get_call_timeout(ipc_call_t *call, suseconds_t usecs);
    4246static inline ipc_callid_t async_get_call(ipc_call_t *data)
     
    5862 * @return Return code of message
    5963 */
    60 static inline ipcarg_t sync_send_2(int phoneid, ipcarg_t method, ipcarg_t arg1, ipcarg_t arg2, ipcarg_t *r1, ipcarg_t *r2)
     64static inline ipcarg_t async_req_2(int phoneid, ipcarg_t method, ipcarg_t arg1, ipcarg_t arg2, ipcarg_t *r1, ipcarg_t *r2)
    6165{
    6266        ipc_call_t result;
     
    7175        return rc;
    7276}
    73 #define sync_send(phoneid, method, arg1, r1) sync_send_2(phoneid, method, arg1, 0, r1, 0)
     77#define async_req(phoneid, method, arg1, r1) async_req_2(phoneid, method, arg1, 0, r1, 0)
    7478
    75 static inline ipcarg_t sync_send_3(int phoneid, ipcarg_t method, ipcarg_t arg1,
     79static inline ipcarg_t async_req_3(int phoneid, ipcarg_t method, ipcarg_t arg1,
    7680                                   ipcarg_t arg2, ipcarg_t arg3, ipcarg_t *r1,
    7781                                   ipcarg_t *r2, ipcarg_t *r3)
     
    103107
    104108
     109/* Primitve functions for IPC communication */
     110void async_msg_3(int phoneid, ipcarg_t method, ipcarg_t arg1, ipcarg_t arg2,
     111                 ipcarg_t arg3);
     112void async_msg_2(int phoneid, ipcarg_t method, ipcarg_t arg1, ipcarg_t arg2);
     113#define async_msg(ph,m,a1) async_msg_2(ph,m,a1,0)
     114
     115static inline void async_serialize_start(void)
     116{
     117        psthread_inc_sercount();
     118}
     119static inline void async_serialize_end(void)
     120{
     121        psthread_dec_sercount();
     122}
     123
    105124extern atomic_t async_futex;
    106 
    107125#endif
Note: See TracChangeset for help on using the changeset viewer.