Rev 4704 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4704 | Rev 4714 | ||
|---|---|---|---|
| Line 39... | Line 39... | ||
| 39 | #include <task.h> |
39 | #include <task.h> |
| 40 | 40 | ||
| 41 | #include <ipc/ipc.h> |
41 | #include <ipc/ipc.h> |
| 42 | 42 | ||
| 43 | #include "err.h" |
43 | #include "err.h" |
| - | 44 | #include "modules.h" |
|
| 44 | 45 | ||
| 45 | /** @name External module functions. |
46 | /** @name External module functions. |
| 46 | * This functions have to be implemented in every module. |
47 | * This functions have to be implemented in every module. |
| 47 | */ |
48 | */ |
| 48 | /*@{*/ |
49 | /*@{*/ |
| Line 89... | Line 90... | ||
| 89 | */ |
90 | */ |
| 90 | int main( int argc, char * argv[] ); |
91 | int main( int argc, char * argv[] ); |
| 91 | 92 | ||
| 92 | void client_connection( ipc_callid_t iid, ipc_call_t * icall ){ |
93 | void client_connection( ipc_callid_t iid, ipc_call_t * icall ){ |
| 93 | ipc_callid_t callid; |
94 | ipc_callid_t callid; |
| 94 | ipc_call_t call; |
95 | ipc_call_t call; |
| 95 | ipc_call_t answer; |
96 | ipc_call_t answer; |
| 96 | int count; |
97 | int answer_count; |
| 97 | int res; |
98 | int res; |
| 98 | 99 | ||
| 99 | /* |
100 | /* |
| 100 | * Accept the connection |
101 | * Accept the connection |
| 101 | * - Answer the first IPC_M_CONNECT_ME_TO call. |
102 | * - Answer the first IPC_M_CONNECT_ME_TO call. |
| 102 | */ |
103 | */ |
| 103 | ipc_answer_0( iid, EOK ); |
104 | ipc_answer_0( iid, EOK ); |
| 104 | 105 | ||
| 105 | while( true ){ |
106 | while( true ){ |
| 106 | // refresh data |
- | |
| 107 | count = 0; |
- | |
| 108 | IPC_SET_RETVAL( answer, 0 ); |
- | |
| 109 | // just to be precize |
- | |
| 110 | IPC_SET_METHOD( answer, 0 ); |
107 | refresh_answer( & answer, & answer_count ); |
| 111 | IPC_SET_ARG1( answer, 0 ); |
- | |
| 112 | IPC_SET_ARG2( answer, 0 ); |
- | |
| 113 | IPC_SET_ARG3( answer, 0 ); |
- | |
| 114 | IPC_SET_ARG4( answer, 0 ); |
- | |
| 115 | IPC_SET_ARG5( answer, 0 ); |
- | |
| 116 | 108 | ||
| 117 | callid = async_get_call( & call ); |
109 | callid = async_get_call( & call ); |
| 118 | res = module_message( callid, & call, & answer, & count ); |
110 | res = module_message( callid, & call, & answer, & answer_count ); |
| 119 | 111 | ||
| 120 | switch( count ){ |
- | |
| 121 | case 0: ipc_answer_0( callid, res ); |
- | |
| 122 | continue; |
- | |
| 123 | case 1: ipc_answer_1( callid, res, IPC_GET_ARG1( answer )); |
112 | answer_call( callid, res, & answer, answer_count ); |
| 124 | continue; |
- | |
| 125 | case 2: ipc_answer_2( callid, res, IPC_GET_ARG1( answer ), IPC_GET_ARG2( answer )); |
- | |
| 126 | continue; |
- | |
| 127 | case 3: ipc_answer_3( callid, res, IPC_GET_ARG1( answer ), IPC_GET_ARG2( answer ), IPC_GET_ARG3( answer )); |
- | |
| 128 | continue; |
- | |
| 129 | case 4: ipc_answer_4( callid, res, IPC_GET_ARG1( answer ), IPC_GET_ARG2( answer ), IPC_GET_ARG3( answer ), IPC_GET_ARG4( answer )); |
- | |
| 130 | continue; |
- | |
| 131 | default: ipc_answer_5( callid, res, IPC_GET_ARG1( answer ), IPC_GET_ARG2( answer ), IPC_GET_ARG3( answer ), IPC_GET_ARG4( answer ), IPC_GET_ARG5( answer )); |
- | |
| 132 | continue; |
- | |
| 133 | } |
- | |
| 134 | } |
113 | } |
| 135 | } |
114 | } |
| 136 | 115 | ||
| 137 | int main( int argc, char * argv[] ){ |
116 | int main( int argc, char * argv[] ){ |
| 138 | ERROR_DECLARE; |
117 | ERROR_DECLARE; |