Lines Matching full:part
12 * This is the part of XPC that manages the channels and
82 struct xpc_partition *part = &xpc_partitions[ch->partid]; in xpc_process_disconnect() local
101 if (part->act_state == XPC_P_AS_DEACTIVATING) { in xpc_process_disconnect()
157 atomic_dec(&part->nchannels_active); in xpc_process_disconnect()
168 if (part->act_state != XPC_P_AS_DEACTIVATING) { in xpc_process_disconnect()
170 spin_lock(&part->chctl_lock); in xpc_process_disconnect()
171 part->chctl.flags[ch->number] |= in xpc_process_disconnect()
173 spin_unlock(&part->chctl_lock); in xpc_process_disconnect()
183 xpc_process_openclose_chctl_flags(struct xpc_partition *part, int ch_number, in xpc_process_openclose_chctl_flags() argument
188 &part->remote_openclose_args[ch_number]; in xpc_process_openclose_chctl_flags()
189 struct xpc_channel *ch = &part->channels[ch_number]; in xpc_process_openclose_chctl_flags()
238 if (part->chctl.flags[ch_number] & in xpc_process_openclose_chctl_flags()
242 spin_lock(&part->chctl_lock); in xpc_process_openclose_chctl_flags()
243 part->chctl.flags[ch_number] |= in xpc_process_openclose_chctl_flags()
245 spin_unlock(&part->chctl_lock); in xpc_process_openclose_chctl_flags()
253 atomic_inc(&part->nchannels_active); in xpc_process_openclose_chctl_flags()
289 DBUG_ON(part->act_state != XPC_P_AS_DEACTIVATING); in xpc_process_openclose_chctl_flags()
296 if (part->chctl.flags[ch_number] & in xpc_process_openclose_chctl_flags()
300 spin_lock(&part->chctl_lock); in xpc_process_openclose_chctl_flags()
301 part->chctl.flags[ch_number] |= in xpc_process_openclose_chctl_flags()
303 spin_unlock(&part->chctl_lock); in xpc_process_openclose_chctl_flags()
323 if (part->act_state == XPC_P_AS_DEACTIVATING || in xpc_process_openclose_chctl_flags()
362 atomic_inc(&part->nchannels_active); in xpc_process_openclose_chctl_flags()
511 * done with the part that required the registration in xpc_connect_channel()
546 xpc_process_sent_chctl_flags(struct xpc_partition *part) in xpc_process_sent_chctl_flags() argument
554 chctl.all_flags = xpc_arch_ops.get_chctl_all_flags(part); in xpc_process_sent_chctl_flags()
563 for (ch_number = 0; ch_number < part->nchannels; ch_number++) { in xpc_process_sent_chctl_flags()
564 ch = &part->channels[ch_number]; in xpc_process_sent_chctl_flags()
572 xpc_process_openclose_chctl_flags(part, ch_number, in xpc_process_sent_chctl_flags()
585 if (part->act_state == XPC_P_AS_DEACTIVATING) in xpc_process_sent_chctl_flags()
603 xpc_arch_ops.process_msg_chctl_flags(part, ch_number); in xpc_process_sent_chctl_flags()
617 xpc_partition_going_down(struct xpc_partition *part, enum xp_retval reason) in xpc_partition_going_down() argument
624 XPC_PARTID(part), reason); in xpc_partition_going_down()
626 if (!xpc_part_ref(part)) { in xpc_partition_going_down()
633 for (ch_number = 0; ch_number < part->nchannels; ch_number++) { in xpc_partition_going_down()
634 ch = &part->channels[ch_number]; in xpc_partition_going_down()
645 xpc_wakeup_channel_mgr(part); in xpc_partition_going_down()
647 xpc_part_deref(part); in xpc_partition_going_down()
658 struct xpc_partition *part; in xpc_initiate_connect() local
663 part = &xpc_partitions[partid]; in xpc_initiate_connect()
665 if (xpc_part_ref(part)) { in xpc_initiate_connect()
670 xpc_wakeup_channel_mgr(part); in xpc_initiate_connect()
671 xpc_part_deref(part); in xpc_initiate_connect()
711 struct xpc_partition *part; in xpc_initiate_disconnect() local
718 part = &xpc_partitions[partid]; in xpc_initiate_disconnect()
720 if (xpc_part_ref(part)) { in xpc_initiate_disconnect()
721 ch = &part->channels[ch_number]; in xpc_initiate_disconnect()
736 xpc_part_deref(part); in xpc_initiate_disconnect()
875 struct xpc_partition *part = &xpc_partitions[partid]; in xpc_initiate_send() local
882 DBUG_ON(ch_number < 0 || ch_number >= part->nchannels); in xpc_initiate_send()
885 if (xpc_part_ref(part)) { in xpc_initiate_send()
886 ret = xpc_arch_ops.send_payload(&part->channels[ch_number], in xpc_initiate_send()
888 xpc_part_deref(part); in xpc_initiate_send()
926 struct xpc_partition *part = &xpc_partitions[partid]; in xpc_initiate_send_notify() local
933 DBUG_ON(ch_number < 0 || ch_number >= part->nchannels); in xpc_initiate_send_notify()
937 if (xpc_part_ref(part)) { in xpc_initiate_send_notify()
938 ret = xpc_arch_ops.send_payload(&part->channels[ch_number], in xpc_initiate_send_notify()
940 xpc_part_deref(part); in xpc_initiate_send_notify()
1000 struct xpc_partition *part = &xpc_partitions[partid]; in xpc_initiate_received() local
1004 DBUG_ON(ch_number < 0 || ch_number >= part->nchannels); in xpc_initiate_received()
1006 ch = &part->channels[ch_number]; in xpc_initiate_received()