platform_bionic/libc/bionic
Elliott Hughes c508de0e41 Use sysinfo(2) to implement more of <sys/sysinfo.h>.
We already had implementations of some of the functions, and I didn't
bother rewriting them when we added sysinfo(2). Ross Anderson said in
https://www.lightbluetouchpaper.org/2016/07/29/yet-another-android-side-channel/
that we should "simply disable access to all procfs files", which made
me curious how many places we use /proc in bionic. This is the one that's
obviously unnecessary. The others I'm not aware of alternative APIs for.

Change-Id: Ia64f36b76f29a7a1dd67845270a5472e121aae10
2016-08-11 14:51:31 -07:00
..
__cmsg_nxthdr.cpp Move __cmsg_nxthdr to its proper file. 2014-07-10 12:47:13 +01:00
__cxa_guard.cpp Use FUTEX_WAIT_BITSET to avoid converting timeouts. 2015-11-19 13:42:03 -08:00
__cxa_pure_virtual.cpp Move libstdc++ into libc. 2014-05-14 18:18:55 -07:00
__cxa_thread_atexit_impl.cpp Defend against -fstack-protector in libc startup. 2016-01-06 20:06:08 -08:00
__errno.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
__gnu_basename.cpp Implement the GNU basename(3) in addition to the POSIX one. 2014-08-19 14:30:30 -07:00
__libc_current_sigrtmax.cpp Make SIGRTMIN hide the real-time signals we use internally. 2014-04-30 10:06:09 -07:00
__libc_current_sigrtmin.cpp Make SIGRTMIN hide the real-time signals we use internally. 2014-04-30 10:06:09 -07:00
__libc_init_main_thread.cpp Only initialize the global stack protector once. 2016-06-30 12:58:32 -07:00
__memcpy_chk.cpp Improve FORTIFY failure diagnostics. 2016-02-26 22:06:17 -08:00
__set_errno.cpp Move __set_errno to ndk_cruft.cpp. 2015-10-29 18:11:32 -07:00
__stack_chk_fail.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
__strcat_chk.cpp Improve FORTIFY failure diagnostics. 2016-02-26 22:06:17 -08:00
__strcpy_chk.cpp Improve FORTIFY failure diagnostics. 2016-02-26 22:06:17 -08:00
abort.cpp Upstream atexit 2014-07-14 12:05:16 -07:00
accept.cpp Mark sockets on creation (socket()) and accept4(). 2014-05-19 15:19:16 -07:00
accept4.cpp Mark sockets on creation (socket()) and accept4(). 2014-05-19 15:19:16 -07:00
access.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
arpa_inet.cpp Fix inet_aton on LP32. 2015-10-09 17:36:05 -07:00
assert.cpp Rewrite and hide longjmperror. 2014-06-06 16:49:39 -07:00
atof.cpp Ensure we always have symbols for atof, strtof, strtold. 2014-03-12 16:12:57 -07:00
bionic_netlink.cpp Implement if_nameindex(3)/if_freenameindex(3). 2016-01-18 12:07:38 -08:00
bionic_netlink.h Remove obsolete GCC workaround. 2016-06-10 12:49:04 -07:00
bionic_systrace.cpp Do not set properties in bionic_systrace 2015-12-10 13:33:37 -08:00
bionic_time_conversions.cpp Make it harder to use a broken legacy function by accident. 2016-04-04 16:15:37 -07:00
brk.cpp Remove declaration for __brk. 2016-06-01 18:21:06 -07:00
c16rtomb.cpp Adds functionality specified by uchar.h 2014-06-04 08:39:24 -07:00
c32rtomb.cpp Adds functionality specified by uchar.h 2014-06-04 08:39:24 -07:00
chmod.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
chown.cpp Remove bogus transitive includes. 2014-12-29 13:29:50 -08:00
clearenv.cpp Switch to the upstream OpenBSD getenv/putenv/setenv implementation. 2014-04-22 17:41:00 -07:00
clock.cpp Move <sys/sysconf.h> to <bits/sysconf.h>. 2016-04-07 18:02:00 -07:00
clock_getcpuclockid.cpp Minor clock_getcpuclockid optimization. 2016-03-07 11:54:02 -08:00
clock_nanosleep.cpp clock_nanosleep: add CLOCK_THREAD_CPUTIME_ID special case 2016-03-28 10:29:16 -07:00
clone.cpp Generalize the clone function slightly. 2016-05-06 16:37:00 -07:00
close.cpp Simplify close(2) EINTR handling. 2015-04-23 08:41:45 -07:00
connect.cpp Cosmetic changes to netd client files. 2014-05-18 15:18:36 -07:00
ctype.cpp Remove isascii_l(3). 2014-07-14 15:48:02 -07:00
dirent.cpp Reorder DIR structure due to bad apps. 2015-06-04 14:04:16 -07:00
dl_iterate_phdr_static.cpp Fix signal trampolines. 2014-09-15 15:04:14 -07:00
dup2.cpp Fix dup2 in the case where the two fds are equal. 2015-02-23 21:52:56 -08:00
epoll_create.cpp epoll_create: reject size <= 0 2016-03-24 16:37:20 -07:00
epoll_pwait.cpp Remove dependencies on obsolete __ARCH_WANT_SYSCALL_DEPRECATED system calls. 2013-10-24 15:48:32 -07:00
epoll_wait.cpp Remove dependencies on obsolete __ARCH_WANT_SYSCALL_DEPRECATED system calls. 2013-10-24 15:48:32 -07:00
error.cpp Clean up <stdlib.h> slightly. 2015-01-26 14:28:41 -08:00
ether_aton.c Fix our *ether* headers mess. 2016-05-13 11:00:22 -07:00
ether_ntoa.c Fix our *ether* headers mess. 2016-05-13 11:00:22 -07:00
eventfd_read.cpp
eventfd_write.cpp
faccessat.cpp Fix "faccessat ignores flags" 2015-02-24 13:40:43 -08:00
fchmod.cpp Ensure raw fchmod/fchmodat syscalls are hidden. 2015-02-03 12:10:30 -08:00
fchmodat.cpp Ensure raw fchmod/fchmodat syscalls are hidden. 2015-02-03 12:10:30 -08:00
ffs.cpp Let the compiler worry about implementing ffs(3). 2013-10-24 16:29:40 -07:00
fgetxattr.cpp libc: Add O_PATH support for fgetxattr / fsetxattr 2015-06-01 15:51:56 -07:00
flistxattr.cpp Add O_PATH support for flistxattr() 2015-06-06 11:25:41 -07:00
flockfile.cpp Revert "Revert "Remove __sinit and __sdidinit."" 2015-12-05 07:30:59 -08:00
fork.cpp Generalize the clone function slightly. 2016-05-06 16:37:00 -07:00
fortify.cpp Improve diagnostics from the assembler __strcpy_chk routines. 2016-05-26 16:38:34 -07:00
fpclassify.cpp Move the IEEE fp header out of the public headers. 2016-05-02 12:44:41 -07:00
fsetxattr.cpp libc: Add O_PATH support for fgetxattr / fsetxattr 2015-06-01 15:51:56 -07:00
ftruncate.cpp Cleanup ftruncate negative test. 2015-06-01 13:22:57 -07:00
fts.c Sync with upstream OpenBSD fts.c. 2014-11-21 19:27:28 -08:00
ftw.cpp Fix ftw/nftw to only report unreadable directories once. 2016-04-18 12:05:18 -07:00
futimens.cpp
getauxval.cpp set errno to ENOENT in getauxval per glibc 2.19 2015-03-17 19:50:55 -04:00
getcwd.cpp add a fortified implementation of getcwd 2015-08-01 00:42:30 -04:00
getdomainname.cpp Add {get,set}domainname(2) 2016-03-25 14:16:58 -07:00
getentropy_linux.c Use upstream OpenBSD's arc4random. 2014-07-21 14:38:16 -07:00
gethostname.cpp gethostname.c: change to report ENAMETOOLONG error when buflen is less 2014-11-12 12:07:33 -08:00
getpagesize.cpp Break up the rest of stubs.cpp. 2016-04-06 08:34:58 -07:00
getpgrp.cpp Take ownership of various simple syscall wrappers. 2014-03-10 17:17:01 -07:00
getpid.cpp Make getpid work before the main thread is initialized. 2016-06-28 15:52:59 -07:00
getpriority.c
gettid.cpp Avoid a system call in 'gettid'. 2014-06-02 10:32:55 -07:00
grp_pwd.cpp bionic: Implement getpwent and getgrent 2016-04-22 10:44:19 -07:00
ifaddrs.cpp Fix google-explicit-constructor warnings. 2016-05-03 12:08:05 -07:00
initgroups.c
inotify_init.cpp Remove dependencies on obsolete __ARCH_WANT_SYSCALL_NO_FLAGS syscalls. 2013-10-23 09:48:29 -07:00
ioctl.cpp fix the mremap signature 2015-11-06 13:14:43 -08:00
isatty.c
jemalloc.h Export malloc_iterate and friends 2016-02-18 15:05:38 -08:00
jemalloc_wrapper.cpp Slim down static binaries by avoiding stdio. 2014-07-10 12:34:23 -07:00
lchown.cpp Remove bogus transitive includes. 2014-12-29 13:29:50 -08:00
legacy_32_bit_support.cpp Add prlimit to LP32. 2015-10-28 20:04:59 -07:00
lfs64_support.cpp CLOEXEC support in fdopen, freopen, and mkostemp/mkostemps. 2014-09-23 18:21:52 -07:00
libc_init_common.cpp Only initialize the global stack protector once. 2016-06-30 12:58:32 -07:00
libc_init_common.h Move VDSO pointers to a shared globals struct. 2015-10-09 15:59:04 -07:00
libc_init_dynamic.cpp Only initialize the global stack protector once. 2016-06-30 12:58:32 -07:00
libc_init_static.cpp Only initialize the global stack protector once. 2016-06-30 12:58:32 -07:00
libc_logging.cpp Fix google-explicit-constructor warnings. 2016-05-03 12:08:05 -07:00
libgen.cpp Rename LIBC64_HIDDEN to LIBC32_LEGACY_PUBLIC. 2015-10-23 12:32:52 -07:00
link.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
locale.cpp Upgrade to tzcode-2016f. 2016-07-29 14:04:17 -07:00
lockf.cpp Fix lockf for LP32. 2016-01-26 14:32:55 -08:00
lstat.cpp Implement some of the missing LFS64 support. 2014-02-18 15:39:24 -08:00
malloc_common.cpp Init functions after debug malloc succeeds. 2016-03-11 12:27:02 -08:00
malloc_info.cpp Implement malloc_info(3). 2014-08-22 10:23:12 -07:00
malloc_info.h Implement malloc_info(3). 2014-08-22 10:23:12 -07:00
mblen.cpp Implement mblen(3). 2016-04-28 16:41:29 -07:00
mbrtoc16.cpp Adds functionality specified by uchar.h 2014-06-04 08:39:24 -07:00
mbrtoc32.cpp Adds functionality specified by uchar.h 2014-06-04 08:39:24 -07:00
mbstate.cpp Adds functionality specified by uchar.h 2014-06-04 08:39:24 -07:00
memmem.c
mempcpy.cpp Add GNU extensions mempcpy and wmemcpy. 2015-02-18 22:02:56 -08:00
mkdir.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
mkfifo.cpp Add mkfifoat(3). 2014-10-23 19:10:54 -07:00
mknod.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
mmap.cpp mmap: fix calculation of is_private_anonymous variable 2015-11-20 09:16:59 -08:00
mntent.cpp Add hasmntopt(3) 2016-03-25 14:16:58 -07:00
mremap.cpp extend the PTRDIFF_MAX size check to mremap 2015-11-19 08:57:47 -05:00
ndk_cruft.cpp Remove more stdio copy/paste. 2016-08-09 16:27:23 -07:00
net_if.cpp Fix google-explicit-constructor warnings. 2016-05-03 12:08:05 -07:00
netdb.cpp Break up the rest of stubs.cpp. 2016-04-06 08:34:58 -07:00
NetdClient.cpp RTLD_LAZY is not supported, use RTLD_NOW instead. 2015-03-23 14:58:45 -07:00
NetdClientDispatch.cpp Mark sockets on creation (socket()) and accept4(). 2014-05-19 15:19:16 -07:00
netinet_in.cpp Add in6addr_any and in6addr_loopback symbols. 2016-02-03 14:13:52 -08:00
new.cpp Remove libstdc++ include files. 2016-05-27 15:49:31 -07:00
nl_types.cpp Add trivial no-op <nl_types.h>. 2016-04-06 17:22:44 -07:00
open.cpp Improve FORTIFY failure diagnostics. 2016-02-26 22:06:17 -08:00
pathconf.cpp Increase support of pathconf options. 2014-11-14 23:45:24 +00:00
pause.cpp Remove dependencies on obsolete __ARCH_WANT_SYSCALL_DEPRECATED system calls. 2013-10-24 15:48:32 -07:00
pipe.cpp Remove dependencies on obsolete __ARCH_WANT_SYSCALL_NO_FLAGS syscalls. 2013-10-23 09:48:29 -07:00
poll.cpp Fix clang build. 2015-02-02 10:21:39 -08:00
posix_fadvise.cpp Add posix_fadvise(3). 2014-09-11 08:45:46 -07:00
posix_fallocate.cpp Add fallocate/fallocate64/posix_fallocate/posix_fallocate64. 2014-02-03 16:20:46 -08:00
posix_madvise.cpp implement posix_madvise 2014-12-04 11:01:28 -08:00
posix_timers.cpp Make all rt_sigtimedwait signatures match. 2016-05-23 11:20:19 -07:00
pthread_atfork.cpp constexpr constructor for atfork_list_t 2015-12-08 11:40:51 -08:00
pthread_attr.cpp Fix the way to get main thread stack start address. 2015-09-16 11:45:13 -07:00
pthread_barrier.cpp Use FUTEX_WAIT_BITSET to avoid converting timeouts. 2015-11-19 13:42:03 -08:00
pthread_cond.cpp Force pthread_cond_timedwait_relative_np using CLOCK_MONOTONIC. 2016-07-13 16:08:48 -07:00
pthread_create.cpp Only initialize the global stack protector once. 2016-06-30 12:58:32 -07:00
pthread_detach.cpp Let g_thread_list_lock only protect g_thread_list. 2015-03-23 19:03:49 -07:00
pthread_equal.cpp
pthread_exit.cpp If you're going to use memset... 2016-02-25 22:05:28 -08:00
pthread_getcpuclockid.cpp Let g_thread_list_lock only protect g_thread_list. 2015-03-23 19:03:49 -07:00
pthread_getschedparam.cpp Let g_thread_list_lock only protect g_thread_list. 2015-03-23 19:03:49 -07:00
pthread_gettid_np.cpp Remove "private/bionic_pthread.h". 2014-09-12 11:35:05 -07:00
pthread_internal.cpp Add check for pthread_self() when looking up a thread 2016-02-04 16:48:47 -08:00
pthread_internal.h Only initialize the global stack protector once. 2016-06-30 12:58:32 -07:00
pthread_join.cpp Let g_thread_list_lock only protect g_thread_list. 2015-03-23 19:03:49 -07:00
pthread_key.cpp Prevent using static-allocated pthread keys before creation. 2015-04-14 13:32:09 -07:00
pthread_kill.cpp Let g_thread_list_lock only protect g_thread_list. 2015-03-23 19:03:49 -07:00
pthread_mutex.cpp Use clang's nullability instead of nonnull. 2016-05-05 17:11:54 -07:00
pthread_once.cpp Use FUTEX_WAIT_BITSET to avoid converting timeouts. 2015-11-19 13:42:03 -08:00
pthread_rwlock.cpp sem_timedwait with a null timeout doesn't mean "forever". 2015-12-16 15:15:58 -08:00
pthread_self.cpp
pthread_setname_np.cpp Add pthread_getname_np. 2016-03-23 17:40:25 -07:00
pthread_setschedparam.cpp Let g_thread_list_lock only protect g_thread_list. 2015-03-23 19:03:49 -07:00
pthread_sigmask.cpp Clean up the sigprocmask/pthread_sigmask implementation. 2013-10-15 11:23:57 -07:00
pthread_spinlock.cpp Implement pthread spin. 2015-11-18 17:51:21 -08:00
ptrace.cpp ptrace(3) should be varargs. 2014-07-16 16:07:10 -07:00
pty.cpp forkpty: set the output fd to -1 on the slave side. 2016-03-04 18:04:41 -08:00
pututline.c libc should use O_CLOEXEC when opening files for its own use. 2014-08-26 15:56:54 -07:00
raise.cpp Remove bogus transitive includes. 2014-12-29 13:29:50 -08:00
rand.cpp Implement rand/srand in terms of random/srandom. 2014-07-14 12:02:22 -07:00
readlink.cpp add fortified readlink/readlinkat implementations 2015-04-17 18:49:12 -04:00
reboot.cpp Clean up various warnings in bionic. 2014-02-18 12:04:54 -08:00
recv.cpp Fix recv.cpp so it can build with clang. 2014-07-02 16:46:34 -07:00
rename.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
rmdir.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
scandir.cpp Implement scandirat and scandirat64. 2015-10-27 13:47:36 -07:00
sched_cpualloc.c
sched_cpucount.c Fix cpu_set_t 2014-04-30 14:30:15 +01:00
sched_getaffinity.cpp Fix indentation in sched_getaffinity. 2013-10-15 16:49:49 -07:00
sched_getcpu.cpp Clean up <sched.h>. 2014-01-02 12:05:50 -08:00
semaphore.cpp Revert "Revert "Make sem_wait able to return errno EINTR for sdk > 23."" 2016-01-25 17:39:18 -08:00
send.cpp Take ownership of various simple syscall wrappers. 2014-03-10 17:17:01 -07:00
setegid.cpp Clean up the cpuacct cruft. 2013-10-09 17:35:36 -07:00
seteuid.cpp Clean up the cpuacct cruft. 2013-10-09 17:35:36 -07:00
setjmp_cookie.cpp Add a checksum to jmp_buf on ARM. 2016-03-03 12:45:08 -08:00
setpgrp.cpp Take ownership of various simple syscall wrappers. 2014-03-10 17:17:01 -07:00
sigaction.cpp Use the kernel's sa_restorer for aarch64. 2014-09-16 15:49:50 -07:00
sigaddset.cpp Turn on -Wold-style-cast and fix the errors. 2015-01-21 17:09:58 -08:00
sigblock.c
sigdelset.cpp Turn on -Wold-style-cast and fix the errors. 2015-01-21 17:09:58 -08:00
sigemptyset.cpp Reduce <signal.h> namespace pollution. 2015-01-24 14:18:16 -08:00
sigfillset.cpp Reduce <signal.h> namespace pollution. 2015-01-24 14:18:16 -08:00
sighold.cpp Add SysV signal handling 2016-04-04 16:33:29 -07:00
sigignore.cpp Add SysV signal handling 2016-04-04 16:33:29 -07:00
siginterrupt.c
sigismember.cpp Turn on -Wold-style-cast and fix the errors. 2015-01-21 17:09:58 -08:00
signal.cpp Make _signal hidden in all cases. 2015-10-30 17:10:47 -07:00
signalfd.cpp Hide __signalfd4, used to implement signalfd(3). 2014-05-16 15:47:29 -07:00
sigpause.cpp Add SysV signal handling 2016-04-04 16:33:29 -07:00
sigpending.cpp Switch sigpending over to rt_sigpending. 2013-10-16 14:07:01 -07:00
sigprocmask.cpp Clean up the sigprocmask/pthread_sigmask implementation. 2013-10-15 11:23:57 -07:00
sigqueue.cpp Hide rt_sigqueueinfo. 2015-05-18 11:29:20 -07:00
sigrelse.cpp Add SysV signal handling 2016-04-04 16:33:29 -07:00
sigset.cpp Add SysV signal handling 2016-04-04 16:33:29 -07:00
sigsetmask.c
sigsuspend.cpp Fix sigsuspend to use rt_sigsuspend on all platforms. 2013-10-15 18:15:19 -07:00
sigtimedwait.cpp support _POSIX_REALTIME_SIGNALS 2014-12-08 21:52:43 -08:00
sigwait.cpp Make all rt_sigtimedwait signatures match. 2016-05-23 11:20:19 -07:00
sigwaitinfo.cpp support _POSIX_REALTIME_SIGNALS 2014-12-08 21:52:43 -08:00
socket.cpp Mark sockets on creation (socket()) and accept4(). 2014-05-19 15:19:16 -07:00
stat.cpp Implement some of the missing LFS64 support. 2014-02-18 15:39:24 -08:00
statvfs.cpp Hide statfs/fstatfs' ST_VALID flag from userspace. 2015-03-18 15:46:48 -07:00
strchr.cpp More OpenBSD cleanup (primarily string). 2014-02-24 18:02:05 -08:00
strchrnul.cpp Add strchrnul. 2015-08-26 09:59:29 -07:00
strerror.cpp Make ThreadLocalBuffer a class rather than a macro. 2015-03-31 10:56:58 -07:00
strerror_r.cpp Move <sys/_sigdefs.h> and <sys/_errdefs.h> to private. 2016-04-13 17:45:39 -07:00
strnlen.c
strrchr.cpp More OpenBSD cleanup (primarily string). 2014-02-24 18:02:05 -08:00
strsignal.cpp Make ThreadLocalBuffer a class rather than a macro. 2015-03-31 10:56:58 -07:00
strtold.cpp Use FLT_ROUNDS in LP64 strtold. 2014-04-16 16:09:41 -07:00
symlink.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
sync_file_range.cpp Add sync_file_range to <fcntl.h>. 2016-04-05 12:17:22 -07:00
sys_siglist.c Move <sys/_sigdefs.h> and <sys/_errdefs.h> to private. 2016-04-13 17:45:39 -07:00
sys_signame.c Move <sys/_sigdefs.h> and <sys/_errdefs.h> to private. 2016-04-13 17:45:39 -07:00
sys_time.cpp Add futimes, futimesat, and lutimes. 2016-06-08 19:51:20 -07:00
sysconf.cpp Move <sys/sysconf.h> to <bits/sysconf.h>. 2016-04-07 18:02:00 -07:00
sysinfo.cpp Use sysinfo(2) to implement more of <sys/sysinfo.h>. 2016-08-11 14:51:31 -07:00
syslog.cpp Clean up <stdlib.h> slightly. 2015-01-26 14:28:41 -08:00
system_properties.cpp Fix google-explicit-constructor warnings. 2016-05-03 12:08:05 -07:00
system_properties_compat.c Hide most of the private futex functions. 2014-05-21 18:30:00 -07:00
tdestroy.cpp Turn on -Wold-style-cast and fix the errors. 2015-01-21 17:09:58 -08:00
termios.cpp Remove bogus transitive includes. 2014-12-29 13:29:50 -08:00
thread_private.cpp Sync to current upstream arc4random. 2014-06-24 14:13:48 -07:00
time64.c Use snprintf instead of sprintf. 2014-10-07 11:28:47 -07:00
time64_config.h
tmpfile.cpp Add fopen64/freopen64/tmpfile64 aliases. 2016-02-03 11:24:28 -08:00
umount.cpp Take ownership of various simple syscall wrappers. 2014-03-10 17:17:01 -07:00
unlink.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
vdso.cpp Support 32-bit ARM vdso. 2016-07-12 13:55:51 -07:00
wait.cpp Removes wait3(2) from LP64. 2014-06-13 16:04:41 -07:00
wchar.cpp Fix incorrect parameter types for locale funcs. 2014-09-23 15:32:24 -07:00
wctype.cpp Fix <wctype.h>. 2016-04-28 18:22:06 -07:00
wmempcpy.cpp Add GNU extensions mempcpy and wmemcpy. 2015-02-18 22:02:56 -08:00