From 9640bbe1c1fab7e1373e59160889b1fbc0bd000c Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 8 Oct 1999 07:03:03 +0000 Subject: Update. 1999-10-07 Ulrich Drepper * Implies: New file. * internals.h (struct _pthread_descr_struct): Add p_startfct. * manager.c (pthread_handle_create): Initialize p_startfct. * pthread.c: Define __linuxthread_pthread_sizeof_descr variable. --- linuxthreads/ChangeLog | 7 +++++++ linuxthreads/Implies | 1 + linuxthreads/internals.h | 1 + linuxthreads/manager.c | 1 + linuxthreads/pthread.c | 2 ++ 5 files changed, 12 insertions(+) create mode 100644 linuxthreads/Implies (limited to 'linuxthreads') diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index d83f63c242..872d17e84b 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,10 @@ +1999-10-07 Ulrich Drepper + + * Implies: New file. + * internals.h (struct _pthread_descr_struct): Add p_startfct. + * manager.c (pthread_handle_create): Initialize p_startfct. + * pthread.c: Define __linuxthread_pthread_sizeof_descr variable. + 1999-09-25 Ulrich Drepper * manager.c (__linuxthreads_pthread_threads_max): New variable. diff --git a/linuxthreads/Implies b/linuxthreads/Implies new file mode 100644 index 0000000000..2c56497842 --- /dev/null +++ b/linuxthreads/Implies @@ -0,0 +1 @@ +linuxthreads_db diff --git a/linuxthreads/internals.h b/linuxthreads/internals.h index 34297fe752..73243d42dc 100644 --- a/linuxthreads/internals.h +++ b/linuxthreads/internals.h @@ -113,6 +113,7 @@ struct _pthread_descr_struct { size_t p_guardsize; /* size of guard area */ pthread_descr p_self; /* Pointer to this structure */ int p_nr; /* Index of descriptor in __pthread_handles */ + void *(*p_startfct) (void *); /* The startup function of this thread. */ } __attribute__ ((aligned(32))); /* We need to align the structure so that doubles are aligned properly. This is 8 bytes on MIPS and 16 bytes on MIPS64. diff --git a/linuxthreads/manager.c b/linuxthreads/manager.c index b481fc890c..e59f98092c 100644 --- a/linuxthreads/manager.c +++ b/linuxthreads/manager.c @@ -342,6 +342,7 @@ static int pthread_handle_create(pthread_t *thread, const pthread_attr_t *attr, new_thread->p_guardsize = guardsize; new_thread->p_self = new_thread; new_thread->p_nr = sseg; + new_thread->p_startfct = start_routine; /* Initialize the thread handle */ __pthread_init_lock(&__pthread_handles[sseg].h_lock); __pthread_handles[sseg].h_descr = new_thread; diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c index 2f10f06790..aea6db12ab 100644 --- a/linuxthreads/pthread.c +++ b/linuxthreads/pthread.c @@ -150,6 +150,8 @@ const int __pthread_offsetof_descr = offsetof(struct pthread_handle_struct, h_descr); const int __pthread_offsetof_pid = offsetof(struct _pthread_descr_struct, p_pid); +const int __linuxthread_pthread_sizeof_descr + = sizeof(struct _pthread_descr_struct); /* These variables are used by the setup code. */ extern int _errno; -- cgit 1.4.1