summaryrefslogtreecommitdiff
path: root/deps/uv/src/unix/freebsd.c
diff options
context:
space:
mode:
authorBen Noordhuis <info@bnoordhuis.nl>2012-02-28 18:11:48 +0100
committerBen Noordhuis <info@bnoordhuis.nl>2012-02-28 18:11:48 +0100
commitaf7960b29525ec28ca58617e9b06c8b0df3085cd (patch)
tree984c04e7c286305f9839521ea4c4899603d8be2e /deps/uv/src/unix/freebsd.c
parent18acdff8d3e783cd067534994d10104780f2fd07 (diff)
downloadandroid-node-v8-af7960b29525ec28ca58617e9b06c8b0df3085cd.tar.gz
android-node-v8-af7960b29525ec28ca58617e9b06c8b0df3085cd.tar.bz2
android-node-v8-af7960b29525ec28ca58617e9b06c8b0df3085cd.zip
uv: upgrade to 2f886c8
Diffstat (limited to 'deps/uv/src/unix/freebsd.c')
-rw-r--r--deps/uv/src/unix/freebsd.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/deps/uv/src/unix/freebsd.c b/deps/uv/src/unix/freebsd.c
index 9b83d3421f..1e2c1d4360 100644
--- a/deps/uv/src/unix/freebsd.c
+++ b/deps/uv/src/unix/freebsd.c
@@ -40,6 +40,16 @@
#undef NANOSEC
#define NANOSEC 1000000000
+#ifndef CPUSTATES
+# define CPUSTATES 5U
+#endif
+#ifndef CP_USER
+# define CP_USER 0
+# define CP_NICE 1
+# define CP_SYS 2
+# define CP_IDLE 3
+# define CP_INTR 4
+#endif
static char *process_title;
@@ -164,7 +174,11 @@ uv_err_t uv_resident_set_memory(size_t* rss) {
kinfo = kvm_getprocs(kd, KERN_PROC_PID, pid, &nprocs);
if (kinfo == NULL) goto error;
+#ifdef __DragonFly__
+ *rss = kinfo->kp_vm_rssize * page_size;
+#else
*rss = kinfo->ki_rssize * page_size;
+#endif
kvm_close(kd);
@@ -227,10 +241,17 @@ uv_err_t uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count) {
}
/* kern.cp_times on FreeBSD i386 gives an array up to maxcpus instead of ncpu */
size = sizeof(maxcpus);
+#ifdef __DragonFly__
+ if (sysctlbyname("hw.ncpu", &maxcpus, &size, NULL, 0) < 0) {
+ free(*cpu_infos);
+ return uv__new_sys_error(errno);
+ }
+#else
if (sysctlbyname("kern.smp.maxcpus", &maxcpus, &size, NULL, 0) < 0) {
free(*cpu_infos);
return uv__new_sys_error(errno);
}
+#endif
size = maxcpus * CPUSTATES * sizeof(long);