[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[win-pv-devel] [PATCH 00/14 v2] Support multiple consoles



From: Owen Smith <owen.smith@xxxxxxxxxx>

Converts the xencons Fdo into a bus driver that enumerates 1 or more
Pdos. The first Pdo manages the static "default" console exposed by
the XENBUS_CONSOLE interface. Subsiquent Pdos manage the dynamic
non-default consoles that can be added to a VM. All consoles expose
several properties to differentiate their useage ("name", "instance",
and "protocol"). The monitor service is modified to manage multiple
consoles and create a named pipe for each, with the pipe's name being
based on the "name" property of the console (i.e. \\.\pipe\xencons\<name>)
Users of a particular console can directly connect to the well-known
name of the correct named pipe.

Currently, the default console (\\.\pipe\xencons\default) is used by
xencons_tty to expose a command line interface to the backend.
Additional uses should be defined in accordance with
https://xenbits.xen.org/docs/unstable/man/xen-pv-channel.7.html

Owen Smith (14):
  chmod 777 msbuild.bat
  Move console handlers to console.c
  Add boilerplate Pdo
  Move console handler to static Pdo
  Add IOCTLs to query instance, name and protocol
  Make monitor service multi-console aware
  Enumerate non-default consoles
  Hide console access behind an interface
  Add boilerplate frontend
  Respond to non-default console IOCTLs
  Add EVTCHN and GNTTAB interfaces
  Implement ring protocol
  Ensure D0 <-> D3 transitions occur from the correct state only.
  Fail FrontendPrepare if backend doesn't reinitialize

 include/cache_interface.h                |  233 ++++
 include/evtchn_interface.h               |  357 +++++
 include/gnttab_interface.h               |  287 +++++
 include/xen-types.h                      |   55 +
 include/xen-version.h                    |   37 +
 include/xen-warnings.h                   |   42 +
 include/xen.h                            |   45 +
 include/xen/public/arch-x86/xen-x86_32.h |  169 +++
 include/xen/public/arch-x86/xen-x86_64.h |  202 +++
 include/xen/public/arch-x86/xen.h        |  338 +++++
 include/xen/public/errno.h               |  124 ++
 include/xen/public/grant_table.h         |  684 ++++++++++
 include/xen/public/io/console.h          |   51 +
 include/xen/public/io/ring.h             |  326 +++++
 include/xen/public/io/xenbus.h           |   80 ++
 include/xen/public/trace.h               |  337 +++++
 include/xen/public/xen-compat.h          |   44 +
 include/xen/public/xen.h                 |  995 ++++++++++++++
 include/xen/xen/errno.h                  |   18 +
 include/xencons_device.h                 |   17 +
 msbuild.bat                              |    0
 src/monitor/monitor.c                    | 1445 +++++++++++----------
 src/tty/tty.c                            |   20 +-
 src/xencons.inf                          |    2 +-
 src/xencons/console.c                    |  557 ++++++++
 src/xencons/console.h                    |   46 +
 src/xencons/console_abi.h                |   99 ++
 src/xencons/driver.c                     |    8 +
 src/xencons/driver.h                     |   12 +-
 src/xencons/fdo.c                        | 1126 +++++++++++-----
 src/xencons/fdo.h                        |   47 +
 src/xencons/frontend.c                   | 1654 ++++++++++++++++++++++++
 src/xencons/frontend.h                   |   68 +
 src/xencons/mutex.h                      |   82 ++
 src/xencons/pdo.c                        | 2079 ++++++++++++++++++++++++++++++
 src/xencons/pdo.h                        |  118 ++
 src/xencons/ring.c                       | 1064 +++++++++++++++
 src/xencons/ring.h                       |   96 ++
 vs2015/xencons/xencons.vcxproj           |    4 +
 vs2017/xencons/xencons.vcxproj           |    4 +
 40 files changed, 11956 insertions(+), 1016 deletions(-)
 create mode 100755 include/cache_interface.h
 create mode 100755 include/evtchn_interface.h
 create mode 100755 include/gnttab_interface.h
 create mode 100755 include/xen-types.h
 create mode 100755 include/xen-version.h
 create mode 100755 include/xen-warnings.h
 create mode 100755 include/xen.h
 create mode 100755 include/xen/public/arch-x86/xen-x86_32.h
 create mode 100755 include/xen/public/arch-x86/xen-x86_64.h
 create mode 100755 include/xen/public/arch-x86/xen.h
 create mode 100755 include/xen/public/errno.h
 create mode 100755 include/xen/public/grant_table.h
 create mode 100755 include/xen/public/io/console.h
 create mode 100755 include/xen/public/io/ring.h
 create mode 100755 include/xen/public/io/xenbus.h
 create mode 100755 include/xen/public/trace.h
 create mode 100755 include/xen/public/xen-compat.h
 create mode 100755 include/xen/public/xen.h
 create mode 100755 include/xen/xen/errno.h
 mode change 100644 => 100755 msbuild.bat
 create mode 100755 src/xencons/console.c
 create mode 100755 src/xencons/console.h
 create mode 100755 src/xencons/console_abi.h
 create mode 100755 src/xencons/frontend.c
 create mode 100755 src/xencons/frontend.h
 create mode 100755 src/xencons/mutex.h
 create mode 100755 src/xencons/pdo.c
 create mode 100755 src/xencons/pdo.h
 create mode 100755 src/xencons/ring.c
 create mode 100755 src/xencons/ring.h

-- 
2.8.3


_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/win-pv-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.