[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 24/54] char-parallel: convert parallel to finalize
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH 24/54] char-parallel: convert parallel to finalize |
Date: |
Tue, 13 Dec 2016 01:42:55 +0300 |
Signed-off-by: Marc-André Lureau <address@hidden>
---
qemu-char.c | 30 +++++++++++++++++-------------
1 file changed, 17 insertions(+), 13 deletions(-)
diff --git a/qemu-char.c b/qemu-char.c
index 4d7f82a45b..403b8a3dc7 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -2020,17 +2020,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,
@@ -4696,18 +4685,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
- [Qemu-devel] [PATCH 10/54] char: rename CharDriverState Chardev, (continued)
- [Qemu-devel] [PATCH 10/54] char: rename CharDriverState Chardev, Marc-André Lureau, 2016/12/12
- [Qemu-devel] [PATCH 17/54] baum: convert to finalize, Marc-André Lureau, 2016/12/12
- [Qemu-devel] [PATCH 16/54] spice-qemu-char: convert to finalize, Marc-André Lureau, 2016/12/12
- [Qemu-devel] [PATCH 18/54] msmouse: convert to finalize, Marc-André Lureau, 2016/12/12
- [Qemu-devel] [PATCH 19/54] mux: convert to finalize, Marc-André Lureau, 2016/12/12
- [Qemu-devel] [PATCH 20/54] char-udp: convert to finalize, Marc-André Lureau, 2016/12/12
- [Qemu-devel] [PATCH 15/54] chardev: qom-ify, Marc-André Lureau, 2016/12/12
- [Qemu-devel] [PATCH 21/54] char-socket: convert to finalize, Marc-André Lureau, 2016/12/12
- [Qemu-devel] [PATCH 22/54] char-pty: convert to finalize, Marc-André Lureau, 2016/12/12
- [Qemu-devel] [PATCH 23/54] char-ringbuf: convert to finalize, Marc-André Lureau, 2016/12/12
- [Qemu-devel] [PATCH 24/54] char-parallel: convert parallel to finalize,
Marc-André Lureau <=
- [Qemu-devel] [PATCH 25/54] char-stdio: convert to finalize, Marc-André Lureau, 2016/12/12
- [Qemu-devel] [PATCH 26/54] char-win-stdio: convert to finalize, Marc-André Lureau, 2016/12/12
- [Qemu-devel] [PATCH 27/54] char-win: do not override chr_free, Marc-André Lureau, 2016/12/12
- [Qemu-devel] [PATCH 28/54] char-win: convert to finalize, Marc-André Lureau, 2016/12/12
- [Qemu-devel] [PATCH 29/54] char-fd: convert to finalize, Marc-André Lureau, 2016/12/12
- [Qemu-devel] [PATCH 30/54] char: remove chr_free, Marc-André Lureau, 2016/12/12
- [Qemu-devel] [PATCH 31/54] char: get rid of CharDriver, Marc-André Lureau, 2016/12/12
- [Qemu-devel] [PATCH 33/54] char: move to chardev/, Marc-André Lureau, 2016/12/12
- [Qemu-devel] [PATCH 32/54] char: remove class kind field, Marc-André Lureau, 2016/12/12
- [Qemu-devel] [PATCH 34/54] char: create chardev-obj-y, Marc-André Lureau, 2016/12/12