diff options
author | Roland McGrath <roland@gnu.org> | 1995-07-22 10:48:43 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1995-07-22 10:48:43 +0000 |
commit | 439d1d4560aa3e261c065c43e3995779809b4cb2 (patch) | |
tree | 82be4196b9f9a0567b4210d818cacc53780b3030 /sysdeps/posix/utimes.c | |
parent | 0bf9d0eb2bc40ee304e8ff0315112cde711fa1b2 (diff) | |
download | glibc-439d1d4560aa3e261c065c43e3995779809b4cb2.tar.gz glibc-439d1d4560aa3e261c065c43e3995779809b4cb2.tar.xz glibc-439d1d4560aa3e261c065c43e3995779809b4cb2.zip |
Sat Jul 22 01:56:03 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/unix/i386/sysdep.h (JUMPTARGET): New macro; use name@PLT #ifdef PIC. (PSEUDO): Use JUMPTARGET(syscall_error) in jump insn. * sysdeps/unix/i386/syscall.S: Use JUMPTARGET(syscall_error) in jump insn. * sysdeps/unix/sysv/sysv4/linux/i386/sysdep.h: Rewritten. * sysdeps/unix/sysv/sysv4/linux/i386/syscall.S: New file. * sysdeps/unix/sysv/sysv4/linux/i386/socket.S: Include <sys/socketcall.h>. Save %ebx in call-clobbered %edx instead of stack. Use JUMPTARGET(syscall_error) in jump insn. * Makeconfig (+gccwarn): Add -Wbad-function-cast -Wconversion. * sysdeps/unix/i386/sysdep.h (ENTRY): Use ASM_GLOBAL_DIRECTIVE and ASM_TYPE_DIRECTIVE. (ASM_TYPE_DIRECTIVE): New macro; defined using `.type' #ifdef ELF. * sysdeps/unix/sysv/sysv4/linux/i386/sysdep.S (__syscall_error): Rewritten, #include'ing unix/i386/sysdep.S for most of the code. * sysdeps/unix/i386/sysdep.S [PIC]: Store into `errno' through the GOT. Fixes to help Linux, inspired by drepper's work: * configure.in (os=linux*): Use unix/sysv/sysv4 for $base_os, instead of unix/sysv. * sysdeps/posix/utimes.c: New file. * sysdeps/generic/getdomain.c: New file. * sysdeps/i386/init-first.c: Removed gratuitous #include <hurd.h>. * sysdeps/generic/dl-sysdep.c: Include <unistd.h> and declare externals _dl_argc, _dl_argc, and _environ. * sysdeps/unix/sysv/linux/{accept,connect,getsockname,rename, socketpair,waitpid,bind,getpeername,listen,setsid,wait4}.S: Moved to new directory sysdeps/unix/sysv/sysv4/linux. * sysdeps/unix/sysv/linux: Directory removed. * sysdeps/unix/sysv/i386/linux/{socket.S,sysdep.h,sysdep.S}: Moved to new directory sysdeps/unix/sysv/sysv4/linux/i386. * sysdeps/unix/sysv/linux/i386: Directory removed.
Diffstat (limited to 'sysdeps/posix/utimes.c')
-rw-r--r-- | sysdeps/posix/utimes.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/sysdeps/posix/utimes.c b/sysdeps/posix/utimes.c new file mode 100644 index 0000000000..ca542c68b1 --- /dev/null +++ b/sysdeps/posix/utimes.c @@ -0,0 +1,42 @@ +/* Copyright (C) 1995 Free Software Foundation, Inc. +This file is part of the GNU C Library. + +The GNU C Library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +The GNU C Library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with the GNU C Library; see the file COPYING.LIB. If +not, write to the Free Software Foundation, Inc., 675 Mass Ave, +Cambridge, MA 02139, USA. */ + +#include <sys/time.h> +#include <errno.h> +#include <stddef.h> + +/* Change the access time of FILE to TVP[0] and + the modification time of FILE to TVP[1]. */ +int +__utimes (const char *file, struct timeval tvp[2]) +{ + struct utimbuf buf, *times; + + if (tvp) + { + times = &buf; + times->actime = tvp[0].tv_sec + tvp[0].tv_usec / 1000; + times->modtime = tvp[1].tv_sec + tvp[1].tv_usec / 1000; + } + else + times = NULL; + + return utime (path, times); +} + +weak_alias (__utimes, utimes) |