Rev 4731 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4731 | Rev 4756 | ||
---|---|---|---|
Line 41... | Line 41... | ||
41 | 41 | ||
42 | #include <ipc/ipc.h> |
42 | #include <ipc/ipc.h> |
43 | #include <ipc/services.h> |
43 | #include <ipc/services.h> |
44 | 44 | ||
45 | /** Converts the data length between different types. |
45 | /** Converts the data length between different types. |
46 | * @param type_from The source type. Input parameter. |
46 | * @param[in] type_from The source type. |
47 | * @param type_to The destination type. Input parameter. |
47 | * @param[in] type_to The destination type. |
48 | * @param count The number units of the source type size. Input parameter. |
48 | * @param[in] count The number units of the source type size. |
49 | */ |
49 | */ |
50 | #define CONVERT_SIZE( type_from, type_to, count ) (( sizeof( type_from ) / sizeof( type_to )) * ( count )) |
50 | #define CONVERT_SIZE( type_from, type_to, count ) (( sizeof( type_from ) / sizeof( type_to )) * ( count )) |
51 | 51 | ||
52 | /** Registers the module service at the name server. |
52 | /** Registers the module service at the name server. |
53 | * @param me The module service. Input parameter. |
53 | * @param[in] me The module service. |
54 | * @param phonehash The created phone hash. Output parameter. |
54 | * @param[out] phonehash The created phone hash. |
55 | */ |
55 | */ |
56 | #define REGISTER_ME( me, phonehash ) ipc_connect_to_me( PHONE_NS, ( me ), 0, 0, ( phonehash )) |
56 | #define REGISTER_ME( me, phonehash ) ipc_connect_to_me( PHONE_NS, ( me ), 0, 0, ( phonehash )) |
57 | 57 | ||
58 | /** Connect to the needed module function type definition. |
58 | /** Connect to the needed module function type definition. |
59 | * @param need The needed module service. Input parameter. |
59 | * @param[in] need The needed module service. |
60 | * @returns The phone of the needed service. |
60 | * @returns The phone of the needed service. |
61 | */ |
61 | */ |
62 | typedef int connect_module_t( services_t need ); |
62 | typedef int connect_module_t( services_t need ); |
63 | 63 | ||
64 | /** Connects to the needed module. |
64 | /** Connects to the needed module. |
65 | * @param need The needed module service. Input parameter. |
65 | * @param[in] need The needed module service. |
66 | * @returns The phone of the needed service. |
66 | * @returns The phone of the needed service. |
67 | */ |
67 | */ |
68 | int connect_to_service( services_t need ); |
68 | int connect_to_service( services_t need ); |
69 | 69 | ||
70 | /** Creates bidirectional connection with the needed module service and registers the message receiver. |
70 | /** Creates bidirectional connection with the needed module service and registers the message receiver. |
71 | * @param need The needed module service. Input parameter. |
71 | * @param[in] need The needed module service. |
72 | * @param arg1 The first parameter. Input parameter. |
72 | * @param[in] arg1 The first parameter. |
73 | * @param arg2 The second parameter. Input parameter. |
73 | * @param[in] arg2 The second parameter. |
74 | * @param arg3 The third parameter. Input parameter. |
74 | * @param[in] arg3 The third parameter. |
75 | * @param client_receiver The message receiver. Input parameter. |
75 | * @param[in] client_receiver The message receiver. |
76 | * @returns The phone of the needed service. |
76 | * @returns The phone of the needed service. |
77 | * @returns Other error codes as defined for the ipc_connect_to_me() function. |
77 | * @returns Other error codes as defined for the ipc_connect_to_me() function. |
78 | */ |
78 | */ |
79 | int bind_service( services_t need, ipcarg_t arg1, ipcarg_t arg2, ipcarg_t arg3, async_client_conn_t client_receiver ); |
79 | int bind_service( services_t need, ipcarg_t arg1, ipcarg_t arg2, ipcarg_t arg3, async_client_conn_t client_receiver ); |
80 | 80 | ||
81 | /** Answers the call. |
81 | /** Answers the call. |
82 | * @param callid The call identifier. Input parameter. |
82 | * @param[in] callid The call identifier. |
83 | * @param result The message processing result. Input parameter. |
83 | * @param[in] result The message processing result. |
84 | * @param answer The message processing answer. Input parameter. |
84 | * @param[in] answer The message processing answer. |
85 | * @param answer_count The number of answer parameters. Input parameter. |
85 | * @param[in] answer_count The number of answer parameters. |
86 | */ |
86 | */ |
87 | void answer_call( ipc_callid_t callid, int result, ipc_call_t * answer, int answer_count ); |
87 | void answer_call( ipc_callid_t callid, int result, ipc_call_t * answer, int answer_count ); |
88 | 88 | ||
89 | /** Refreshes answer structure and parameters count. |
89 | /** Refreshes answer structure and parameters count. |
90 | * Erases all attributes. |
90 | * Erases all attributes. |
91 | * @param answer The message processing answer structure. Input/output parameter. |
91 | * @param[in,out] answer The message processing answer structure. |
92 | * @param answer_count The number of answer parameters. Input/output parameter. |
92 | * @param[in,out] answer_count The number of answer parameters. |
93 | */ |
93 | */ |
94 | void refresh_answer( ipc_call_t * answer, int * answer_count ); |
94 | void refresh_answer( ipc_call_t * answer, int * answer_count ); |
95 | 95 | ||
96 | /** Receives data from the other party. |
96 | /** Receives data from the other party. |
97 | * The received data buffer is allocated and returned. |
97 | * The received data buffer is allocated and returned. |
98 | * @param data The data buffer to be filled. Output parameter. |
98 | * @param[out] data The data buffer to be filled. |
99 | * @param length The buffer length. Output parameter. |
99 | * @param[out] length The buffer length. |
100 | * @returns EOK on success. |
100 | * @returns EOK on success. |
101 | * @returns EBADMEM if the data or the length parameter is NULL. |
101 | * @returns EBADMEM if the data or the length parameter is NULL. |
102 | * @returns EINVAL if the client does not send data. |
102 | * @returns EINVAL if the client does not send data. |
103 | * @returns ENOMEM if there is not enough memory left. |
103 | * @returns ENOMEM if there is not enough memory left. |
104 | * @returns Other error codes as defined for the ipc_data_write_finalize() function. |
104 | * @returns Other error codes as defined for the ipc_data_write_finalize() function. |
105 | */ |
105 | */ |
106 | int data_receive( void ** data, size_t * length ); |
106 | int data_receive( void ** data, size_t * length ); |
107 | 107 | ||
108 | /** Replies the data to the other party. |
108 | /** Replies the data to the other party. |
109 | * @param data The data buffer to be sent. Input parameter. |
109 | * @param[in] data The data buffer to be sent. |
110 | * @param data_length The buffer length. Input parameter. |
110 | * @param[in] data_length The buffer length. |
111 | * @returns EOK on success. |
111 | * @returns EOK on success. |
112 | * @returns EINVAL if the client does not expect the data. |
112 | * @returns EINVAL if the client does not expect the data. |
113 | * @returns EOVERFLOW if the client does not expect all the data. Only partial data are transfered. |
113 | * @returns EOVERFLOW if the client does not expect all the data. Only partial data are transfered. |
114 | * @returns Other error codes as defined for the ipc_data_read_finalize() function. |
114 | * @returns Other error codes as defined for the ipc_data_read_finalize() function. |
115 | */ |
115 | */ |