Lines Matching refs:path
69 struct iucv_path *path; /* IUCV path pointer */
80 u8 info_path[16]; /* IUCV path info (dev attr) */
214 * IUCV path.
215 * If the IUCV path has been severed, then -EPIPE is returned to cause a
229 /* if the IUCV path has been severed, return -EPIPE to inform the
249 rc = __iucv_message_receive(priv->path, &rb->msg, 0,
308 * If an IUCV communication path has been established, pending IUCV messages
352 * If an existing IUCV communicaton path has been severed, -EPIPE is returned
383 * If an IUCV communication path has been established, the buffered output data
385 * Returns 0 if there is no established IUCV communication path or
386 * -EPIPE if an existing IUCV communicaton path has been severed.
414 rc = __iucv_message_send(priv->path, &sb->msg, 0, 0,
556 * hvc_iucv_hangup() - Sever IUCV path and schedule hvc tty hang up
559 * This routine severs an existing IUCV communication path and hangs
561 * The hang-up occurs only if an IUCV communication path is established;
565 * 1. After the IUCV path has been severed, the iucv_state is set to
589 struct iucv_path *path;
591 path = NULL;
594 path = priv->path;
595 priv->path = NULL;
609 /* finally sever path (outside of priv->lock due to lock ordering) */
610 if (path) {
611 iucv_path_sever(path, NULL);
612 iucv_path_free(path);
625 * to keep an existing IUCV communication path established.
628 * If the tty has been opened and an established IUCV path has been severed
648 * ignore this hangup and keep an established IUCV path open...
670 struct iucv_path *path;
688 path = priv->path; /* save reference to IUCV path */
689 priv->path = NULL;
693 /* Sever IUCV path outside of priv->lock due to lock ordering of:
695 if (path) {
696 iucv_path_sever(path, NULL);
697 iucv_path_free(path);
766 * @path: Pending path (struct iucv_path)
768 * @ipuser: User specified data for this path
771 * The function uses the @ipuser data to determine if the pending path belongs
773 * If the path belongs to this driver, ensure that the terminal is not accessed
775 * If the terminal is not yet connected, the pending path is accepted and is
778 * Returns 0 if @path belongs to a terminal managed by the this device driver;
779 * otherwise returns -ENODEV in order to dispatch this path to other handlers.
783 static int hvc_iucv_path_pending(struct iucv_path *path, u8 *ipvmid,
795 /* First, check if the pending path request is managed by this
825 iucv_path_sever(path, ipuser);
826 iucv_path_free(path);
837 * this path to enforce that there is only ONE established communication
838 * path per terminal. */
840 iucv_path_sever(path, ipuser);
841 iucv_path_free(path);
845 /* accept path */
848 path->msglim = 0xffff; /* IUCV MSGLIMIT */
849 path->flags &= ~IUCV_IPRMDATA; /* TODO: use IUCV_IPRMDATA */
850 rc = iucv_path_accept(path, &hvc_iucv_handler, nuser_data, priv);
852 iucv_path_sever(path, ipuser);
853 iucv_path_free(path);
856 priv->path = path;
859 /* store path information */
872 * hvc_iucv_path_severed() - IUCV handler to process a path sever.
873 * @path: Pending path (struct iucv_path)
874 * @ipuser: User specified data for this path
882 static void hvc_iucv_path_severed(struct iucv_path *path, u8 *ipuser)
884 struct hvc_iucv_private *priv = path->private;
891 * @path: Pending path (struct iucv_path)
900 static void hvc_iucv_msg_pending(struct iucv_path *path,
903 struct hvc_iucv_private *priv = path->private;
908 iucv_message_reject(path, msg);
916 iucv_message_reject(path, msg);
923 iucv_message_reject(path, msg);
938 * @path: Pending path (struct iucv_path)
948 static void hvc_iucv_msg_complete(struct iucv_path *path,
951 struct hvc_iucv_private *priv = path->private;