summaryrefslogtreecommitdiff
path: root/lib/libpthread
diff options
context:
space:
mode:
authorchristos <christos@NetBSD.org>2003-06-02 16:59:26 +0000
committerchristos <christos@NetBSD.org>2003-06-02 16:59:26 +0000
commitdc1665b80b6cf1d14e8a5984389e4dbbcd8eb33e (patch)
tree3a350fe32ff3168c8f3b1a314beed87225f93b29 /lib/libpthread
parentbc91866ddf75190c70589966d617bec7d2b7a467 (diff)
Add pthread_attr_getstack{,size,addr} needed by jdk
Diffstat (limited to 'lib/libpthread')
-rw-r--r--lib/libpthread/pthread.c32
-rw-r--r--lib/libpthread/pthread.h5
2 files changed, 34 insertions, 3 deletions
diff --git a/lib/libpthread/pthread.c b/lib/libpthread/pthread.c
index 566d0a4092f..737db23a580 100644
--- a/lib/libpthread/pthread.c
+++ b/lib/libpthread/pthread.c
@@ -1,4 +1,4 @@
-/* $NetBSD: pthread.c,v 1.19 2003/05/27 15:24:24 christos Exp $ */
+/* $NetBSD: pthread.c,v 1.20 2003/06/02 16:59:26 christos Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: pthread.c,v 1.19 2003/05/27 15:24:24 christos Exp $");
+__RCSID("$NetBSD: pthread.c,v 1.20 2003/06/02 16:59:26 christos Exp $");
#include <err.h>
#include <errno.h>
@@ -782,6 +782,34 @@ pthread_attr_getschedparam(const pthread_attr_t *attr,
return 0;
}
+int
+pthread_attr_getstack(const pthread_attr_t *attr, void **addr, size_t *size)
+{
+ if ((attr == NULL) || (attr->pta_magic != PT_ATTR_MAGIC))
+ return EINVAL;
+ *addr = pthread__self()->pt_stack.ss_sp;
+ *size = pthread__self()->pt_stack.ss_size;
+ return 0;
+}
+
+int
+pthread_attr_getstacksize(const pthread_attr_t *attr, size_t *size)
+{
+ if ((attr == NULL) || (attr->pta_magic != PT_ATTR_MAGIC))
+ return EINVAL;
+ *size = pthread__self()->pt_stack.ss_size;
+ return 0;
+}
+
+int
+pthread_attr_getstackaddr(const pthread_attr_t *attr, void **addr)
+{
+ if ((attr == NULL) || (attr->pta_magic != PT_ATTR_MAGIC))
+ return EINVAL;
+ *addr = pthread__self()->pt_stack.ss_sp;
+ return 0;
+}
+
int
pthread_attr_getname_np(const pthread_attr_t *attr, char *name, size_t len,
diff --git a/lib/libpthread/pthread.h b/lib/libpthread/pthread.h
index 8da5af52240..7f4190cc20a 100644
--- a/lib/libpthread/pthread.h
+++ b/lib/libpthread/pthread.h
@@ -1,4 +1,4 @@
-/* $NetBSD: pthread.h,v 1.9 2003/02/26 22:02:48 thorpej Exp $ */
+/* $NetBSD: pthread.h,v 1.10 2003/06/02 16:59:27 christos Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -67,6 +67,9 @@ int pthread_attr_getschedparam(const pthread_attr_t *,
struct sched_param *);
int pthread_attr_setschedparam(pthread_attr_t *,
const struct sched_param *);
+int pthread_attr_getstack(const pthread_attr_t *, void **, size_t *);
+int pthread_attr_getstacksize(const pthread_attr_t *, size_t *);
+int pthread_attr_getstackaddr(const pthread_attr_t *, void **);
int pthread_attr_getdetachstate(const pthread_attr_t *, int *);
int pthread_attr_setdetachstate(pthread_attr_t *, int);
int pthread_attr_getname_np(const pthread_attr_t *, char *,