Files
Juergen Gross fdd31b3bed tools/xenstored: add server feature support
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>
2025-07-28 13:07:08 +02:00

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