Update.
authorUlrich Drepper <drepper@redhat.com>
Mon, 3 Mar 2003 19:53:27 +0000 (19:53 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 3 Mar 2003 19:53:27 +0000 (19:53 +0000)
2003-03-03  Ian Wienand  <ianw@gelato.unsw.edu.au>

* sysdeps/unix/sysv/linux/ia64/clone2.S: Update to take extra clone
flags.
* include/sched.h: Update clone2 prototype.

ChangeLog
include/sched.h
sysdeps/unix/sysv/linux/ia64/clone2.S

index b4269a2..9dda587 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2003-03-03  Ian Wienand  <ianw@gelato.unsw.edu.au>
+
+       * sysdeps/unix/sysv/linux/ia64/clone2.S: Update to take extra clone
+       flags.
+       * include/sched.h: Update clone2 prototype.
+
 2003-03-03  Andreas Jaeger  <aj@suse.de>
 
        * math/tgmath.h (__TGMATH_UNARY_REAL_RET_ONLY): New definition.
index 291811a..d6cd36f 100644 (file)
@@ -15,8 +15,11 @@ extern int __sched_get_priority_min (int __algorithm);
 extern int __sched_rr_get_interval (__pid_t __pid, struct timespec *__t);
 
 /* These are Linux specific.  */
+struct user_desc;
 extern int __clone (int (*__fn) (void *__arg), void *__child_stack,
                    int __flags, void *__arg, ...);
 extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
-                    size_t __child_stack_size, int __flags, void *__arg);
+                    size_t __child_stack_size, int __flags, void *__arg,
+                    __pid_t *__child_tid, __pid_t *__parent_tid,
+                    struct user_desc *__tls);
 #endif
index 9088721..2a65938 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2001, 2003 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
 
 
 /* int  __clone2(int (*fn) (void *arg), void *child_stack_base,        */
-/*              size_t child_stack_size, int flags, void *arg) */
+/*              size_t child_stack_size, int flags, void *arg,         */
+/*              pid_t *child_tid, pid_t *parent_tid,                   */
+/*              struct user_desc *tls) */
 
 ENTRY(__clone2)
-       alloc r2=ar.pfs,5,2,3,0
+       alloc r2=ar.pfs,8,2,6,0
        cmp.eq p6,p0=0,in0
        mov r8=EINVAL
 (p6)   br.cond.spnt.few __syscall_error
@@ -41,6 +43,9 @@ ENTRY(__clone2)
        mov out0=in3            /* Flags are first syscall argument.    */
        mov out1=in1            /* Stack address.                       */
        mov out2=in2            /* Stack size.                          */
+       mov out3=in5            /* Child TID Pointer                    */
+       mov out4=in6            /* Parent TID Pointer                   */
+       mov out5=in7            /* TLS pointer                          */
         DO_CALL (SYS_ify (clone2))
         cmp.eq p6,p0=-1,r10
        ;;