HelenOS sources
phone 65 kernel/generic/include/cap/cap.h struct phone;
phone 93 kernel/generic/include/cap/cap.h struct phone *phone;
phone 40 kernel/generic/include/udebug/udebug_ipc.h errno_t udebug_request_preprocess(call_t *call, phone_t *phone);
phone 163 kernel/generic/src/ipc/ipc.c bool ipc_phone_connect(phone_t *phone, answerbox_t *box)
phone 167 kernel/generic/src/ipc/ipc.c mutex_lock(&phone->lock);
phone 170 kernel/generic/src/ipc/ipc.c connected = box->active && (phone->state == IPC_PHONE_CONNECTING);
phone 172 kernel/generic/src/ipc/ipc.c phone->state = IPC_PHONE_CONNECTED;
phone 173 kernel/generic/src/ipc/ipc.c phone->callee = box;
phone 175 kernel/generic/src/ipc/ipc.c list_append(&phone->link, &box->connected_phones);
phone 179 kernel/generic/src/ipc/ipc.c mutex_unlock(&phone->lock);
phone 183 kernel/generic/src/ipc/ipc.c kobject_put(phone->kobject);
phone 195 kernel/generic/src/ipc/ipc.c void ipc_phone_init(phone_t *phone, task_t *caller)
phone 197 kernel/generic/src/ipc/ipc.c mutex_initialize(&phone->lock, MUTEX_PASSIVE);
phone 198 kernel/generic/src/ipc/ipc.c phone->caller = caller;
phone 199 kernel/generic/src/ipc/ipc.c phone->callee = NULL;
phone 200 kernel/generic/src/ipc/ipc.c phone->state = IPC_PHONE_FREE;
phone 201 kernel/generic/src/ipc/ipc.c atomic_store(&phone->active_calls, 0);
phone 202 kernel/generic/src/ipc/ipc.c phone->label = 0;
phone 203 kernel/generic/src/ipc/ipc.c phone->kobject = NULL;
phone 214 kernel/generic/src/ipc/ipc.c errno_t ipc_call_sync(phone_t *phone, call_t *request)
phone 225 kernel/generic/src/ipc/ipc.c errno_t rc = ipc_call(phone, request);
phone 348 kernel/generic/src/ipc/ipc.c static void _ipc_call_actions_internal(phone_t *phone, call_t *call,
phone 351 kernel/generic/src/ipc/ipc.c task_t *caller = phone->caller;
phone 353 kernel/generic/src/ipc/ipc.c call->caller_phone = phone;
phone 354 kernel/generic/src/ipc/ipc.c kobject_add_ref(phone->kobject);
phone 359 kernel/generic/src/ipc/ipc.c atomic_inc(&phone->active_calls);
phone 364 kernel/generic/src/ipc/ipc.c kobject_add_ref(phone->kobject);
phone 372 kernel/generic/src/ipc/ipc.c call->data.request_label = phone->label;
phone 386 kernel/generic/src/ipc/ipc.c void ipc_backsend_err(phone_t *phone, call_t *call, errno_t err)
phone 388 kernel/generic/src/ipc/ipc.c _ipc_call_actions_internal(phone, call, false);
phone 401 kernel/generic/src/ipc/ipc.c static void _ipc_call(phone_t *phone, answerbox_t *box, call_t *call,
phone 404 kernel/generic/src/ipc/ipc.c task_t *caller = phone->caller;
phone 412 kernel/generic/src/ipc/ipc.c _ipc_call_actions_internal(phone, call, preforget);
phone 430 kernel/generic/src/ipc/ipc.c errno_t ipc_call(phone_t *phone, call_t *call)
phone 432 kernel/generic/src/ipc/ipc.c mutex_lock(&phone->lock);
phone 433 kernel/generic/src/ipc/ipc.c if (phone->state != IPC_PHONE_CONNECTED) {
phone 434 kernel/generic/src/ipc/ipc.c mutex_unlock(&phone->lock);
phone 436 kernel/generic/src/ipc/ipc.c if (phone->state == IPC_PHONE_HUNGUP)
phone 437 kernel/generic/src/ipc/ipc.c ipc_backsend_err(phone, call, EHANGUP);
phone 439 kernel/generic/src/ipc/ipc.c ipc_backsend_err(phone, call, ENOENT);
phone 445 kernel/generic/src/ipc/ipc.c answerbox_t *box = phone->callee;
phone 446 kernel/generic/src/ipc/ipc.c _ipc_call(phone, box, call, false);
phone 448 kernel/generic/src/ipc/ipc.c mutex_unlock(&phone->lock);
phone 463 kernel/generic/src/ipc/ipc.c errno_t ipc_phone_hangup(phone_t *phone)
phone 465 kernel/generic/src/ipc/ipc.c mutex_lock(&phone->lock);
phone 466 kernel/generic/src/ipc/ipc.c if (phone->state == IPC_PHONE_FREE ||
phone 467 kernel/generic/src/ipc/ipc.c phone->state == IPC_PHONE_HUNGUP ||
phone 468 kernel/generic/src/ipc/ipc.c phone->state == IPC_PHONE_CONNECTING) {
phone 469 kernel/generic/src/ipc/ipc.c mutex_unlock(&phone->lock);
phone 473 kernel/generic/src/ipc/ipc.c answerbox_t *box = phone->callee;
phone 474 kernel/generic/src/ipc/ipc.c if (phone->state != IPC_PHONE_SLAMMED) {
phone 477 kernel/generic/src/ipc/ipc.c list_remove(&phone->link);
phone 481 kernel/generic/src/ipc/ipc.c kobject_put(phone->kobject);
phone 483 kernel/generic/src/ipc/ipc.c call_t *call = phone->hangup_call;
phone 484 kernel/generic/src/ipc/ipc.c phone->hangup_call = NULL;
phone 490 kernel/generic/src/ipc/ipc.c _ipc_call(phone, box, call, false);
phone 493 kernel/generic/src/ipc/ipc.c phone->state = IPC_PHONE_HUNGUP;
phone 494 kernel/generic/src/ipc/ipc.c mutex_unlock(&phone->lock);
phone 654 kernel/generic/src/ipc/ipc.c phone_t *phone;
phone 661 kernel/generic/src/ipc/ipc.c phone = list_get_instance(list_first(&box->connected_phones),
phone 663 kernel/generic/src/ipc/ipc.c if (mutex_trylock(&phone->lock) != EOK) {
phone 670 kernel/generic/src/ipc/ipc.c assert(phone->state == IPC_PHONE_CONNECTED);
phone 672 kernel/generic/src/ipc/ipc.c list_remove(&phone->link);
phone 673 kernel/generic/src/ipc/ipc.c phone->state = IPC_PHONE_SLAMMED;
phone 674 kernel/generic/src/ipc/ipc.c phone->label = 0;
phone 677 kernel/generic/src/ipc/ipc.c task_hold(phone->caller);
phone 678 kernel/generic/src/ipc/ipc.c mutex_unlock(&phone->lock);
phone 688 kernel/generic/src/ipc/ipc.c call_t *call = phone->hangup_call;
phone 689 kernel/generic/src/ipc/ipc.c phone->hangup_call = NULL;
phone 695 kernel/generic/src/ipc/ipc.c _ipc_call(phone, box, call, true);
phone 697 kernel/generic/src/ipc/ipc.c task_release(phone->caller);
phone 699 kernel/generic/src/ipc/ipc.c kobject_put(phone->kobject);
phone 705 kernel/generic/src/ipc/ipc.c mutex_unlock(&phone->lock);
phone 706 kernel/generic/src/ipc/ipc.c kobject_put(phone->kobject);
phone 779 kernel/generic/src/ipc/ipc.c ipc_phone_hangup(cap->kobject->phone);
phone 929 kernel/generic/src/ipc/ipc.c phone_t *phone = cap->kobject->phone;
phone 931 kernel/generic/src/ipc/ipc.c mutex_lock(&phone->lock);
phone 932 kernel/generic/src/ipc/ipc.c if (phone->state != IPC_PHONE_FREE) {
phone 934 kernel/generic/src/ipc/ipc.c atomic_load(&phone->active_calls));
phone 936 kernel/generic/src/ipc/ipc.c switch (phone->state) {
phone 942 kernel/generic/src/ipc/ipc.c phone->callee->task->taskid,
phone 943 kernel/generic/src/ipc/ipc.c phone->callee->task->name);
phone 946 kernel/generic/src/ipc/ipc.c printf("slammed by %p", phone->callee);
phone 949 kernel/generic/src/ipc/ipc.c printf("hung up to %p", phone->callee);
phone 957 kernel/generic/src/ipc/ipc.c mutex_unlock(&phone->lock);
phone 48 kernel/generic/src/ipc/ipcrsc.c phone_t *phone = (phone_t *) arg;
phone 49 kernel/generic/src/ipc/ipcrsc.c if (phone->hangup_call)
phone 50 kernel/generic/src/ipc/ipcrsc.c kobject_put(phone->hangup_call->kobject);
phone 51 kernel/generic/src/ipc/ipcrsc.c slab_free(phone_cache, phone);
phone 73 kernel/generic/src/ipc/ipcrsc.c phone_t *phone = slab_alloc(phone_cache, FRAME_ATOMIC);
phone 74 kernel/generic/src/ipc/ipcrsc.c if (!phone) {
phone 81 kernel/generic/src/ipc/ipcrsc.c slab_free(phone_cache, phone);
phone 87 kernel/generic/src/ipc/ipcrsc.c slab_free(phone_cache, phone);
phone 92 kernel/generic/src/ipc/ipcrsc.c ipc_phone_init(phone, task);
phone 93 kernel/generic/src/ipc/ipcrsc.c phone->state = IPC_PHONE_CONNECTING;
phone 94 kernel/generic/src/ipc/ipcrsc.c phone->hangup_call = hcall;
phone 96 kernel/generic/src/ipc/ipcrsc.c kobject_initialize(kobj, KOBJECT_TYPE_PHONE, phone);
phone 97 kernel/generic/src/ipc/ipcrsc.c phone->kobject = kobj;
phone 248 kernel/generic/src/ipc/kbox.c (void) ipc_phone_connect(phone_obj->phone, &task->kb.box);
phone 42 kernel/generic/src/ipc/ops/conctmeto.c static errno_t request_preprocess(call_t *call, phone_t *phone)
phone 90 kernel/generic/src/ipc/ops/conctmeto.c pobj->phone->label = ipc_get_arg5(&answer->data);
phone 98 kernel/generic/src/ipc/ops/conctmeto.c (void) ipc_phone_connect(pobj->phone, &TASK->answerbox);
phone 51 kernel/generic/src/ipc/ops/concttome.c pobj->phone->label = ipc_get_arg5(&call->data);
phone 90 kernel/generic/src/ipc/ops/concttome.c if (ipc_phone_connect(pobj->phone,
phone 43 kernel/generic/src/ipc/ops/dataread.c static errno_t request_preprocess(call_t *call, phone_t *phone)
phone 43 kernel/generic/src/ipc/ops/datawrite.c static errno_t request_preprocess(call_t *call, phone_t *phone)
phone 46 kernel/generic/src/ipc/ops/pagein.c static errno_t pagein_request_preprocess(call_t *call, phone_t *phone)
phone 54 kernel/generic/src/ipc/ops/pagein.c if (TASK->taskid <= phone->callee->task->taskid)
phone 44 kernel/generic/src/ipc/ops/shareout.c static errno_t request_preprocess(call_t *call, phone_t *phone)
phone 43 kernel/generic/src/ipc/ops/stchngath.c static errno_t request_preprocess(call_t *call, phone_t *phone)
phone 52 kernel/generic/src/ipc/ops/stchngath.c mutex_lock(&sender_obj->phone->lock);
phone 53 kernel/generic/src/ipc/ops/stchngath.c if (sender_obj->phone->state != IPC_PHONE_CONNECTED) {
phone 54 kernel/generic/src/ipc/ops/stchngath.c mutex_unlock(&sender_obj->phone->lock);
phone 59 kernel/generic/src/ipc/ops/stchngath.c other_task_s = sender_obj->phone->callee->task;
phone 61 kernel/generic/src/ipc/ops/stchngath.c mutex_unlock(&sender_obj->phone->lock);
phone 87 kernel/generic/src/ipc/ops/stchngath.c mutex_lock(&recipient_obj->phone->lock);
phone 88 kernel/generic/src/ipc/ops/stchngath.c if (recipient_obj->phone->state != IPC_PHONE_CONNECTED) {
phone 89 kernel/generic/src/ipc/ops/stchngath.c mutex_unlock(&recipient_obj->phone->lock);
phone 95 kernel/generic/src/ipc/ops/stchngath.c other_task_r = recipient_obj->phone->callee->task;
phone 116 kernel/generic/src/ipc/ops/stchngath.c mutex_unlock(&recipient_obj->phone->lock);
phone 195 kernel/generic/src/ipc/sysipc.c phone_t *phone = answer->caller_phone;
phone 196 kernel/generic/src/ipc/sysipc.c mutex_lock(&phone->lock);
phone 197 kernel/generic/src/ipc/sysipc.c if (phone->state == IPC_PHONE_CONNECTED) {
phone 198 kernel/generic/src/ipc/sysipc.c irq_spinlock_lock(&phone->callee->lock, true);
phone 199 kernel/generic/src/ipc/sysipc.c list_remove(&phone->link);
phone 201 kernel/generic/src/ipc/sysipc.c kobject_put(phone->kobject);
phone 202 kernel/generic/src/ipc/sysipc.c phone->state = IPC_PHONE_SLAMMED;
phone 203 kernel/generic/src/ipc/sysipc.c phone->label = 0;
phone 204 kernel/generic/src/ipc/sysipc.c irq_spinlock_unlock(&phone->callee->lock, true);
phone 206 kernel/generic/src/ipc/sysipc.c mutex_unlock(&phone->lock);
phone 223 kernel/generic/src/ipc/sysipc.c static errno_t request_preprocess(call_t *call, phone_t *phone)
phone 226 kernel/generic/src/ipc/sysipc.c return SYSIPC_OP(request_preprocess, call, phone);
phone 276 kernel/generic/src/ipc/sysipc.c if (!kobj->phone)
phone 288 kernel/generic/src/ipc/sysipc.c errno_t rc = request_preprocess(call, kobj->phone);
phone 295 kernel/generic/src/ipc/sysipc.c rc = ipc_call_sync(kobj->phone, call);
phone 345 kernel/generic/src/ipc/sysipc.c static int check_call_limit(phone_t *phone)
phone 347 kernel/generic/src/ipc/sysipc.c if (atomic_load(&phone->active_calls) >= IPC_MAX_ASYNC_CALLS)
phone 376 kernel/generic/src/ipc/sysipc.c if (check_call_limit(kobj->phone)) {
phone 401 kernel/generic/src/ipc/sysipc.c errno_t res = request_preprocess(call, kobj->phone);
phone 404 kernel/generic/src/ipc/sysipc.c ipc_call(kobj->phone, call);
phone 406 kernel/generic/src/ipc/sysipc.c ipc_backsend_err(kobj->phone, call, res);
phone 428 kernel/generic/src/ipc/sysipc.c if (check_call_limit(kobj->phone)) {
phone 450 kernel/generic/src/ipc/sysipc.c errno_t res = request_preprocess(call, kobj->phone);
phone 453 kernel/generic/src/ipc/sysipc.c ipc_call(kobj->phone, call);
phone 455 kernel/generic/src/ipc/sysipc.c ipc_backsend_err(kobj->phone, call, res);
phone 553 kernel/generic/src/ipc/sysipc.c rc = ipc_forward(call, pkobj->phone, &TASK->answerbox, mode);
phone 753 kernel/generic/src/ipc/sysipc.c errno_t rc = ipc_phone_hangup(kobj->phone);
phone 925 kernel/generic/src/ipc/sysipc.c cap_phone_handle_t phone;
phone 929 kernel/generic/src/ipc/sysipc.c rc = ipc_connect_kbox((task_id_t) taskid, &phone);
phone 933 kernel/generic/src/ipc/sysipc.c rc = copy_to_uspace(uspace_phone, &phone, sizeof(cap_handle_t));
phone 936 kernel/generic/src/ipc/sysipc.c sys_ipc_hangup(phone);
phone 71 kernel/generic/src/ipc/sysipc_ops.c errno_t null_request_preprocess(call_t *call, phone_t *phone)
phone 252 kernel/generic/src/proc/task.c (void) ipc_phone_connect(phone_obj->phone, ipc_box_0);
phone 386 kernel/generic/src/sysinfo/stats.c phone_t *phone = cap->kobject->phone;
phone 412 kernel/generic/src/sysinfo/stats.c mutex_lock(&phone->lock);
phone 414 kernel/generic/src/sysinfo/stats.c if (phone->state == IPC_PHONE_CONNECTED) {
phone 415 kernel/generic/src/sysinfo/stats.c state->data[state->i].caller = phone->caller->taskid;
phone 416 kernel/generic/src/sysinfo/stats.c state->data[state->i].callee = phone->callee->task->taskid;
phone 420 kernel/generic/src/sysinfo/stats.c mutex_unlock(&phone->lock);
phone 53 kernel/generic/src/udebug/udebug_ipc.c errno_t udebug_request_preprocess(call_t *call, phone_t *phone)
phone 102 uspace/app/trace/ipcp.c void ipcp_connection_set(cap_phone_handle_t phone, int server, proto_t *proto)
phone 106 uspace/app/trace/ipcp.c if (cap_handle_raw(phone) < 0 || cap_handle_raw(phone) >= MAX_PHONE)
phone 108 uspace/app/trace/ipcp.c connections[cap_handle_raw(phone)].server = server;
phone 109 uspace/app/trace/ipcp.c connections[cap_handle_raw(phone)].proto = proto;
phone 110 uspace/app/trace/ipcp.c have_conn[cap_handle_raw(phone)] = 1;
phone 113 uspace/app/trace/ipcp.c void ipcp_connection_clear(cap_phone_handle_t phone)
phone 115 uspace/app/trace/ipcp.c have_conn[cap_handle_raw(phone)] = 0;
phone 116 uspace/app/trace/ipcp.c connections[cap_handle_raw(phone)].server = 0;
phone 117 uspace/app/trace/ipcp.c connections[cap_handle_raw(phone)].proto = NULL;
phone 252 uspace/app/trace/ipcp.c cap_phone_handle_t phone;
phone 263 uspace/app/trace/ipcp.c phone = pcall->phone_handle;
phone 304 uspace/app/trace/ipcp.c if ((phone == PHONE_NS) && (method == IPC_M_CONNECT_ME_TO) &&
phone 350 uspace/app/trace/ipcp.c void ipcp_hangup(cap_phone_handle_t phone, errno_t rc)
phone 353 uspace/app/trace/ipcp.c printf("Hang up phone %p -> %s\n", phone, str_error_name(rc));
phone 354 uspace/app/trace/ipcp.c ipcp_connection_clear(phone);
phone 180 uspace/lib/c/generic/async/client.c session_ns.phone = PHONE_NS;
phone 263 uspace/lib/c/generic/async/client.c errno_t rc = ipc_call_async_4(exch->phone, imethod, arg1, arg2, arg3,
phone 304 uspace/lib/c/generic/async/client.c errno_t rc = ipc_call_async_5(exch->phone, imethod, arg1, arg2, arg3,
phone 811 uspace/lib/c/generic/async/client.c ipc_call_async_0(exch->phone, imethod, NULL);
phone 817 uspace/lib/c/generic/async/client.c ipc_call_async_1(exch->phone, imethod, arg1, NULL);
phone 824 uspace/lib/c/generic/async/client.c ipc_call_async_2(exch->phone, imethod, arg1, arg2, NULL);
phone 831 uspace/lib/c/generic/async/client.c ipc_call_async_3(exch->phone, imethod, arg1, arg2, arg3, NULL);
phone 838 uspace/lib/c/generic/async/client.c ipc_call_async_4(exch->phone, imethod, arg1, arg2, arg3, arg4,
phone 846 uspace/lib/c/generic/async/client.c ipc_call_async_5(exch->phone, imethod, arg1, arg2, arg3, arg4,
phone 850 uspace/lib/c/generic/async/client.c static errno_t async_connect_me_to_internal(cap_phone_handle_t phone,
phone 866 uspace/lib/c/generic/async/client.c errno_t rc = ipc_call_async_4(phone, IPC_M_CONNECT_ME_TO,
phone 914 uspace/lib/c/generic/async/client.c cap_phone_handle_t phone;
phone 915 uspace/lib/c/generic/async/client.c errno_t ret = async_connect_me_to_internal(exch->phone, iface, arg2,
phone 916 uspace/lib/c/generic/async/client.c arg3, 0, &phone);
phone 926 uspace/lib/c/generic/async/client.c sess->phone = phone;
phone 989 uspace/lib/c/generic/async/client.c cap_phone_handle_t phone;
phone 990 uspace/lib/c/generic/async/client.c errno_t ret = async_connect_me_to_internal(exch->phone, iface, arg2,
phone 991 uspace/lib/c/generic/async/client.c arg3, IPC_FLAG_BLOCKING, &phone);
phone 1001 uspace/lib/c/generic/async/client.c sess->phone = phone;
phone 1031 uspace/lib/c/generic/async/client.c cap_phone_handle_t phone;
phone 1032 uspace/lib/c/generic/async/client.c errno_t ret = ipc_connect_kbox(id, &phone);
phone 1043 uspace/lib/c/generic/async/client.c sess->phone = phone;
phone 1052 uspace/lib/c/generic/async/client.c static void async_hangup_internal(cap_phone_handle_t phone)
phone 1056 uspace/lib/c/generic/async/client.c rc = ipc_hangup(phone);
phone 1074 uspace/lib/c/generic/async/client.c async_hangup_internal(sess->phone);
phone 1085 uspace/lib/c/generic/async/client.c async_hangup_internal(exch->phone);
phone 1136 uspace/lib/c/generic/async/client.c exch->phone = sess->phone;
phone 1139 uspace/lib/c/generic/async/client.c cap_phone_handle_t phone;
phone 1146 uspace/lib/c/generic/async/client.c rc = async_connect_me_to_internal(sess->phone, sess->arg1,
phone 1147 uspace/lib/c/generic/async/client.c sess->arg2, sess->arg3, 0, &phone);
phone 1154 uspace/lib/c/generic/async/client.c exch->phone = phone;
phone 1156 uspace/lib/c/generic/async/client.c async_hangup_internal(phone);
phone 1169 uspace/lib/c/generic/async/client.c async_hangup_internal(exch->phone);
phone 1353 uspace/lib/c/generic/async/client.c arg1, arg2, arg3, 0, cap_handle_raw(other_exch->phone));
phone 1430 uspace/lib/c/generic/async/client.c .pager = pager->phone,
phone 1114 uspace/lib/c/generic/async/server.c return ipc_forward_fast(chandle, exch->phone, imethod, arg1, arg2,
phone 1131 uspace/lib/c/generic/async/server.c return ipc_forward_slow(chandle, exch->phone, imethod, arg1, arg2, arg3,
phone 1387 uspace/lib/c/generic/async/server.c errno_t retval = ipc_forward_fast(call.cap_handle, exch->phone, 0, 0, 0,
phone 1632 uspace/lib/c/generic/async/server.c errno_t retval = ipc_forward_fast(call.cap_handle, exch->phone, 0, 0, 0,
phone 1749 uspace/lib/c/generic/async/server.c sess->phone = phandle;
phone 1789 uspace/lib/c/generic/async/server.c sess->phone = phandle;
phone 1814 uspace/lib/c/generic/async/server.c return async_answer_1(call, EOK, cap_handle_raw(other_exch->phone));
phone 237 uspace/lib/c/generic/ipc.c errno_t ipc_connect_kbox(task_id_t id, cap_phone_handle_t *phone)
phone 239 uspace/lib/c/generic/ipc.c return (errno_t) __SYSCALL2(SYS_IPC_CONNECT_KBOX, (sysarg_t) &id, (sysarg_t) phone);
phone 57 uspace/lib/c/generic/private/async.h cap_phone_handle_t phone;
phone 93 uspace/lib/c/generic/private/async.h cap_phone_handle_t phone;
HelenOS homepage, sources at GitHub