From b41fbfd35c61aa864d5a460c76ad80187ede84a9 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Thu, 5 May 2005 09:17:25 +0000 Subject: [PATCH] vc_wait_exit(): implemented support for this syscall git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2082 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- util-vserver/lib/Makefile-files | 2 ++ util-vserver/lib/syscall_waitexit-v13.hc | 29 ++++++++++++++++++++++++ util-vserver/lib/syscall_waitexit.c | 39 ++++++++++++++++++++++++++++++++ util-vserver/lib/vserver.h | 6 ++++- 4 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 util-vserver/lib/syscall_waitexit-v13.hc create mode 100644 util-vserver/lib/syscall_waitexit.c diff --git a/util-vserver/lib/Makefile-files b/util-vserver/lib/Makefile-files index 588bd9d..4820158 100644 --- a/util-vserver/lib/Makefile-files +++ b/util-vserver/lib/Makefile-files @@ -95,6 +95,8 @@ lib_v13_SRCS = lib/syscall_ctxcreate.c \ lib/syscall_setvhiname-olduts.hc \ lib/syscall_setvhiname-v13.hc \ lib/syscall_setvhiname.c \ + lib/syscall_waitexit.c \ + lib/syscall_waitexit-v13.hc \ lib/bcaps-v13.c \ lib/bcaps_list-v13.c \ lib/ccaps-v13.c \ diff --git a/util-vserver/lib/syscall_waitexit-v13.hc b/util-vserver/lib/syscall_waitexit-v13.hc new file mode 100644 index 0000000..d786a17 --- /dev/null +++ b/util-vserver/lib/syscall_waitexit-v13.hc @@ -0,0 +1,29 @@ +// $Id$ --*- c++ -*-- + +// Copyright (C) 2003 Enrico Scholz +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +static inline ALWAYSINLINE int +vc_wait_exit_v13b(xid_t ctx) +{ + struct vcmd_wait_exit_v0 param = { .a = 0, .b = 0 }; + + return vserver(VCMD_wait_exit, CTX_USER2KERNEL(ctx), ¶m); +} diff --git a/util-vserver/lib/syscall_waitexit.c b/util-vserver/lib/syscall_waitexit.c new file mode 100644 index 0000000..1f20408 --- /dev/null +++ b/util-vserver/lib/syscall_waitexit.c @@ -0,0 +1,39 @@ +// $Id$ --*- c++ -*-- + +// Copyright (C) 2003 Enrico Scholz +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "vserver.h" +#include "vserver-internal.h" +#include "linuxvirtual.h" + +#if defined(VC_ENABLE_API_V13) +# include "syscall_waitexit-v13.hc" +#endif + +#if defined(VC_ENABLE_API_V13) + +int +vc_wait_exit(xid_t ctx) +{ + CALL_VC(CALL_VC_V13B(vc_wait_exit, ctx)); +} + +#endif diff --git a/util-vserver/lib/vserver.h b/util-vserver/lib/vserver.h index 2685511..10238ca 100644 --- a/util-vserver/lib/vserver.h +++ b/util-vserver/lib/vserver.h @@ -702,7 +702,11 @@ extern "C" { int vc_get_dlimit(char const *filename, xid_t xid, uint_least32_t flags, struct vc_ctx_dlimit *limits) VC_ATTR_NONNULL((1)); - + + /** \brief Waits for the end of a context + * \ingroup syscalls + */ + int vc_wait_exit(xid_t xid); typedef enum { vcFEATURE_VKILL, vcFEATURE_IATTR, vcFEATURE_RLIMIT, vcFEATURE_COMPAT, vcFEATURE_MIGRATE, vcFEATURE_NAMESPACE, -- 1.8.1.5