1 /* SPDX-License-Identifier: LGPL-2.1+ */
10 typedef struct PTYForward PTYForward
;
12 typedef enum PTYForwardFlags
{
13 PTY_FORWARD_READ_ONLY
= 1,
15 /* Continue reading after hangup? */
16 PTY_FORWARD_IGNORE_VHANGUP
= 2,
18 /* Continue reading after hangup but only if we never read anything else? */
19 PTY_FORWARD_IGNORE_INITIAL_VHANGUP
= 4,
22 typedef int (*PTYForwardHandler
)(PTYForward
*f
, int rcode
, void *userdata
);
24 int pty_forward_new(sd_event
*event
, int master
, PTYForwardFlags flags
, PTYForward
**f
);
25 PTYForward
*pty_forward_free(PTYForward
*f
);
27 int pty_forward_get_last_char(PTYForward
*f
, char *ch
);
29 int pty_forward_set_ignore_vhangup(PTYForward
*f
, bool ignore_vhangup
);
30 bool pty_forward_get_ignore_vhangup(PTYForward
*f
);
32 bool pty_forward_is_done(PTYForward
*f
);
34 void pty_forward_set_handler(PTYForward
*f
, PTYForwardHandler handler
, void *userdata
);
36 bool pty_forward_drain(PTYForward
*f
);
38 int pty_forward_set_priority(PTYForward
*f
, int64_t priority
);
40 int pty_forward_set_width_height(PTYForward
*f
, unsigned width
, unsigned height
);
42 DEFINE_TRIVIAL_CLEANUP_FUNC(PTYForward
*, pty_forward_free
);