async.h File Reference

#include <ipc/common.h>
#include <async_sess.h>
#include <fibril.h>
#include <sys/time.h>
#include <atomic.h>
#include <bool.h>
#include <task.h>

Go to the source code of this file.

Defines

#define async_data_read_forward_0_0(phoneid, method, answer)   async_data_read_forward_fast((phoneid), (method), 0, 0, 0, 0, NULL)
#define async_data_read_forward_0_1(phoneid, method, answer)   async_data_read_forward_fast((phoneid), (method), 0, 0, 0, 0, (answer))
#define async_data_read_forward_1_0(phoneid, method, arg1, answer)   async_data_read_forward_fast((phoneid), (method), (arg1), 0, 0, 0, NULL)
#define async_data_read_forward_1_1(phoneid, method, arg1, answer)   async_data_read_forward_fast((phoneid), (method), (arg1), 0, 0, 0, (answer))
#define async_data_read_forward_2_0(phoneid, method, arg1, arg2, answer)   async_data_read_forward_fast((phoneid), (method), (arg1), (arg2), 0, 0, NULL)
#define async_data_read_forward_2_1(phoneid, method, arg1, arg2, answer)
#define async_data_read_forward_3_0(phoneid, method, arg1, arg2, arg3, answer)
#define async_data_read_forward_3_1(phoneid, method, arg1, arg2, arg3, answer)
#define async_data_read_forward_4_0(phoneid, method, arg1, arg2, arg3, arg4, answer)
#define async_data_read_forward_4_1(phoneid, method, arg1, arg2, arg3, arg4, answer)
#define async_data_read_start(p, buf, len)   async_data_read_start_generic((p), (buf), (len), IPC_XF_NONE)
#define async_data_write_forward_0_0(phoneid, method, answer)   async_data_write_forward_fast((phoneid), (method), 0, 0, 0, 0, NULL)
#define async_data_write_forward_0_1(phoneid, method, answer)   async_data_write_forward_fast((phoneid), (method), 0, 0, 0, 0, (answer))
#define async_data_write_forward_1_0(phoneid, method, arg1, answer)   async_data_write_forward_fast((phoneid), (method), (arg1), 0, 0, 0, NULL)
#define async_data_write_forward_1_1(phoneid, method, arg1, answer)
#define async_data_write_forward_2_0(phoneid, method, arg1, arg2, answer)
#define async_data_write_forward_2_1(phoneid, method, arg1, arg2, answer)
#define async_data_write_forward_3_0(phoneid, method, arg1, arg2, arg3, answer)
#define async_data_write_forward_3_1(phoneid, method, arg1, arg2, arg3, answer)
#define async_data_write_forward_4_0(phoneid, method, arg1, arg2, arg3, arg4, answer)
#define async_data_write_forward_4_1(phoneid, method, arg1, arg2, arg3, arg4, answer)
#define async_data_write_start(p, buf, len)   async_data_write_start_generic((p), (buf), (len), IPC_XF_NONE)
#define async_get_call(data)   async_get_call_timeout(data, 0)
#define async_manager()   fibril_switch(FIBRIL_TO_MANAGER)
#define async_req_0_0(phoneid, method)
#define async_req_0_1(phoneid, method, r1)
#define async_req_0_2(phoneid, method, r1, r2)
#define async_req_0_3(phoneid, method, r1, r2, r3)
#define async_req_0_4(phoneid, method, r1, r2, r3, r4)
#define async_req_0_5(phoneid, method, r1, r2, r3, r4, r5)
#define async_req_1_0(phoneid, method, arg1)
#define async_req_1_1(phoneid, method, arg1, rc1)
#define async_req_1_2(phoneid, method, arg1, rc1, rc2)
#define async_req_1_3(phoneid, method, arg1, rc1, rc2, rc3)
#define async_req_1_4(phoneid, method, arg1, rc1, rc2, rc3, rc4)
#define async_req_1_5(phoneid, method, arg1, rc1, rc2, rc3, rc4, rc5)
#define async_req_2_0(phoneid, method, arg1, arg2)
#define async_req_2_1(phoneid, method, arg1, arg2, rc1)
#define async_req_2_2(phoneid, method, arg1, arg2, rc1, rc2)
#define async_req_2_3(phoneid, method, arg1, arg2, rc1, rc2, rc3)
#define async_req_2_4(phoneid, method, arg1, arg2, rc1, rc2, rc3, rc4)
#define async_req_2_5(phoneid, method, arg1, arg2, rc1, rc2, rc3, rc4, rc5)
#define async_req_3_0(phoneid, method, arg1, arg2, arg3)
#define async_req_3_1(phoneid, method, arg1, arg2, arg3, rc1)
#define async_req_3_2(phoneid, method, arg1, arg2, arg3, rc1, rc2)
#define async_req_3_3(phoneid, method, arg1, arg2, arg3, rc1, rc2, rc3)
#define async_req_3_4(phoneid, method, arg1, arg2, arg3, rc1, rc2, rc3, rc4)
#define async_req_3_5(phoneid, method, arg1, arg2, arg3, rc1, rc2, rc3, rc4, rc5)
#define async_req_4_0(phoneid, method, arg1, arg2, arg3, arg4)
#define async_req_4_1(phoneid, method, arg1, arg2, arg3, arg4, rc1)
#define async_req_4_2(phoneid, method, arg1, arg2, arg3, arg4, rc1, rc2)
#define async_req_4_3(phoneid, method, arg1, arg2, arg3, arg4, rc1, rc2, rc3)
#define async_req_4_4(phoneid, method, arg1, arg2, arg3, arg4, rc1, rc2, rc3, rc4)
#define async_req_4_5(phoneid, method, arg1, arg2, arg3, arg4, rc1, rc2, rc3, rc4, rc5)
#define async_req_5_0(phoneid, method, arg1, arg2, arg3, arg4, arg5)
#define async_req_5_1(phoneid, method, arg1, arg2, arg3, arg4, arg5, rc1)
#define async_req_5_2(phoneid, method, arg1, arg2, arg3, arg4, arg5, rc1, rc2)
#define async_req_5_3(phoneid, method, arg1, arg2, arg3, arg4, arg5, rc1, rc2, rc3)
#define async_req_5_4(phoneid, method, arg1, arg2, arg3, arg4, arg5, rc1, rc2, rc3, rc4)
#define async_req_5_5(phoneid, method, arg1, arg2, arg3, arg4, arg5, rc1, rc2, rc3, rc4, rc5)
#define async_send_0(phoneid, method, dataptr)   async_send_fast((phoneid), (method), 0, 0, 0, 0, (dataptr))
#define async_send_1(phoneid, method, arg1, dataptr)   async_send_fast((phoneid), (method), (arg1), 0, 0, 0, (dataptr))
#define async_send_2(phoneid, method, arg1, arg2, dataptr)   async_send_fast((phoneid), (method), (arg1), (arg2), 0, 0, (dataptr))
#define async_send_3(phoneid, method, arg1, arg2, arg3, dataptr)   async_send_fast((phoneid), (method), (arg1), (arg2), (arg3), 0, (dataptr))
#define async_send_4(phoneid, method, arg1, arg2, arg3, arg4, dataptr)
#define async_send_5(phoneid, method, arg1, arg2, arg3, arg4, arg5, dataptr)
#define async_share_in_start_0_0(phoneid, dst, size)   async_share_in_start((phoneid), (dst), (size), 0, NULL)
#define async_share_in_start_0_1(phoneid, dst, size, flags)   async_share_in_start((phoneid), (dst), (size), 0, (flags))
#define async_share_in_start_1_0(phoneid, dst, size, arg)   async_share_in_start((phoneid), (dst), (size), (arg), NULL)
#define async_share_in_start_1_1(phoneid, dst, size, arg, flags)   async_share_in_start((phoneid), (dst), (size), (arg), (flags))

