mirror of https://github.com/lukechilds/node.git
11 changed files with 680 additions and 114 deletions
@ -0,0 +1,137 @@ |
|||
/* config.h. Generated from config.h.in by configure. */ |
|||
/* config.h.in. Generated from configure.ac by autoheader. */ |
|||
|
|||
/* Define to 1 if you have the <dlfcn.h> header file. */ |
|||
#define HAVE_DLFCN_H 1 |
|||
|
|||
/* fallocate(2) is available */ |
|||
/* #undef HAVE_FALLOCATE */ |
|||
|
|||
/* fdatasync(2) is available */ |
|||
/* #undef HAVE_FDATASYNC */ |
|||
|
|||
/* futimes(2) is available */ |
|||
#define HAVE_FUTIMES 1 |
|||
|
|||
/* Define to 1 if you have the <inttypes.h> header file. */ |
|||
#define HAVE_INTTYPES_H 1 |
|||
|
|||
/* Define to 1 if you have the <memory.h> header file. */ |
|||
#define HAVE_MEMORY_H 1 |
|||
|
|||
/* posix_fadvise(2) is available */ |
|||
/* #undef HAVE_POSIX_FADVISE */ |
|||
|
|||
/* posix_madvise(2) is available */ |
|||
#define HAVE_POSIX_MADVISE 1 |
|||
|
|||
/* prctl(PR_SET_NAME) is available */ |
|||
/* #undef HAVE_PRCTL_SET_NAME */ |
|||
|
|||
/* pread(2) and pwrite(2) are available */ |
|||
#define HAVE_PREADWRITE 1 |
|||
|
|||
/* readahead(2) is available (linux) */ |
|||
/* #undef HAVE_READAHEAD */ |
|||
|
|||
/* sendfile(2) is available and supported */ |
|||
/* #undef HAVE_SENDFILE */ |
|||
|
|||
/* Define to 1 if you have the <stdint.h> header file. */ |
|||
#define HAVE_STDINT_H 1 |
|||
|
|||
/* Define to 1 if you have the <stdlib.h> header file. */ |
|||
#define HAVE_STDLIB_H 1 |
|||
|
|||
/* Define to 1 if you have the <strings.h> header file. */ |
|||
#define HAVE_STRINGS_H 1 |
|||
|
|||
/* Define to 1 if you have the <string.h> header file. */ |
|||
#define HAVE_STRING_H 1 |
|||
|
|||
/* sync_file_range(2) is available */ |
|||
/* #undef HAVE_SYNC_FILE_RANGE */ |
|||
|
|||
/* Define to 1 if you have the <sys/prctl.h> header file. */ |
|||
/* #undef HAVE_SYS_PRCTL_H */ |
|||
|
|||
/* Define to 1 if you have the <sys/stat.h> header file. */ |
|||
#define HAVE_SYS_STAT_H 1 |
|||
|
|||
/* syscall(__NR_syncfs) is available */ |
|||
/* #undef HAVE_SYS_SYNCFS */ |
|||
|
|||
/* Define to 1 if you have the <sys/syscall.h> header file. */ |
|||
#define HAVE_SYS_SYSCALL_H 1 |
|||
|
|||
/* Define to 1 if you have the <sys/types.h> header file. */ |
|||
#define HAVE_SYS_TYPES_H 1 |
|||
|
|||
/* Define to 1 if you have the <unistd.h> header file. */ |
|||
#define HAVE_UNISTD_H 1 |
|||
|
|||
/* utimes(2) is available */ |
|||
#define HAVE_UTIMES 1 |
|||
|
|||
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
|||
*/ |
|||
#define LT_OBJDIR ".libs/" |
|||
|
|||
/* Name of package */ |
|||
#define PACKAGE "libeio" |
|||
|
|||
/* Define to the address where bug reports for this package should be sent. */ |
|||
#define PACKAGE_BUGREPORT "" |
|||
|
|||
/* Define to the full name of this package. */ |
|||
#define PACKAGE_NAME "" |
|||
|
|||
/* Define to the full name and version of this package. */ |
|||
#define PACKAGE_STRING "" |
|||
|
|||
/* Define to the one symbol short name of this package. */ |
|||
#define PACKAGE_TARNAME "" |
|||
|
|||
/* Define to the home page for this package. */ |
|||
#define PACKAGE_URL "" |
|||
|
|||
/* Define to the version of this package. */ |
|||
#define PACKAGE_VERSION "" |
|||
|
|||
/* Define to 1 if you have the ANSI C header files. */ |
|||
#define STDC_HEADERS 1 |
|||
|
|||
/* Enable extensions on AIX 3, Interix. */ |
|||
#ifndef _ALL_SOURCE |
|||
# define _ALL_SOURCE 1 |
|||
#endif |
|||
/* Enable GNU extensions on systems that have them. */ |
|||
#ifndef _GNU_SOURCE |
|||
# define _GNU_SOURCE 1 |
|||
#endif |
|||
/* Enable threading extensions on Solaris. */ |
|||
#ifndef _POSIX_PTHREAD_SEMANTICS |
|||
# define _POSIX_PTHREAD_SEMANTICS 1 |
|||
#endif |
|||
/* Enable extensions on HP NonStop. */ |
|||
#ifndef _TANDEM_SOURCE |
|||
# define _TANDEM_SOURCE 1 |
|||
#endif |
|||
/* Enable general extensions on Solaris. */ |
|||
#ifndef __EXTENSIONS__ |
|||
# define __EXTENSIONS__ 1 |
|||
#endif |
|||
|
|||
|
|||
/* Version number of package */ |
|||
#define VERSION "1.0" |
|||
|
|||
/* Define to 1 if on MINIX. */ |
|||
/* #undef _MINIX */ |
|||
|
|||
/* Define to 2 if the system does not provide POSIX.1 features except with
|
|||
this defined. */ |
|||
/* #undef _POSIX_1_SOURCE */ |
|||
|
|||
/* Define to 1 if you need to in order for `stat' and other things to work. */ |
|||
/* #undef _POSIX_SOURCE */ |
@ -0,0 +1,126 @@ |
|||
/* config.h. Generated from config.h.in by configure. */ |
|||
/* config.h.in. Generated from configure.ac by autoheader. */ |
|||
|
|||
/* Define to 1 if you have the `clock_gettime' function. */ |
|||
#define HAVE_CLOCK_GETTIME 1 |
|||
|
|||
/* "use syscall interface for clock_gettime" */ |
|||
/* #undef HAVE_CLOCK_SYSCALL */ |
|||
|
|||
/* Define to 1 if you have the <dlfcn.h> header file. */ |
|||
#define HAVE_DLFCN_H 1 |
|||
|
|||
/* Define to 1 if you have the `epoll_ctl' function. */ |
|||
/* #undef HAVE_EPOLL_CTL */ |
|||
|
|||
/* Define to 1 if you have the `eventfd' function. */ |
|||
/* #undef HAVE_EVENTFD */ |
|||
|
|||
/* Define to 1 if you have the `inotify_init' function. */ |
|||
/* #undef HAVE_INOTIFY_INIT */ |
|||
|
|||
/* Define to 1 if you have the <inttypes.h> header file. */ |
|||
#define HAVE_INTTYPES_H 1 |
|||
|
|||
/* Define to 1 if you have the `kqueue' function. */ |
|||
#define HAVE_KQUEUE 1 |
|||
|
|||
/* Define to 1 if you have the `m' library (-lm). */ |
|||
#define HAVE_LIBM 1 |
|||
|
|||
/* Define to 1 if you have the `rt' library (-lrt). */ |
|||
/* #undef HAVE_LIBRT */ |
|||
|
|||
/* Define to 1 if you have the <memory.h> header file. */ |
|||
#define HAVE_MEMORY_H 1 |
|||
|
|||
/* Define to 1 if you have the `nanosleep' function. */ |
|||
#define HAVE_NANOSLEEP 1 |
|||
|
|||
/* Define to 1 if you have the `poll' function. */ |
|||
#define HAVE_POLL 1 |
|||
|
|||
/* Define to 1 if you have the <poll.h> header file. */ |
|||
#define HAVE_POLL_H 1 |
|||
|
|||
/* Define to 1 if you have the `port_create' function. */ |
|||
/* #undef HAVE_PORT_CREATE */ |
|||
|
|||
/* Define to 1 if you have the <port.h> header file. */ |
|||
/* #undef HAVE_PORT_H */ |
|||
|
|||
/* Define to 1 if you have the `select' function. */ |
|||
#define HAVE_SELECT 1 |
|||
|
|||
/* Define to 1 if you have the `signalfd' function. */ |
|||
/* #undef HAVE_SIGNALFD */ |
|||
|
|||
/* Define to 1 if you have the <stdint.h> header file. */ |
|||
#define HAVE_STDINT_H 1 |
|||
|
|||
/* Define to 1 if you have the <stdlib.h> header file. */ |
|||
#define HAVE_STDLIB_H 1 |
|||
|
|||
/* Define to 1 if you have the <strings.h> header file. */ |
|||
#define HAVE_STRINGS_H 1 |
|||
|
|||
/* Define to 1 if you have the <string.h> header file. */ |
|||
#define HAVE_STRING_H 1 |
|||
|
|||
/* Define to 1 if you have the <sys/epoll.h> header file. */ |
|||
/* #undef HAVE_SYS_EPOLL_H */ |
|||
|
|||
/* Define to 1 if you have the <sys/eventfd.h> header file. */ |
|||
/* #undef HAVE_SYS_EVENTFD_H */ |
|||
|
|||
/* Define to 1 if you have the <sys/event.h> header file. */ |
|||
#define HAVE_SYS_EVENT_H 1 |
|||
|
|||
/* Define to 1 if you have the <sys/inotify.h> header file. */ |
|||
/* #undef HAVE_SYS_INOTIFY_H */ |
|||
|
|||
/* Define to 1 if you have the <sys/select.h> header file. */ |
|||
#define HAVE_SYS_SELECT_H 1 |
|||
|
|||
/* Define to 1 if you have the <sys/signalfd.h> header file. */ |
|||
/* #undef HAVE_SYS_SIGNALFD_H */ |
|||
|
|||
/* Define to 1 if you have the <sys/stat.h> header file. */ |
|||
#define HAVE_SYS_STAT_H 1 |
|||
|
|||
/* Define to 1 if you have the <sys/types.h> header file. */ |
|||
#define HAVE_SYS_TYPES_H 1 |
|||
|
|||
/* Define to 1 if you have the <unistd.h> header file. */ |
|||
#define HAVE_UNISTD_H 1 |
|||
|
|||
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
|||
*/ |
|||
#define LT_OBJDIR ".libs/" |
|||
|
|||
/* Name of package */ |
|||
#define PACKAGE "libev" |
|||
|
|||
/* Define to the address where bug reports for this package should be sent. */ |
|||
#define PACKAGE_BUGREPORT "" |
|||
|
|||
/* Define to the full name of this package. */ |
|||
#define PACKAGE_NAME "" |
|||
|
|||
/* Define to the full name and version of this package. */ |
|||
#define PACKAGE_STRING "" |
|||
|
|||
/* Define to the one symbol short name of this package. */ |
|||
#define PACKAGE_TARNAME "" |
|||
|
|||
/* Define to the home page for this package. */ |
|||
#define PACKAGE_URL "" |
|||
|
|||
/* Define to the version of this package. */ |
|||
#define PACKAGE_VERSION "" |
|||
|
|||
/* Define to 1 if you have the ANSI C header files. */ |
|||
#define STDC_HEADERS 1 |
|||
|
|||
/* Version number of package */ |
|||
#define VERSION "4.04" |
@ -0,0 +1,123 @@ |
|||
/* Copyright Joyent, Inc. and other Node contributors. All rights reserved.
|
|||
* Permission is hereby granted, free of charge, to any person obtaining a copy |
|||
* of this software and associated documentation files (the "Software"), to |
|||
* deal in the Software without restriction, including without limitation the |
|||
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
|||
* sell copies of the Software, and to permit persons to whom the Software is |
|||
* furnished to do so, subject to the following conditions: |
|||
* |
|||
* The above copyright notice and this permission notice shall be included in |
|||
* all copies or substantial portions of the Software. |
|||
* |
|||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
|||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
|||
* IN THE SOFTWARE. |
|||
*/ |
|||
|
|||
#include <sys/types.h> |
|||
#include <sys/param.h> |
|||
#include <sys/resource.h> |
|||
#include <sys/time.h> |
|||
#include <sys/sysctl.h> |
|||
|
|||
#include <errno.h> |
|||
#include <stdlib.h> |
|||
#include <string.h> |
|||
#include <unistd.h> |
|||
|
|||
#undef NANOSEC |
|||
#define NANOSEC 1000000000 |
|||
|
|||
|
|||
uint64_t uv_hrtime(void) { |
|||
struct timespec ts; |
|||
clock_gettime(CLOCK_MONOTONIC, &ts); |
|||
return (ts.tv_sec * NANOSEC + ts.tv_nsec); |
|||
} |
|||
|
|||
void uv_loadavg(double avg[3]) { |
|||
struct loadavg info; |
|||
size_t size = sizeof(info); |
|||
int which[] = {CTL_VM, VM_LOADAVG}; |
|||
|
|||
if (sysctl(which, 2, &info, &size, NULL, 0) < 0) return; |
|||
|
|||
avg[0] = (double) info.ldavg[0] / info.fscale; |
|||
avg[1] = (double) info.ldavg[1] / info.fscale; |
|||
avg[2] = (double) info.ldavg[2] / info.fscale; |
|||
} |
|||
|
|||
int uv_exepath(char* buffer, size_t* size) { |
|||
int mib[4]; |
|||
char **argsbuf = NULL; |
|||
char **argsbuf_tmp; |
|||
size_t argsbuf_size = 100U; |
|||
size_t exepath_size; |
|||
pid_t mypid; |
|||
int status = -1; |
|||
|
|||
if (!buffer || !size) { |
|||
goto out; |
|||
} |
|||
mypid = getpid(); |
|||
for (;;) { |
|||
if ((argsbuf_tmp = realloc(argsbuf, argsbuf_size)) == NULL) { |
|||
goto out; |
|||
} |
|||
argsbuf = argsbuf_tmp; |
|||
mib[0] = CTL_KERN; |
|||
mib[1] = KERN_PROC_ARGS; |
|||
mib[2] = mypid; |
|||
mib[3] = KERN_PROC_ARGV; |
|||
if (sysctl(mib, 4, argsbuf, &argsbuf_size, NULL, 0) == 0) { |
|||
break; |
|||
} |
|||
if (errno != ENOMEM) { |
|||
goto out; |
|||
} |
|||
argsbuf_size *= 2U; |
|||
} |
|||
if (argsbuf[0] == NULL) { |
|||
goto out; |
|||
} |
|||
exepath_size = strlen(argsbuf[0]); |
|||
if (exepath_size >= *size) { |
|||
goto out; |
|||
} |
|||
memcpy(buffer, argsbuf[0], exepath_size + 1U); |
|||
*size = exepath_size; |
|||
status = 0; |
|||
|
|||
out: |
|||
free(argsbuf); |
|||
|
|||
return status; |
|||
} |
|||
|
|||
double uv_get_free_memory(void) { |
|||
struct uvmexp info; |
|||
size_t size = sizeof(info); |
|||
int which[] = {CTL_VM, VM_UVMEXP}; |
|||
|
|||
if (sysctl(which, 2, &info, &size, NULL, 0) < 0) { |
|||
return -1; |
|||
} |
|||
|
|||
return (double) info.free * sysconf(_SC_PAGESIZE); |
|||
} |
|||
|
|||
double uv_get_total_memory(void) { |
|||
uint64_t info; |
|||
int which[] = {CTL_HW, HW_PHYSMEM64}; |
|||
size_t size = sizeof(info); |
|||
|
|||
if (sysctl(which, 2, &info, &size, NULL, 0) < 0) { |
|||
return -1; |
|||
} |
|||
|
|||
return (double) info; |
|||
} |
Loading…
Reference in new issue