HV_PM_TIMER_INFO union
The HV_PM_TIMER_INFO union describes the timer control, which encodes a child partition's use of the ACPI PM timer.
Syntax
typedef union _HV_PM_TIMER_INFO { UINT64 AsUINT64; struct { UINT32 Port :16; UINT32 Width24 :1; UINT32 Enabled :1; UINT32 Reserved1 :14; UINT32 Reserved2 :32; }; } HV_PM_TIMER_INFO, *PHV_PM_TIMER_INFO;
Members
- AsUINT64
-
A member in the union that can hold one 64-bit value that describes the timer control.
- Port
-
A UINT32 value that indicates the I/O port that the reference timer assist is to use. The I/O port value is set in the first through sixteenth bits of the 64-bit AsUINT64 member (0x000000000000FFFF).
- Width24
-
A UINT32 value that indicates whether to set the width of the timer data to 24 bits wide. When Width24 is set, the data is 24 bits wide. When Width24 is clear, the data is 32 bits wide.
The width of the timer data is set in the seventeenth bit of the 64-bit AsUINT64 member (0x0000000000010000).
- Enabled
-
A UINT32 value that indicates whether to enable the timer control assist. Setting this member is equivalent to setting the eighteenth bit of the 64-bit AsUINT64 member (0x0000000000020000).
- Reserved1
-
This member is reserved and should be set to zero. Setting this member to zero is equivalent to setting the remaining 14 bits (0x00000000FFFC0000) in the first group of 32 bits of the 64-bit AsUINT64 member to zeros.
- Reserved2
-
This member is reserved and should be set to zero. Setting this member to zero is equivalent to setting all 32 bits (0xFFFFFFFF00000000) in the second group of 32 bits of the 64-bit AsUINT64 member to zeros.
Remarks
The parent partition can request the hypervisor to assist the child partition's use of the ACPI PM timer. The parent specifies an I/O port and whether the child's ACPI PM Timer is 24- or 32-bits wide. When the child partition performs an input operation from the specified port, the hypervisor will directly provide the value of the PM timer based on the partition's reference time. The returned ACPI PM timer value is computed as follows:
ACPI_PM_Timer = Modulus(Partition_Reference_Time * 0.3579545, 2**[24|32]);
The ACPI PM timer assist supports only input operations on the I/O port. Attempts to either perform output operations to the port or perform input operations from any of the three subsequent I/O ports (that is, ports n+1, n+2, or n+3) will follow the rules for I/O port accesses.
If both an intercept and the PM timer assist are installed for the same I/O port, the intercept will take precedence over the assist.
The HvPartitionPropertyPmTimerAssist property from the HV_PARTITION_PROPERTY_CODE enumeration is used with the HV_PM_TIMER_INFO union.
Requirements
Header |
|
---|
See also
Send comments about this topic to Microsoft
Build date: 11/16/2013