23# if defined(HAVE_EXECINFO_H)
31#if defined(__x86_64__) || defined(_M_X64)
34#elif defined(__GNUC__) && defined(i386)
43 return (d & 0x04000000) != 0;
44#elif (defined(_MSC_VER) && defined(_M_IX86))
55 return (d & 0x04000000) != 0;
67# if defined(HAVE_EXECINFO_H)
83 nptrs = backtrace(buffer,
SIZE);
84 strings = backtrace_symbols(buffer, nptrs);
85 for (i = 0; i < nptrs; i++) {
86 fputs(strings[i], fp);
104#if !defined(_WIN32) || defined(FREE_WINDOWS)
111# if defined(__x86_64__)
112 asm(
"cpuid" :
"=a"(data[0]),
"=b"(data[1]),
"=c"(data[2]),
"=d"(data[3]) :
"a"(selector));
113# elif defined(__i386__)
114 asm(
"pushl %%ebx \n\t"
116 "movl %%ebx, %1 \n\t"
118 :
"=a"(data[0]),
"=r"(data[1]),
"=c"(data[2]),
"=d"(data[3])
123 data[0] = data[1] = data[2] = data[3] = 0;
130#if !defined(_M_ARM64)
134 if (result[0] >= (
int)0x80000004) {
135 __cpuid((
int *)(buf + 0), 0x80000002);
136 __cpuid((
int *)(buf + 16), 0x80000003);
137 __cpuid((
int *)(buf + 32), 0x80000004);
144 DWORD processorNameStringLength = 255;
145 char processorNameString[255];
146 if (RegGetValueA(HKEY_LOCAL_MACHINE,
147 "HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0",
148 "ProcessorNameString",
151 &processorNameString,
152 &processorNameStringLength) == ERROR_SUCCESS)
162#if !defined(_M_ARM64)
169 return (result[2] & ((
int)1 << 20)) != 0;
178 if (gethostname(buffer, bufsize - 1) < 0) {
182 buffer[bufsize - 1] =
'\0';
184 DWORD bufsize_inout = bufsize;
185 if (!GetComputerName(buffer, &bufsize_inout)) {
196 const size_t limit_bytes_half = (((size_t)1) << (
sizeof(
size_t[8]) - 1));
198 return (limit_bytes_half >> 20) * 2;
205 return (
int)
min_zz(limit_megabytes, (
size_t)INT_MAX);
void BLI_kdtree_nd_ free(KDTree *tree)
MINLINE size_t min_zz(size_t a, size_t b)
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_NONNULL(1
Compatibility-like things for windows.
int BLI_cpu_support_sse42(void)
void BLI_hostname_get(char *buffer, size_t bufsize)
char * BLI_cpu_brand_string(void)
int BLI_cpu_support_sse2(void)
void BLI_system_backtrace(FILE *fp)
static void __cpuid(int data[4], int selector)
size_t BLI_system_memory_max_in_megabytes(void)
int BLI_system_memory_max_in_megabytes_int(void)