On 30 March 2017, at 18:49, Stefano Stabellini <sstabell...@kernel.org> wrote:

>
>
>On Thu, 30 Mar 2017, Paul Durrant wrote:
>> Commit 4c8153d9 "add ACPI device for Windows laptop/slate mode switch"
>> added code to provide an 'laptop/slate mode' ACPI device to guests.
>>
>> When present this device is used by Microsoft Windows to bind a HID
>> driver which controls whether the Windows desktop appearance is optimized
>> for laptop/desktop or slate/tablet PCs. The mechanism for switching
>> between modes is to open a handle to this driver and write a byte of
>> arbitrary data.
>>
>> This patch documents xenstore keys such that a PV agent running in a
>> Windows guest can advertise the capability to, and receive instruction
>> from, a toolstack to cause such a mode switch.
>>
>> Signed-off-by: Paul Durrant <paul.durr...@citrix.com>
>> ---
>> Cc: Andrew Cooper <andrew.coop...@citrix.com>
>> Cc: George Dunlap <george.dun...@eu.citrix.com>
>> Cc: Ian Jackson <ian.jack...@eu.citrix.com>
>> Cc: Jan Beulich <jbeul...@suse.com>
>> Cc: Konrad Rzeszutek Wilk <konrad.w...@oracle.com>
>> Cc: Stefano Stabellini <sstabell...@kernel.org>
>> Cc: Tim Deegan <t...@xen.org>
>> Cc: Wei Liu <wei.l...@citrix.com>
>> ---
>>  docs/misc/xenstore-paths.markdown | 15 +++++++++++++++
>>  1 file changed, 15 insertions(+)
>>
>> diff --git a/docs/misc/xenstore-paths.markdown 
>> b/docs/misc/xenstore-paths.markdown
>> index 5d89ed8..6c80a9e 100644
>> --- a/docs/misc/xenstore-paths.markdown
>> +++ b/docs/misc/xenstore-paths.markdown
>> @@ -435,6 +435,21 @@ XS_RESET_WATCHES xenstore message. See
>>  [xen/include/public/io/xs\_wire.h][XSWIRE] for the XenStore wire
>>  protocol definition.
>>
>> +#### ~/control/laptop-slate-mode = (""|"laptop"|"slate") [w]
>> +
>> +This is the PV laptop/slate mode control node. If the toolstack has
>> +provisioned a guest with the ACPI laptop/slate mode device then it
>> +can write the desired mode here to cause the guest to switch modes if
>> +necessary. The guest acknowledges a request by writing the empty
>> +string back to the control node.
>> +
>> +#### ~/control/feature-laptop-slate-mode = (""|"0"|"1") [w]
>> +
>> +This may be initialized to "" by the toolstack and may then be set
>> +to 0 or 1 by a guest to indicate whether it is capable or incapable,
>> +respectively, of responding to a mode value written to
>> +~/control/laptop-slate-mode.
>Usually, this is done by having the guest drivers write something like:
>feature-laptop-slate-mode
>to xenstore. The lack of the feature-* means no support is available.
>In fact, how is this supposed to work with old guest PV drivers that
>don't know about ~/control/feature-laptop-slate-mode? There won't be
>anybody to write "0" there, right?

The toolstack has to write this first because the parent control key is read 
only to the guest.
Old guests will not write 0 so the toolstack does not know whether the guest 
can handle a command written to control/laptop-slate-mode. It has to apply some 
form of timeout in that case. This is exactly the same as with any of the 
shutdown features.

  Paul

>>  ### Domain Controlled Paths
>>
>>  #### ~/data/* [w]
>> --
>> 2.1.4
>>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

Reply via email to