ia64/xen-unstable

view tools/xenstore/xenstored_domain.h @ 7238:971e7c7411b3

Raise an exception if an error appears on the pipes to our children, and make
sure that the child's pipes are closed even under that exception. Move the
handling of POLLHUP to the end of the loop, so that we guarantee to read any
remaining data from the child if POLLHUP and POLLIN appear at the same time.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
author emellor@ewan
date Thu Oct 06 10:13:11 2005 +0100 (2005-10-06)
parents 06d84bf87159
children 76a7a7aa27e4
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
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
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 */
20 #ifndef _XENSTORED_DOMAIN_H
21 #define _XENSTORED_DOMAIN_H
23 void handle_event(int event_fd);
25 /* domid, mfn, eventchn, path */
26 void do_introduce(struct connection *conn, struct buffered_data *in);
28 /* domid */
29 void do_release(struct connection *conn, const char *domid_str);
31 /* domid */
32 void do_get_domain_path(struct connection *conn, const char *domid_str);
34 /* Returns the event channel handle */
35 int domain_init(void);
37 /* Returns the implicit path of a connection (only domains have this) */
38 const char *get_implicit_path(const struct connection *conn);
40 /* Read existing connection information from store. */
41 void restore_existing_connections(void);
43 /* Can connection attached to domain read/write. */
44 bool domain_can_read(struct connection *conn);
45 bool domain_can_write(struct connection *conn);
47 #endif /* _XENSTORED_DOMAIN_H */