1/*
2 * David Leonard <d@openbsd.org>, 1999. Public Domain.
3 *
4 * $OpenBSD: uthread_msync.c,v 1.2 1999/06/09 07:16:17 d Exp $
5 *
6 * $FreeBSD$
7 */
8
9#include "namespace.h"
10#include <sys/types.h>
11#include <sys/mman.h>
12#include <pthread.h>
13#include "un-namespace.h"
14#include "thr_private.h"
15
16int __msync(void *addr, size_t len, int flags);
17
18__weak_reference(__msync, msync);
19
20int
21__msync(void *addr, size_t len, int flags)
22{
23	struct pthread *curthread = _get_curthread();
24	int	ret;
25
26	/*
27	 * XXX This is quite pointless unless we know how to get the
28	 * file descriptor associated with the memory, and lock it for
29	 * write. The only real use of this wrapper is to guarantee
30	 * a cancellation point, as per the standard. sigh.
31	 */
32	_thr_cancel_enter(curthread);
33	ret = __sys_msync(addr, len, flags);
34	_thr_cancel_leave(curthread, 1);
35
36	return (ret);
37}
38