1 //
2 // Copyright 2013 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 
7 // SystemInfo_internal.h: Functions used by the SystemInfo_* files and unittests
8 
9 #ifndef GPU_INFO_UTIL_SYSTEM_INFO_INTERNAL_H_
10 #define GPU_INFO_UTIL_SYSTEM_INFO_INTERNAL_H_
11 
12 #include "gpu_info_util/SystemInfo.h"
13 
14 namespace angle
15 {
16 
17 // Defined in SystemInfo_libpci when GPU_INFO_USE_LIBPCI is defined.
18 bool GetPCIDevicesWithLibPCI(std::vector<GPUDeviceInfo> *devices);
19 // Defined in SystemInfo_x11 when GPU_INFO_USE_X11 is defined.
20 bool GetNvidiaDriverVersionWithXNVCtrl(std::string *version);
21 
22 // Target specific helper functions that can be compiled on all targets
23 // Live in SystemInfo.cpp
24 bool ParseAMDBrahmaDriverVersion(const std::string &content, std::string *version);
25 bool ParseAMDCatalystDriverVersion(const std::string &content, std::string *version);
26 bool ParseMacMachineModel(const std::string &identifier,
27                           std::string *type,
28                           int32_t *major,
29                           int32_t *minor);
30 bool CMDeviceIDToDeviceAndVendorID(const std::string &id, uint32_t *vendorId, uint32_t *deviceId);
31 
32 #if defined(ANGLE_PLATFORM_MACOS) || defined(ANGLE_PLATFORM_MACCATALYST)
33 bool GetSystemInfo_mac(SystemInfo *info);
34 #endif
35 
36 #if defined(ANGLE_PLATFORM_IOS) || (defined(ANGLE_PLATFORM_MACCATALYST) && defined(ANGLE_CPU_ARM64))
37 bool GetSystemInfo_ios(SystemInfo *info);
38 #endif
39 
40 }  // namespace angle
41 
42 #endif  // GPU_INFO_UTIL_SYSTEM_INFO_INTERNAL_H_
43