9233c4d942
just use _foo() <-- foo(). In the case of a libpthread that doesn't do call conversion (such as linuxthreads and our upcoming libpthread), this is adequate. In the case of libc_r, we still need three names, which are now _thread_sys_foo() <-- _foo() <-- foo(). Convert all internal libc usage of: aio_suspend(), close(), fsync(), msync(), nanosleep(), open(), fcntl(), read(), and write() to _foo() instead of foo(). Remove all internal libc usage of: creat(), pause(), sleep(), system(), tcdrain(), wait(), and waitpid(). Make thread cancellation fully POSIX-compliant. Suggested by: deischen
43 lines
820 B
C
43 lines
820 B
C
/*
|
|
* David Leonard <d@openbsd.org>, 1999. Public Domain.
|
|
*
|
|
* $OpenBSD: uthread_msync.c,v 1.2 1999/06/09 07:16:17 d Exp $
|
|
*
|
|
* $FreeBSD$
|
|
*/
|
|
|
|
#include <sys/types.h>
|
|
#include <sys/mman.h>
|
|
#ifdef _THREAD_SAFE
|
|
#include <pthread.h>
|
|
#include "pthread_private.h"
|
|
|
|
int
|
|
_msync(void *addr, size_t len, int flags)
|
|
{
|
|
int ret;
|
|
|
|
ret = _thread_sys_msync(addr, len, flags);
|
|
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
msync(void *addr, size_t len, int flags)
|
|
{
|
|
int ret;
|
|
|
|
/*
|
|
* XXX This is quite pointless unless we know how to get the
|
|
* file descriptor associated with the memory, and lock it for
|
|
* write. The only real use of this wrapper is to guarantee
|
|
* a cancellation point, as per the standard. sigh.
|
|
*/
|
|
_thread_enter_cancellation_point();
|
|
ret = _msync(addr, len, flags);
|
|
_thread_leave_cancellation_point();
|
|
|
|
return ret;
|
|
}
|
|
#endif
|