
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.
172 lines
4.4 KiB
D
172 lines
4.4 KiB
D
/**
|
|
* Windows API header module
|
|
*
|
|
* Translated from MinGW Windows headers
|
|
*
|
|
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
|
|
* Source: $(DRUNTIMESRC core/sys/windows/_tlhelp32.d)
|
|
*/
|
|
module core.sys.windows.tlhelp32;
|
|
version (Windows):
|
|
pragma(lib, "kernel32");
|
|
|
|
version (ANSI) {} else version = Unicode;
|
|
|
|
import core.sys.windows.windef;
|
|
|
|
enum : uint {
|
|
HF32_DEFAULT = 1,
|
|
HF32_SHARED
|
|
}
|
|
|
|
enum : uint {
|
|
LF32_FIXED = 0x1,
|
|
LF32_FREE = 0x2,
|
|
LF32_MOVEABLE = 0x4
|
|
}
|
|
|
|
enum MAX_MODULE_NAME32 = 255;
|
|
|
|
enum : uint {
|
|
TH32CS_SNAPHEAPLIST = 0x1,
|
|
TH32CS_SNAPPROCESS = 0x2,
|
|
TH32CS_SNAPTHREAD = 0x4,
|
|
TH32CS_SNAPMODULE = 0x8,
|
|
TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST|TH32CS_SNAPPROCESS|TH32CS_SNAPTHREAD|TH32CS_SNAPMODULE),
|
|
TH32CS_INHERIT = 0x80000000
|
|
}
|
|
|
|
struct HEAPLIST32 {
|
|
SIZE_T dwSize;
|
|
DWORD th32ProcessID;
|
|
ULONG_PTR th32HeapID;
|
|
DWORD dwFlags;
|
|
}
|
|
alias HEAPLIST32* PHEAPLIST32;
|
|
alias HEAPLIST32* LPHEAPLIST32;
|
|
|
|
struct HEAPENTRY32 {
|
|
SIZE_T dwSize;
|
|
HANDLE hHandle;
|
|
ULONG_PTR dwAddress;
|
|
SIZE_T dwBlockSize;
|
|
DWORD dwFlags;
|
|
DWORD dwLockCount;
|
|
DWORD dwResvd;
|
|
DWORD th32ProcessID;
|
|
ULONG_PTR th32HeapID;
|
|
}
|
|
alias HEAPENTRY32* PHEAPENTRY32;
|
|
alias HEAPENTRY32* LPHEAPENTRY32;
|
|
|
|
struct PROCESSENTRY32W {
|
|
DWORD dwSize;
|
|
DWORD cntUsage;
|
|
DWORD th32ProcessID;
|
|
ULONG_PTR th32DefaultHeapID;
|
|
DWORD th32ModuleID;
|
|
DWORD cntThreads;
|
|
DWORD th32ParentProcessID;
|
|
LONG pcPriClassBase;
|
|
DWORD dwFlags;
|
|
WCHAR[MAX_PATH] szExeFile = 0;
|
|
}
|
|
alias PROCESSENTRY32W* PPROCESSENTRY32W;
|
|
alias PROCESSENTRY32W* LPPROCESSENTRY32W;
|
|
|
|
struct THREADENTRY32 {
|
|
DWORD dwSize;
|
|
DWORD cntUsage;
|
|
DWORD th32ThreadID;
|
|
DWORD th32OwnerProcessID;
|
|
LONG tpBasePri;
|
|
LONG tpDeltaPri;
|
|
DWORD dwFlags;
|
|
}
|
|
alias THREADENTRY32* PTHREADENTRY32;
|
|
alias THREADENTRY32* LPTHREADENTRY32;
|
|
|
|
struct MODULEENTRY32W {
|
|
DWORD dwSize;
|
|
DWORD th32ModuleID;
|
|
DWORD th32ProcessID;
|
|
DWORD GlblcntUsage;
|
|
DWORD ProccntUsage;
|
|
BYTE *modBaseAddr;
|
|
DWORD modBaseSize;
|
|
HMODULE hModule;
|
|
WCHAR[MAX_MODULE_NAME32 + 1] szModule = 0;
|
|
WCHAR[MAX_PATH] szExePath = 0;
|
|
}
|
|
alias MODULEENTRY32W* PMODULEENTRY32W;
|
|
alias MODULEENTRY32W* LPMODULEENTRY32W;
|
|
|
|
version (Unicode) {
|
|
alias PROCESSENTRY32W PROCESSENTRY32;
|
|
alias PPROCESSENTRY32W PPROCESSENTRY32;
|
|
alias LPPROCESSENTRY32W LPPROCESSENTRY32;
|
|
|
|
alias MODULEENTRY32W MODULEENTRY32;
|
|
alias PMODULEENTRY32W PMODULEENTRY32;
|
|
alias LPMODULEENTRY32W LPMODULEENTRY32;
|
|
} else {
|
|
struct PROCESSENTRY32 {
|
|
DWORD dwSize;
|
|
DWORD cntUsage;
|
|
DWORD th32ProcessID;
|
|
ULONG_PTR th32DefaultHeapID;
|
|
DWORD th32ModuleID;
|
|
DWORD cntThreads;
|
|
DWORD th32ParentProcessID;
|
|
LONG pcPriClassBase;
|
|
DWORD dwFlags;
|
|
CHAR[MAX_PATH] szExeFile = 0;
|
|
}
|
|
alias PROCESSENTRY32* PPROCESSENTRY32;
|
|
alias PROCESSENTRY32* LPPROCESSENTRY32;
|
|
|
|
struct MODULEENTRY32 {
|
|
DWORD dwSize;
|
|
DWORD th32ModuleID;
|
|
DWORD th32ProcessID;
|
|
DWORD GlblcntUsage;
|
|
DWORD ProccntUsage;
|
|
BYTE *modBaseAddr;
|
|
DWORD modBaseSize;
|
|
HMODULE hModule;
|
|
char[MAX_MODULE_NAME32 + 1] szModule = 0;
|
|
char[MAX_PATH] szExePath = 0;
|
|
}
|
|
alias MODULEENTRY32* PMODULEENTRY32;
|
|
alias MODULEENTRY32* LPMODULEENTRY32;
|
|
}
|
|
|
|
|
|
extern(Windows) nothrow @nogc {
|
|
BOOL Heap32First(LPHEAPENTRY32,DWORD,ULONG_PTR);
|
|
BOOL Heap32ListFirst(HANDLE,LPHEAPLIST32);
|
|
BOOL Heap32ListNext(HANDLE,LPHEAPLIST32);
|
|
BOOL Heap32Next(LPHEAPENTRY32);
|
|
BOOL Thread32First(HANDLE,LPTHREADENTRY32);
|
|
BOOL Thread32Next(HANDLE,LPTHREADENTRY32);
|
|
BOOL Toolhelp32ReadProcessMemory(DWORD,LPCVOID,LPVOID,SIZE_T,SIZE_T*);
|
|
HANDLE CreateToolhelp32Snapshot(DWORD,DWORD);
|
|
BOOL Module32FirstW(HANDLE,LPMODULEENTRY32W);
|
|
BOOL Module32NextW(HANDLE,LPMODULEENTRY32W);
|
|
BOOL Process32FirstW(HANDLE,LPPROCESSENTRY32W);
|
|
BOOL Process32NextW(HANDLE,LPPROCESSENTRY32W);
|
|
}
|
|
|
|
version (Unicode) {
|
|
alias Module32FirstW Module32First;
|
|
alias Module32NextW Module32Next;
|
|
alias Process32FirstW Process32First;
|
|
alias Process32NextW Process32Next;
|
|
} else {
|
|
extern(Windows) nothrow @nogc {
|
|
BOOL Module32First(HANDLE,LPMODULEENTRY32);
|
|
BOOL Module32Next(HANDLE,LPMODULEENTRY32);
|
|
BOOL Process32First(HANDLE,LPPROCESSENTRY32);
|
|
BOOL Process32Next(HANDLE,LPPROCESSENTRY32);
|
|
}
|
|
}
|