[1/1] libc: Added prototypes for new POSIX APIs

Message ID 20210806140705.1262737-2-mfjoyce2004@gmail.com
State Superseded
Headers show
Series
  • libc: Added Prototypes for POSIX Clock APIs
Related show

Commit Message

Matt Joyce Aug. 6, 2021, 2:07 p.m.
Added function prototypes to newlib/libc/include/pthread.h
for the following Issue 8 Standard APIs:
pthread_cond_clockwait()
pthread_mutex_clocklock()
pthread_rwlock_clockrdlock()
pthread_rwlock_clockwrlock()
---
 newlib/libc/include/pthread.h | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

-- 
2.31.1

Comments

Corinna Vinschen Aug. 6, 2021, 5:48 p.m. | #1
Hi Matt,

On Aug  6 16:07, Matt Joyce wrote:
> Added function prototypes to newlib/libc/include/pthread.h

> for the following Issue 8 Standard APIs:

> pthread_cond_clockwait()

> pthread_mutex_clocklock()

> pthread_rwlock_clockrdlock()

> pthread_rwlock_clockwrlock()

> ---

>  newlib/libc/include/pthread.h | 25 +++++++++++++++++++++++++

>  1 file changed, 25 insertions(+)

> 

> diff --git a/newlib/libc/include/pthread.h b/newlib/libc/include/pthread.h

> index c9d24d6e0..9b91ea68d 100644

> --- a/newlib/libc/include/pthread.h

> +++ b/newlib/libc/include/pthread.h

> @@ -87,6 +87,13 @@ int	pthread_mutex_timedlock (pthread_mutex_t *__mutex,

>  

>  #endif /* _POSIX_TIMEOUTS */

>  

> +/* Using __MISC_VISIBLE until POSIX Issue 8 is officially released */ 

> +#if __MISC_VISIBLE


I think these symbols should use the __GNU_VISIBLE feature test macro.
That would also be compatible with GLibC.


Corinna
Joel Sherrill Aug. 6, 2021, 6:05 p.m. | #2
On Fri, Aug 6, 2021 at 12:48 PM Corinna Vinschen <vinschen@redhat.com> wrote:
>

> Hi Matt,

>

> On Aug  6 16:07, Matt Joyce wrote:

> > Added function prototypes to newlib/libc/include/pthread.h

> > for the following Issue 8 Standard APIs:

> > pthread_cond_clockwait()

> > pthread_mutex_clocklock()

> > pthread_rwlock_clockrdlock()

> > pthread_rwlock_clockwrlock()

> > ---

> >  newlib/libc/include/pthread.h | 25 +++++++++++++++++++++++++

> >  1 file changed, 25 insertions(+)

> >

> > diff --git a/newlib/libc/include/pthread.h b/newlib/libc/include/pthread.h

> > index c9d24d6e0..9b91ea68d 100644

> > --- a/newlib/libc/include/pthread.h

> > +++ b/newlib/libc/include/pthread.h

> > @@ -87,6 +87,13 @@ int        pthread_mutex_timedlock (pthread_mutex_t *__mutex,

> >

> >  #endif /* _POSIX_TIMEOUTS */

> >

> > +/* Using __MISC_VISIBLE until POSIX Issue 8 is officially released */

> > +#if __MISC_VISIBLE

>

> I think these symbols should use the __GNU_VISIBLE feature test macro.

> That would also be compatible with GLibC.


Thanks Corinna. I'll take the bullet for telling him to use that one.

--joel

>

>

> Corinna

>

Patch

diff --git a/newlib/libc/include/pthread.h b/newlib/libc/include/pthread.h
index c9d24d6e0..9b91ea68d 100644
--- a/newlib/libc/include/pthread.h
+++ b/newlib/libc/include/pthread.h
@@ -87,6 +87,13 @@  int	pthread_mutex_timedlock (pthread_mutex_t *__mutex,
 
 #endif /* _POSIX_TIMEOUTS */
 
+/* Using __MISC_VISIBLE until POSIX Issue 8 is officially released */ 
+#if __MISC_VISIBLE
+/* The Issue 8 standard adds pthread_mutex_clocklock() */
+int pthread_mutex_clocklock(pthread_mutex_t *__restrict, clockid_t,
+				   const struct timespec *__restrict);
+#endif /* __MISC_VISIBLE */ 
+
 /* Condition Variable Initialization Attributes, P1003.1c/Draft 10, p. 96 */
  
 int	pthread_condattr_init (pthread_condattr_t *__attr);
@@ -126,6 +133,14 @@  int	pthread_cond_wait (pthread_cond_t *__cond, pthread_mutex_t *__mutex);
 int	pthread_cond_timedwait (pthread_cond_t *__cond,
 				pthread_mutex_t *__mutex,
 				const struct timespec *__abstime);
+
+/* Using __MISC_VISIBLE until POSIX Issue 8 is officially released */ 
+#if __MISC_VISIBLE
+/* The Issue 8 standard adds pthread_cond_clockwait() */
+int pthread_cond_clockwait(pthread_cond_t *__restrict, 
+                   pthread_mutex_t *__restrict, clockid_t,
+				   const struct timespec *__restrict);
+#endif /* __MISC_VISIBLE */ 
  
 #if defined(_POSIX_THREAD_PRIORITY_SCHEDULING)
 
@@ -423,6 +438,16 @@  int	pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock);
 int	pthread_rwlock_timedwrlock (pthread_rwlock_t *__rwlock,
 				    const struct timespec *__abstime);
 
+/* Using __MISC_VISIBLE until POSIX Issue 8 is officially released */ 
+#if __MISC_VISIBLE
+/* The Issue 8 standard adds pthread_rwlock_clockrdlock()
+*  and pthread_rwlock_clockwrlock()*/
+int pthread_rwlock_clockrdlock(pthread_rwlock_t *__restrict, clockid_t,  
+				   const struct timespec *__restrict);
+int pthread_rwlock_clockwrlock(pthread_rwlock_t *__restrict, clockid_t,  
+				   const struct timespec *__restrict);
+#endif /* __MISC_VISIBLE */ 
+
 #endif /* defined(_POSIX_READER_WRITER_LOCKS) */