mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 21:31:08 -06:00
libuv: misc: add function to get CPU affinity mask size
Implement it on Linux, FreeBSD, and Windows for now, and return UV_ENOTSUP on other platforms. Backported from upstream libuv PR 1527, scheduled for inclusion in libuv 2.0.
This commit is contained in:
@@ -1094,6 +1094,7 @@ UV_EXTERN uv_pid_t uv_os_getppid(void);
|
|||||||
|
|
||||||
UV_EXTERN int uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count);
|
UV_EXTERN int uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count);
|
||||||
UV_EXTERN void uv_free_cpu_info(uv_cpu_info_t* cpu_infos, int count);
|
UV_EXTERN void uv_free_cpu_info(uv_cpu_info_t* cpu_infos, int count);
|
||||||
|
UV_EXTERN int uv_cpumask_size(void);
|
||||||
|
|
||||||
UV_EXTERN int uv_interface_addresses(uv_interface_address_t** addresses,
|
UV_EXTERN int uv_interface_addresses(uv_interface_address_t** addresses,
|
||||||
int* count);
|
int* count);
|
||||||
|
|||||||
@@ -40,6 +40,7 @@
|
|||||||
#include <sys/uio.h> /* writev */
|
#include <sys/uio.h> /* writev */
|
||||||
#include <sys/resource.h> /* getrusage */
|
#include <sys/resource.h> /* getrusage */
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
|
#include <sched.h>
|
||||||
|
|
||||||
#ifdef __sun
|
#ifdef __sun
|
||||||
# include <netdb.h> /* MAXHOSTNAMELEN on Solaris */
|
# include <netdb.h> /* MAXHOSTNAMELEN on Solaris */
|
||||||
@@ -63,6 +64,8 @@
|
|||||||
# include <sys/sysctl.h>
|
# include <sys/sysctl.h>
|
||||||
# include <sys/filio.h>
|
# include <sys/filio.h>
|
||||||
# include <sys/wait.h>
|
# include <sys/wait.h>
|
||||||
|
# include <sys/param.h>
|
||||||
|
# include <sys/cpuset.h>
|
||||||
# define UV__O_CLOEXEC O_CLOEXEC
|
# define UV__O_CLOEXEC O_CLOEXEC
|
||||||
# if defined(__FreeBSD__) && __FreeBSD__ >= 10
|
# if defined(__FreeBSD__) && __FreeBSD__ >= 10
|
||||||
# define uv__accept4 accept4
|
# define uv__accept4 accept4
|
||||||
@@ -1340,6 +1343,15 @@ int uv_os_gethostname(char* buffer, size_t* size) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int uv_cpumask_size(void) {
|
||||||
|
#if defined(__linux__) || defined(__FreeBSD__)
|
||||||
|
return CPU_SETSIZE;
|
||||||
|
#else
|
||||||
|
return UV_ENOTSUP;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
uv_os_fd_t uv_get_osfhandle(int fd) {
|
uv_os_fd_t uv_get_osfhandle(int fd) {
|
||||||
return fd;
|
return fd;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -603,3 +603,7 @@ int uv__socket_sockopt(uv_handle_t* handle, int optname, int* value) {
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int uv_cpumask_size(void) {
|
||||||
|
return (int)(sizeof(DWORD_PTR) * 8);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user