diff options
-rw-r--r-- | tools/Rules.mk | 18 | ||||
-rw-r--r-- | tools/guest-headers/Makefile | 12 | ||||
-rw-r--r-- | tools/include/SunOS/evtchn.h | 94 | ||||
-rw-r--r-- | tools/include/SunOS/privcmd.h | 85 | ||||
-rw-r--r-- | tools/include/SunOS/xenbus.h | 42 |
5 files changed, 230 insertions, 21 deletions
diff --git a/tools/Rules.mk b/tools/Rules.mk index 308f2dc022..4d0b193a53 100644 --- a/tools/Rules.mk +++ b/tools/Rules.mk @@ -37,18 +37,12 @@ $(eval $(check-y)) %.o: %.cc $(CC) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< -.PHONY: mk-symlinks mk-symlinks-xen mk-symlinks-$(XEN_OS) +.PHONY: mk-symlinks -mk-symlinks-SunOS: - -mk-symlinks-Linux: LINUX_ROOT=$(XEN_ROOT)/tools/include/Linux -mk-symlinks-Linux: - mkdir -p xen/linux - ( cd xen/linux && \ - ln -sf ../../$(LINUX_ROOT)/*.h . ) - ( cd xen && rm -f sys && ln -sf linux sys ) - -mk-symlinks-xen: +mk-symlinks: + mkdir -p xen/sys + ( cd xen/sys && \ + ln -sf ../../$(XEN_ROOT)/tools/include/$(XEN_OS)/*.h . ) mkdir -p xen ( cd xen && ln -sf ../$(XEN_ROOT)/xen/include/public/*.h . ) mkdir -p xen/hvm @@ -62,5 +56,3 @@ mk-symlinks-xen: ( cd xen/foreign && ln -sf ../../$(XEN_ROOT)/xen/include/public/foreign/reference.size . ) ( cd xen/foreign && ln -sf ../../$(XEN_ROOT)/xen/include/public/foreign/*.py . ) $(MAKE) -C xen/foreign - -mk-symlinks: mk-symlinks-xen mk-symlinks-$(XEN_OS) diff --git a/tools/guest-headers/Makefile b/tools/guest-headers/Makefile index b43b7f10a7..898ac34a10 100644 --- a/tools/guest-headers/Makefile +++ b/tools/guest-headers/Makefile @@ -7,15 +7,11 @@ all: .PHONY: check check: -.PHONY: install install-Linux install-SunOS +.PHONY: install -install-Linux: - mkdir -p $(DESTDIR)/usr/include/xen/linux - $(INSTALL_DATA) $(XEN_ROOT)/tools/include/Linux/*.h $(DESTDIR)/usr/include/xen/linux - -install-SunOS: - -install: install-$(XEN_OS) +install: + mkdir -p $(DESTDIR)/usr/include/xen/sys + $(INSTALL_DATA) $(XEN_ROOT)/tools/include/$(XEN_OS)/*.h $(DESTDIR)/usr/include/xen/sys .PHONY: clean clean: diff --git a/tools/include/SunOS/evtchn.h b/tools/include/SunOS/evtchn.h new file mode 100644 index 0000000000..abc8c60037 --- /dev/null +++ b/tools/include/SunOS/evtchn.h @@ -0,0 +1,94 @@ +/****************************************************************************** + * evtchn.h + * + * Interface to /dev/xen/evtchn. + * + * Copyright (c) 2003-2005, K A Fraser + * + * This file may be distributed separately from the Linux kernel, or + * incorporated into other software packages, subject to the following license: + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this source file (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef _XEN_SYS_EVTCHN_H +#define _XEN_SYS_EVTCHN_H + +#define _IOC_NONE 0 +#define _IOC(flag, letter, inum, size) ((letter) << 8 | (inum)) + +/* + * Bind a fresh port to VIRQ @virq. + * Return allocated port. + */ +#define IOCTL_EVTCHN_BIND_VIRQ \ + _IOC(_IOC_NONE, 'E', 0, sizeof(struct ioctl_evtchn_bind_virq)) +struct ioctl_evtchn_bind_virq { + unsigned int virq; +}; + +/* + * Bind a fresh port to remote <@remote_domain, @remote_port>. + * Return allocated port. + */ +#define IOCTL_EVTCHN_BIND_INTERDOMAIN \ + _IOC(_IOC_NONE, 'E', 1, sizeof(struct ioctl_evtchn_bind_interdomain)) +struct ioctl_evtchn_bind_interdomain { + unsigned int remote_domain, remote_port; +}; + +/* + * Allocate a fresh port for binding to @remote_domain. + * Return allocated port. + */ +#define IOCTL_EVTCHN_BIND_UNBOUND_PORT \ + _IOC(_IOC_NONE, 'E', 2, sizeof(struct ioctl_evtchn_bind_unbound_port)) +struct ioctl_evtchn_bind_unbound_port { + unsigned int remote_domain; +}; + +/* + * Unbind previously allocated @port. + */ +#define IOCTL_EVTCHN_UNBIND \ + _IOC(_IOC_NONE, 'E', 3, sizeof(struct ioctl_evtchn_unbind)) +struct ioctl_evtchn_unbind { + unsigned int port; +}; + +/* + * Notify the given @port. + */ +#define IOCTL_EVTCHN_NOTIFY \ + _IOC(_IOC_NONE, 'E', 4, sizeof(struct ioctl_evtchn_notify)) +struct ioctl_evtchn_notify { + unsigned int port; +}; + +#endif /* _XEN_SYS_EVTCHN_H */ + +/* + * Local variables: + * c-file-style: "solaris" + * indent-tabs-mode: t + * c-indent-level: 8 + * c-basic-offset: 8 + * tab-width: 8 + * End: + */ diff --git a/tools/include/SunOS/privcmd.h b/tools/include/SunOS/privcmd.h new file mode 100644 index 0000000000..31ea6a5c32 --- /dev/null +++ b/tools/include/SunOS/privcmd.h @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2003-2005, K A Fraser + * + * This file may be distributed separately from the Linux kernel, or + * incorporated into other software packages, subject to the following license: + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this source file (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +/* + * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _XEN_SYS_PRIVCMD_H +#define _XEN_SYS_PRIVCMD_H + +/* + * WARNING: + * These numbers and structure are built into the ON privcmd + * driver, as well as the low-level tools and libraries in + * the Xen consolidation. + */ + +#include <sys/types.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * ioctl numbers and corresponding data structures + */ + +#define __PRIVCMD_IOC (('p'<<24)|('r'<<16)|('v'<<8)) + +#define IOCTL_PRIVCMD_HYPERCALL (__PRIVCMD_IOC|0) +#define IOCTL_PRIVCMD_MMAP (__PRIVCMD_IOC|1) +#define IOCTL_PRIVCMD_MMAPBATCH (__PRIVCMD_IOC|2) + +typedef struct __privcmd_hypercall { + unsigned long op; + unsigned long arg[5]; +} privcmd_hypercall_t; + +typedef struct __privcmd_mmap_entry { + unsigned long va; + unsigned long mfn; + unsigned long npages; +} privcmd_mmap_entry_t; + +typedef struct __privcmd_mmap { + int num; + domid_t dom; /* target domain */ + privcmd_mmap_entry_t *entry; +} privcmd_mmap_t; + +typedef struct __privcmd_mmapbatch { + int num; /* number of pages to populate */ + domid_t dom; /* target domain */ + unsigned long addr; /* virtual address */ + unsigned long *arr; /* array of mfns - top nibble set on err */ +} privcmd_mmapbatch_t; + +#ifdef __cplusplus +} +#endif + +#endif /* _XEN_SYS_PRIVCMD_H */ diff --git a/tools/include/SunOS/xenbus.h b/tools/include/SunOS/xenbus.h new file mode 100644 index 0000000000..fc1035e8c2 --- /dev/null +++ b/tools/include/SunOS/xenbus.h @@ -0,0 +1,42 @@ +/* + * This file may be distributed separately from the Linux kernel, or + * incorporated into other software packages, subject to the following license: + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this source file (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +/* + * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _XEN_SYS_XENBUS_H +#define _XEN_SYS_XENBUS_H + +/* + * Return the xenstore event channel. + */ +#define IOCTL_XENBUS_XENSTORE_EVTCHN ('X' << 8) + +/* + * Notify the kernel that the xenstore is up and running + */ +#define IOCTL_XENBUS_NOTIFY_UP ('U' << 8) + +#endif /* _XEN_SYS_XENBUS_H */ |