/* 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