Changes in kernel/generic/src/ipc/ipcrsc.c [55b77d9:239acce] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/ipc/ipcrsc.c
r55b77d9 r239acce 132 132 #include <ipc/ipcrsc.h> 133 133 #include <debug.h> 134 #include <abi/errno.h> 134 135 135 136 /** Find call_t * in call table according to callid. … … 151 152 152 153 list_foreach(TASK->answerbox.dispatched_calls, lst) { 153 call_t *call = list_get_instance(lst, call_t, link);154 call_t *call = list_get_instance(lst, call_t, ab_link); 154 155 if ((sysarg_t) call == callid) { 155 156 result = call; … … 162 163 } 163 164 165 /** Get phone from the current task by ID. 166 * 167 * @param phoneid Phone ID. 168 * @param phone Place to store pointer to phone. 169 * 170 * @return EOK on success, EINVAL if ID is invalid. 171 * 172 */ 173 int phone_get(sysarg_t phoneid, phone_t **phone) 174 { 175 if (phoneid >= IPC_MAX_PHONES) 176 return EINVAL; 177 178 *phone = &TASK->phones[phoneid]; 179 return EOK; 180 } 181 164 182 /** Allocate new phone slot in the specified task. 165 183 * … … 176 194 size_t i; 177 195 for (i = 0; i < IPC_MAX_PHONES; i++) { 178 if ((task->phones[i].state == IPC_PHONE_HUNGUP) && 179 (atomic_get(&task->phones[i].active_calls) == 0)) 180 task->phones[i].state = IPC_PHONE_FREE; 196 phone_t *phone = &task->phones[i]; 197 198 if ((phone->state == IPC_PHONE_HUNGUP) && 199 (atomic_get(&phone->active_calls) == 0)) 200 phone->state = IPC_PHONE_FREE; 181 201 182 if ( task->phones[i].state == IPC_PHONE_FREE) {183 task->phones[i].state = IPC_PHONE_CONNECTING;202 if (phone->state == IPC_PHONE_FREE) { 203 phone->state = IPC_PHONE_CONNECTING; 184 204 break; 185 205 } … … 223 243 * @param phoneid Phone handle to be connected. 224 244 * @param box Answerbox to which to connect the phone handle. 245 * @return True if the phone was connected, false otherwise. 225 246 * 226 247 * The procedure _enforces_ that the user first marks the phone … … 229 250 * 230 251 */ 231 voidphone_connect(int phoneid, answerbox_t *box)252 bool phone_connect(int phoneid, answerbox_t *box) 232 253 { 233 254 phone_t *phone = &TASK->phones[phoneid]; 234 255 235 256 ASSERT(phone->state == IPC_PHONE_CONNECTING); 236 ipc_phone_connect(phone, box);257 return ipc_phone_connect(phone, box); 237 258 } 238 259
Note:
See TracChangeset
for help on using the changeset viewer.