gcc/libphobos/libdruntime/core/sys/windows/powrprof.d
Iain Buclaw 7e7ebe3e35 d: Merge upstream dmd, druntime e4f8919591, phobos 3ad507b51.
D front-end changes:

    - Import dmd v2.101.0-beta.1.
    - Add predefined version `D_Optimized' when compiling with `-O'.
    - Shortened method syntax (DIP1043) is now enabled by default.
    - Array literals assigned to `scope' array variables are now
      allocated on the stack.
    - Implement `@system' variables (DIP1035), available behind the
      preview feature flag `-fpreview=systemvariables'.

D runtime changes:

    - Import druntime v2.101.0-beta.1.

Phobos changes:

    - Import phobos v2.101.0-beta.1.
    - Added `std.typecons.SafeRefCounted', that can be used in `@safe'
      code with `-fpreview=dip1000'.

gcc/d/ChangeLog:

	* d-attribs.cc (apply_user_attributes): Update for new front-end
	interface.
	* d-builtins.cc (d_init_versions): Predefine `D_Optimized' with
	compiling with optimizations enabled.
	* d-lang.cc (d_handle_option): Update for new front-end interface.
	Handle new option `-fpreview=systemvariables'.
	* dmd/MERGE: Merge upstream dmd e4f8919591.
	* dmd/VERSION: Bump version to v2.101.0-beta.1.
	* expr.cc (ExprVisitor::visit (AssignExp *)): Treat construction of
	static arrays from a call expression as a simple assignment.
	(ExprVisitor::visit (ArrayLiteralExp *)): Handle array literals with
	`scope' storage.
	* gdc.texi: Update documentation of `-fpreview=' options.
	* lang.opt (fpreview=shortenedmethods): Remove.
	(fpreview=systemvariables):  New option.

libphobos/ChangeLog:

	* libdruntime/MERGE: Merge upstream druntime e4f8919591.
	* src/MERGE: Merge upstream phobos 3ad507b51.

gcc/testsuite/ChangeLog:

	* gdc.dg/simd19630.d: Move tests with errors to ...
	* gdc.dg/simd19630b.d: ... here.  New test.
	* gdc.dg/simd19630c.d: New test.
	* gdc.dg/simd_ctfe.d: Removed.
	* gdc.dg/simd18867.d: New test.
	* gdc.dg/simd19788.d: New test.
	* gdc.dg/simd21469.d: New test.
	* gdc.dg/simd21672.d: New test.
	* gdc.dg/simd23077.d: New test.
	* gdc.dg/simd23084.d: New test.
	* gdc.dg/simd23085.d: New test.
	* gdc.dg/torture/simd19632.d: New test.
	* gdc.dg/torture/simd20041.d: New test.
	* gdc.dg/torture/simd21673.d: New test.
	* gdc.dg/torture/simd21676.d: New test.
	* gdc.dg/torture/simd22438.d: New test.
	* gdc.dg/torture/simd23009.d: New test.
	* gdc.dg/torture/simd23077.d: New test.
	* gdc.dg/torture/simd8.d: New test.
	* gdc.dg/torture/simd9.d: New test.
	* gdc.dg/torture/simd_prefetch.d: New test.
2022-10-29 13:02:26 +02:00

140 lines
4.8 KiB
D

/**
* Windows API header module
*
* Translated from MinGW Windows headers
*
* Authors: Stewart Gordon
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(DRUNTIMESRC core/sys/windows/_powrprof.d)
*/
module core.sys.windows.powrprof;
version (Windows):
pragma(lib, "powrprof");
import core.sys.windows.windef;
import core.sys.windows.ntdef;
// FIXME: look up Windows version support
enum ULONG
EnableSysTrayBatteryMeter = 1,
EnableMultiBatteryDisplay = 2,
EnablePasswordLogon = 4,
EnableWakeOnRing = 8,
EnableVideoDimDisplay = 16;
enum UINT NEWSCHEME = -1;
struct GLOBAL_MACHINE_POWER_POLICY {
ULONG Revision;
SYSTEM_POWER_STATE LidOpenWakeAc;
SYSTEM_POWER_STATE LidOpenWakeDc;
ULONG BroadcastCapacityResolution;
}
alias GLOBAL_MACHINE_POWER_POLICY* PGLOBAL_MACHINE_POWER_POLICY;
struct GLOBAL_USER_POWER_POLICY {
ULONG Revision;
POWER_ACTION_POLICY PowerButtonAc;
POWER_ACTION_POLICY PowerButtonDc;
POWER_ACTION_POLICY SleepButtonAc;
POWER_ACTION_POLICY SleepButtonDc;
POWER_ACTION_POLICY LidCloseAc;
POWER_ACTION_POLICY LidCloseDc;
SYSTEM_POWER_LEVEL[NUM_DISCHARGE_POLICIES] DischargePolicy;
ULONG GlobalFlags;
}
alias GLOBAL_USER_POWER_POLICY* PGLOBAL_USER_POWER_POLICY;
struct GLOBAL_POWER_POLICY {
GLOBAL_USER_POWER_POLICY user;
GLOBAL_MACHINE_POWER_POLICY mach;
}
alias GLOBAL_POWER_POLICY* PGLOBAL_POWER_POLICY;
struct MACHINE_POWER_POLICY {
ULONG Revision;
SYSTEM_POWER_STATE MinSleepAc;
SYSTEM_POWER_STATE MinSleepDc;
SYSTEM_POWER_STATE ReducedLatencySleepAc;
SYSTEM_POWER_STATE ReducedLatencySleepDc;
ULONG DozeTimeoutAc;
ULONG DozeTimeoutDc;
ULONG DozeS4TimeoutAc;
ULONG DozeS4TimeoutDc;
UCHAR MinThrottleAc;
UCHAR MinThrottleDc;
UCHAR[2] pad1;
POWER_ACTION_POLICY OverThrottledAc;
POWER_ACTION_POLICY OverThrottledDc;
}
alias MACHINE_POWER_POLICY* PMACHINE_POWER_POLICY;
struct MACHINE_PROCESSOR_POWER_POLICY {
ULONG Revision;
PROCESSOR_POWER_POLICY ProcessorPolicyAc;
PROCESSOR_POWER_POLICY ProcessorPolicyDc;
}
alias MACHINE_PROCESSOR_POWER_POLICY* PMACHINE_PROCESSOR_POWER_POLICY;
struct USER_POWER_POLICY {
ULONG Revision;
POWER_ACTION_POLICY IdleAc;
POWER_ACTION_POLICY IdleDc;
ULONG IdleTimeoutAc;
ULONG IdleTimeoutDc;
UCHAR IdleSensitivityAc;
UCHAR IdleSensitivityDc;
UCHAR ThrottlePolicyAc;
UCHAR ThrottlePolicyDc;
SYSTEM_POWER_STATE MaxSleepAc;
SYSTEM_POWER_STATE MaxSleepDc;
ULONG[2] Reserved;
ULONG VideoTimeoutAc;
ULONG VideoTimeoutDc;
ULONG SpindownTimeoutAc;
ULONG SpindownTimeoutDc;
BOOLEAN OptimizeForPowerAc;
BOOLEAN OptimizeForPowerDc;
UCHAR FanThrottleToleranceAc;
UCHAR FanThrottleToleranceDc;
UCHAR ForcedThrottleAc;
UCHAR ForcedThrottleDc;
}
alias USER_POWER_POLICY* PUSER_POWER_POLICY;
struct POWER_POLICY {
USER_POWER_POLICY user;
MACHINE_POWER_POLICY mach;
}
alias POWER_POLICY* PPOWER_POLICY;
extern (Windows) {
alias BOOLEAN function(UINT, DWORD, LPTSTR, DWORD, LPTSTR, PPOWER_POLICY,
LPARAM) PWRSCHEMESENUMPROC;
alias BOOLEAN function(POWER_ACTION, SYSTEM_POWER_STATE, ULONG, BOOLEAN)
PFNNTINITIATEPWRACTION;
NTSTATUS CallNtPowerInformation(POWER_INFORMATION_LEVEL, PVOID, ULONG,
PVOID, ULONG);
BOOLEAN CanUserWritePwrScheme();
BOOLEAN DeletePwrScheme(UINT);
BOOLEAN EnumPwrSchemes(PWRSCHEMESENUMPROC, LPARAM);
BOOLEAN GetActivePwrScheme(PUINT);
BOOLEAN GetCurrentPowerPolicies(PGLOBAL_POWER_POLICY, PPOWER_POLICY);
BOOLEAN GetPwrCapabilities(PSYSTEM_POWER_CAPABILITIES);
BOOLEAN GetPwrDiskSpindownRange(PUINT, PUINT);
BOOLEAN IsAdminOverrideActive(PADMINISTRATOR_POWER_POLICY);
BOOLEAN IsPwrHibernateAllowed();
BOOLEAN IsPwrShutdownAllowed();
BOOLEAN IsPwrSuspendAllowed();
BOOLEAN ReadGlobalPwrPolicy(PGLOBAL_POWER_POLICY);
BOOLEAN ReadProcessorPwrScheme(UINT, PMACHINE_PROCESSOR_POWER_POLICY);
BOOLEAN ReadPwrScheme(UINT, PPOWER_POLICY);
BOOLEAN SetActivePwrScheme(UINT, PGLOBAL_POWER_POLICY, PPOWER_POLICY);
BOOLEAN SetSuspendState(BOOLEAN, BOOLEAN, BOOLEAN);
BOOLEAN WriteGlobalPwrPolicy(PGLOBAL_POWER_POLICY);
BOOLEAN WriteProcessorPwrScheme(UINT, PMACHINE_PROCESSOR_POWER_POLICY);
BOOLEAN ValidatePowerPolicies(PGLOBAL_POWER_POLICY, PPOWER_POLICY);
BOOLEAN WritePwrScheme(PUINT, LPTSTR, LPTSTR, PPOWER_POLICY);
}