[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 10/41] char-parallel: convert parallel to finalize
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PULL 10/41] char-parallel: convert parallel to finalize |
Date: |
Tue, 31 Jan 2017 20:20:51 +0400 |
Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
---
qemu-char.c | 30 +++++++++++++++++-------------
1 file changed, 17 insertions(+), 13 deletions(-)
diff --git a/qemu-char.c b/qemu-char.c
index 74e78b56d1..1981058f45 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -2025,17 +2025,6 @@ static int pp_ioctl(Chardev *chr, int cmd, void *arg)
return 0;
}
-static void pp_free(Chardev *chr)
-{
- ParallelChardev *drv = PARALLEL_CHARDEV(chr);
- int fd = drv->fd;
-
- pp_hw_mode(drv, IEEE1284_MODE_COMPAT);
- ioctl(fd, PPRELEASE);
- close(fd);
- qemu_chr_be_event(chr, CHR_EVENT_CLOSED);
-}
-
static void qemu_chr_open_pp_fd(Chardev *chr,
int fd,
bool *be_opened,
@@ -4699,18 +4688,33 @@ static void char_parallel_class_init(ObjectClass *oc,
void *data)
#if defined(__linux__)
cc->chr_write = null_chr_write;
cc->chr_ioctl = pp_ioctl;
- cc->chr_free = pp_free;
#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) ||
defined(__DragonFly__)
- /* FIXME: no chr_free */
cc->chr_write = null_chr_write;
cc->chr_ioctl = pp_ioctl;
#endif
}
+static void char_parallel_finalize(Object *obj)
+{
+#if defined(__linux__)
+ Chardev *chr = CHARDEV(obj);
+ ParallelChardev *drv = PARALLEL_CHARDEV(chr);
+ int fd = drv->fd;
+
+ pp_hw_mode(drv, IEEE1284_MODE_COMPAT);
+ ioctl(fd, PPRELEASE);
+ close(fd);
+ qemu_chr_be_event(chr, CHR_EVENT_CLOSED);
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) ||
defined(__DragonFly__)
+ /* FIXME: close fd? */
+#endif
+}
+
static const TypeInfo char_parallel_type_info = {
.name = TYPE_CHARDEV_PARALLEL,
.parent = TYPE_CHARDEV,
.instance_size = sizeof(ParallelChardev),
+ .instance_finalize = char_parallel_finalize,
.class_init = char_parallel_class_init,
};
#endif
--
2.11.0.295.gd7dffce1c.dirty
- [Qemu-devel] [PULL 00/41] Chr split patches, Marc-André Lureau, 2017/01/31
- [Qemu-devel] [PULL 01/41] MAINTAINERS: add myself to qemu-char.c, Marc-André Lureau, 2017/01/31
- [Qemu-devel] [PULL 02/41] spice-qemu-char: convert to finalize, Marc-André Lureau, 2017/01/31
- [Qemu-devel] [PULL 03/41] baum: convert to finalize, Marc-André Lureau, 2017/01/31
- [Qemu-devel] [PULL 04/41] msmouse: convert to finalize, Marc-André Lureau, 2017/01/31
- [Qemu-devel] [PULL 05/41] mux: convert to finalize, Marc-André Lureau, 2017/01/31
- [Qemu-devel] [PULL 06/41] char-udp: convert to finalize, Marc-André Lureau, 2017/01/31
- [Qemu-devel] [PULL 07/41] char-socket: convert to finalize, Marc-André Lureau, 2017/01/31
- [Qemu-devel] [PULL 08/41] char-pty: convert to finalize, Marc-André Lureau, 2017/01/31
- [Qemu-devel] [PULL 09/41] char-ringbuf: convert to finalize, Marc-André Lureau, 2017/01/31
- [Qemu-devel] [PULL 10/41] char-parallel: convert parallel to finalize,
Marc-André Lureau <=
- [Qemu-devel] [PULL 11/41] char-stdio: convert to finalize, Marc-André Lureau, 2017/01/31
- [Qemu-devel] [PULL 12/41] char-win-stdio: convert to finalize, Marc-André Lureau, 2017/01/31
- [Qemu-devel] [PULL 13/41] char-win: do not override chr_free, Marc-André Lureau, 2017/01/31
- [Qemu-devel] [PULL 14/41] char-win: convert to finalize, Marc-André Lureau, 2017/01/31
- [Qemu-devel] [PULL 15/41] char-fd: convert to finalize, Marc-André Lureau, 2017/01/31
- [Qemu-devel] [PULL 16/41] char: remove chr_free, Marc-André Lureau, 2017/01/31
- [Qemu-devel] [PULL 18/41] char: rename remaining CharDriver to Chardev, Marc-André Lureau, 2017/01/31
- [Qemu-devel] [PULL 17/41] char: get rid of CharDriver, Marc-André Lureau, 2017/01/31
- [Qemu-devel] [PULL 19/41] char: remove class kind field, Marc-André Lureau, 2017/01/31
- [Qemu-devel] [PULL 20/41] char: move to chardev/, Marc-André Lureau, 2017/01/31