[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 3/3] chardev: add hotplug support.
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 3/3] chardev: add hotplug support. |
Date: |
Fri, 14 Dec 2012 16:07:32 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0 |
Il 14/12/2012 15:19, Gerd Hoffmann ha scritto:
> Hi,
>
>>> ... are you passing a file descriptor for a pipe, a file or a
>>> parallel/serial port?
>>
>> The open function of the file-based backends basically do (1) create
>> file handles and (2) call qemu_chr_open_fd().
Right, and there's the ugliness where you can only specify an output
file, not an input.
>> So of you already have an
>> fd the differences are gone. Well, almost. tty has an special ioctl
>> callback to configure line speed.
What about this then:
{ 'union': 'ChardevFileSource',
'data': {'path': 'str', 'fd': 'str'} }
{ 'type': 'ChardevFile',
'data': {'*in': 'ChardevFileSource', '*out': 'ChardevFileSource'} }
{ 'enum': 'ChardevPortKind',
'data': ['serial', 'parallel'] }
{ 'type': 'ChardevPort',
'data': {'device': 'ChardevFileSource', 'type': 'ChardevPortKind'} }
{ 'type': 'ChardevSpice',
'data': {'name': 'str', '*debug': 'bool'}}
{ 'type': 'ChardevVC',
'data': {'*width': 'int', '*height': 'int',
'*cols': 'int', '*rows': 'int'}}
{ 'type': 'ChardevSocket',
'data': {'addr': 'SocketAddress', '*server': 'bool',
'*wait': 'bool', '*nodelay': 'bool', '*telnet': 'bool'} }
{ 'type': 'ChardevUDP',
'data': {'peer': 'SocketAddress',
'*localhost': 'str', '*localport': 'str' } }
# For future extensibility...
{ 'ChardevDummy', 'data': {} }
{ 'union': 'ChardevBackend', 'data': {
'socket': 'ChardevSocket',
'winpipe': 'String', # "pipe" for _WIN32 case
'udp': 'ChardevUDP',
'file': 'ChardevFile',
'port': 'ChardevPort',
'pty': 'ChardevDummy',
'null': 'ChardevDummy',
'msmouse': 'ChardevDummy',
'braille': 'ChardevDummy',
'stdio': 'ChardevDummy',
'vc': 'ChardevVC',
# Solely for HMP usage.
'legacy': 'str'
}
> Also you might want to pass in a socket fd ...
This is already supported by socket_connect/socket_listen in
qemu-sockets.c (thus by the SocketAddress QAPI union).
Paolo
> So I really think a -chardev
> fd,type={listening-stream-socket,connected-stream-socket,datagram-socket,tty,fd-readwrite,fd-writeonly}
> (+ QMP for that) will be more useful.
> cheers,
> Gerd
>
- [Qemu-devel] [PATCH RESENT 0/3] chardev hotplug patch series, Gerd Hoffmann, 2012/12/14
- [Qemu-devel] [PATCH 2/3] chardev: fix QemuOpts lifecycle, Gerd Hoffmann, 2012/12/14
- [Qemu-devel] [PATCH 1/3] chardev: add error reporting for qemu_chr_new_from_opts, Gerd Hoffmann, 2012/12/14
- [Qemu-devel] [PATCH 3/3] chardev: add hotplug support., Gerd Hoffmann, 2012/12/14
- Re: [Qemu-devel] [PATCH 3/3] chardev: add hotplug support., Paolo Bonzini, 2012/12/14
- Re: [Qemu-devel] [PATCH 3/3] chardev: add hotplug support., Eric Blake, 2012/12/14
- Re: [Qemu-devel] [PATCH 3/3] chardev: add hotplug support., Gerd Hoffmann, 2012/12/14
- Re: [Qemu-devel] [PATCH 3/3] chardev: add hotplug support., Paolo Bonzini, 2012/12/14
- Re: [Qemu-devel] [PATCH 3/3] chardev: add hotplug support., Gerd Hoffmann, 2012/12/14
- Re: [Qemu-devel] [PATCH 3/3] chardev: add hotplug support., Gerd Hoffmann, 2012/12/14
- Re: [Qemu-devel] [PATCH 3/3] chardev: add hotplug support.,
Paolo Bonzini <=