view tools/xenstore/xenstored_domain.h @ 7480:a90d670c98b9

Change the semantics of GetDomainPath so that it always succeeds, regardless of
whether a domain has been introduced to the store. Added a separate message
XS_IS_DOMAIN_INTRODUCED and API for that (xs_is_domain_introduced) to determine
whether the domain has really been introduced. This change means that the
tools can determine the correct domain path earlier in the domain creation
process, which is particularly a factor with live migration, as it allows us
to create the devices earlier in the process, and unpause the new domain before
performing the introduce. Until recently we already had these features, but
the simplification of the interface between xend and xenstored caused breakage.

No longer clear out the domain path when a domain is introduced -- this was a
hack to work around the recent problematic semantics of GetDomainPath.

Do not write the contents of the info block to the store. All the configuration
info is written to the /vm path, and anything else in the info block is either
dealt with explicitly or is ephemeral and has no place in the store.

Signed-off-by: Ewan Mellor <>
date Sun Oct 23 22:45:15 2005 +0100 (2005-10-23)
parents 76a7a7aa27e4
children e7d769001b4b
line source
1 /*
2 Domain communications for Xen Store Daemon.
3 Copyright (C) 2005 Rusty Russell IBM Corporation
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
23 void handle_event(void);
25 /* domid, mfn, eventchn, path */
26 void do_introduce(struct connection *conn, struct buffered_data *in);
28 /* domid */
29 void do_is_domain_introduced(struct connection *conn, const char *domid_str);
31 /* domid */
32 void do_release(struct connection *conn, const char *domid_str);
34 /* domid */
35 void do_get_domain_path(struct connection *conn, const char *domid_str);
37 /* Returns the event channel handle */
38 int domain_init(void);
40 /* Returns the implicit path of a connection (only domains have this) */
41 const char *get_implicit_path(const struct connection *conn);
43 /* Read existing connection information from store. */
44 void restore_existing_connections(void);
46 /* Can connection attached to domain read/write. */
47 bool domain_can_read(struct connection *conn);
48 bool domain_can_write(struct connection *conn);
50 #endif /* _XENSTORED_DOMAIN_H */