gcc/libphobos/libdruntime/core/sys/windows/aclapi.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

139 lines
6.9 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/_aclapi.d)
*/
module core.sys.windows.aclapi;
version (Windows):
version (ANSI) {} else version = Unicode;
pragma(lib, "advapi32");
import core.sys.windows.accctrl, core.sys.windows.basetyps, core.sys.windows.w32api, core.sys.windows.winnt;
extern (Windows) {
VOID BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A, LPSTR, DWORD,
ACCESS_MODE, DWORD);
VOID BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W, LPWSTR, DWORD,
ACCESS_MODE, DWORD);
DWORD BuildSecurityDescriptorA(PTRUSTEE_A, PTRUSTEE_A , ULONG,
PEXPLICIT_ACCESS_A, ULONG, PEXPLICIT_ACCESS_A, PSECURITY_DESCRIPTOR,
PULONG, PSECURITY_DESCRIPTOR*);
DWORD BuildSecurityDescriptorW(PTRUSTEE_W, PTRUSTEE_W , ULONG,
PEXPLICIT_ACCESS_W, ULONG, PEXPLICIT_ACCESS_W, PSECURITY_DESCRIPTOR,
PULONG, PSECURITY_DESCRIPTOR*);
VOID BuildTrusteeWithNameA(PTRUSTEE_A, LPSTR);
VOID BuildTrusteeWithNameW(PTRUSTEE_W, LPWSTR);
VOID BuildTrusteeWithObjectsAndNameA(PTRUSTEE_A, POBJECTS_AND_NAME_A,
SE_OBJECT_TYPE, LPSTR, LPSTR, LPSTR);
VOID BuildTrusteeWithObjectsAndNameW(PTRUSTEE_W, POBJECTS_AND_NAME_W,
SE_OBJECT_TYPE, LPWSTR, LPWSTR, LPWSTR);
VOID BuildTrusteeWithObjectsAndSidA(PTRUSTEE_A, POBJECTS_AND_SID,
GUID*, GUID*, PSID);
VOID BuildTrusteeWithObjectsAndSidW(PTRUSTEE_W, POBJECTS_AND_SID,
GUID*, GUID*, PSID);
VOID BuildTrusteeWithSidA(PTRUSTEE_A, PSID);
VOID BuildTrusteeWithSidW(PTRUSTEE_W, PSID);
DWORD GetAuditedPermissionsFromAclA(PACL, PTRUSTEE_A, PACCESS_MASK,
PACCESS_MASK);
DWORD GetAuditedPermissionsFromAclW(PACL, PTRUSTEE_W, PACCESS_MASK,
PACCESS_MASK);
DWORD GetEffectiveRightsFromAclA(PACL, PTRUSTEE_A, PACCESS_MASK);
DWORD GetEffectiveRightsFromAclW(PACL, PTRUSTEE_W, PACCESS_MASK);
DWORD GetExplicitEntriesFromAclA(PACL, PULONG, PEXPLICIT_ACCESS_A*);
DWORD GetExplicitEntriesFromAclW(PACL, PULONG, PEXPLICIT_ACCESS_W*);
static if (_WIN32_WINNT >= 0x501) {
DWORD GetInheritanceSourceA(LPSTR, SE_OBJECT_TYPE,
SECURITY_INFORMATION, BOOL, GUID**, DWORD, PACL, void*,
PGENERIC_MAPPING, PINHERITED_FROMA);
DWORD GetInheritanceSourceW(LPWSTR, SE_OBJECT_TYPE,
SECURITY_INFORMATION, BOOL, GUID**, DWORD, PACL, void*,
PGENERIC_MAPPING, PINHERITED_FROMW);
}
DWORD GetNamedSecurityInfoA(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION,
PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*);
DWORD GetNamedSecurityInfoW(LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION,
PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*);
DWORD GetSecurityInfo(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*);
TRUSTEE_FORM GetTrusteeFormA(PTRUSTEE_A);
TRUSTEE_FORM GetTrusteeFormW(PTRUSTEE_W);
LPSTR GetTrusteeNameA(PTRUSTEE_A);
LPWSTR GetTrusteeNameW(PTRUSTEE_W);
TRUSTEE_TYPE GetTrusteeTypeA(PTRUSTEE_A);
TRUSTEE_TYPE GetTrusteeTypeW(PTRUSTEE_W);
DWORD LookupSecurityDescriptorPartsA(PTRUSTEE_A*, PTRUSTEE_A*, PULONG,
PEXPLICIT_ACCESS_A*, PULONG, PEXPLICIT_ACCESS_A*,
PSECURITY_DESCRIPTOR);
DWORD LookupSecurityDescriptorPartsW(PTRUSTEE_W*, PTRUSTEE_W*, PULONG,
PEXPLICIT_ACCESS_W*, PULONG, PEXPLICIT_ACCESS_W*,
PSECURITY_DESCRIPTOR);
DWORD SetEntriesInAclA(ULONG, PEXPLICIT_ACCESS_A, PACL, PACL*);
DWORD SetEntriesInAclW(ULONG, PEXPLICIT_ACCESS_W, PACL, PACL*);
DWORD SetNamedSecurityInfoA(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION,
PSID, PSID, PACL, PACL);
DWORD SetNamedSecurityInfoW(LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION,
PSID, PSID, PACL, PACL);
DWORD SetSecurityInfo(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID,
PSID, PACL, PACL);
VOID BuildImpersonateExplicitAccessWithNameA(PEXPLICIT_ACCESS_A, LPSTR,
PTRUSTEE_A, DWORD, ACCESS_MODE, DWORD);
VOID BuildImpersonateExplicitAccessWithNameW(PEXPLICIT_ACCESS_W, LPWSTR,
PTRUSTEE_W, DWORD, ACCESS_MODE, DWORD);
VOID BuildImpersonateTrusteeA(PTRUSTEE_A, PTRUSTEE_A);
VOID BuildImpersonateTrusteeW(PTRUSTEE_W, PTRUSTEE_W);
PTRUSTEE_A GetMultipleTrusteeA(PTRUSTEE_A);
PTRUSTEE_W GetMultipleTrusteeW(PTRUSTEE_W);
MULTIPLE_TRUSTEE_OPERATION GetMultipleTrusteeOperationA(PTRUSTEE_A);
MULTIPLE_TRUSTEE_OPERATION GetMultipleTrusteeOperationW(PTRUSTEE_W);
}
version (Unicode) {
alias BuildExplicitAccessWithNameW BuildExplicitAccessWithName;
alias BuildSecurityDescriptorW BuildSecurityDescriptor;
alias BuildTrusteeWithNameW BuildTrusteeWithName;
alias BuildTrusteeWithObjectsAndNameW BuildTrusteeWithObjectsAndName;
alias BuildTrusteeWithObjectsAndSidW BuildTrusteeWithObjectsAndSid;
alias BuildTrusteeWithSidW BuildTrusteeWithSid;
alias GetAuditedPermissionsFromAclW GetAuditedPermissionsFromAcl;
alias GetEffectiveRightsFromAclW GetEffectiveRightsFromAcl;
alias GetExplicitEntriesFromAclW GetExplicitEntriesFromAcl;
alias GetNamedSecurityInfoW GetNamedSecurityInfo;
alias GetTrusteeFormW GetTrusteeForm;
alias GetTrusteeNameW GetTrusteeName;
alias GetTrusteeTypeW GetTrusteeType;
alias LookupSecurityDescriptorPartsW LookupSecurityDescriptorParts;
alias SetEntriesInAclW SetEntriesInAcl;
alias SetNamedSecurityInfoW SetNamedSecurityInfo;
alias BuildImpersonateExplicitAccessWithNameW
BuildImpersonateExplicitAccessWithName;
alias BuildImpersonateTrusteeW BuildImpersonateTrustee;
alias GetMultipleTrusteeW GetMultipleTrustee;
alias GetMultipleTrusteeOperationW GetMultipleTrusteeOperation;
} else {
alias BuildExplicitAccessWithNameA BuildExplicitAccessWithName;
alias BuildSecurityDescriptorA BuildSecurityDescriptor;
alias BuildTrusteeWithNameA BuildTrusteeWithName;
alias BuildTrusteeWithObjectsAndNameA BuildTrusteeWithObjectsAndName;
alias BuildTrusteeWithObjectsAndSidA BuildTrusteeWithObjectsAndSid;
alias BuildTrusteeWithSidA BuildTrusteeWithSid;
alias GetAuditedPermissionsFromAclA GetAuditedPermissionsFromAcl;
alias GetEffectiveRightsFromAclA GetEffectiveRightsFromAcl;
alias GetExplicitEntriesFromAclA GetExplicitEntriesFromAcl;
alias GetNamedSecurityInfoA GetNamedSecurityInfo;
alias GetTrusteeFormA GetTrusteeForm;
alias GetTrusteeNameA GetTrusteeName;
alias GetTrusteeTypeA GetTrusteeType;
alias LookupSecurityDescriptorPartsA LookupSecurityDescriptorParts;
alias SetEntriesInAclA SetEntriesInAcl;
alias SetNamedSecurityInfoA SetNamedSecurityInfo;
alias BuildImpersonateExplicitAccessWithNameA
BuildImpersonateExplicitAccessWithName;
alias BuildImpersonateTrusteeA BuildImpersonateTrustee;
alias GetMultipleTrusteeA GetMultipleTrustee;
alias GetMultipleTrusteeOperationA GetMultipleTrusteeOperation;
}