aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog7
-rw-r--r--linuxthreads/Implies1
-rw-r--r--linuxthreads/internals.h1
-rw-r--r--linuxthreads/manager.c1
-rw-r--r--linuxthreads/pthread.c2
5 files changed, 12 insertions, 0 deletions
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 <drepper@cygnus.com>
+
+ * 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 <drepper@cygnus.com>
* 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;