e62165c8b0
used LIBTHREAD_1_0 as its version definition, but now needs to define its symbols in the same namespace used by libc. The compatibility hooks allows you to use libraries and binaries built and linked to libpthread before libc was built with symbol versioning. The shims can be removed if libpthread is given a version bump. Reviewed by: davidxu
37 lines
806 B
C
37 lines
806 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>
|
|
#include <pthread.h>
|
|
#include "thr_private.h"
|
|
|
|
LT10_COMPAT_PRIVATE(__msync);
|
|
LT10_COMPAT_DEFAULT(msync);
|
|
|
|
__weak_reference(__msync, msync);
|
|
|
|
int
|
|
__msync(void *addr, size_t len, int flags)
|
|
{
|
|
struct pthread *curthread = _get_curthread();
|
|
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.
|
|
*/
|
|
_thr_cancel_enter(curthread);
|
|
ret = __sys_msync(addr, len, flags);
|
|
_thr_cancel_leave(curthread, 1);
|
|
|
|
return ret;
|
|
}
|