mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
Add per domain server features, which are initialized by the supported features at domain introduction, or by live update from the migration stream. This requires to add the DOMAIN_DATA record to the migration stream, but for now it will only contain the feature word. Advertise the Xenstore features to guests by setting the appropriate bits in the ring page. Signed-off-by: Juergen Gross <jgross@suse.com> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
66 lines
1.3 KiB
C
66 lines
1.3 KiB
C
/* SPDX-License-Identifier: MIT */
|
|
|
|
/*
|
|
* Live Update interfaces for Xen Store Daemon.
|
|
* Copyright (C) 2022 Juergen Gross, SUSE LLC
|
|
*/
|
|
|
|
struct live_update {
|
|
/* For verification the correct connection is acting. */
|
|
struct connection *conn;
|
|
|
|
/* Pointer to the command used to request LU */
|
|
struct buffered_data *in;
|
|
|
|
#ifdef __MINIOS__
|
|
void *kernel;
|
|
unsigned int kernel_size;
|
|
unsigned int kernel_off;
|
|
|
|
#endif
|
|
|
|
char *filename;
|
|
char *cmdline;
|
|
|
|
/* Start parameters. */
|
|
bool force;
|
|
unsigned int timeout;
|
|
unsigned int version;
|
|
time_t started_at;
|
|
};
|
|
|
|
extern struct live_update *lu_status;
|
|
|
|
#ifndef NO_LIVE_UPDATE
|
|
struct connection *lu_get_connection(void);
|
|
bool lu_is_pending(void);
|
|
void lu_read_state(void);
|
|
|
|
/* Write the "OK" response for the live-update command */
|
|
unsigned int lu_write_response(FILE *fp);
|
|
|
|
int do_control_lu(const void *ctx, struct connection *conn, const char **vec,
|
|
int num);
|
|
|
|
/* Live update private interfaces. */
|
|
char *lu_exec(const void *ctx, int argc, char **argv);
|
|
const char *lu_arch(const void *ctx, struct connection *conn, const char **vec,
|
|
int num);
|
|
const char *lu_begin(struct connection *conn);
|
|
#else
|
|
static inline struct connection *lu_get_connection(void)
|
|
{
|
|
return NULL;
|
|
}
|
|
|
|
static inline unsigned int lu_write_response(FILE *fp)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline bool lu_is_pending(void)
|
|
{
|
|
return false;
|
|
}
|
|
#endif
|