Typedefs

typedef ipc_callid_t aid_t
typedef void(*) async_client_conn_t (ipc_callid_t, ipc_call_t *)
typedef void *(*) async_client_data_ctor_t (void)
typedef void(*) async_client_data_dtor_t (void *)

Functions

sysarg_t async_answer_0 (ipc_callid_t callid, sysarg_t retval)
sysarg_t async_answer_1 (ipc_callid_t callid, sysarg_t retval, sysarg_t arg1)
sysarg_t async_answer_2 (ipc_callid_t callid, sysarg_t retval, sysarg_t arg1, sysarg_t arg2)
sysarg_t async_answer_3 (ipc_callid_t callid, sysarg_t retval, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3)
sysarg_t async_answer_4 (ipc_callid_t callid, sysarg_t retval, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4)
sysarg_t async_answer_5 (ipc_callid_t callid, sysarg_t retval, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5)
void * async_client_data_get (void)
int async_connect_kbox (task_id_t id)
 Connect to a task specified by id.
int async_connect_me_to (int phone, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3)
 Wrapper for making IPC_M_CONNECT_ME_TO calls using the async framework.
int async_connect_me_to_blocking (int phoneid, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3)
 Wrapper for making IPC_M_CONNECT_ME_TO calls using the async framework.
int async_connect_to_me (int phone, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, async_client_conn_t client_receiver)
 Wrapper for making IPC_M_CONNECT_TO_ME calls using the async framework.
void async_create_manager (void)
 Add one manager to manager list.
aid_t async_data_read (int phoneid, void *dst, size_t size, ipc_call_t *dataptr)
 Start IPC_M_DATA_READ using the async framework.
int async_data_read_finalize (ipc_callid_t callid, const void *src, size_t size)
 Wrapper for answering the IPC_M_DATA_READ calls using the async framework.
int async_data_read_forward_fast (int phoneid, sysarg_t method, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, ipc_call_t *dataptr)
 Wrapper for forwarding any read request.
