{ "version", no_argument, 0, CMD_VERSION },
{ "cap", required_argument, 0, CMD_CAP },
{ "ctx", required_argument, 0, CMD_CTX },
+ { "xid", required_argument, 0, CMD_CTX },
{ "disconnect", no_argument, 0, CMD_DISCONNECT },
{ "domainname", required_argument, 0, CMD_DOMAINNAME },
{ "flag", required_argument, 0, CMD_FLAG },
WRITE_MSG(fd, "Usage: ");
WRITE_STR(fd, cmd);
WRITE_MSG(fd,
- " [--cap [!]<cap_name>] [--secure] [--ctx <num>] [--disconnect]\n"
+ " [--cap [!]<cap_name>] [--secure] [--xid <num>] [--disconnect]\n"
" [--domainname <name>] [--hostname <name>] [--flag <flags>+]\n"
" [--silent] [--] command arguments ...\n"
"\n"
" repeated several time.\n"
" See /usr/include/linux/capability.h\n"
"\n"
- "--ctx num\n"
+ "--xid num\n"
" Select the context. On root in context 0 is allowed to\n"
" select a specific context.\n"
" Context number 1 is special. It can see all processes\n"
" in any contexts, but can't kill them though.\n"
- " Option --ctx may be repeated several times to specify up to 16 contexts.\n"
+ " Option --xid may be repeated several times to specify up to 16 contexts.\n"
"--disconnect\n"
" Start the command in background and make the process\n"
WRITE_MSG(2, "Too many contexts given\n");
exit(255);
}
- args.ctxs[args.nbctx++] = atoi(optarg);
+ args.ctxs[args.nbctx++] = Evc_xidopt2xid(optarg, true);
break;
#include <sys/resource.h>
#include <sys/wait.h>
+#define ENSC_WRAPPERS_VSERVER 1
+#include <wrappers.h>
+
#define CMD_HELP 0x8000
#define CMD_VERSION 0x8001
+int wrapper_exit_code = 1;
+
static struct option const
CMDLINE_OPTIONS[] = {
- { "help", no_argument, 0, CMD_HELP },
- { "version", no_argument, 0, CMD_VERSION },
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "xid", required_argument, 0, 'c' },
{ 0,0,0,0 }
};
struct Arguments
{
- xid_t ctx;
+ xid_t xid;
int sig;
};
WRITE_MSG(fd, "Usage: ");
WRITE_STR(fd, cmd);
WRITE_MSG(fd,
- " [-c <ctx>] [-s <signal>] [--] <pid>*\n"
+ " [--xid|-c <xid>] [-s <signal>] [--] <pid>*\n"
"Please report bugs to " PACKAGE_BUGREPORT "\n");
exit(res);
}
#if defined(VC_ENABLE_API_LEGACY)
inline static ALWAYSINLINE int
-kill_wrapper_legacy(xid_t UNUSED ctx, char const *proc, int UNUSED sig)
+kill_wrapper_legacy(xid_t UNUSED xid, char const *proc, int UNUSED sig)
{
pid_t pid = fork();
if (pid==-1) {
}
static int
-kill_wrapper(xid_t ctx, char const *pid, int sig)
+kill_wrapper(xid_t xid, char const *pid, int sig)
{
- //printf("kill_wrapper(%u, %s, %i)\n", ctx, pid, sig);
- if (vc_ctx_kill(ctx,atoi(pid),sig)==-1) {
+ //printf("kill_wrapper(%u, %s, %i)\n", xid, pid, sig);
+ if (vc_ctx_kill(xid,atoi(pid),sig)==-1) {
int err = errno;
if (vc_get_version(VC_CAT_COMPAT)==-1)
- return kill_wrapper_legacy(ctx, pid, sig);
+ return kill_wrapper_legacy(xid, pid, sig);
else {
errno = err;
perror("vkill: vc_ctx_kill()");
}
#else // VC_ENABLE_API_LEGACY
inline static int
-kill_wrapper(xid_t ctx, char const *pid, int sig)
+kill_wrapper(xid_t xid, char const *pid, int sig)
{
- if (vc_ctx_kill(ctx,atoi(pid),sig)==-1) {
+ if (vc_ctx_kill(xid,atoi(pid),sig)==-1) {
perror("vkill: vc_ctx_kill()");
return 1;
}
{
int fail = 0;
struct Arguments args = {
- .ctx = VC_NOCTX,
+ .xid = VC_NOCTX,
.sig = SIGTERM,
};
switch (c) {
case CMD_HELP : showHelp(1, argv[0], 0);
case CMD_VERSION : showVersion();
- case 'c' : args.ctx = atoi(optarg); break;
- case 's' : args.sig = str2sig(optarg); break;
+ case 'c' : args.xid = Evc_xidopt2xid(optarg,true); break;
+ case 's' : args.sig = str2sig(optarg); break;
default :
WRITE_MSG(2, "Try '");
WRITE_STR(2, argv[0]);
return EXIT_FAILURE;
}
- if (args.ctx==VC_NOCTX && optind==argc) {
+ if (args.xid==VC_NOCTX && optind==argc) {
WRITE_MSG(2, "No pid specified\n");
return EXIT_FAILURE;
}
if (optind==argc)
- fail += kill_wrapper(args.ctx, "0", args.sig);
+ fail += kill_wrapper(args.xid, "0", args.sig);
else for (;optind<argc;++optind)
- fail += kill_wrapper(args.ctx, argv[optind], args.sig);
+ fail += kill_wrapper(args.xid, argv[optind], args.sig);
return fail==0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
{ "help", no_argument, 0, CMD_HELP },
{ "version", no_argument, 0, CMD_VERSION },
{ "ctx", required_argument, 0, CMD_XID },
+ { "xid", required_argument, 0, CMD_XID },
{ "fill-rate", required_argument, 0, CMD_FRATE },
{ "interval", required_argument, 0, CMD_INTERVAL },
{ "tokens", required_argument, 0, CMD_TOKENS },
WRITE_MSG(fd, "Usage:\n ");
WRITE_STR(fd, cmd);
WRITE_MSG(fd,
- " [--ctx <xid>] [--fill-rate <rate>] [--interval <interval>] [--tokens <tokens>] [--tokens_min <tokens>] [--tokens_max <tokens>] [--cpu_mask <mask>] [--] [<command> <args>*]\n"
+ " [--xid <xid>] [--fill-rate <rate>] [--interval <interval>] [--tokens <tokens>] [--tokens_min <tokens>] [--tokens_max <tokens>] [--cpu_mask <mask>] [--] [<command> <args>*]\n"
"\n"
"Please report bugs to " PACKAGE_BUGREPORT "\n");
switch (c) {
case CMD_HELP : showHelp(1, argv[0], 0);
case CMD_VERSION : showVersion();
- case CMD_XID : xid = atoi(optarg); break;
- case CMD_FRATE : sched.fill_rate = atoi(optarg); break;
- case CMD_INTERVAL : sched.interval = atoi(optarg); break;
- case CMD_TOKENS : sched.tokens = atoi(optarg); break;
- case CMD_TOK_MIN : sched.tokens_min = atoi(optarg); break;
- case CMD_TOK_MAX : sched.tokens_max = atoi(optarg); break;
- case CMD_CPU_MASK : sched.cpu_mask = atoi(optarg); break;
+ case CMD_XID : xid = Evc_xidopt2xid(optarg,true); break;
+ case CMD_FRATE : sched.fill_rate = atoi(optarg); break;
+ case CMD_INTERVAL : sched.interval = atoi(optarg); break;
+ case CMD_TOKENS : sched.tokens = atoi(optarg); break;
+ case CMD_TOK_MIN : sched.tokens_min = atoi(optarg); break;
+ case CMD_TOK_MAX : sched.tokens_max = atoi(optarg); break;
+ case CMD_CPU_MASK : sched.cpu_mask = atoi(optarg); break;
default :
WRITE_MSG(2, "Try '");
WRITE_STR(2, argv[0]);