Changeset 2744

Show
Ignore:
Timestamp:
07/14/08 22:09:00 (4 months ago)
Author:
dhozac
Message:

Add new 0x00020303 API, using pid namespaces.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/kernel/context_cmd.h

    r2619 r2744  
    2929 
    3030#define VCMD_ctx_create_v0      VC_CMD(VPROC, 1, 0) 
    31 #define VCMD_ctx_create         VC_CMD(VPROC, 1, 1) 
     31#define VCMD_ctx_create_v1      VC_CMD(VPROC, 1, 1) 
     32#define VCMD_ctx_create         VC_CMD(VPROC, 1, 2) 
    3233 
    3334struct  vcmd_ctx_create { 
     
    3637 
    3738#define VCMD_ctx_migrate_v0     VC_CMD(PROCMIG, 1, 0) 
    38 #define VCMD_ctx_migrate        VC_CMD(PROCMIG, 1, 1) 
     39#define VCMD_ctx_migrate_v1     VC_CMD(PROCMIG, 1, 1) 
     40#define VCMD_ctx_migrate        VC_CMD(PROCMIG, 1, 2) 
    3941 
    4042struct  vcmd_ctx_migrate { 
  • trunk/kernel/space_cmd.h

    r2413 r2744  
    1414#define VCMD_get_space_mask     VC_CMD(PROCALT, 4, 0) 
    1515 
     16#define VCMD_get_space_default  VC_CMD(PROCALT, 7, 0) 
     17 
    1618 
    1719struct  vcmd_space_mask { 
  • trunk/lib/Makefile-files

    r2742 r2744  
    158158                                lib/syscall_getbadness-v23.hc \ 
    159159                                lib/syscall_setbadness.c \ 
    160                                 lib/syscall_setbadness-v23.hc 
     160                                lib/syscall_setbadness-v23.hc \ 
     161                                lib/syscall_ctxcreate-v23.hc \ 
     162                                lib/syscall_ctxmigrate-v23.hc \ 
     163                                lib/syscall_getspacedefault.c \ 
     164                                lib/syscall_getspacedefault-v23.hc 
    161165 
    162166if ENSC_HAVE_C99_COMPILER 
  • trunk/lib/syscall_ctxcreate-v21.hc

    r2674 r2744  
    3434    data.flagword = flags->flagword & flags->mask; 
    3535 
    36   res = vserver(VCMD_ctx_create, CTX_USER2KERNEL(xid), &data); 
     36  res = vserver(VCMD_ctx_create_v1, CTX_USER2KERNEL(xid), &data); 
    3737  res = CTX_KERNEL2USER(res); 
    3838 
  • trunk/lib/syscall_ctxcreate.c

    r2578 r2744  
    3737#endif 
    3838 
     39#if defined(VC_ENABLE_API_V23) 
     40#  include "syscall_ctxcreate-v23.hc" 
     41#endif 
     42 
    3943#if defined(VC_ENABLE_API_V13) || defined(VC_ENABLE_API_V21) 
    4044xid_t 
    4145vc_ctx_create(xid_t xid, struct vc_ctx_flags *flags) 
    4246{ 
    43   CALL_VC(CALL_VC_V21 (vc_ctx_create, xid, flags), 
     47  CALL_VC(CALL_VC_V23P(vc_ctx_create, xid, flags), 
     48          CALL_VC_V21 (vc_ctx_create, xid, flags), 
    4449          CALL_VC_V13A(vc_ctx_create, xid, flags)); 
    4550} 
  • trunk/lib/syscall_ctxmigrate-v21.hc

    r2501 r2744  
    3535  } 
    3636 
    37   return vserver(VCMD_ctx_migrate, CTX_USER2KERNEL(xid), &data); 
     37  return vserver(VCMD_ctx_migrate_v1, CTX_USER2KERNEL(xid), &data); 
    3838} 
  • trunk/lib/syscall_ctxmigrate.c

    r2501 r2744  
    3737#endif 
    3838 
     39#if defined(VC_ENABLE_API_V23) 
     40#  include "syscall_ctxmigrate-v23.hc" 
     41#endif 
     42 
    3943#if defined(VC_ENABLE_API_V13) || defined(VC_ENABLE_API_V21) 
    4044int 
    4145vc_ctx_migrate(xid_t xid, uint_least64_t flags) 
    4246{ 
    43   CALL_VC(CALL_VC_SPACES(vc_ctx_migrate, xid, flags), 
     47  CALL_VC(CALL_VC_V23P  (vc_ctx_migrate, xid, flags), 
     48          CALL_VC_SPACES(vc_ctx_migrate, xid, flags), 
    4449          CALL_VC_V13A  (vc_ctx_migrate, xid)); 
    4550} 
  • trunk/lib/vserver-internal.h

    r2589 r2744  
    137137#else 
    138138#  define CALL_VC_V23(F,...)    CALL_VC_NOOP 
     139#endif 
     140 
     141#ifdef VC_ENABLE_API_V23 
     142#  define CALL_VC_V23P(F,...)   CALL_VC_GENERAL(0x00020303, v23, F, __VA_ARGS__) 
     143#else 
     144#  define CALL_VC_V23P(F,...)   CALL_VC_NOOP 
    139145#endif 
    140146 
  • trunk/lib/vserver.h

    r2741 r2744  
    764764  int           vc_enter_namespace(xid_t xid, uint_least64_t mask); 
    765765  int           vc_set_namespace(xid_t xid, uint_least64_t mask); 
    766   int           vc_cleanup_namespace(); 
    767   uint_least64_t vc_get_space_mask(); 
     766  int           vc_cleanup_namespace(void); 
     767  uint_least64_t vc_get_space_mask(void); 
     768  uint_least64_t vc_get_space_default(void); 
    768769 
    769770 
  • trunk/scripts/vserver.functions

    r2736 r2744  
    770770    local d="$vdir"/spaces 
    771771 
    772     ( test ! -e "$d"/pid && 
    773       ! $_VSERVER_INFO PIDSPACE FEATURE ) || \ 
     772    ( test ! -e "$d"/pid ) || \ 
    774773        OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --pid ) 
    775774