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; |