[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC XEN PATCH v3 22/39] tools/xen-ndctl: add command 'setup-data'
This command is to query Xen hypervisor to setup the specified PMEM range for guest data usage. Signed-off-by: Haozhong Zhang <haozhong.zhang@xxxxxxxxx> --- Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Cc: Wei Liu <wei.liu2@xxxxxxxxxx> --- tools/misc/xen-ndctl.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tools/misc/xen-ndctl.c b/tools/misc/xen-ndctl.c index 058f8ccaf5..320633ae05 100644 --- a/tools/misc/xen-ndctl.c +++ b/tools/misc/xen-ndctl.c @@ -37,6 +37,7 @@ static int handle_help(int argc, char *argv[]); static int handle_list(int argc, char *argv[]); static int handle_list_cmds(int argc, char *argv[]); static int handle_setup_mgmt(int argc, char *argv[]); +static int handle_setup_data(int argc, char *argv[]); static const struct xen_ndctl_cmd { @@ -72,6 +73,18 @@ static const struct xen_ndctl_cmd .handler = handle_list_cmds, }, + { + .name = "setup-data", + .syntax = "<smfn> <emfn> <mgmt_smfn> <mgmt_emfn>", + .help = "Setup a PMEM region from MFN 'smfn' to 'emfn' for guest data usage,\n" + "which can be used as the backend of the virtual NVDIMM devices.\n\n" + "PMEM pages from MFN 'mgmt_smfn' to 'mgmt_emfn' is used to manage\n" + "the above PMEM region, and should not overlap with MFN from 'smfn'\n" + "to 'emfn'.\n", + .handler = handle_setup_data, + .need_xc = true, + }, + { .name = "setup-mgmt", .syntax = "<smfn> <emfn>", @@ -277,6 +290,29 @@ static int handle_setup_mgmt(int argc, char **argv) return xc_nvdimm_pmem_setup_mgmt(xch, smfn, emfn); } +static int handle_setup_data(int argc, char **argv) +{ + unsigned long smfn, emfn, mgmt_smfn, mgmt_emfn; + + if ( argc < 5 ) + { + fprintf(stderr, "Too few arguments.\n\n"); + show_help(argv[0]); + return -EINVAL; + } + + if ( !string_to_mfn(argv[1], &smfn) || + !string_to_mfn(argv[2], &emfn) || + !string_to_mfn(argv[3], &mgmt_smfn) || + !string_to_mfn(argv[4], &mgmt_emfn) ) + return -EINVAL; + + if ( argc > 5 ) + return handle_unrecognized_argument(argv[0], argv[5]); + + return xc_nvdimm_pmem_setup_data(xch, smfn, emfn, mgmt_smfn, mgmt_emfn); +} + int main(int argc, char *argv[]) { unsigned int i; -- 2.14.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |