|
Packit Service |
fa4841 |
/**
|
|
Packit Service |
fa4841 |
* WinPR: Windows Portable Runtime
|
|
Packit Service |
fa4841 |
* System Information
|
|
Packit Service |
fa4841 |
*
|
|
Packit Service |
fa4841 |
* Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
|
Packit Service |
fa4841 |
*
|
|
Packit Service |
fa4841 |
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
Packit Service |
fa4841 |
* you may not use this file except in compliance with the License.
|
|
Packit Service |
fa4841 |
* You may obtain a copy of the License at
|
|
Packit Service |
fa4841 |
*
|
|
Packit Service |
fa4841 |
* http://www.apache.org/licenses/LICENSE-2.0
|
|
Packit Service |
fa4841 |
*
|
|
Packit Service |
fa4841 |
* Unless required by applicable law or agreed to in writing, software
|
|
Packit Service |
fa4841 |
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
Packit Service |
fa4841 |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
Packit Service |
fa4841 |
* See the License for the specific language governing permissions and
|
|
Packit Service |
fa4841 |
* limitations under the License.
|
|
Packit Service |
fa4841 |
*/
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#ifndef WINPR_SYSINFO_H
|
|
Packit Service |
fa4841 |
#define WINPR_SYSINFO_H
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#include <stdio.h>
|
|
Packit Service |
fa4841 |
#include <stdlib.h>
|
|
Packit Service |
fa4841 |
#include <string.h>
|
|
Packit Service |
fa4841 |
#include <winpr/winpr.h>
|
|
Packit Service |
fa4841 |
#include <winpr/wtypes.h>
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#ifdef __cplusplus
|
|
Packit Service |
b1ea74 |
extern "C"
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
fa4841 |
#endif
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#ifndef _WIN32
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ARCHITECTURE_INTEL 0
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ARCHITECTURE_MIPS 1
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ARCHITECTURE_ALPHA 2
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ARCHITECTURE_PPC 3
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ARCHITECTURE_SHX 4
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ARCHITECTURE_ARM 5
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ARCHITECTURE_IA64 6
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ARCHITECTURE_ALPHA64 7
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ARCHITECTURE_MSIL 8
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ARCHITECTURE_AMD64 9
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 10
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ARCHITECTURE_NEUTRAL 11
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ARCHITECTURE_ARM64 12
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ARCHITECTURE_MIPS64 13
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ARCHITECTURE_UNKNOWN 0xFFFF
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_INTEL_386 386
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_INTEL_486 486
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_INTEL_PENTIUM 586
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_INTEL_IA64 2200
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_AMD_X8664 8664
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_MIPS_R4000 4000
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ALPHA_21064 21064
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_PPC_601 601
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_PPC_603 603
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_PPC_604 604
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_PPC_620 620
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_HITACHI_SH3 10003
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_HITACHI_SH3E 10004
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_HITACHI_SH4 10005
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_MOTOROLA_821 821
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_SHx_SH3 103
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_SHx_SH4 104
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_STRONGARM 2577
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ARM720 1824
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ARM820 2080
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ARM920 2336
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_ARM_7TDMI 70001
|
|
Packit Service |
b1ea74 |
#define PROCESSOR_OPTIL 0x494F
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
typedef struct _SYSTEM_INFO
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
b1ea74 |
union {
|
|
Packit Service |
b1ea74 |
DWORD dwOemId;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
struct
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
WORD wProcessorArchitecture;
|
|
Packit Service |
b1ea74 |
WORD wReserved;
|
|
Packit Service |
b1ea74 |
};
|
|
Packit Service |
bb5c11 |
};
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
DWORD dwPageSize;
|
|
Packit Service |
b1ea74 |
LPVOID lpMinimumApplicationAddress;
|
|
Packit Service |
b1ea74 |
LPVOID lpMaximumApplicationAddress;
|
|
Packit Service |
b1ea74 |
DWORD_PTR dwActiveProcessorMask;
|
|
Packit Service |
b1ea74 |
DWORD dwNumberOfProcessors;
|
|
Packit Service |
b1ea74 |
DWORD dwProcessorType;
|
|
Packit Service |
b1ea74 |
DWORD dwAllocationGranularity;
|
|
Packit Service |
b1ea74 |
WORD wProcessorLevel;
|
|
Packit Service |
b1ea74 |
WORD wProcessorRevision;
|
|
Packit Service |
b1ea74 |
} SYSTEM_INFO, *LPSYSTEM_INFO;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
WINPR_API void GetSystemInfo(LPSYSTEM_INFO lpSystemInfo);
|
|
Packit Service |
b1ea74 |
WINPR_API void GetNativeSystemInfo(LPSYSTEM_INFO lpSystemInfo);
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
typedef struct _OSVERSIONINFOA
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
DWORD dwOSVersionInfoSize;
|
|
Packit Service |
b1ea74 |
DWORD dwMajorVersion;
|
|
Packit Service |
b1ea74 |
DWORD dwMinorVersion;
|
|
Packit Service |
b1ea74 |
DWORD dwBuildNumber;
|
|
Packit Service |
b1ea74 |
DWORD dwPlatformId;
|
|
Packit Service |
b1ea74 |
CHAR szCSDVersion[128];
|
|
Packit Service |
b1ea74 |
} OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
typedef struct _OSVERSIONINFOW
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
DWORD dwOSVersionInfoSize;
|
|
Packit Service |
b1ea74 |
DWORD dwMajorVersion;
|
|
Packit Service |
b1ea74 |
DWORD dwMinorVersion;
|
|
Packit Service |
b1ea74 |
DWORD dwBuildNumber;
|
|
Packit Service |
b1ea74 |
DWORD dwPlatformId;
|
|
Packit Service |
b1ea74 |
WCHAR szCSDVersion[128];
|
|
Packit Service |
b1ea74 |
} OSVERSIONINFOW, *POSVERSIONINFOW, *LPOSVERSIONINFOW;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
typedef struct _OSVERSIONINFOEXA
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
DWORD dwOSVersionInfoSize;
|
|
Packit Service |
b1ea74 |
DWORD dwMajorVersion;
|
|
Packit Service |
b1ea74 |
DWORD dwMinorVersion;
|
|
Packit Service |
b1ea74 |
DWORD dwBuildNumber;
|
|
Packit Service |
b1ea74 |
DWORD dwPlatformId;
|
|
Packit Service |
b1ea74 |
CHAR szCSDVersion[128];
|
|
Packit Service |
b1ea74 |
WORD wServicePackMajor;
|
|
Packit Service |
b1ea74 |
WORD wServicePackMinor;
|
|
Packit Service |
b1ea74 |
WORD wSuiteMask;
|
|
Packit Service |
b1ea74 |
BYTE wProductType;
|
|
Packit Service |
b1ea74 |
BYTE wReserved;
|
|
Packit Service |
b1ea74 |
} OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
typedef struct _OSVERSIONINFOEXW
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
DWORD dwOSVersionInfoSize;
|
|
Packit Service |
b1ea74 |
DWORD dwMajorVersion;
|
|
Packit Service |
b1ea74 |
DWORD dwMinorVersion;
|
|
Packit Service |
b1ea74 |
DWORD dwBuildNumber;
|
|
Packit Service |
b1ea74 |
DWORD dwPlatformId;
|
|
Packit Service |
b1ea74 |
WCHAR szCSDVersion[128];
|
|
Packit Service |
b1ea74 |
WORD wServicePackMajor;
|
|
Packit Service |
b1ea74 |
WORD wServicePackMinor;
|
|
Packit Service |
b1ea74 |
WORD wSuiteMask;
|
|
Packit Service |
b1ea74 |
BYTE wProductType;
|
|
Packit Service |
b1ea74 |
BYTE wReserved;
|
|
Packit Service |
b1ea74 |
} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#ifdef UNICODE
|
|
Packit Service |
b1ea74 |
#define OSVERSIONINFO OSVERSIONINFOW
|
|
Packit Service |
b1ea74 |
#define OSVERSIONINFOEX OSVERSIONINFOEXW
|
|
Packit Service |
b1ea74 |
#define POSVERSIONINFO POSVERSIONINFOW
|
|
Packit Service |
b1ea74 |
#define POSVERSIONINFOEX POSVERSIONINFOEXW
|
|
Packit Service |
b1ea74 |
#define LPOSVERSIONINFO LPOSVERSIONINFOW
|
|
Packit Service |
b1ea74 |
#define LPOSVERSIONINFOEX LPOSVERSIONINFOEXW
|
|
Packit Service |
fa4841 |
#else
|
|
Packit Service |
b1ea74 |
#define OSVERSIONINFO OSVERSIONINFOA
|
|
Packit Service |
b1ea74 |
#define OSVERSIONINFOEX OSVERSIONINFOEXA
|
|
Packit Service |
b1ea74 |
#define POSVERSIONINFO POSVERSIONINFOA
|
|
Packit Service |
b1ea74 |
#define POSVERSIONINFOEX POSVERSIONINFOEXA
|
|
Packit Service |
b1ea74 |
#define LPOSVERSIONINFO LPOSVERSIONINFOA
|
|
Packit Service |
b1ea74 |
#define LPOSVERSIONINFOEX LPOSVERSIONINFOEXA
|
|
Packit Service |
fa4841 |
#endif
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
b1ea74 |
#define VER_PLATFORM_WIN32_NT 0x00000002
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
#define VER_SUITE_BACKOFFICE 0x00000004
|
|
Packit Service |
b1ea74 |
#define VER_SUITE_BLADE 0x00000400
|
|
Packit Service |
b1ea74 |
#define VER_SUITE_COMPUTE_SERVER 0x00004000
|
|
Packit Service |
b1ea74 |
#define VER_SUITE_DATACENTER 0x00000080
|
|
Packit Service |
b1ea74 |
#define VER_SUITE_ENTERPRISE 0x00000002
|
|
Packit Service |
b1ea74 |
#define VER_SUITE_EMBEDDEDNT 0x00000040
|
|
Packit Service |
b1ea74 |
#define VER_SUITE_PERSONAL 0x00000200
|
|
Packit Service |
b1ea74 |
#define VER_SUITE_SINGLEUSERTS 0x00000100
|
|
Packit Service |
b1ea74 |
#define VER_SUITE_SMALLBUSINESS 0x00000001
|
|
Packit Service |
b1ea74 |
#define VER_SUITE_SMALLBUSINESS_RESTRICTED 0x00000020
|
|
Packit Service |
b1ea74 |
#define VER_SUITE_STORAGE_SERVER 0x00002000
|
|
Packit Service |
b1ea74 |
#define VER_SUITE_TERMINAL 0x00000010
|
|
Packit Service |
b1ea74 |
#define VER_SUITE_WH_SERVER 0x00008000
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
#define VER_NT_DOMAIN_CONTROLLER 0x0000002
|
|
Packit Service |
b1ea74 |
#define VER_NT_SERVER 0x0000003
|
|
Packit Service |
b1ea74 |
#define VER_NT_WORKSTATION 0x0000001
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
WINPR_API void GetSystemTime(LPSYSTEMTIME lpSystemTime);
|
|
Packit Service |
b1ea74 |
WINPR_API BOOL SetSystemTime(CONST SYSTEMTIME* lpSystemTime);
|
|
Packit Service |
b1ea74 |
WINPR_API VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);
|
|
Packit Service |
b1ea74 |
WINPR_API BOOL SetLocalTime(CONST SYSTEMTIME* lpSystemTime);
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
WINPR_API VOID GetSystemTimeAsFileTime(LPFILETIME lpSystemTimeAsFileTime);
|
|
Packit Service |
b1ea74 |
WINPR_API BOOL GetSystemTimeAdjustment(PDWORD lpTimeAdjustment, PDWORD lpTimeIncrement,
|
|
Packit Service |
b1ea74 |
PBOOL lpTimeAdjustmentDisabled);
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
WINPR_API BOOL IsProcessorFeaturePresent(DWORD ProcessorFeature);
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
#define PF_FLOATING_POINT_PRECISION_ERRATA 0
|
|
Packit Service |
b1ea74 |
#define PF_FLOATING_POINT_EMULATED 1
|
|
Packit Service |
b1ea74 |
#define PF_COMPARE_EXCHANGE_DOUBLE 2
|
|
Packit Service |
b1ea74 |
#define PF_MMX_INSTRUCTIONS_AVAILABLE 3
|
|
Packit Service |
b1ea74 |
#define PF_PPC_MOVEMEM_64BIT_OK 4
|
|
Packit Service |
b1ea74 |
#define PF_XMMI_INSTRUCTIONS_AVAILABLE 6 /* SSE */
|
|
Packit Service |
b1ea74 |
#define PF_3DNOW_INSTRUCTIONS_AVAILABLE 7
|
|
Packit Service |
b1ea74 |
#define PF_RDTSC_INSTRUCTION_AVAILABLE 8
|
|
Packit Service |
b1ea74 |
#define PF_PAE_ENABLED 9
|
|
Packit Service |
b1ea74 |
#define PF_XMMI64_INSTRUCTIONS_AVAILABLE 10 /* SSE2 */
|
|
Packit Service |
b1ea74 |
#define PF_SSE_DAZ_MODE_AVAILABLE 11
|
|
Packit Service |
b1ea74 |
#define PF_NX_ENABLED 12
|
|
Packit Service |
b1ea74 |
#define PF_SSE3_INSTRUCTIONS_AVAILABLE 13
|
|
Packit Service |
b1ea74 |
#define PF_COMPARE_EXCHANGE128 14
|
|
Packit Service |
b1ea74 |
#define PF_COMPARE64_EXCHANGE128 15
|
|
Packit Service |
b1ea74 |
#define PF_CHANNELS_ENABLED 16
|
|
Packit Service |
b1ea74 |
#define PF_XSAVE_ENABLED 17
|
|
Packit Service |
b1ea74 |
#define PF_ARM_VFP_32_REGISTERS_AVAILABLE 18
|
|
Packit Service |
b1ea74 |
#define PF_ARM_NEON_INSTRUCTIONS_AVAILABLE 19
|
|
Packit Service |
b1ea74 |
#define PF_SECOND_LEVEL_ADDRESS_TRANSLATION 20
|
|
Packit Service |
b1ea74 |
#define PF_VIRT_FIRMWARE_ENABLED 21
|
|
Packit Service |
b1ea74 |
#define PF_RDWRFSGSBASE_AVAILABLE 22
|
|
Packit Service |
b1ea74 |
#define PF_FASTFAIL_AVAILABLE 23
|
|
Packit Service |
b1ea74 |
#define PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE 24
|
|
Packit Service |
b1ea74 |
#define PF_ARM_64BIT_LOADSTORE_ATOMIC 25
|
|
Packit Service |
b1ea74 |
#define PF_ARM_EXTERNAL_CACHE_AVAILABLE 26
|
|
Packit Service |
b1ea74 |
#define PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE 27
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
#define PF_ARM_V4 0x80000001
|
|
Packit Service |
b1ea74 |
#define PF_ARM_V5 0x80000002
|
|
Packit Service |
b1ea74 |
#define PF_ARM_V6 0x80000003
|
|
Packit Service |
b1ea74 |
#define PF_ARM_V7 0x80000004
|
|
Packit Service |
b1ea74 |
#define PF_ARM_THUMB 0x80000005
|
|
Packit Service |
b1ea74 |
#define PF_ARM_JAZELLE 0x80000006
|
|
Packit Service |
b1ea74 |
#define PF_ARM_DSP 0x80000007
|
|
Packit Service |
b1ea74 |
#define PF_ARM_MOVE_CP 0x80000008
|
|
Packit Service |
b1ea74 |
#define PF_ARM_VFP10 0x80000009
|
|
Packit Service |
b1ea74 |
#define PF_ARM_MPU 0x8000000A
|
|
Packit Service |
b1ea74 |
#define PF_ARM_WRITE_BUFFER 0x8000000B
|
|
Packit Service |
b1ea74 |
#define PF_ARM_MBX 0x8000000C
|
|
Packit Service |
b1ea74 |
#define PF_ARM_L2CACHE 0x8000000D
|
|
Packit Service |
b1ea74 |
#define PF_ARM_PHYSICALLY_TAGGED_CACHE 0x8000000E
|
|
Packit Service |
b1ea74 |
#define PF_ARM_VFP_SINGLE_PRECISION 0x8000000F
|
|
Packit Service |
b1ea74 |
#define PF_ARM_VFP_DOUBLE_PRECISION 0x80000010
|
|
Packit Service |
b1ea74 |
#define PF_ARM_ITCM 0x80000011
|
|
Packit Service |
b1ea74 |
#define PF_ARM_DTCM 0x80000012
|
|
Packit Service |
b1ea74 |
#define PF_ARM_UNIFIED_CACHE 0x80000013
|
|
Packit Service |
b1ea74 |
#define PF_ARM_WRITE_BACK_CACHE 0x80000014
|
|
Packit Service |
fa4841 |
#define PF_ARM_CACHE_CAN_BE_LOCKED_DOWN 0x80000015
|
|
Packit Service |
b1ea74 |
#define PF_ARM_L2CACHE_MEMORY_MAPPED 0x80000016
|
|
Packit Service |
b1ea74 |
#define PF_ARM_L2CACHE_COPROC 0x80000017
|
|
Packit Service |
b1ea74 |
#define PF_ARM_THUMB2 0x80000018
|
|
Packit Service |
b1ea74 |
#define PF_ARM_T2EE 0x80000019
|
|
Packit Service |
b1ea74 |
#define PF_ARM_VFP3 0x8000001A
|
|
Packit Service |
b1ea74 |
#define PF_ARM_NEON 0x8000001B
|
|
Packit Service |
b1ea74 |
#define PF_ARM_UNALIGNED_ACCESS 0x8000001C
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
#define PF_ARM_INTEL_XSCALE 0x80010001
|
|
Packit Service |
b1ea74 |
#define PF_ARM_INTEL_PMU 0x80010002
|
|
Packit Service |
b1ea74 |
#define PF_ARM_INTEL_WMMX 0x80010003
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#endif
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#if !defined(_WIN32) || defined(_UWP)
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
b1ea74 |
WINPR_API BOOL GetVersionExA(LPOSVERSIONINFOA lpVersionInformation);
|
|
Packit Service |
b1ea74 |
WINPR_API BOOL GetVersionExW(LPOSVERSIONINFOW lpVersionInformation);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#ifdef UNICODE
|
|
Packit Service |
b1ea74 |
#define GetVersionEx GetVersionExW
|
|
Packit Service |
fa4841 |
#else
|
|
Packit Service |
b1ea74 |
#define GetVersionEx GetVersionExA
|
|
Packit Service |
fa4841 |
#endif
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#endif
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#if !defined(_WIN32) || defined(_UWP)
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
b1ea74 |
WINPR_API DWORD GetTickCount(void);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
b1ea74 |
typedef enum _COMPUTER_NAME_FORMAT
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
ComputerNameNetBIOS,
|
|
Packit Service |
b1ea74 |
ComputerNameDnsHostname,
|
|
Packit Service |
b1ea74 |
ComputerNameDnsDomain,
|
|
Packit Service |
b1ea74 |
ComputerNameDnsFullyQualified,
|
|
Packit Service |
b1ea74 |
ComputerNamePhysicalNetBIOS,
|
|
Packit Service |
b1ea74 |
ComputerNamePhysicalDnsHostname,
|
|
Packit Service |
b1ea74 |
ComputerNamePhysicalDnsDomain,
|
|
Packit Service |
b1ea74 |
ComputerNamePhysicalDnsFullyQualified,
|
|
Packit Service |
b1ea74 |
ComputerNameMax
|
|
Packit Service |
b1ea74 |
} COMPUTER_NAME_FORMAT;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#define MAX_COMPUTERNAME_LENGTH 31
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
b1ea74 |
WINPR_API BOOL GetComputerNameA(LPSTR lpBuffer, LPDWORD lpnSize);
|
|
Packit Service |
b1ea74 |
WINPR_API BOOL GetComputerNameW(LPWSTR lpBuffer, LPDWORD lpnSize);
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
WINPR_API BOOL GetComputerNameExA(COMPUTER_NAME_FORMAT NameType, LPSTR lpBuffer,
|
|
Packit Service |
b1ea74 |
LPDWORD lpnSize);
|
|
Packit Service |
b1ea74 |
WINPR_API BOOL GetComputerNameExW(COMPUTER_NAME_FORMAT NameType, LPWSTR lpBuffer,
|
|
Packit Service |
b1ea74 |
LPDWORD lpnSize);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#ifdef UNICODE
|
|
Packit Service |
b1ea74 |
#define GetComputerName GetComputerNameW
|
|
Packit Service |
b1ea74 |
#define GetComputerNameEx GetComputerNameExW
|
|
Packit Service |
fa4841 |
#else
|
|
Packit Service |
b1ea74 |
#define GetComputerName GetComputerNameA
|
|
Packit Service |
b1ea74 |
#define GetComputerNameEx GetComputerNameExA
|
|
Packit Service |
fa4841 |
#endif
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#endif
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#if (!defined(_WIN32)) || (defined(_WIN32) && (_WIN32_WINNT < 0x0600))
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
b1ea74 |
WINPR_API ULONGLONG winpr_GetTickCount64(void);
|
|
Packit Service |
fa4841 |
#define GetTickCount64 winpr_GetTickCount64
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#endif
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
b1ea74 |
WINPR_API DWORD GetTickCountPrecise(void);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
b1ea74 |
WINPR_API BOOL IsProcessorFeaturePresentEx(DWORD ProcessorFeature);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
/* extended flags */
|
|
Packit Service |
b1ea74 |
#define PF_EX_LZCNT 1
|
|
Packit Service |
b1ea74 |
#define PF_EX_3DNOW_PREFETCH 2
|
|
Packit Service |
b1ea74 |
#define PF_EX_SSSE3 3
|
|
Packit Service |
b1ea74 |
#define PF_EX_SSE41 4
|
|
Packit Service |
b1ea74 |
#define PF_EX_SSE42 5
|
|
Packit Service |
b1ea74 |
#define PF_EX_AVX 6
|
|
Packit Service |
b1ea74 |
#define PF_EX_FMA 7
|
|
Packit Service |
b1ea74 |
#define PF_EX_AVX_AES 8
|
|
Packit Service |
b1ea74 |
#define PF_EX_AVX2 9
|
|
Packit Service |
b1ea74 |
#define PF_EX_ARM_VFP1 10
|
|
Packit Service |
b1ea74 |
#define PF_EX_ARM_VFP3D16 11
|
|
Packit Service |
b1ea74 |
#define PF_EX_ARM_VFP4 12
|
|
Packit Service |
b1ea74 |
#define PF_EX_ARM_IDIVA 13
|
|
Packit Service |
b1ea74 |
#define PF_EX_ARM_IDIVT 14
|
|
Packit Service |
b1ea74 |
#define PF_EX_AVX_PCLMULQDQ 15
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
/*
|
|
Packit Service |
fa4841 |
* some "aliases" for the standard defines
|
|
Packit Service |
fa4841 |
* to be more clear
|
|
Packit Service |
fa4841 |
*/
|
|
Packit Service |
b1ea74 |
#define PF_SSE_INSTRUCTIONS_AVAILABLE PF_XMMI_INSTRUCTIONS_AVAILABLE
|
|
Packit Service |
b1ea74 |
#define PF_SSE2_INSTRUCTIONS_AVAILABLE PF_XMMI64_INSTRUCTIONS_AVAILABLE
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#ifdef __cplusplus
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
#endif
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#endif /* WINPR_SYSINFO_H */
|