Changeset 2501

Show
Ignore:
Timestamp:
02/20/07 18:33:35 (2 years ago)
Author:
dhozac
Message:

Add support for the migration flags.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ensc_wrappers/wrappers-vserver.hc

    r2416 r2501  
    6666 
    6767inline static WRAPPER_DECL void 
    68 Evc_ctx_migrate(xid_t xid
     68Evc_ctx_migrate(xid_t xid, uint_least64_t flags
    6969{ 
    70   FatalErrnoError(vc_ctx_migrate(xid)==-1, "vc_ctx_migrate()"); 
     70  FatalErrnoError(vc_ctx_migrate(xid, flags)==-1, "vc_ctx_migrate()"); 
    7171} 
    7272 
  • trunk/lib/syscall_ctxmigrate-v21.hc

    r2419 r2501  
    2323 
    2424static inline ALWAYSINLINE int 
    25 vc_ctx_migrate_spaces(xid_t xid
     25vc_ctx_migrate_spaces(xid_t xid, uint_least64_t flags
    2626{ 
    27   int ret = vc_getXIDType(xid); 
     27  int ret; 
     28  struct vcmd_ctx_migrate data = { .flagword = flags }; 
     29 
     30  ret = vc_getXIDType(xid); 
    2831  if (ret == vcTYPE_STATIC || ret == vcTYPE_DYNAMIC) { 
    2932    ret = vc_enter_namespace(xid, vc_get_space_mask() & ~(CLONE_NEWNS|CLONE_FS)); 
     
    3235  } 
    3336 
    34   return vserver(VCMD_ctx_migrate_v0, CTX_USER2KERNEL(xid), NULL); 
     37  return vserver(VCMD_ctx_migrate, CTX_USER2KERNEL(xid), &data); 
    3538} 
  • trunk/lib/syscall_ctxmigrate.c

    r2415 r2501  
    3939#if defined(VC_ENABLE_API_V13) || defined(VC_ENABLE_API_V21) 
    4040int 
    41 vc_ctx_migrate(xid_t xid
     41vc_ctx_migrate(xid_t xid, uint_least64_t flags
    4242{ 
    43   CALL_VC(CALL_VC_SPACES(vc_ctx_migrate, xid), 
     43  CALL_VC(CALL_VC_SPACES(vc_ctx_migrate, xid, flags), 
    4444          CALL_VC_V13A  (vc_ctx_migrate, xid)); 
    4545} 
  • trunk/lib/vserver.h

    r2455 r2501  
    269269 
    270270 
     271// the process context migration flags 
     272#define VC_VXM_SET_INIT                 0x00000001 
     273#define VC_VXM_SET_REAPER               0x00000002 
     274 
     275 
    271276#ifndef CLONE_NEWNS 
    272277#  define CLONE_NEWNS                   0x00020000 
     
    394399     *  \ingroup syscalls 
    395400     * 
    396      *  \param   xid  The new context 
     401     *  \param   xid    The new context 
     402     *  \param   flags  The flags, see VC_VXM_* 
    397403     *  \returns 0 on success, -1 on errors */ 
    398   int           vc_ctx_migrate(xid_t xid); 
     404  int           vc_ctx_migrate(xid_t xid, uint_least64_t flags); 
    399405 
    400406    /** \brief   Statistics about a context */ 
  • trunk/lib_internal/switchtowatchxid.c

    r1988 r2501  
    3636 
    3737  if (vc_isSupported(vcFEATURE_MIGRATE)) { 
    38     if (vc_ctx_migrate(1)==-1) { 
     38    if (vc_ctx_migrate(1, 0)==-1) { 
    3939      if (errptr) *errptr = "vc_migrate_context()"; 
    4040      return false; 
  • trunk/src/rpm-fake-resolver.c

    r2403 r2501  
    262262  } 
    263263  else if (vc_isSupported(vcFEATURE_MIGRATE)) 
    264       Evc_ctx_migrate(xid); 
     264      Evc_ctx_migrate(xid, 0); 
    265265  else { 
    266266#ifdef VC_ENABLE_API_COMPAT 
  • trunk/src/rpm-fake.c

    r2448 r2501  
    596596 
    597597  if (vc_isSupported(vcFEATURE_MIGRATE)) 
    598     res = vc_ctx_migrate(ctx); 
     598    res = vc_ctx_migrate(ctx, 0); 
    599599  else { 
    600600#ifdef VC_ENABLE_API_COMPAT   
  • trunk/src/vcontext.c

    r2448 r2501  
    283283 
    284284    if (args->do_migrate && !args->do_migrateself) 
    285       Evc_ctx_migrate(xid); 
     285      Evc_ctx_migrate(xid, 0); 
    286286 
    287287    if (args->uid != NULL) {