On Fri, May 14, 2021 at 11:32 AM Ryan Long <ryan.l...@oarcorp.com> wrote: > > utimes() now calls utimensat() to update file access > and modification timestamps. > > Updated license. > > Closes #4398 > --- > cpukit/libcsupport/src/utimes.c | 62 > ++++++++++++++++++++++++++++++++--------- > 1 file changed, 49 insertions(+), 13 deletions(-) > > diff --git a/cpukit/libcsupport/src/utimes.c b/cpukit/libcsupport/src/utimes.c > index 3dc47c0..0ff6662 100644 > --- a/cpukit/libcsupport/src/utimes.c > +++ b/cpukit/libcsupport/src/utimes.c > @@ -1,38 +1,74 @@ > +/* SPDX-License-Identifier: BSD-2-Clause */ > + > /** > * @file > * > - * @brief Change File Last Access and Modification Times > * @ingroup libcsupport > + * > + * @brief Set file access and modification times in milliseconds. > */ > > /* > - * Written by: Vinu Rajashekhar <vinuthe...@gmail.com> > + * COPYRIGHT (C) 1989, 2021 On-Line Applications Research Corporation (OAR). > * > - * The license and distribution terms for this file may be > - * found in the file LICENSE in this distribution or at > - * http://www.rtems.org/license/LICENSE. > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions > + * are met: > + * 1. Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer. > + * 2. 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. > */ > > #ifdef HAVE_CONFIG_H > #include "config.h" > #endif > > -#include <sys/types.h> > -#include <utime.h> > #include <sys/time.h> > +#include <rtems/score/todimpl.h> > + > +#include <fcntl.h> > > +/** > + * > https://pubs.opengroup.org/onlinepubs/9699919799.2008edition/functions/futimens.html > + * > + * Set file access and modification times > + */ > int utimes( > const char *path, > const struct timeval times[2] > -) > +) > { > - struct utimbuf timeinsecs; > + struct timespec new_times[2]; > > if ( times == NULL ) nit: put the { on same line as the closing parenthesis if () { . Joel can fix that before checkin.
> - return utime( path, NULL ); > + { > + return utimensat( AT_FDCWD, path, NULL , 0 ); > + } > > - timeinsecs.actime = times[0].tv_sec; > - timeinsecs.modtime = times[1].tv_sec; > + _Timespec_Set( > + &new_times[0], > + times[0].tv_sec, > + times[0].tv_usec * TOD_NANOSECONDS_PER_MICROSECOND > + ); > + _Timespec_Set( > + &new_times[1], > + times[1].tv_sec, > + times[1].tv_usec * TOD_NANOSECONDS_PER_MICROSECOND > + ); > > - return utime( path, &timeinsecs ); > + return utimensat( AT_FDCWD, path, new_times, 0 ); > } > -- > 1.8.3.1 > > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel