/*
* Jailhouse, a Linux-based partitioning hypervisor
*
- * Copyright (c) Siemens AG, 2013
+ * Copyright (c) Siemens AG, 2013-2016
*
* Authors:
* Jan Kiszka <jan.kiszka@siemens.com>
#ifndef _JAILHOUSE_ASM_CELL_H
#define _JAILHOUSE_ASM_CELL_H
-#include <asm/types.h>
-#include <asm/paging.h>
+#include <jailhouse/types.h>
+#include <asm/smp.h>
+#include <asm/spinlock.h>
+
+#ifndef __ASSEMBLY__
#include <jailhouse/cell-config.h>
+#include <jailhouse/paging.h>
#include <jailhouse/hypercall.h>
-struct cell {
- unsigned int id;
- unsigned int data_pages;
- struct jailhouse_cell_desc *config;
-
- struct cpu_set *cpu_set;
- struct cpu_set small_cpu_set;
+/** ARM-specific cell states. */
+struct arch_cell {
+ struct paging_structures mm;
+ struct smp_ops *smp;
- bool loadable;
+ spinlock_t caches_lock;
+ bool needs_flush;
- struct cell *next;
+ u32 irq_bitmap[1024/32];
- union {
- struct jailhouse_comm_region comm_region;
- u8 padding[PAGE_SIZE];
- } __attribute__((aligned(PAGE_SIZE))) comm_page;
+ unsigned int last_virt_id;
};
-extern struct cell root_cell;
+/** PCI-related cell states. */
+struct pci_cell {
+};
+#endif /* !__ASSEMBLY__ */
#endif /* !_JAILHOUSE_ASM_CELL_H */