bool async_data_read_receive (ipc_callid_t *callid, size_t *size)
 Wrapper for receiving the IPC_M_DATA_READ calls using the async framework.
int async_data_read_start_generic (int phoneid, void *dst, size_t size, int flags)
 Wrapper for IPC_M_DATA_READ calls using the async framework.
int async_data_write_accept (void **data, const bool nullterm, const size_t min_size, const size_t max_size, const size_t granularity, size_t *received)
 Wrapper for receiving binary data or strings.
int async_data_write_finalize (ipc_callid_t callid, void *dst, size_t size)
 Wrapper for answering the IPC_M_DATA_WRITE calls using the async framework.
int async_data_write_forward_fast (int phoneid, sysarg_t method, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, ipc_call_t *dataptr)
 Wrapper for forwarding any data that is about to be received.
bool async_data_write_receive (ipc_callid_t *callid, size_t *size)
 Wrapper for receiving the IPC_M_DATA_WRITE calls using the async framework.
int async_data_write_start_generic (int phoneid, const void *src, size_t size, int flags)
 Wrapper for IPC_M_DATA_WRITE calls using the async framework.
void async_data_write_void (sysarg_t retval)
 Wrapper for voiding any data that is about to be received.
void async_destroy_manager (void)
 Remove one manager from manager list.
int async_forward_fast (ipc_callid_t callid, int phoneid, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, unsigned int mode)
int async_forward_slow (ipc_callid_t callid, int phoneid, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, unsigned int mode)
ipc_callid_t async_get_call_timeout (ipc_call_t *call, suseconds_t usecs)
 Return new incoming message for the current (fibril-local) connection.
int async_hangup (int phone)
 Wrapper for ipc_hangup.
void async_msg_0 (int phone, sysarg_t imethod)
void async_msg_1 (int phone, sysarg_t imethod, sysarg_t arg1)
void async_msg_2 (int phone, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2)
void async_msg_3 (int phone, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3)
void async_msg_4 (int phone, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4)
void async_msg_5 (int phone, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5)
fid_t async_new_connection (sysarg_t in_task_hash, sysarg_t in_phone_hash, ipc_callid_t callid, ipc_call_t *call, void(*cfibril)(ipc_callid_t, ipc_call_t *))
 Create a new fibril for a new connection.
void async_poke (void)
 Interrupt one thread of this task from waiting for IPC.
sysarg_t async_req_fast (int phoneid, sysarg_t method, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5)
 Pseudo-synchronous message sending - fast version.
sysarg_t async_req_slow (int phoneid, sysarg_t method, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5)
 Pseudo-synchronous message sending - slow version.
aid_t async_send_fast (int phoneid, sysarg_t method, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, ipc_call_t *dataptr)
 Send message and return id of the sent message.
aid_t async_send_slow (int phoneid, sysarg_t method, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, ipc_call_t *dataptr)
 Send message and return id of the sent message.
static void async_serialize_end (void)
static void async_serialize_start (void)
void async_set_client_connection (async_client_conn_t conn)
 Setter for client_connection function pointer.
void async_set_client_data_constructor (async_client_data_ctor_t ctor)
void async_set_client_data_destructor (async_client_data_dtor_t dtor)
void async_set_interrupt_received (async_client_conn_t intr)
 Setter for interrupt_received function pointer.
int async_share_in_finalize (ipc_callid_t callid, void *src, unsigned int flags)
 Wrapper for answering the IPC_M_SHARE_IN calls using the async framework.
bool async_share_in_receive (ipc_callid_t *callid, size_t *size)
 Wrapper for receiving the IPC_M_SHARE_IN calls using the async framework.
int async_share_in_start (int phoneid, void *dst, size_t size, sysarg_t arg, unsigned int *flags)
 Wrapper for IPC_M_SHARE_IN calls using the async framework.
int async_share_out_finalize (ipc_callid_t callid, void *dst)
 Wrapper for answering the IPC_M_SHARE_OUT calls using the async framework.
bool async_share_out_receive (ipc_callid_t *callid, size_t *size, unsigned int *flags)
 Wrapper for receiving the IPC_M_SHARE_OUT calls using the async framework.
int async_share_out_start (int phoneid, void *src, unsigned int flags)
 Wrapper for IPC_M_SHARE_OUT calls using the async framework.
void async_usleep (suseconds_t timeout)
 Wait for specified time.
void async_wait_for (aid_t amsgid, sysarg_t *retval)
 Wait for a message sent by the async framework.
int async_wait_timeout (aid_t amsgid, sysarg_t *retval, suseconds_t timeout)
 Wait for a message sent by the async framework, timeout variant.

Variables

atomic_t threads_in_ipc_wait
 Number of threads waiting for IPC in the kernel.


Detailed Description

Definition in file async.h.


Generated on Thu Jun 2 07:45:53 2011 for HelenOS/USB by  doxygen 1.4.7