Hi Jan,
On 28/09/2020 12:00, Jan Beulich wrote:
There's no need to expose them.
We are going to need them for LiveUpdate and Non-cooperative Live
Migration as the save/restore is happening outside of event_fifo.c.
This is because we tried to keep all the save/restore code in a separate
directory.
Although, I could also see pros for scatter save/restore across the code
base.
Cheers,
Signed-off-by: Jan Beulich <jbeul...@suse.com>
---
I wonder whether we shouldn't do away with event_fifo.h altogether.
--- a/xen/common/event_fifo.c
+++ b/xen/common/event_fifo.c
@@ -21,6 +21,27 @@
#include <public/event_channel.h>
+struct evtchn_fifo_queue {
+ uint32_t *head; /* points into control block */
+ uint32_t tail;
+ uint8_t priority;
+ spinlock_t lock;
+};
+
+struct evtchn_fifo_vcpu {
+ struct evtchn_fifo_control_block *control_block;
+ struct evtchn_fifo_queue queue[EVTCHN_FIFO_MAX_QUEUES];
+};
+
+#define EVTCHN_FIFO_EVENT_WORDS_PER_PAGE (PAGE_SIZE / sizeof(event_word_t))
+#define EVTCHN_FIFO_MAX_EVENT_ARRAY_PAGES \
+ (EVTCHN_FIFO_NR_CHANNELS / EVTCHN_FIFO_EVENT_WORDS_PER_PAGE)
+
+struct evtchn_fifo_domain {
+ event_word_t *event_array[EVTCHN_FIFO_MAX_EVENT_ARRAY_PAGES];
+ unsigned int num_evtchns;
+};
+
static inline event_word_t *evtchn_fifo_word_from_port(const struct domain *d,
unsigned int port)
{
--- a/xen/include/xen/event_fifo.h
+++ b/xen/include/xen/event_fifo.h
@@ -9,27 +9,6 @@
#ifndef __XEN_EVENT_FIFO_H__
#define __XEN_EVENT_FIFO_H__
-struct evtchn_fifo_queue {
- uint32_t *head; /* points into control block */
- uint32_t tail;
- uint8_t priority;
- spinlock_t lock;
-};
-
-struct evtchn_fifo_vcpu {
- struct evtchn_fifo_control_block *control_block;
- struct evtchn_fifo_queue queue[EVTCHN_FIFO_MAX_QUEUES];
-};
-
-#define EVTCHN_FIFO_EVENT_WORDS_PER_PAGE (PAGE_SIZE / sizeof(event_word_t))
-#define EVTCHN_FIFO_MAX_EVENT_ARRAY_PAGES \
- (EVTCHN_FIFO_NR_CHANNELS / EVTCHN_FIFO_EVENT_WORDS_PER_PAGE)
-
-struct evtchn_fifo_domain {
- event_word_t *event_array[EVTCHN_FIFO_MAX_EVENT_ARRAY_PAGES];
- unsigned int num_evtchns;
-};
-
int evtchn_fifo_init_control(struct evtchn_init_control *init_control);
int evtchn_fifo_expand_array(const struct evtchn_expand_array *expand_array);
void evtchn_fifo_destroy(struct domain *domain);
--
Julien Grall