Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 8 Aug 2002 07:53:36 +0000 (07:53 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 8 Aug 2002 07:53:36 +0000 (07:53 +0000)
2002-05-24  Robert Love  <rml@tech9.net>

* posix/Makefile (routines): Add sched_getaffinity and
sched_setaffinity.
* posix/sched.h: Add declarations for sched_getaffinity and
sched_setaffinity.
* sysdeps/generic/sched_getaffinity.c: New file.
* sysdeps/generic/sched_setaffinity.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add sched_getaffinity and
sched_setaffinity.

2002-08-06  Andreas Schwab  <schwab@suse.de>

* sysdeps/unix/utime.c: If TIMES is NULL pass it through to utimes.

ChangeLog
posix/Makefile
posix/sched.h
sysdeps/generic/sched_getaffinity.c [new file with mode: 0644]
sysdeps/generic/sched_setaffinity.c [new file with mode: 0644]
sysdeps/unix/sysv/linux/syscalls.list
sysdeps/unix/utime.c

index 06815af..35bee5e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2002-05-24  Robert Love  <rml@tech9.net>
+
+       * posix/Makefile (routines): Add sched_getaffinity and
+       sched_setaffinity.
+       * posix/sched.h: Add declarations for sched_getaffinity and
+       sched_setaffinity.
+       * sysdeps/generic/sched_getaffinity.c: New file.
+       * sysdeps/generic/sched_setaffinity.c: New file.
+       * sysdeps/unix/sysv/linux/syscalls.list: Add sched_getaffinity and
+       sched_setaffinity.
+
+2002-08-06  Andreas Schwab  <schwab@suse.de>
+
+       * sysdeps/unix/utime.c: If TIMES is NULL pass it through to utimes.
+
 2002-08-07  Ulrich Drepper  <drepper@redhat.com>
 
        * elf/dl-load.c (_dl_map_object_from_fd): Add missing \n in error
index e9a46c2..d6b2eb3 100644 (file)
@@ -51,7 +51,7 @@ routines :=                                                                 \
        confstr                                                               \
        getopt getopt1 getopt_init                                            \
        sched_setp sched_getp sched_sets sched_gets sched_yield sched_primax  \
-       sched_primin sched_rr_gi                                              \
+       sched_primin sched_rr_gi sched_getaffinity sched_setaffinity          \
        getaddrinfo gai_strerror wordexp                                      \
        pread pwrite pread64 pwrite64                                         \
        spawn_faction_init spawn_faction_destroy spawn_faction_addclose       \
index e476928..fe38c10 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions for POSIX 1003.1b-1993 (aka POSIX.4) scheduling interface.
-   Copyright (C) 1996, 1997, 1999, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1999, 2001, 2002 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
@@ -62,6 +62,17 @@ extern int sched_get_priority_min (int __algorithm) __THROW;
 /* Get the SCHED_RR interval for the named process.  */
 extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
 
+
+#ifdef __USE_GNU
+/* Set the CPU affinity for a task */
+extern int sched_setaffinity (__pid_t __pid, unsigned long int __len,
+                             unsigned long int *__mask) __THROW;
+
+/* Get the CPU affinity for a task */
+extern int sched_getaffinity (__pid_t __pid, unsigned long int __len,
+                             unsigned long int *__mask) __THROW;
+#endif
+
 __END_DECLS
 
 #endif /* sched.h */
diff --git a/sysdeps/generic/sched_getaffinity.c b/sysdeps/generic/sched_getaffinity.c
new file mode 100644 (file)
index 0000000..fc3f48f
--- /dev/null
@@ -0,0 +1,35 @@
+/* Copyright (C) 2002 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 Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <sys/types.h>
+#include <sched.h>
+
+
+/* Retrieve the CPU affinity mask for a particular process.  */
+int
+sched_getaffinity (pid, len, mask)
+     pid_t pid;
+     unsigned long int len;
+     unsigned long int *mask;
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+stub_warning (sched_getaffinity)
+#include <stub-tag.h>
diff --git a/sysdeps/generic/sched_setaffinity.c b/sysdeps/generic/sched_setaffinity.c
new file mode 100644 (file)
index 0000000..0f80184
--- /dev/null
@@ -0,0 +1,35 @@
+/* Copyright (C) 2002 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 Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <sys/types.h>
+#include <sched.h>
+
+
+/* Retrieve the CPU affinity mask for a particular process.  */
+int
+sched_setaffinity (pid, len, mask)
+     pid_t pid;
+     unsigned long int len;
+     unsigned long int *mask;
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+stub_warning (sched_setaffinity)
+#include <stub-tag.h>
index 8f7bfa3..8052fc0 100644 (file)
@@ -39,11 +39,13 @@ pivot_root  EXTRA   pivot_root      i:ss    pivot_root
 prctl          EXTRA   prctl           i:iiiii prctl
 query_module   EXTRA   query_module    i:sipip query_module
 quotactl       EXTRA   quotactl        i:isip  quotactl
+sched_getaffinity -    sched_getaffinity       i:iip   sched_getaffinity
 sched_getp     -       sched_getparam  i:ip    __sched_getparam        sched_getparam
 sched_gets     -       sched_getscheduler      i:i     __sched_getscheduler    sched_getscheduler
 sched_primax   -       sched_get_priority_max  i:i     __sched_get_priority_max        sched_get_priority_max
 sched_primin   -       sched_get_priority_min  i:i     __sched_get_priority_min        sched_get_priority_min
 sched_rr_gi    -       sched_rr_get_interval   i:ip    __sched_rr_get_interval sched_rr_get_interval
+sched_setaffinity -    sched_setaffinity       i:iip   sched_setaffinity
 sched_setp     -       sched_setparam  i:ip    __sched_setparam        sched_setparam
 sched_sets     -       sched_setscheduler      i:iip   __sched_setscheduler    sched_setscheduler
 sched_yield    -       sched_yield     i:      __sched_yield   sched_yield
index cbfc351..4a1815b 100644 (file)
@@ -32,21 +32,19 @@ utime (file, times)
      const struct utimbuf *times;
 {
   struct timeval timevals[2];
+  struct timeval *tvp;
 
   if (times != NULL)
     {
-      timevals[0].tv_sec = (long int) times->actime;
+      timevals[0].tv_sec = (time_t) times->actime;
       timevals[0].tv_usec = 0L;
-      timevals[1].tv_sec = (long int) times->modtime;
+      timevals[1].tv_sec = (time_t) times->modtime;
       timevals[1].tv_usec = 0L;
+      tvp = timevals;
     }
   else
-    {
-      if (__gettimeofday (&timevals[0], NULL) < 0)
-       return -1;
-      timevals[1] = timevals[0];
-    }
+    tvp = NULL;
 
-  return __utimes (file, timevals);
+  return __utimes (file, tvp);
 }
 libc_hidden_def (utime)