X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=ensc_wrappers%2Fwrappers-vserver.hc;fp=ensc_wrappers%2Fwrappers-vserver.hc;h=dddc258a0f2edfaf9a0c753ad57b411f2e6b0038;hb=ec4370f7ebd7fb0ce7f002f5bf2c74f03acd3ec1;hp=1b8f3f63326221945263b5cac8a3c00d8c9dceff;hpb=9234e6a7cb48373edec38284ba54a819037b79b2;p=util-vserver.git diff --git a/ensc_wrappers/wrappers-vserver.hc b/ensc_wrappers/wrappers-vserver.hc index 1b8f3f6..dddc258 100644 --- a/ensc_wrappers/wrappers-vserver.hc +++ b/ensc_wrappers/wrappers-vserver.hc @@ -1,4 +1,4 @@ -// $Id: wrappers-vserver.hc,v 1.11 2004/10/19 23:11:23 ensc Exp $ --*- c++ -*-- +// $Id: wrappers-vserver.hc 2501 2007-02-20 17:33:35Z dhozac $ --*- c++ -*-- // Copyright (C) 2004 Enrico Scholz // @@ -20,6 +20,8 @@ # error wrappers_handler.hc can not be used in this way #endif +#if defined(VC_ENABLE_API_COMPAT) || defined(VC_ENABLE_API_LEGACY) + inline static WRAPPER_DECL xid_t Evc_new_s_context(xid_t ctx, unsigned int remove_cap, unsigned int flags) { @@ -28,6 +30,8 @@ Evc_new_s_context(xid_t ctx, unsigned int remove_cap, unsigned int flags) return res; } +#endif + inline static WRAPPER_DECL xid_t Evc_get_task_xid(pid_t pid) { @@ -36,6 +40,14 @@ Evc_get_task_xid(pid_t pid) return res; } +inline static WRAPPER_DECL nid_t +Evc_get_task_nid(pid_t pid) +{ + register nid_t res = vc_get_task_nid(pid); + FatalErrnoError(res==VC_NOCTX, "vc_get_task_nid()"); + return res; +} + inline static WRAPPER_DECL xid_t Evc_ctx_create(xid_t xid) { @@ -44,10 +56,24 @@ Evc_ctx_create(xid_t xid) return res; } +inline static WRAPPER_DECL nid_t +Evc_net_create(nid_t nid) +{ + register nid_t res = vc_net_create(nid); + FatalErrnoError(res==VC_NOCTX, "vc_net_create()"); + return res; +} + +inline static WRAPPER_DECL void +Evc_ctx_migrate(xid_t xid, uint_least64_t flags) +{ + FatalErrnoError(vc_ctx_migrate(xid, flags)==-1, "vc_ctx_migrate()"); +} + inline static WRAPPER_DECL void -Evc_ctx_migrate(xid_t xid) +Evc_net_migrate(nid_t nid) { - FatalErrnoError(vc_ctx_migrate(xid)==-1, "vc_ctx_migrate()"); + FatalErrnoError(vc_net_migrate(nid)==-1, "vc_net_migrate()"); } inline static WRAPPER_DECL void @@ -62,6 +88,18 @@ Evc_set_cflags(xid_t xid, struct vc_ctx_flags const *flags) FatalErrnoError(vc_set_cflags(xid, flags)==-1, "vc_set_cflags()"); } +inline static WRAPPER_DECL void +Evc_get_nflags(nid_t nid, struct vc_net_flags *flags) +{ + FatalErrnoError(vc_get_nflags(nid, flags)==-1, "vc_get_nflags()"); +} + +inline static WRAPPER_DECL void +Evc_set_nflags(nid_t nid, struct vc_net_flags const *flags) +{ + FatalErrnoError(vc_set_nflags(nid, flags)==-1, "vc_set_nflags()"); +} + inline static WRAPPER_DECL void Evc_set_vhi_name(xid_t xid, vc_uts_type type, char const *val, size_t len) @@ -82,15 +120,27 @@ Evc_set_ccaps(xid_t xid, struct vc_ctx_caps const *caps) } inline static WRAPPER_DECL void -Evc_set_namespace() +Evc_get_ncaps(nid_t nid, struct vc_net_caps *caps) +{ + FatalErrnoError(vc_get_ncaps(nid, caps)==-1, "vc_get_ncaps()"); +} + +inline static WRAPPER_DECL void +Evc_set_ncaps(nid_t nid, struct vc_net_caps const *caps) { - FatalErrnoError(vc_set_namespace()==-1, "vc_set_namespace()"); + FatalErrnoError(vc_set_ncaps(nid, caps)==-1, "vc_set_ncaps()"); } inline static WRAPPER_DECL void -Evc_enter_namespace(xid_t xid) +Evc_set_namespace(xid_t xid, uint_least64_t mask) { - FatalErrnoError(vc_enter_namespace(xid)==-1, "vc_enter_namespace()"); + FatalErrnoError(vc_set_namespace(xid, mask)==-1, "vc_set_namespace()"); +} + +inline static WRAPPER_DECL void +Evc_enter_namespace(xid_t xid, uint_least64_t mask) +{ + FatalErrnoError(vc_enter_namespace(xid, mask)==-1, "vc_enter_namespace()"); } inline static WRAPPER_DECL xid_t @@ -118,3 +168,15 @@ Evc_xidopt2xid(char const *id, bool honor_static) return rc; } + +inline static WRAPPER_DECL nid_t +Evc_nidopt2nid(char const *id, bool honor_static) +{ + char const * err; + nid_t rc = vc_nidopt2nid(id, honor_static, &err); + if (__builtin_expect(rc==VC_NOCTX,0)) { + ENSC_DETAIL1(msg, "vc_nidopt2nid", id, 1); + FatalErrnoErrorFail(msg); + } + return rc; +}