diff options
author | Keir Fraser <keir@xen.org> | 2010-12-03 06:37:48 +0000 |
---|---|---|
committer | Keir Fraser <keir@xen.org> | 2010-12-03 06:37:48 +0000 |
commit | d5c277ab26f7fbb64b8b1d09b9dc328212cd2988 (patch) | |
tree | a929a95e433cc1dc1b3f56043c95684421879331 /extras/mini-os/lib | |
parent | bc20e3f30fbfc5cdebc0cd47d31abb77ad63c298 (diff) | |
download | xen-d5c277ab26f7fbb64b8b1d09b9dc328212cd2988.tar.gz xen-d5c277ab26f7fbb64b8b1d09b9dc328212cd2988.tar.bz2 xen-d5c277ab26f7fbb64b8b1d09b9dc328212cd2988.zip |
minios: reverse layering of xc vs minios fd close
Having minios close() call back into the libxc core close routines is
backwards and unexpected. On every other OS the libxc core close
routine calls close().
Export minios specific functions from the minios libxc code to
implement fd closing for each type of xc file handle and simply call
close() in the core close routine.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Diffstat (limited to 'extras/mini-os/lib')
-rw-r--r-- | extras/mini-os/lib/sys.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/extras/mini-os/lib/sys.c b/extras/mini-os/lib/sys.c index 42681742b8..b127996df5 100644 --- a/extras/mini-os/lib/sys.c +++ b/extras/mini-os/lib/sys.c @@ -83,10 +83,9 @@ } #define NOFILE 32 -extern int xc_evtchn_close(int fd); -struct xc_interface; -extern int xc_interface_close_core(struct xc_interface*, int fd); -extern int xc_gnttab_close(int fd); +extern void minios_interface_close_fd(int fd); +extern void minios_evtchn_close_fd(int fd); +extern void minios_gnttab_close_fd(int fd); pthread_mutex_t fd_lock = PTHREAD_MUTEX_INITIALIZER; struct file files[NOFILE] = { @@ -414,13 +413,13 @@ int close(int fd) } #endif case FTYPE_XC: - xc_interface_close_core(0,fd); + minios_interface_close_fd(fd); return 0; case FTYPE_EVTCHN: - xc_evtchn_close(fd); + minios_evtchn_close_fd(fd); return 0; case FTYPE_GNTMAP: - xc_gnttab_close(fd); + minios_gnttab_close_fd(fd); return 0; case FTYPE_TAP: shutdown_netfront(files[fd].tap.dev); |