uterm: vt: remove connect_eloop/disconnect_eloop functions

This removes both functions and merges them into the callers. They're
small enough to be directly included.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This commit is contained in:
David Herrmann 2012-08-12 09:40:49 +02:00
parent 8752fe33af
commit 1f9867e786

View File

@ -166,48 +166,6 @@ static void vt_input(struct ev_fd *fd, int mask, void *data)
tcflush(vt->fd, TCIFLUSH);
}
static int connect_eloop(struct uterm_vt *vt)
{
int ret;
if (!vt || vt->fd < 0)
return -EINVAL;
ret = ev_eloop_register_signal_cb(vt->vtm->eloop, SIGUSR1, vt_leave,
vt);
if (ret)
return ret;
ret = ev_eloop_register_signal_cb(vt->vtm->eloop, SIGUSR2, vt_enter,
vt);
if (ret)
goto err_sig1;
ret = ev_eloop_new_fd(vt->vtm->eloop, &vt->efd, vt->fd, EV_READABLE,
vt_input, vt);
if (ret)
goto err_sig2;
return 0;
err_sig2:
ev_eloop_unregister_signal_cb(vt->vtm->eloop, SIGUSR2, vt_enter, vt);
err_sig1:
ev_eloop_unregister_signal_cb(vt->vtm->eloop, SIGUSR1, vt_leave, vt);
return ret;
}
static void disconnect_eloop(struct uterm_vt *vt)
{
if (!vt)
return;
ev_eloop_rm_fd(vt->efd);
ev_eloop_unregister_signal_cb(vt->vtm->eloop, SIGUSR2, vt_enter, vt);
ev_eloop_unregister_signal_cb(vt->vtm->eloop, SIGUSR1, vt_leave, vt);
vt->efd = NULL;
}
static int open_tty(int id, int *tty_fd, int *tty_num)
{
int fd;
@ -267,10 +225,21 @@ int kmscon_vt_open(struct uterm_vt *vt)
if (ret)
return ret;
ret = connect_eloop(vt);
ret = ev_eloop_register_signal_cb(vt->vtm->eloop, SIGUSR1, vt_leave,
vt);
if (ret)
goto err_fd;
ret = ev_eloop_register_signal_cb(vt->vtm->eloop, SIGUSR2, vt_enter,
vt);
if (ret)
goto err_sig1;
ret = ev_eloop_new_fd(vt->vtm->eloop, &vt->efd, vt->fd, EV_READABLE,
vt_input, vt);
if (ret)
goto err_sig2;
/*
* Get the number of the VT which is active now, so we have something
* to switch back to in kmscon_vt_switch_leave.
@ -328,7 +297,14 @@ err_text:
err_reset:
tcsetattr(vt->fd, TCSANOW, &vt->saved_attribs);
err_eloop:
disconnect_eloop(vt);
ev_eloop_rm_fd(vt->efd);
ev_eloop_unregister_signal_cb(vt->vtm->eloop, SIGUSR2, vt_enter, vt);
ev_eloop_unregister_signal_cb(vt->vtm->eloop, SIGUSR1, vt_leave, vt);
vt->efd = NULL;
err_sig2:
ev_eloop_unregister_signal_cb(vt->vtm->eloop, SIGUSR2, vt_enter, vt);
err_sig1:
ev_eloop_unregister_signal_cb(vt->vtm->eloop, SIGUSR1, vt_leave, vt);
err_fd:
close(vt->fd);
vt->fd = -1;
@ -343,7 +319,10 @@ void kmscon_vt_close(struct uterm_vt *vt)
log_debug("closing vt %p", vt);
ioctl(vt->fd, KDSETMODE, KD_TEXT);
tcsetattr(vt->fd, TCSANOW, &vt->saved_attribs);
disconnect_eloop(vt);
ev_eloop_rm_fd(vt->efd);
ev_eloop_unregister_signal_cb(vt->vtm->eloop, SIGUSR2, vt_enter, vt);
ev_eloop_unregister_signal_cb(vt->vtm->eloop, SIGUSR1, vt_leave, vt);
vt->efd = NULL;
close(vt->fd);
vt->fd = -1;