[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XEN][RFC PATCH v3 14/14] tools/xl: Add new xl command overlay for device tree overlay support
> On 8 Mar 2022, at 19:47, Vikram Garhwal <fnu.vikram@xxxxxxxxxx> wrote: > > Signed-off-by: Vikram Garhwal <fnu.vikram@xxxxxxxxxx> > --- > tools/xl/xl.h | 4 ++++ > tools/xl/xl_cmdtable.c | 6 ++++++ > tools/xl/xl_vmcontrol.c | 45 +++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 55 insertions(+) > > diff --git a/tools/xl/xl.h b/tools/xl/xl.h > index c5c4bedbdd..604fd5bb94 100644 > --- a/tools/xl/xl.h > +++ b/tools/xl/xl.h > @@ -97,6 +97,9 @@ struct save_file_header { > > #define SAVEFILE_BYTEORDER_VALUE ((uint32_t)0x01020304UL) > > +#define XL_DT_OVERLAY_ADD 1 > +#define XL_DT_OVERLAY_REMOVE 2 Maybe you can get rid of them and ... > + > void save_domain_core_begin(uint32_t domid, > int preserve_domid, > const char *override_config_file, > @@ -139,6 +142,7 @@ int main_shutdown(int argc, char **argv); > int main_reboot(int argc, char **argv); > int main_list(int argc, char **argv); > int main_vm_list(int argc, char **argv); > +int main_dt_overlay(int argc, char **argv); > int main_create(int argc, char **argv); > int main_config_update(int argc, char **argv); > int main_button_press(int argc, char **argv); > diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c > index 661323d488..5812d19db8 100644 > --- a/tools/xl/xl_cmdtable.c > +++ b/tools/xl/xl_cmdtable.c > @@ -20,6 +20,12 @@ > #include "xl.h" > > const struct cmd_spec cmd_table[] = { > + { "overlay", > + &main_dt_overlay, 1, 1, > + "Add/Remove a device tree overlay", > + "add/remove <.dtbo>" > + "-h print this help\n" > + }, > { "create", > &main_create, 1, 1, > "Create a domain from config file <filename>", > diff --git a/tools/xl/xl_vmcontrol.c b/tools/xl/xl_vmcontrol.c > index 435155a033..76b969dc33 100644 > --- a/tools/xl/xl_vmcontrol.c > +++ b/tools/xl/xl_vmcontrol.c > @@ -1262,6 +1262,51 @@ int main_create(int argc, char **argv) > return 0; > } > > +int main_dt_overlay(int argc, char **argv) > +{ > + const char *overlay_ops = argv[1]; > + const char *overlay_config_file = argv[2]; > + void *overlay_dtb = NULL; > + int rc; > + uint8_t op; > + int overlay_dtb_size = 0; > + > + if (overlay_ops == NULL) { > + fprintf(stderr, "No overlay operation mode provided\n"); > + return ERROR_FAIL; > + } > + > + if (strcmp(overlay_ops, "add") == 0) > + op = XL_DT_OVERLAY_ADD; > + else if (strcmp(overlay_ops, "remove") == 0) > + op = XL_DT_OVERLAY_REMOVE; Use them there, maybe defining const int <name> = <value> Since these values are only used there
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |