[PATCH 01/04] split newlib/libc/reent/timer.c

Jeff Johnston jjohnstn@redhat.com
Wed Feb 21 19:46:00 GMT 2007


Checked in with modification of _dummy_time_syscalls variable in the two 
split files.

-- Jeff J.

Patrick Mansfield wrote:
> Index: time-fix-spu/newlib/libc/reent/Makefile.am
> ===================================================================
> --- time-fix-spu.orig/newlib/libc/reent/Makefile.am
> +++ time-fix-spu/newlib/libc/reent/Makefile.am
> @@ -36,6 +36,7 @@ GENERAL_SOURCES = \
>  	fcntlr.c \
>  	fstatr.c \
>  	getreent.c \
> +	gettimeofdayr.c \
>  	linkr.c \
>  	lseekr.c \
>  	openr.c \
> @@ -44,7 +45,7 @@ GENERAL_SOURCES = \
>  	signgam.c \
>  	sbrkr.c \
>  	statr.c \
> -	timer.c \
> +	timesr.c \
>  	unlinkr.c \
>  	writer.c
>  
> @@ -69,6 +70,7 @@ CHEWOUT_FILES = \
>  	execr.def \
>  	fcntlr.def \
>  	fstatr.def \
> +	gettimeofdayr.def \
>  	linkr.def \
>  	lseekr.def \
>  	openr.def \
> @@ -76,7 +78,7 @@ CHEWOUT_FILES = \
>  	signalr.def \
>  	sbrkr.def \
>  	statr.def \
> -	timer.def \
> +	timesr.def \
>  	unlinkr.def \
>  	$(STDIO64_DEFS) \
>  	writer.def
> Index: time-fix-spu/newlib/libc/reent/Makefile.in
> ===================================================================
> --- time-fix-spu.orig/newlib/libc/reent/Makefile.in
> +++ time-fix-spu/newlib/libc/reent/Makefile.in
> @@ -55,12 +55,12 @@ lib_a_LIBADD =
>  am__objects_1 = lib_a-closer.$(OBJEXT) lib_a-reent.$(OBJEXT) \
>  	lib_a-impure.$(OBJEXT) lib_a-fcntlr.$(OBJEXT) \
>  	lib_a-fstatr.$(OBJEXT) lib_a-getreent.$(OBJEXT) \
> -	lib_a-linkr.$(OBJEXT) lib_a-lseekr.$(OBJEXT) \
> -	lib_a-openr.$(OBJEXT) lib_a-readr.$(OBJEXT) \
> -	lib_a-signalr.$(OBJEXT) lib_a-signgam.$(OBJEXT) \
> -	lib_a-sbrkr.$(OBJEXT) lib_a-statr.$(OBJEXT) \
> -	lib_a-timer.$(OBJEXT) lib_a-unlinkr.$(OBJEXT) \
> -	lib_a-writer.$(OBJEXT)
> +	lib_a-gettimeofdayr.$(OBJEXT) lib_a-linkr.$(OBJEXT) \
> +	lib_a-lseekr.$(OBJEXT) lib_a-openr.$(OBJEXT) \
> +	lib_a-readr.$(OBJEXT) lib_a-signalr.$(OBJEXT) \
> +	lib_a-signgam.$(OBJEXT) lib_a-sbrkr.$(OBJEXT) \
> +	lib_a-statr.$(OBJEXT) lib_a-timesr.$(OBJEXT) \
> +	lib_a-unlinkr.$(OBJEXT) lib_a-writer.$(OBJEXT)
>  @HAVE_STDIO64_DIR_TRUE@am__objects_2 = lib_a-fstat64r.$(OBJEXT) \
>  @HAVE_STDIO64_DIR_TRUE@	lib_a-lseek64r.$(OBJEXT) \
>  @HAVE_STDIO64_DIR_TRUE@	lib_a-open64r.$(OBJEXT)
> @@ -77,8 +77,9 @@ lib_a_OBJECTS = $(am_lib_a_OBJECTS)
>  LTLIBRARIES = $(noinst_LTLIBRARIES)
>  libreent_la_LIBADD =
>  am__objects_6 = closer.lo reent.lo impure.lo fcntlr.lo fstatr.lo \
> -	getreent.lo linkr.lo lseekr.lo openr.lo readr.lo signalr.lo \
> -	signgam.lo sbrkr.lo statr.lo timer.lo unlinkr.lo writer.lo
> +	getreent.lo gettimeofdayr.lo linkr.lo lseekr.lo openr.lo \
> +	readr.lo signalr.lo signgam.lo sbrkr.lo statr.lo timesr.lo \
> +	unlinkr.lo writer.lo
>  @HAVE_STDIO64_DIR_TRUE@am__objects_7 = fstat64r.lo lseek64r.lo \
>  @HAVE_STDIO64_DIR_TRUE@	open64r.lo
>  am__objects_8 = $(am__objects_7)
> @@ -275,6 +276,7 @@ GENERAL_SOURCES = \
>  	fcntlr.c \
>  	fstatr.c \
>  	getreent.c \
> +	gettimeofdayr.c \
>  	linkr.c \
>  	lseekr.c \
>  	openr.c \
> @@ -283,7 +285,7 @@ GENERAL_SOURCES = \
>  	signgam.c \
>  	sbrkr.c \
>  	statr.c \
> -	timer.c \
> +	timesr.c \
>  	unlinkr.c \
>  	writer.c
>  
> @@ -301,6 +303,7 @@ CHEWOUT_FILES = \
>  	execr.def \
>  	fcntlr.def \
>  	fstatr.def \
> +	gettimeofdayr.def \
>  	linkr.def \
>  	lseekr.def \
>  	openr.def \
> @@ -308,7 +311,7 @@ CHEWOUT_FILES = \
>  	signalr.def \
>  	sbrkr.def \
>  	statr.def \
> -	timer.def \
> +	timesr.def \
>  	unlinkr.def \
>  	$(STDIO64_DEFS) \
>  	writer.def
> @@ -420,6 +423,12 @@ lib_a-getreent.o: getreent.c
>  lib_a-getreent.obj: getreent.c
>  	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-getreent.obj `if test -f 'getreent.c'; then $(CYGPATH_W) 'getreent.c'; else $(CYGPATH_W) '$(srcdir)/getreent.c'; fi`
>  
> +lib_a-gettimeofdayr.o: gettimeofdayr.c
> +	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-gettimeofdayr.o `test -f 'gettimeofdayr.c' || echo '$(srcdir)/'`gettimeofdayr.c
> +
> +lib_a-gettimeofdayr.obj: gettimeofdayr.c
> +	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-gettimeofdayr.obj `if test -f 'gettimeofdayr.c'; then $(CYGPATH_W) 'gettimeofdayr.c'; else $(CYGPATH_W) '$(srcdir)/gettimeofdayr.c'; fi`
> +
>  lib_a-linkr.o: linkr.c
>  	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-linkr.o `test -f 'linkr.c' || echo '$(srcdir)/'`linkr.c
>  
> @@ -468,11 +477,11 @@ lib_a-statr.o: statr.c
>  lib_a-statr.obj: statr.c
>  	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-statr.obj `if test -f 'statr.c'; then $(CYGPATH_W) 'statr.c'; else $(CYGPATH_W) '$(srcdir)/statr.c'; fi`
>  
> -lib_a-timer.o: timer.c
> -	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-timer.o `test -f 'timer.c' || echo '$(srcdir)/'`timer.c
> +lib_a-timesr.o: timesr.c
> +	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-timesr.o `test -f 'timesr.c' || echo '$(srcdir)/'`timesr.c
>  
> -lib_a-timer.obj: timer.c
> -	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-timer.obj `if test -f 'timer.c'; then $(CYGPATH_W) 'timer.c'; else $(CYGPATH_W) '$(srcdir)/timer.c'; fi`
> +lib_a-timesr.obj: timesr.c
> +	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-timesr.obj `if test -f 'timesr.c'; then $(CYGPATH_W) 'timesr.c'; else $(CYGPATH_W) '$(srcdir)/timesr.c'; fi`
>  
>  lib_a-unlinkr.o: unlinkr.c
>  	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-unlinkr.o `test -f 'unlinkr.c' || echo '$(srcdir)/'`unlinkr.c
> Index: time-fix-spu/newlib/libc/reent/gettimeofdayr.c
> ===================================================================
> --- /dev/null
> +++ time-fix-spu/newlib/libc/reent/gettimeofdayr.c
> @@ -0,0 +1,76 @@
> +/* Reentrant version of gettimeofday system call
> +   This implementation just calls the times/gettimeofday system calls.
> +   Gettimeofday may not be available on all targets.  It's presence
> +   here is dubious.  Consider it for internal use only.  */
> +
> +#include <reent.h>
> +#include <time.h>
> +#include <sys/time.h>
> +#include <sys/times.h>
> +#include <_syslist.h>
> +
> +/* Some targets provides their own versions of these functions.  Those
> +   targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS.  */
> +
> +#ifdef _REENT_ONLY
> +#ifndef REENTRANT_SYSCALLS_PROVIDED
> +#define REENTRANT_SYSCALLS_PROVIDED
> +#endif
> +#endif
> +
> +#ifdef REENTRANT_SYSCALLS_PROVIDED
> +
> +int _dummy_time_syscalls = 1;
> +
> +#else
> +
> +/* We use the errno variable used by the system dependent layer.  */
> +#undef errno
> +extern int errno;
> +
> +/*
> +FUNCTION
> +	<<_gettimeofday_r>>---Reentrant version of gettimeofday
> +
> +INDEX
> +	_gettimeofday_r
> +
> +ANSI_SYNOPSIS
> +	#include <reent.h>
> +	#include <time.h>
> +	int _gettimeofday_r(struct _reent *<[ptr]>,
> +		struct timeval *<[ptimeval]>,
> +		struct timezone *<[ptimezone]>);
> +
> +TRAD_SYNOPSIS
> +	#include <reent.h>
> +	#include <time.h>
> +	int _gettimeofday_r(<[ptr]>, <[ptimeval]>, <[ptimezone]>)
> +	struct _reent *<[ptr]>;
> +	struct timeval *<[ptimeval]>;
> +	struct timezone *<[ptimezone]>;
> +
> +DESCRIPTION
> +	This is a reentrant version of <<gettimeofday>>.  It
> +	takes a pointer to the global data block, which holds
> +	<<errno>>.
> +
> +	This function is only available for a few targets.
> +	Check libc.a to see if its available on yours.
> +*/
> +
> +int
> +_DEFUN (_gettimeofday_r, (ptr, ptimeval, ptimezone),
> +     struct _reent *ptr _AND
> +     struct timeval *ptimeval _AND
> +     struct timezone *ptimezone)
> +{
> +  int ret;
> +
> +  errno = 0;
> +  if ((ret = _gettimeofday (ptimeval, ptimezone)) == -1 && errno != 0)
> +    ptr->_errno = errno;
> +  return ret;
> +}
> +
> +#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */
> Index: time-fix-spu/newlib/libc/reent/timer.c
> ===================================================================
> --- time-fix-spu.orig/newlib/libc/reent/timer.c
> +++ /dev/null
> @@ -1,113 +0,0 @@
> -/* Reentrant versions of times and gettimeofday system calls for the
> -   clock and time ANSI C routines.
> -   This implementation just calls the times/gettimeofday system calls.
> -   Gettimeofday may not be available on all targets.  It's presence
> -   here is dubious.  Consider it for internal use only.  */
> -
> -#include <reent.h>
> -#include <time.h>
> -#include <sys/time.h>
> -#include <sys/times.h>
> -#include <_syslist.h>
> -
> -/* Some targets provides their own versions of these functions.  Those
> -   targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS.  */
> -
> -#ifdef _REENT_ONLY
> -#ifndef REENTRANT_SYSCALLS_PROVIDED
> -#define REENTRANT_SYSCALLS_PROVIDED
> -#endif
> -#endif
> -
> -#ifdef REENTRANT_SYSCALLS_PROVIDED
> -
> -int _dummy_time_syscalls = 1;
> -
> -#else
> -
> -/* We use the errno variable used by the system dependent layer.  */
> -#undef errno
> -extern int errno;
> -
> -/*
> -FUNCTION
> -	<<_times_r>>---Reentrant version of times
> -	
> -INDEX
> -	_times_r
> -
> -ANSI_SYNOPSIS
> -	#include <reent.h>
> -	#include <sys/times.h>
> -	clock_t _times_r(struct _reent *<[ptr]>, struct tms *<[ptms]>);
> -
> -TRAD_SYNOPSIS
> -	#include <reent.h>
> -	#include <sys/times.h>
> -	clock_t _times_r(<[ptr]>, <[ptms]>)
> -	struct _reent *<[ptr]>;
> -	struct tms *<[ptms]>;
> -
> -DESCRIPTION
> -	This is a reentrant version of <<times>>.  It
> -	takes a pointer to the global data block, which holds
> -	<<errno>>.
> -*/
> -
> -clock_t
> -_DEFUN (_times_r, (ptr, ptms),
> -     struct _reent *ptr _AND
> -     struct tms *ptms)
> -{
> -  clock_t ret;
> -
> -  ret = _times (ptms);
> -  return ret;
> -}
> -
> -/*
> -FUNCTION
> -	<<_gettimeofday_r>>---Reentrant version of gettimeofday
> -	
> -INDEX
> -	_gettimeofday_r
> -
> -ANSI_SYNOPSIS
> -	#include <reent.h>
> -	#include <time.h>
> -	int _gettimeofday_r(struct _reent *<[ptr]>,
> -		struct timeval *<[ptimeval]>,
> -		struct timezone *<[ptimezone]>);
> -
> -TRAD_SYNOPSIS
> -	#include <reent.h>
> -	#include <time.h>
> -	int _gettimeofday_r(<[ptr]>, <[ptimeval]>, <[ptimezone]>)
> -	struct _reent *<[ptr]>;
> -	struct timeval *<[ptimeval]>;
> -	struct timezone *<[ptimezone]>;
> -
> -DESCRIPTION
> -	This is a reentrant version of <<gettimeofday>>.  It
> -	takes a pointer to the global data block, which holds
> -	<<errno>>.
> -
> -	This function is only available for a few targets.
> -	Check libc.a to see if its available on yours.
> -*/
> -
> -int
> -_DEFUN (_gettimeofday_r, (ptr, ptimeval, ptimezone),
> -     struct _reent *ptr _AND
> -     struct timeval *ptimeval _AND
> -     struct timezone *ptimezone)
> -{
> -  int ret;
> -
> -  errno = 0;
> -  if ((ret = _gettimeofday (ptimeval, ptimezone)) == -1 && errno != 0)
> -    ptr->_errno = errno;
> -  return ret;
> -}
> -
> -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */
> Index: time-fix-spu/newlib/libc/reent/timesr.c
> ===================================================================
> --- /dev/null
> +++ time-fix-spu/newlib/libc/reent/timesr.c
> @@ -0,0 +1,63 @@
> +/* Reentrant versions of times system calls */
> +
> +#include <reent.h>
> +#include <time.h>
> +#include <sys/time.h>
> +#include <sys/times.h>
> +#include <_syslist.h>
> +
> +/* Some targets provides their own versions of these functions.  Those
> +   targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS.  */
> +
> +#ifdef _REENT_ONLY
> +#ifndef REENTRANT_SYSCALLS_PROVIDED
> +#define REENTRANT_SYSCALLS_PROVIDED
> +#endif
> +#endif
> +
> +#ifdef REENTRANT_SYSCALLS_PROVIDED
> +
> +int _dummy_time_syscalls = 1;
> +
> +#else
> +
> +/* We use the errno variable used by the system dependent layer.  */
> +#undef errno
> +extern int errno;
> +
> +/*
> +FUNCTION
> +	<<_times_r>>---Reentrant version of times
> +
> +INDEX
> +	_times_r
> +
> +ANSI_SYNOPSIS
> +	#include <reent.h>
> +	#include <sys/times.h>
> +	clock_t _times_r(struct _reent *<[ptr]>, struct tms *<[ptms]>);
> +
> +TRAD_SYNOPSIS
> +	#include <reent.h>
> +	#include <sys/times.h>
> +	clock_t _times_r(<[ptr]>, <[ptms]>)
> +	struct _reent *<[ptr]>;
> +	struct tms *<[ptms]>;
> +
> +DESCRIPTION
> +	This is a reentrant version of <<times>>.  It
> +	takes a pointer to the global data block, which holds
> +	<<errno>>.
> +*/
> +
> +clock_t
> +_DEFUN (_times_r, (ptr, ptms),
> +     struct _reent *ptr _AND
> +     struct tms *ptms)
> +{
> +  clock_t ret;
> +
> +  ret = _times (ptms);
> +  return ret;
> +}
> +#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */



More information about the Newlib mailing list