mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
network.c, xi_stop.c, xi_start.c, xi_destroy.c, xi_build.c: Bug fixes and clean ups.
51 lines
998 B
C
51 lines
998 B
C
|
|
#include "hypervisor-ifs/dom0_ops.h"
|
|
#include "dom0_defs.h"
|
|
#include "mem_defs.h"
|
|
|
|
static char *argv0 = "internal_domain_stop";
|
|
|
|
static int kill_domain(int dom_id, int force)
|
|
{
|
|
int err;
|
|
dom0_op_t op;
|
|
|
|
op.cmd = DOM0_DESTROYDOMAIN;
|
|
op.u.killdomain.domain = dom_id;
|
|
op.u.killdomain.force = force;
|
|
|
|
err = do_dom0_op(&op);
|
|
|
|
return (err < 0) ? -1 : 0;
|
|
}
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
int ret, dom;
|
|
|
|
if ( argv[0] != NULL )
|
|
argv0 = argv[0];
|
|
|
|
if ( (argc < 2) || (argc > 3) )
|
|
{
|
|
usage:
|
|
fprintf(stderr, "Usage: %s [-f] <domain_id>\n", argv0);
|
|
fprintf(stderr, " -f: Forces immediate destruction of <domain_id>\n");
|
|
return 1;
|
|
}
|
|
|
|
if ( (argc == 3) && strcmp("-f", argv[1]) )
|
|
goto usage;
|
|
|
|
dom = atoi(argv[argc-1]);
|
|
if ( dom == 0 )
|
|
{
|
|
ERROR("Did you really mean domain 0?");
|
|
return 1;
|
|
}
|
|
|
|
ret = kill_domain(dom, argc == 3);
|
|
|
|
return (ret != 0) ? 1 : 0;
|
|
}
|