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

Re: [Xen-devel] [PATCH v1 0/2] libxl: add PV display device driver interface



Hi Ian,

After internal discussion we think that putting positions and z-orders
of virtual connectors
to the Xen store and libxl configuration is not so good idea. Because
their composition
depends on an application and usage. We consider automotive usage.
For example one of domain drives navigation system and depends on scenario
the navigation window position and size can be changed. In that case on the host
should be an instance of window manager or something like that.
The window manager will decide where to put the virtual displays.

What is important for frontend and backend are number of virtual
connectors and their
resolutions.

If it is ok, following is libxl/xl configuration proposal:

1. Configuration file:
vdispl = [ 'backend=0, devId=0, beAlloc=1, connectors=800x600,1024x768' ]

    * backend - backend domain id or name (if different from dom 0);
    * devId - device id (if different from 0);
    * beAlloc - indicated where to allocate buffers (according to protocol [1]);
    * connectors - resolutions for connectors list: 800x600 for
connector 0, 1024x768 for connector 1, etc.

2. libxl_types.idl:

libxl_connector_param = Struct("connector_param", [
    ("width", uint32),
    ("height", uint32)
    ])

libxl_device_vdispl = Struct("device_vdispl", [
    ("backend_domid", libxl_domid),
    ("backend_domname", string),
    ("devid", libxl_devid),
    ("be_alloc", bool),
    ("connectors", Array(libxl_connector_param, "num_connectors"))
    ])

libxl_connectorinfo = Struct("connectorinfo", [
    ("width", uint32),
    ("height", uint32),
    ("evtch", integer),
    ("rref", integer),
    ], dir=DIR_OUT)

libxl_vdisplinfo = Struct("vdisplinfo", [
    ("backend", string),
    ("backend_id", uint32),
    ("frontend", string),
    ("frontend_id", uint32),
    ("devid", libxl_devid),
    ("state", integer),
    ("be_alloc", bool),
    ("connectors", Array(libxl_connectorinfo, "num_connectors"))
    ], dir=DIR_OUT)

3. xl command line:

    { "vdispl-attach",
      &main_vdisplattach, 1, 1,
      "Create a new virtual display device",
      "<Domain> [devId=<Device>] [backend=<BackDomain>] [beAlloc=<BackAlloc>]"\
      " [connectors=<Resolutions>",
      "    BackAlloc - set to 1 to allow backend allocated display buffers\n"
      "    Resolutions - list of connector's resolutions in WxH format:\n"
      "800x600,1024x768"
    },
    { "vdispl-list",
      &main_vdispllist, 0, 0,
      "List virtual display devices for a domain",
      "<Domain(s)>",
    },
    { "vdispl-detach",
      &main_vdispldetach, 0, 1,
      "Destroy a domain's virtual display device",
      "<Domain> <DevId>",
    },


[1] http://marc.info/?l=xen-devel&m=149137266022490&w=2

Thanks.

-- 
Best Regards,
Oleksandr Grytsov.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

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