From 0921204660b9597de795065d0350a787035ad589 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Thu, 5 Jun 2014 00:50:43 +0000 Subject: [PATCH] Revert "Remove ftime from bionic LP64" Breaking some build... will look in to it later. This reverts commit 26d6799bbe170b0955f564974b584c1471efdca1. Change-Id: I35fa770221be3a181bd37c6c3dce1bf37a69a4a1 --- libc/Android.mk | 1 + libc/bionic/ftime.c | 49 +++++++++++++++++++++++++++++++++++++++ libc/bionic/ndk_cruft.cpp | 31 ------------------------- libc/include/sys/timeb.h | 47 +++++++++++++++++++++++++++++++++++++ 4 files changed, 97 insertions(+), 31 deletions(-) create mode 100644 libc/bionic/ftime.c create mode 100644 libc/include/sys/timeb.h diff --git a/libc/Android.mk b/libc/Android.mk index 168850eca..ee8981a4a 100644 --- a/libc/Android.mk +++ b/libc/Android.mk @@ -43,6 +43,7 @@ libc_common_src_files := \ bionic/err.c \ bionic/ether_aton.c \ bionic/ether_ntoa.c \ + bionic/ftime.c \ bionic/fts.c \ bionic/getdtablesize.c \ bionic/gethostname.c \ diff --git a/libc/bionic/ftime.c b/libc/bionic/ftime.c new file mode 100644 index 000000000..6513593b9 --- /dev/null +++ b/libc/bionic/ftime.c @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#include + +int ftime(struct timeb *tb) +{ + struct timeval tv; + struct timezone tz; + + if (gettimeofday (&tv, &tz) < 0) + return -1; + + tb->time = tv.tv_sec; + tb->millitm = (tv.tv_usec + 500) / 1000; + + if (tb->millitm == 1000) { + ++tb->time; + tb->millitm = 0; + } + tb->timezone = tz.tz_minuteswest; + tb->dstflag = tz.tz_dsttime; + + return 0; +} diff --git a/libc/bionic/ndk_cruft.cpp b/libc/bionic/ndk_cruft.cpp index 5dd31bf1c..ed60ea48d 100644 --- a/libc/bionic/ndk_cruft.cpp +++ b/libc/bionic/ndk_cruft.cpp @@ -226,35 +226,4 @@ extern "C" wchar_t* wcswcs(wchar_t* haystack, wchar_t* needle) { return wcsstr(haystack, needle); } -// Only used by ftime, which was removed from POSIX. -struct timeb { - time_t time; - unsigned short millitm; - short timezone; - short dstflag; -}; - -// This was removed from POSIX. -extern "C" int ftime(struct timeb* tb) -{ - struct timeval tv; - struct timezone tz; - - if (gettimeofday(&tv, &tz) < 0) - return -1; - - tb->time = tv.tv_sec; - tb->millitm = (tv.tv_usec + 500) / 1000; - - if (tb->millitm == 1000) { - ++tb->time; - tb->millitm = 0; - } - - tb->timezone = tz.tz_minuteswest; - tb->dstflag = tz.tz_dsttime; - - return 0; -} - #endif diff --git a/libc/include/sys/timeb.h b/libc/include/sys/timeb.h new file mode 100644 index 000000000..cf6f25581 --- /dev/null +++ b/libc/include/sys/timeb.h @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#ifndef _SYS_TIMEB_H +#define _SYS_TIMEB_H + +#include +#include + +__BEGIN_DECLS + +struct timeb { + time_t time; + unsigned short millitm; + short timezone; + short dstflag; +}; + +extern int ftime(struct timeb* timebuf); + +__END_DECLS + +#endif /* _SYS_TIMEB_H */