Compat glue for lwp park, but does not use the new syscall yet.

This commit is contained in:
christos 2013-03-29 02:09:58 +00:00
parent 53d5980522
commit dabcbd76a6
3 changed files with 73 additions and 3 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: lwp.h,v 1.2 2009/01/11 02:46:25 christos Exp $ */
/* $NetBSD: lwp.h,v 1.3 2013/03/29 02:09:58 christos Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@ -39,8 +39,11 @@
#define _COMPAT_LWP_H_
__BEGIN_DECLS
struct timespec50;
int _lwp_park(const struct timespec50 *, lwpid_t, const void *, const void *);
int ___lwp_park50(const struct timespec *, lwpid_t, const void *, const void *);
int ___lwp_park60(clockid_t , int, const struct timespec *, lwpid_t,
const void *, const void *);
__END_DECLS
#endif /* !_COMPAT_LWP_H_ */

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile.inc,v 1.8 2009/01/11 02:46:25 christos Exp $
# $NetBSD: Makefile.inc,v 1.9 2013/03/29 02:09:58 christos Exp $
.PATH: ${COMPATDIR}/sys
SRCS+= compat_getdents.c compat_getdirentries.c compat_msync.c \
@ -12,7 +12,7 @@ SRCS+= compat_getdents.c compat_getdirentries.c compat_msync.c \
compat___stat30.c compat_aio_suspend.c compat_adjtime.c compat_mknod.c \
compat_mqueue.c compat__lwp_park.c compat_lfs_segwait.c compat_kevent.c \
compat___ntp_gettime30.c compat___semctl13.c compat___shmctl13.c \
compat___msgctl13.c
compat___msgctl13.c compat___lwp_park50.c
MAN+= getdirentries.3
.if ${MKLINT} != "no"

View File

@ -0,0 +1,67 @@
/* $NetBSD: compat___lwp_park50.c,v 1.1 2013/03/29 02:09:58 christos Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
* by Christos Zoulas <christos@NetBSD.org>.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
__RCSID("$NetBSD: compat___lwp_park50.c,v 1.1 2013/03/29 02:09:58 christos Exp $");
#endif /* LIBC_SCCS and not lint */
#define __LIBC12_SOURCE__
#include <sys/types.h>
#include <sys/mount.h>
#include <compat/include/fstypes.h>
#include <compat/sys/mount.h>
#include <compat/include/lwp.h>
#ifndef notyet
#include <unistd.h>
#include <sys/syscall.h>
#endif
__warn_references(fhstat,
"warning: reference to compatibility ___lwp_park50(); include <lwp.h> to generate correct reference")
/*
* Convert old __lwp_park() call to new
*/
int
___lwp_park50(const struct timespec *ts, lwpid_t unpark, const void *hint,
const void *unparkhint)
{
#ifdef notyet
return ___lwp_park60(CLOCK_REALTIME, TIMER_ABSTIME, ts, unpark,
hint, unparkhint);
#else
return syscall(SYS_compat_60__lwp_park, ts, unpark, hint, unparkhint);
#endif
}