On 2018-05-07 17:24, Ralf Ramsauer wrote: > Changes to the ABI of the communication region might break inmates > without noticing. Add the magic JHCOMM together with the ABI version as > a preamble of the structure. > > Signed-off-by: Ralf Ramsauer <[email protected]> > --- > hypervisor/control.c | 7 ++++++- > include/jailhouse/hypercall.h | 7 +++++++ > 2 files changed, 13 insertions(+), 1 deletion(-) > > diff --git a/hypervisor/control.c b/hypervisor/control.c > index 5cf96c95..df054cfb 100644 > --- a/hypervisor/control.c > +++ b/hypervisor/control.c > @@ -341,6 +341,7 @@ static int cell_create(struct per_cpu *cpu_data, unsigned > long config_address) > { > unsigned long cfg_page_offs = config_address & ~PAGE_MASK; > unsigned int cfg_pages, cell_pages, cpu, n; > + struct jailhouse_comm_region *comm_region; > const struct jailhouse_memory *mem; > struct jailhouse_cell_desc *cfg; > unsigned long cfg_total_size; > @@ -475,7 +476,11 @@ static int cell_create(struct per_cpu *cpu_data, > unsigned long config_address) > > config_commit(cell); > > - cell->comm_page.comm_region.cell_state = JAILHOUSE_CELL_SHUT_DOWN; > + comm_region = &cell->comm_page.comm_region; > + memcpy(comm_region->signature, COMM_REGION_MAGIC, > + sizeof(comm_region->signature)); > + comm_region->revision = COMM_REGION_ABI_REVISION; > + comm_region->cell_state = JAILHOUSE_CELL_SHUT_DOWN; > > last = &root_cell; > while (last->next) > diff --git a/include/jailhouse/hypercall.h b/include/jailhouse/hypercall.h > index 08bf73ff..6142b042 100644 > --- a/include/jailhouse/hypercall.h > +++ b/include/jailhouse/hypercall.h > @@ -89,7 +89,14 @@ > #define JAILHOUSE_CELL_SHUT_DOWN 2 /* terminal state */ > #define JAILHOUSE_CELL_FAILED 3 /* terminal state */ > > +#define COMM_REGION_ABI_REVISION 0 > +#define COMM_REGION_MAGIC "JHCOMM" > + > #define COMM_REGION_GENERIC_HEADER \ > + /** Communication region magic JHCOMM */ \ > + char signature[6]; \ > + /** Communication region ABI revision */ \ > + __u16 revision; \ > /** Message code sent from hypervisor to cell. */ \ > volatile __u32 msg_to_cell; \ > /** Reply code sent from cell to hypervisor. */ \ >
Sorry, forgot the most important thing: Update Documentation/hypervisor-interfaces.txt :) Jan -- Siemens AG, Corporate Technology, CT RDA IOT SES-DE Corporate Competence Center Embedded Linux -- You received this message because you are subscribed to the Google Groups "Jailhouse" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
