[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Rename libxc => libxenctrl and xc.h => xen/xenctrl.h
# HG changeset patch # User cl349@xxxxxxxxxxxxxxxxxxxx # Node ID 6e899a3840b2dbf3535bb1cc850310b4228cb86f # Parent be5c24f2709c84b1ae4305a2f98be1372fd28230 Rename libxc => libxenctrl and xc.h => xen/xenctrl.h Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxx> diff -r be5c24f2709c -r 6e899a3840b2 tools/blktap/blktaplib.h --- a/tools/blktap/blktaplib.h Wed Aug 24 21:50:52 2005 +++ b/tools/blktap/blktaplib.h Wed Aug 24 23:07:29 2005 @@ -7,7 +7,7 @@ #ifndef __BLKTAPLIB_H__ #define __BLKTAPLIB_H__ -#include <xc.h> +#include <xenctrl.h> #include <sys/user.h> #include <xen/xen.h> #include <xen/io/blkif.h> diff -r be5c24f2709c -r 6e899a3840b2 tools/blktap/parallax/block-async.h --- a/tools/blktap/parallax/block-async.h Wed Aug 24 21:50:52 2005 +++ b/tools/blktap/parallax/block-async.h Wed Aug 24 23:07:29 2005 @@ -7,7 +7,7 @@ #define _BLOCKASYNC_H_ #include <assert.h> -#include <xc.h> +#include <xenctrl.h> #include "vdi.h" struct io_ret diff -r be5c24f2709c -r 6e899a3840b2 tools/blktap/parallax/blockstore.h --- a/tools/blktap/parallax/blockstore.h Wed Aug 24 21:50:52 2005 +++ b/tools/blktap/parallax/blockstore.h Wed Aug 24 23:07:29 2005 @@ -10,7 +10,7 @@ #define __BLOCKSTORE_H__ #include <netinet/in.h> -#include <xc.h> +#include <xenctrl.h> #define BLOCK_SIZE 4096 #define BLOCK_SHIFT 12 diff -r be5c24f2709c -r 6e899a3840b2 tools/console/Makefile --- a/tools/console/Makefile Wed Aug 24 21:50:52 2005 +++ b/tools/console/Makefile Wed Aug 24 23:07:29 2005 @@ -26,11 +26,11 @@ xenconsoled: $(patsubst %.c,%.o,$(wildcard daemon/*.c)) $(CC) $(CFLAGS) $^ -o $@ -L$(XEN_LIBXC) -L$(XEN_XENSTORE) \ - -lxc -lxenstore + -lxenctrl -lxenstore xenconsole: $(patsubst %.c,%.o,$(wildcard client/*.c)) $(CC) $(CFLAGS) $^ -o $@ -L$(XEN_LIBXC) -L$(XEN_XENSTORE) \ - -lxc -lxenstore + -lxenctrl -lxenstore install: $(BIN) $(INSTALL_DIR) -p $(DESTDIR)/$(DAEMON_INSTALL_DIR) diff -r be5c24f2709c -r 6e899a3840b2 tools/console/client/main.c --- a/tools/console/client/main.c Wed Aug 24 21:50:52 2005 +++ b/tools/console/client/main.c Wed Aug 24 23:07:29 2005 @@ -36,7 +36,7 @@ #include <errno.h> #include <pty.h> -#include "xc.h" +#include "xenctrl.h" #include "xs.h" #define ESCAPE_CHARACTER 0x1d diff -r be5c24f2709c -r 6e899a3840b2 tools/console/daemon/io.c --- a/tools/console/daemon/io.c Wed Aug 24 21:50:52 2005 +++ b/tools/console/daemon/io.c Wed Aug 24 23:07:29 2005 @@ -23,7 +23,7 @@ #include "utils.h" #include "io.h" -#include "xc.h" +#include "xenctrl.h" #include "xs.h" #include "xen/io/domain_controller.h" #include "xcs_proto.h" diff -r be5c24f2709c -r 6e899a3840b2 tools/console/daemon/main.c --- a/tools/console/daemon/main.c Wed Aug 24 21:50:52 2005 +++ b/tools/console/daemon/main.c Wed Aug 24 23:07:29 2005 @@ -25,7 +25,7 @@ #include <unistd.h> #include <sys/types.h> -#include "xc.h" +#include "xenctrl.h" #include "xen/io/domain_controller.h" #include "xcs_proto.h" diff -r be5c24f2709c -r 6e899a3840b2 tools/console/daemon/utils.c --- a/tools/console/daemon/utils.c Wed Aug 24 21:50:52 2005 +++ b/tools/console/daemon/utils.c Wed Aug 24 23:07:29 2005 @@ -33,7 +33,7 @@ #include <sys/un.h> #include <string.h> -#include "xc.h" +#include "xenctrl.h" #include "xen/io/domain_controller.h" #include "xcs_proto.h" diff -r be5c24f2709c -r 6e899a3840b2 tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/linux-xen-low.c --- a/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/linux-xen-low.c Wed Aug 24 21:50:52 2005 +++ b/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/linux-xen-low.c Wed Aug 24 23:07:29 2005 @@ -35,7 +35,7 @@ #include <stdlib.h> #include <unistd.h> #include <errno.h> -#include <xc.h> +#include <xenctrl.h> #define TRACE_ENTER /* printf("enter %s\n", __FUNCTION__) */ long (*myptrace)(enum __ptrace_request, pid_t, long, long); int (*myxcwait)(int domain, int *status, int options) ; diff -r be5c24f2709c -r 6e899a3840b2 tools/debugger/libxendebug/Makefile --- a/tools/debugger/libxendebug/Makefile Wed Aug 24 21:50:52 2005 +++ b/tools/debugger/libxendebug/Makefile Wed Aug 24 23:07:29 2005 @@ -20,7 +20,7 @@ CFLAGS += -Wp,-MD,.$(@F).d DEPS = .*.d -LDFLAGS += -L$(XEN_ROOT)/tools/libxc -lxc +LDFLAGS += -L$(XEN_ROOT)/tools/libxc -lxenctrl LIB_OBJS := $(patsubst %.c,%.o,$(SRCS)) PIC_OBJS := $(patsubst %.c,%.opic,$(SRCS)) diff -r be5c24f2709c -r 6e899a3840b2 tools/debugger/libxendebug/xendebug.c --- a/tools/debugger/libxendebug/xendebug.c Wed Aug 24 21:50:52 2005 +++ b/tools/debugger/libxendebug/xendebug.c Wed Aug 24 23:07:29 2005 @@ -12,7 +12,7 @@ #include <string.h> #include <errno.h> #include <sys/mman.h> -#include <xc.h> +#include <xenctrl.h> #include "list.h" #if defined(__i386__) diff -r be5c24f2709c -r 6e899a3840b2 tools/debugger/libxendebug/xendebug.h --- a/tools/debugger/libxendebug/xendebug.h Wed Aug 24 21:50:52 2005 +++ b/tools/debugger/libxendebug/xendebug.h Wed Aug 24 23:07:29 2005 @@ -9,7 +9,7 @@ #ifndef _XENDEBUG_H_DEFINED #define _XENDEBUG_H_DEFINED -#include <xc.h> +#include <xenctrl.h> int xendebug_attach(int xc_handle, u32 domid, diff -r be5c24f2709c -r 6e899a3840b2 tools/debugger/pdb/pdb_caml_domain.c --- a/tools/debugger/pdb/pdb_caml_domain.c Wed Aug 24 21:50:52 2005 +++ b/tools/debugger/pdb/pdb_caml_domain.c Wed Aug 24 23:07:29 2005 @@ -6,7 +6,7 @@ * PDB's OCaml interface library for debugging domains */ -#include <xc.h> +#include <xenctrl.h> #include <xendebug.h> #include <errno.h> #include <stdio.h> diff -r be5c24f2709c -r 6e899a3840b2 tools/debugger/pdb/pdb_caml_evtchn.c --- a/tools/debugger/pdb/pdb_caml_evtchn.c Wed Aug 24 21:50:52 2005 +++ b/tools/debugger/pdb/pdb_caml_evtchn.c Wed Aug 24 23:07:29 2005 @@ -6,7 +6,7 @@ * PDB's OCaml interface library for event channels */ -#include <xc.h> +#include <xenctrl.h> #include <stdio.h> #include <stdlib.h> #include <string.h> diff -r be5c24f2709c -r 6e899a3840b2 tools/debugger/pdb/pdb_caml_process.c --- a/tools/debugger/pdb/pdb_caml_process.c Wed Aug 24 21:50:52 2005 +++ b/tools/debugger/pdb/pdb_caml_process.c Wed Aug 24 23:07:29 2005 @@ -15,7 +15,7 @@ #include <caml/memory.h> #include <caml/mlvalues.h> -#include <xc.h> +#include <xenctrl.h> #include <xen/xen.h> #include <xen/io/domain_controller.h> #include <xen/linux/privcmd.h> diff -r be5c24f2709c -r 6e899a3840b2 tools/debugger/pdb/pdb_caml_xc.c --- a/tools/debugger/pdb/pdb_caml_xc.c Wed Aug 24 21:50:52 2005 +++ b/tools/debugger/pdb/pdb_caml_xc.c Wed Aug 24 23:07:29 2005 @@ -6,7 +6,7 @@ * PDB's OCaml interface library for debugging domains */ -#include <xc.h> +#include <xenctrl.h> #include <xendebug.h> #include <errno.h> #include <stdio.h> diff -r be5c24f2709c -r 6e899a3840b2 tools/debugger/pdb/pdb_caml_xcs.c --- a/tools/debugger/pdb/pdb_caml_xcs.c Wed Aug 24 21:50:52 2005 +++ b/tools/debugger/pdb/pdb_caml_xcs.c Wed Aug 24 23:07:29 2005 @@ -17,7 +17,7 @@ #include <sys/types.h> #include <sys/socket.h> #include <errno.h> -#include <xc.h> +#include <xenctrl.h> #include <xen/xen.h> #include <xen/io/domain_controller.h> diff -r be5c24f2709c -r 6e899a3840b2 tools/debugger/pdb/pdb_xen.c --- a/tools/debugger/pdb/pdb_xen.c Wed Aug 24 21:50:52 2005 +++ b/tools/debugger/pdb/pdb_xen.c Wed Aug 24 23:07:29 2005 @@ -7,7 +7,7 @@ * PDB interface library for accessing Xen */ -#include <xc.h> +#include <xenctrl.h> #include <stdio.h> #include <stdlib.h> #include <errno.h> diff -r be5c24f2709c -r 6e899a3840b2 tools/firmware/acpi/acpi2_0.h --- a/tools/firmware/acpi/acpi2_0.h Wed Aug 24 21:50:52 2005 +++ b/tools/firmware/acpi/acpi2_0.h Wed Aug 24 23:07:29 2005 @@ -18,7 +18,7 @@ #ifndef _ACPI_2_0_H_ #define _ACPI_2_0_H_ -#include "xc.h" // for u8, u16, u32, u64 definition +#include "xenctrl.h" // for u8, u16, u32, u64 definition #pragma pack (1) diff -r be5c24f2709c -r 6e899a3840b2 tools/ioemu/hw/i8254.c --- a/tools/ioemu/hw/i8254.c Wed Aug 24 21:50:52 2005 +++ b/tools/ioemu/hw/i8254.c Wed Aug 24 23:07:29 2005 @@ -22,7 +22,7 @@ * THE SOFTWARE. */ #include "vl.h" -#include "xc.h" +#include "xenctrl.h" #include <io/ioreq.h> //#define DEBUG_PIT diff -r be5c24f2709c -r 6e899a3840b2 tools/ioemu/hw/i8259.c --- a/tools/ioemu/hw/i8259.c Wed Aug 24 21:50:52 2005 +++ b/tools/ioemu/hw/i8259.c Wed Aug 24 23:07:29 2005 @@ -22,7 +22,7 @@ * THE SOFTWARE. */ #include "vl.h" -#include "xc.h" +#include "xenctrl.h" #include <io/ioreq.h> /* debug PIC */ diff -r be5c24f2709c -r 6e899a3840b2 tools/ioemu/hw/ioapic.h --- a/tools/ioemu/hw/ioapic.h Wed Aug 24 21:50:52 2005 +++ b/tools/ioemu/hw/ioapic.h Wed Aug 24 23:07:29 2005 @@ -26,7 +26,7 @@ #ifndef __IOAPIC_H #define __IOAPIC_H -#include "xc.h" +#include "xenctrl.h" #include <io/ioreq.h> #include <io/vmx_vlapic.h> diff -r be5c24f2709c -r 6e899a3840b2 tools/ioemu/target-i386-dm/Makefile --- a/tools/ioemu/target-i386-dm/Makefile Wed Aug 24 21:50:52 2005 +++ b/tools/ioemu/target-i386-dm/Makefile Wed Aug 24 23:07:29 2005 @@ -188,7 +188,7 @@ ######################################################### DEFINES+=-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DAPIC_SUPPORT -LIBS+=-lm -L../../libxc -lxc +LIBS+=-lm -L../../libxc -lxenctrl ifndef CONFIG_USER_ONLY LIBS+=-lz endif diff -r be5c24f2709c -r 6e899a3840b2 tools/ioemu/target-i386-dm/helper2.c --- a/tools/ioemu/target-i386-dm/helper2.c Wed Aug 24 21:50:52 2005 +++ b/tools/ioemu/target-i386-dm/helper2.c Wed Aug 24 23:07:29 2005 @@ -47,7 +47,7 @@ #include <fcntl.h> #include <sys/ioctl.h> -#include "xc.h" +#include "xenctrl.h" #include <io/ioreq.h> #include "cpu.h" diff -r be5c24f2709c -r 6e899a3840b2 tools/ioemu/vl.c --- a/tools/ioemu/vl.c Wed Aug 24 21:50:52 2005 +++ b/tools/ioemu/vl.c Wed Aug 24 23:07:29 2005 @@ -72,7 +72,7 @@ #endif #endif /* CONFIG_SDL */ -#include "xc.h" +#include "xenctrl.h" #include "exec-all.h" //#define DO_TB_FLUSH diff -r be5c24f2709c -r 6e899a3840b2 tools/libxc/Makefile --- a/tools/libxc/Makefile Wed Aug 24 21:50:52 2005 +++ b/tools/libxc/Makefile Wed Aug 24 23:07:29 2005 @@ -48,8 +48,8 @@ LIB_OBJS := $(patsubst %.c,%.o,$(SRCS)) PIC_OBJS := $(patsubst %.c,%.opic,$(SRCS)) -LIB := libxc.a libxc-pic.a -LIB += libxc.so libxc.so.$(MAJOR) libxc.so.$(MAJOR).$(MINOR) +LIB := libxenctrl.a libxenctrl-pic.a +LIB += libxenctrl.so libxenctrl.so.$(MAJOR) libxenctrl.so.$(MAJOR).$(MINOR) all: build build: check-for-zlib mk-symlinks @@ -77,11 +77,11 @@ install: build [ -d $(DESTDIR)/usr/$(LIBDIR) ] || $(INSTALL_DIR) $(DESTDIR)/usr/$(LIBDIR) [ -d $(DESTDIR)/usr/include ] || $(INSTALL_DIR) $(DESTDIR)/usr/include - $(INSTALL_PROG) libxc.so.$(MAJOR).$(MINOR) $(DESTDIR)/usr/$(LIBDIR) - $(INSTALL_DATA) libxc.a $(DESTDIR)/usr/$(LIBDIR) - ln -sf libxc.so.$(MAJOR).$(MINOR) $(DESTDIR)/usr/$(LIBDIR)/libxc.so.$(MAJOR) - ln -sf libxc.so.$(MAJOR) $(DESTDIR)/usr/$(LIBDIR)/libxc.so - $(INSTALL_DATA) xc.h $(DESTDIR)/usr/include + $(INSTALL_PROG) libxenctrl.so.$(MAJOR).$(MINOR) $(DESTDIR)/usr/$(LIBDIR) + $(INSTALL_DATA) libxenctrl.a $(DESTDIR)/usr/$(LIBDIR) + ln -sf libxenctrl.so.$(MAJOR).$(MINOR) $(DESTDIR)/usr/$(LIBDIR)/libxenctrl.so.$(MAJOR) + ln -sf libxenctrl.so.$(MAJOR) $(DESTDIR)/usr/$(LIBDIR)/libxenctrl.so + $(INSTALL_DATA) xenctrl.h $(DESTDIR)/usr/include/xen .PHONY: TAGS clean rpm install all @@ -100,18 +100,18 @@ mv staging/i386/*.rpm . rm -rf staging -libxc.a: $(LIB_OBJS) +libxenctrl.a: $(LIB_OBJS) $(AR) rc $@ $^ -libxc-pic.a: $(PIC_OBJS) +libxenctrl-pic.a: $(PIC_OBJS) $(AR) rc $@ $^ -libxc.so: libxc.so.$(MAJOR) +libxenctrl.so: libxenctrl.so.$(MAJOR) ln -sf $< $@ -libxc.so.$(MAJOR): libxc.so.$(MAJOR).$(MINOR) +libxenctrl.so.$(MAJOR): libxenctrl.so.$(MAJOR).$(MINOR) ln -sf $< $@ -libxc.so.$(MAJOR).$(MINOR): $(PIC_OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -Wl,-soname -Wl,libxc.so.$(MAJOR) -shared -o $@ $^ -lz +libxenctrl.so.$(MAJOR).$(MINOR): $(PIC_OBJS) + $(CC) $(CFLAGS) $(LDFLAGS) -Wl,-soname -Wl,libxenctrl.so.$(MAJOR) -shared -o $@ $^ -lz -include $(DEPS) diff -r be5c24f2709c -r 6e899a3840b2 tools/libxc/xc_private.h --- a/tools/libxc/xc_private.h Wed Aug 24 21:50:52 2005 +++ b/tools/libxc/xc_private.h Wed Aug 24 23:07:29 2005 @@ -14,7 +14,7 @@ #include <errno.h> #include <string.h> -#include "xc.h" +#include "xenctrl.h" #include <xen/linux/privcmd.h> diff -r be5c24f2709c -r 6e899a3840b2 tools/misc/Makefile --- a/tools/misc/Makefile Wed Aug 24 21:50:52 2005 +++ b/tools/misc/Makefile Wed Aug 24 23:07:29 2005 @@ -50,4 +50,4 @@ $(CC) -c $(CFLAGS) -o $@ $< $(TARGETS): %: %.o Makefile - $(CC) $(CFLAGS) -o $@ $< -L$(XEN_LIBXC) -lxc + $(CC) $(CFLAGS) -o $@ $< -L$(XEN_LIBXC) -lxenctrl diff -r be5c24f2709c -r 6e899a3840b2 tools/misc/cpuperf/Makefile --- a/tools/misc/cpuperf/Makefile Wed Aug 24 21:50:52 2005 +++ b/tools/misc/cpuperf/Makefile Wed Aug 24 23:07:29 2005 @@ -37,7 +37,7 @@ $(CC) $(CFLAGS) -o $@ $< cpuperf-xen: cpuperf.c $(HDRS) Makefile - $(CC) $(CFLAGS) -I $(XEN_LIBXC) -L$(XEN_LIBXC) -lxc -DXENO -o $@ $< + $(CC) $(CFLAGS) -I $(XEN_LIBXC) -L$(XEN_LIBXC) -lxenctrl -DXENO -o $@ $< cpuperf-perfcntr: cpuperf.c $(HDRS) Makefile $(CC) $(CFLAGS) -DPERFCNTR -o $@ $< diff -r be5c24f2709c -r 6e899a3840b2 tools/misc/cpuperf/cpuperf_xeno.h --- a/tools/misc/cpuperf/cpuperf_xeno.h Wed Aug 24 21:50:52 2005 +++ b/tools/misc/cpuperf/cpuperf_xeno.h Wed Aug 24 23:07:29 2005 @@ -9,7 +9,7 @@ * */ -#include <xc.h> +#include <xenctrl.h> static int xc_handle; diff -r be5c24f2709c -r 6e899a3840b2 tools/misc/xc_shadow.c --- a/tools/misc/xc_shadow.c Wed Aug 24 21:50:52 2005 +++ b/tools/misc/xc_shadow.c Wed Aug 24 23:07:29 2005 @@ -11,7 +11,7 @@ */ -#include <xc.h> +#include <xenctrl.h> #include <stdio.h> #include <stdlib.h> #include <sys/mman.h> diff -r be5c24f2709c -r 6e899a3840b2 tools/misc/xenperf.c --- a/tools/misc/xenperf.c Wed Aug 24 21:50:52 2005 +++ b/tools/misc/xenperf.c Wed Aug 24 23:07:29 2005 @@ -11,7 +11,7 @@ */ -#include <xc.h> +#include <xenctrl.h> #include <stdio.h> #include <stdlib.h> #include <sys/mman.h> diff -r be5c24f2709c -r 6e899a3840b2 tools/python/setup.py --- a/tools/python/setup.py Wed Aug 24 21:50:52 2005 +++ b/tools/python/setup.py Wed Aug 24 23:07:29 2005 @@ -17,7 +17,7 @@ XEN_ROOT + "/tools/xenstore", ] -libraries = [ "xc", "xenstore" ] +libraries = [ "xenctrl", "xenstore" ] xc = Extension("xc", extra_compile_args = extra_compile_args, @@ -41,7 +41,7 @@ sources = [ "xen/lowlevel/xs/xs.c" ]) setup(name = 'xen', - version = '2.0', + version = '3.0', description = 'Xen', packages = ['xen', 'xen.lowlevel', diff -r be5c24f2709c -r 6e899a3840b2 tools/python/xen/lowlevel/xc/xc.c --- a/tools/python/xen/lowlevel/xc/xc.c Wed Aug 24 21:50:52 2005 +++ b/tools/python/xen/lowlevel/xc/xc.c Wed Aug 24 23:07:29 2005 @@ -5,7 +5,7 @@ */ #include <Python.h> -#include <xc.h> +#include <xenctrl.h> #include <zlib.h> #include <fcntl.h> #include <netinet/in.h> diff -r be5c24f2709c -r 6e899a3840b2 tools/python/xen/lowlevel/xu/xu.c --- a/tools/python/xen/lowlevel/xu/xu.c Wed Aug 24 21:50:52 2005 +++ b/tools/python/xen/lowlevel/xu/xu.c Wed Aug 24 23:07:29 2005 @@ -21,7 +21,7 @@ #include <unistd.h> #include <errno.h> #include <signal.h> -#include <xc.h> +#include <xenctrl.h> #include <xen/xen.h> #include <xen/io/domain_controller.h> diff -r be5c24f2709c -r 6e899a3840b2 tools/xcs/Makefile --- a/tools/xcs/Makefile Wed Aug 24 21:50:52 2005 +++ b/tools/xcs/Makefile Wed Aug 24 23:07:29 2005 @@ -34,10 +34,10 @@ xcsdump: xcsdump.c dump.c $(CC) $(CFLAGS) -o xcsdump xcsdump.c -L$(XEN_LIBXC) \ - ctrl_interface.c evtchn.c dump.c -lxc + ctrl_interface.c evtchn.c dump.c -lxenctrl $(BIN): $(OBJS) - $(CC) $(CFLAGS) $^ -o $@ -L$(XEN_LIBXC) -lxc + $(CC) $(CFLAGS) $^ -o $@ -L$(XEN_LIBXC) -lxenctrl $(OBJS): $(HDRS) diff -r be5c24f2709c -r 6e899a3840b2 tools/xcs/dump.h --- a/tools/xcs/dump.h Wed Aug 24 21:50:52 2005 +++ b/tools/xcs/dump.h Wed Aug 24 23:07:29 2005 @@ -20,7 +20,7 @@ #define XENCTLD_ERROR_H #include <stdint.h> -#include <xc.h> +#include <xenctrl.h> #include <xen/io/domain_controller.h> void dump_msg(const control_msg_t *msg, uint64_t flags); diff -r be5c24f2709c -r 6e899a3840b2 tools/xcs/xcs.h --- a/tools/xcs/xcs.h Wed Aug 24 21:50:52 2005 +++ b/tools/xcs/xcs.h Wed Aug 24 23:07:29 2005 @@ -11,7 +11,7 @@ #define __XCS_H__ #include <pthread.h> -#include <xc.h> +#include <xenctrl.h> #include <xen/xen.h> #include <xen/io/domain_controller.h> #include <xen/linux/privcmd.h> diff -r be5c24f2709c -r 6e899a3840b2 tools/xcs/xcsdump.c --- a/tools/xcs/xcsdump.c Wed Aug 24 21:50:52 2005 +++ b/tools/xcs/xcsdump.c Wed Aug 24 23:07:29 2005 @@ -16,7 +16,7 @@ #include <sys/socket.h> #include <sys/un.h> #include <ctype.h> -#include <xc.h> +#include <xenctrl.h> #include <xen/xen.h> #include <xen/io/domain_controller.h> #include <getopt.h> diff -r be5c24f2709c -r 6e899a3840b2 tools/xcutils/Makefile --- a/tools/xcutils/Makefile Wed Aug 24 21:50:52 2005 +++ b/tools/xcutils/Makefile Wed Aug 24 23:07:29 2005 @@ -30,7 +30,7 @@ PROGRAMS = xc_restore xc_save -LDLIBS = -L$(XEN_LIBXC) -lxc +LDLIBS = -L$(XEN_LIBXC) -lxenctrl .PHONY: all all: build diff -r be5c24f2709c -r 6e899a3840b2 tools/xcutils/xc_restore.c --- a/tools/xcutils/xc_restore.c Wed Aug 24 21:50:52 2005 +++ b/tools/xcutils/xc_restore.c Wed Aug 24 23:07:29 2005 @@ -11,7 +11,7 @@ #include <stdio.h> #include <err.h> -#include <xc.h> +#include <xenctrl.h> int main(int argc, char **argv) diff -r be5c24f2709c -r 6e899a3840b2 tools/xcutils/xc_save.c --- a/tools/xcutils/xc_save.c Wed Aug 24 21:50:52 2005 +++ b/tools/xcutils/xc_save.c Wed Aug 24 23:07:29 2005 @@ -11,7 +11,7 @@ #include <stdio.h> #include <err.h> -#include <xc.h> +#include <xenctrl.h> int main(int argc, char **argv) diff -r be5c24f2709c -r 6e899a3840b2 tools/xenstore/Makefile --- a/tools/xenstore/Makefile Wed Aug 24 21:50:52 2005 +++ b/tools/xenstore/Makefile Wed Aug 24 23:07:29 2005 @@ -32,7 +32,7 @@ ln -sf $(XEN_ROOT)/xen/include/public $@ xenstored: xenstored_core.o xenstored_watch.o xenstored_domain.o xenstored_transaction.o xs_lib.o talloc.o utils.o - $(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -lxc -o $@ + $(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -lxenctrl -o $@ xenstored_test: xenstored_core_test.o xenstored_watch_test.o xenstored_domain_test.o xenstored_transaction_test.o xs_lib.o talloc_test.o fake_libxc.o utils.o $(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@ @@ -103,7 +103,7 @@ export $(TESTENV); PID=`./xenstored_test --output-pid --trace-file=/tmp/trace`; ./xs_stress 5000; ret=$$?; kill $$PID; exit $$ret xs_dom0_test: xs_dom0_test.o utils.o - $(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -lxc -o $@ + $(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -lxenctrl -o $@ TAGS: etags `find . -name '*.[ch]'` diff -r be5c24f2709c -r 6e899a3840b2 tools/xenstore/xs_dom0_test.c --- a/tools/xenstore/xs_dom0_test.c Wed Aug 24 21:50:52 2005 +++ b/tools/xenstore/xs_dom0_test.c Wed Aug 24 23:07:29 2005 @@ -3,7 +3,7 @@ #include <sys/ioctl.h> #include "xs.h" #include "utils.h" -#include <xc.h> +#include <xenctrl.h> #include <xen/linux/privcmd.h> #include <stdio.h> #include <unistd.h> diff -r be5c24f2709c -r 6e899a3840b2 tools/xenstore/xs_lib.h --- a/tools/xenstore/xs_lib.h Wed Aug 24 21:50:52 2005 +++ b/tools/xenstore/xs_lib.h Wed Aug 24 23:07:29 2005 @@ -22,7 +22,7 @@ #include <stdbool.h> #include <limits.h> -#include <xc.h> +#include <xenctrl.h> /* Bitmask of permissions. */ enum xs_perm_type { diff -r be5c24f2709c -r 6e899a3840b2 tools/xentrace/Makefile --- a/tools/xentrace/Makefile Wed Aug 24 21:50:52 2005 +++ b/tools/xentrace/Makefile Wed Aug 24 23:07:29 2005 @@ -36,4 +36,4 @@ $(RM) *.a *.so *.o *.rpm $(BIN) %: %.c $(HDRS) Makefile - $(CC) $(CFLAGS) -o $@ $< -L$(XEN_LIBXC) -lxc + $(CC) $(CFLAGS) -o $@ $< -L$(XEN_LIBXC) -lxenctrl diff -r be5c24f2709c -r 6e899a3840b2 tools/xentrace/xenctx.c --- a/tools/xentrace/xenctx.c Wed Aug 24 21:50:52 2005 +++ b/tools/xentrace/xenctx.c Wed Aug 24 23:07:29 2005 @@ -21,7 +21,7 @@ #include <argp.h> #include <signal.h> -#include "xc.h" +#include "xenctrl.h" #ifdef __i386__ void print_ctx(vcpu_guest_context_t *ctx1) diff -r be5c24f2709c -r 6e899a3840b2 tools/libxc/xenctrl.h --- /dev/null Wed Aug 24 21:50:52 2005 +++ b/tools/libxc/xenctrl.h Wed Aug 24 23:07:29 2005 @@ -0,0 +1,558 @@ +/****************************************************************************** + * xenctrl.h + * + * A library for low-level access to the Xen control interfaces. + * + * Copyright (c) 2003-2004, K A Fraser. + */ + +#ifndef __XC_H__ +#define __XC_H__ + +#include <stdint.h> + +typedef uint8_t u8; +typedef uint16_t u16; +typedef uint32_t u32; +typedef uint64_t u64; +typedef int8_t s8; +typedef int16_t s16; +typedef int32_t s32; +typedef int64_t s64; + +#include <sys/ptrace.h> +#include <xen/xen.h> +#include <xen/dom0_ops.h> +#include <xen/event_channel.h> +#include <xen/sched_ctl.h> +#include <xen/acm.h> + +#ifdef __ia64__ +#define XC_PAGE_SHIFT 14 +#else +#define XC_PAGE_SHIFT 12 +#endif +#define XC_PAGE_SIZE (1UL << XC_PAGE_SHIFT) +#define XC_PAGE_MASK (~(XC_PAGE_SIZE-1)) + +/* + * DEFINITIONS FOR CPU BARRIERS + */ + +#if defined(__i386__) +#define mb() __asm__ __volatile__ ( "lock; addl $0,0(%%esp)" : : : "memory" ) +#define rmb() __asm__ __volatile__ ( "lock; addl $0,0(%%esp)" : : : "memory" ) +#define wmb() __asm__ __volatile__ ( "" : : : "memory") +#elif defined(__x86_64__) +#define mb() __asm__ __volatile__ ( "mfence" : : : "memory") +#define rmb() __asm__ __volatile__ ( "lfence" : : : "memory") +#define wmb() __asm__ __volatile__ ( "" : : : "memory") +#elif defined(__ia64__) +/* FIXME */ +#define mb() +#define rmb() +#define wmb() +#else +#error "Define barriers" +#endif + +/* + * INITIALIZATION FUNCTIONS + */ + +/** + * This function opens a handle to the hypervisor interface. This function can + * be called multiple times within a single process. Multiple processes can + * have an open hypervisor interface at the same time. + * + * Each call to this function should have a corresponding call to + * xc_interface_close(). + * + * This function can fail if the caller does not have superuser permission or + * if a Xen-enabled kernel is not currently running. + * + * @return a handle to the hypervisor interface or -1 on failure + */ +int xc_interface_open(void); + +/** + * This function closes an open hypervisor interface. + * + * This function can fail if the handle does not represent an open interface or + * if there were problems closing the interface. + * + * @parm xc_handle a handle to an open hypervisor interface + * @return 0 on success, -1 otherwise. + */ +int xc_interface_close(int xc_handle); + +/* + * DOMAIN DEBUGGING FUNCTIONS + */ + +typedef struct xc_core_header { + unsigned int xch_magic; + unsigned int xch_nr_vcpus; + unsigned int xch_nr_pages; + unsigned int xch_ctxt_offset; + unsigned int xch_index_offset; + unsigned int xch_pages_offset; +} xc_core_header_t; + + +long xc_ptrace(enum __ptrace_request request, + u32 domid, + long addr, + long data); + +long xc_ptrace_core(enum __ptrace_request request, + u32 domid, + long addr, + long data); + +int xc_waitdomain(int domain, + int *status, + int options); + +int xc_waitdomain_core(int domain, + int *status, + int options); + +/* + * DOMAIN MANAGEMENT FUNCTIONS + */ + +typedef struct { + u32 domid; + u32 ssidref; + unsigned int dying:1, crashed:1, shutdown:1, + paused:1, blocked:1, running:1; + unsigned int shutdown_reason; /* only meaningful if shutdown==1 */ + unsigned long nr_pages; + unsigned long shared_info_frame; + u64 cpu_time; + unsigned long max_memkb; + unsigned int vcpus; + s32 vcpu_to_cpu[MAX_VIRT_CPUS]; + cpumap_t cpumap[MAX_VIRT_CPUS]; +} xc_dominfo_t; + +typedef dom0_getdomaininfo_t xc_domaininfo_t; +int xc_domain_create(int xc_handle, + u32 ssidref, + u32 *pdomid); + + +int xc_domain_dumpcore(int xc_handle, + u32 domid, + const char *corename); + + +/** + * This function pauses a domain. A paused domain still exists in memory + * however it does not receive any timeslices from the hypervisor. + * + * @parm xc_handle a handle to an open hypervisor interface + * @parm domid the domain id to pause + * @return 0 on success, -1 on failure. + */ +int xc_domain_pause(int xc_handle, + u32 domid); +/** + * This function unpauses a domain. The domain should have been previously + * paused. + * + * @parm xc_handle a handle to an open hypervisor interface + * @parm domid the domain id to unpause + * return 0 on success, -1 on failure + */ +int xc_domain_unpause(int xc_handle, + u32 domid); + +/** + * This function will destroy a domain. Destroying a domain removes the domain + * completely from memory. This function should be called after sending the + * domain a SHUTDOWN control message to free up the domain resources. + * + * @parm xc_handle a handle to an open hypervisor interface + * @parm domid the domain id to destroy + * @return 0 on success, -1 on failure + */ +int xc_domain_destroy(int xc_handle, + u32 domid); +int xc_domain_pincpu(int xc_handle, + u32 domid, + int vcpu, + cpumap_t *cpumap); +/** + * This function will return information about one or more domains. It is + * designed to iterate over the list of domains. If a single domain is + * requested, this function will return the next domain in the list - if + * one exists. It is, therefore, important in this case to make sure the + * domain requested was the one returned. + * + * @parm xc_handle a handle to an open hypervisor interface + * @parm first_domid the first domain to enumerate information from. Domains + * are currently enumerate in order of creation. + * @parm max_doms the number of elements in info + * @parm info an array of max_doms size that will contain the information for + * the enumerated domains. + * @return the number of domains enumerated or -1 on error + */ +int xc_domain_getinfo(int xc_handle, + u32 first_domid, + unsigned int max_doms, + xc_dominfo_t *info); + +/** + * This function will return information about one or more domains, using a + * single hypercall. The domain information will be stored into the supplied + * array of xc_domaininfo_t structures. + * + * @parm xc_handle a handle to an open hypervisor interface + * @parm first_domain the first domain to enumerate information from. + * Domains are currently enumerate in order of creation. + * @parm max_domains the number of elements in info + * @parm info an array of max_doms size that will contain the information for + * the enumerated domains. + * @return the number of domains enumerated or -1 on error + */ +int xc_domain_getinfolist(int xc_handle, + u32 first_domain, + unsigned int max_domains, + xc_domaininfo_t *info); + +/** + * This function returns information about one domain. This information is + * more detailed than the information from xc_domain_getinfo(). + * + * @parm xc_handle a handle to an open hypervisor interface + * @parm domid the domain to get information from + * @parm info a pointer to an xc_domaininfo_t to store the domain information + * @parm ctxt a pointer to a structure to store the execution context of the + * domain + * @return 0 on success, -1 on failure + */ +int xc_domain_get_vcpu_context(int xc_handle, + u32 domid, + u32 vcpu, + vcpu_guest_context_t *ctxt); + +int xc_domain_setcpuweight(int xc_handle, + u32 domid, + float weight); +long long xc_domain_get_cpu_usage(int xc_handle, + domid_t domid, + int vcpu); + + +typedef dom0_shadow_control_stats_t xc_shadow_control_stats_t; +int xc_shadow_control(int xc_handle, + u32 domid, + unsigned int sop, + unsigned long *dirty_bitmap, + unsigned long pages, + xc_shadow_control_stats_t *stats); + + +#define XCFLAGS_VERBOSE 1 +#define XCFLAGS_LIVE 2 +#define XCFLAGS_DEBUG 4 +#define XCFLAGS_CONFIGURE 8 + +struct XcIOContext; + +/** + * This function will save a domain running Linux. + * + * @parm xc_handle a handle to an open hypervisor interface + * @parm fd the file descriptor to save a domain to + * @parm dom the id of the domain + * @return 0 on success, -1 on failure + */ +int xc_linux_save(int xc_handle, int fd, u32 dom); + +/** + * This function will restore a saved domain running Linux. + * + * @parm xc_handle a handle to an open hypervisor interface + * @parm fd the file descriptor to restore a domain from + * @parm dom the id of the domain + * @parm nr_pfns the number of pages + * @parm store_evtchn the store event channel for this domain to use + * @parm store_mfn returned with the mfn of the store page + * @return 0 on success, -1 on failure + */ +int xc_linux_restore(int xc_handle, int io_fd, u32 dom, unsigned long nr_pfns, + unsigned int store_evtchn, unsigned long *store_mfn); + +int xc_linux_build(int xc_handle, + u32 domid, + const char *image_name, + const char *ramdisk_name, + const char *cmdline, + unsigned int control_evtchn, + unsigned long flags, + unsigned int vcpus, + unsigned int store_evtchn, + unsigned long *store_mfn); + +struct mem_map; +int xc_vmx_build(int xc_handle, + u32 domid, + int memsize, + const char *image_name, + struct mem_map *memmap, + const char *ramdisk_name, + const char *cmdline, + unsigned int control_evtchn, + unsigned long flags, + unsigned int vcpus, + unsigned int store_evtchn, + unsigned long *store_mfn); + +int xc_bvtsched_global_set(int xc_handle, + unsigned long ctx_allow); + +int xc_bvtsched_domain_set(int xc_handle, + u32 domid, + u32 mcuadv, + int warpback, + s32 warpvalue, + long long warpl, + long long warpu); + +int xc_bvtsched_global_get(int xc_handle, + unsigned long *ctx_allow); + +int xc_bvtsched_domain_get(int xc_handle, + u32 domid, + u32 *mcuadv, + int *warpback, + s32 *warpvalue, + long long *warpl, + long long *warpu); + +int xc_sedf_domain_set(int xc_handle, + u32 domid, + u64 period, u64 slice, u64 latency, u16 extratime, u16 weight); + +int xc_sedf_domain_get(int xc_handle, + u32 domid, + u64* period, u64 *slice, u64 *latency, u16 *extratime, u16* weight); + +typedef evtchn_status_t xc_evtchn_status_t; + +/* + * EVENT CHANNEL FUNCTIONS + */ + +/** + * This function allocates an unbound port. Ports are named endpoints used for + * interdomain communication. This function is most useful in opening a + * well-known port within a domain to receive events on. + * + * @parm xc_handle a handle to an open hypervisor interface + * @parm dom the ID of the domain. This maybe DOMID_SELF + * @parm port a pointer to a port. This is an in/out parameter. If *port is + * 0, then a new port will be assigned, if port is > 0 then that + * port is allocated if the port is unallocated. + * @return 0 on success, -1 on failure + */ +int xc_evtchn_alloc_unbound(int xc_handle, + u32 dom, + int *port); + +/** + * This function creates a pair of ports between two domains. A port can only + * be bound once within a domain. + * + * @parm xc_handle a handle to an open hypervisor interface + * @parm dom1 one of the two domains to connect. Can be DOMID_SELF. + * @parm dom2 the other domain to connect. Can be DOMID_SELF. + * @parm port1 an in/out parameter. If > 0, then try to connect *port. If + * 0, then allocate a new port and store the port in *port. + * @parm port2 the port connected on port2. This parameter behaves the same + * way as port1. + * @return 0 on success, -1 on error. + */ +int xc_evtchn_bind_interdomain(int xc_handle, + u32 dom1, + u32 dom2, + int *port1, + int *port2); +int xc_evtchn_bind_virq(int xc_handle, + int virq, + int *port); + +/** + * This function will close a single port on an event channel. + * + * @parm xc_handle a handle to an open hypervisor interface + * @parm dom the domain that the port exists on. May be DOMID_SELF. + * @parm port the port to close + * @return 0 on success, -1 on error + */ +int xc_evtchn_close(int xc_handle, + u32 dom, /* may be DOMID_SELF */ + int port); + +/** + * This function generates a notify event on a bound port. + * + * Notifies can be read within Linux by opening /dev/xen/evtchn and reading + * a 16 bit value. The result will be the port the event occurred on. When + * events occur, the port is masked until the 16 bit port value is written back + * to the file. When /dev/xen/evtchn is opened, it has to be bound via an + * ioctl to each port to listen on. The ioctl for binding is _IO('E', 2). The + * parameter is the port to listen on. + * + * @parm xc_handle a handle to an open hypervisor interface + * @parm local_port the port to generate the notify on + * @return 0 on success, -1 on error + */ +int xc_evtchn_send(int xc_handle, + int local_port); +int xc_evtchn_status(int xc_handle, + u32 dom, /* may be DOMID_SELF */ + int port, + xc_evtchn_status_t *status); + +int xc_physdev_pci_access_modify(int xc_handle, + u32 domid, + int bus, + int dev, + int func, + int enable); + +int xc_readconsolering(int xc_handle, + char **pbuffer, + unsigned int *pnr_chars, + int clear); + +typedef dom0_physinfo_t xc_physinfo_t; +int xc_physinfo(int xc_handle, + xc_physinfo_t *info); + +int xc_sched_id(int xc_handle, + int *sched_id); + +int xc_domain_setmaxmem(int xc_handle, + u32 domid, + unsigned int max_memkb); + +int xc_domain_memory_increase_reservation(int xc_handle, + u32 domid, + unsigned int mem_kb); + +typedef dom0_perfc_desc_t xc_perfc_desc_t; +/* IMPORTANT: The caller is responsible for mlock()'ing the @desc array. */ +int xc_perfc_control(int xc_handle, + u32 op, + xc_perfc_desc_t *desc); + +/* read/write msr */ +long long xc_msr_read(int xc_handle, int cpu_mask, int msr); +int xc_msr_write(int xc_handle, int cpu_mask, int msr, unsigned int low, + unsigned int high); + +/** + * Memory maps a range within one domain to a local address range. Mappings + * should be unmapped with munmap and should follow the same rules as mmap + * regarding page alignment. Returns NULL on failure. + * + * In Linux, the ring queue for the control channel is accessible by mapping + * the shared_info_frame (from xc_domain_getinfo()) + 2048. The structure + * stored there is of type control_if_t. + * + * @parm xc_handle a handle on an open hypervisor interface + * @parm dom the domain to map memory from + * @parm size the amount of memory to map (in multiples of page size) + * @parm prot same flag as in mmap(). + * @parm mfn the frame address to map. + */ +void *xc_map_foreign_range(int xc_handle, u32 dom, + int size, int prot, + unsigned long mfn ); + +void *xc_map_foreign_batch(int xc_handle, u32 dom, int prot, + unsigned long *arr, int num ); + +int xc_get_pfn_list(int xc_handle, u32 domid, unsigned long *pfn_buf, + unsigned long max_pfns); + +int xc_ia64_get_pfn_list(int xc_handle, u32 domid, unsigned long *pfn_buf, + unsigned int start_page, unsigned int nr_pages); + +/*\ + * GRANT TABLE FUNCTIONS +\*/ + +/** + * This function opens a handle to the more restricted grant table hypervisor + * interface. This may be used where the standard interface is not + * available because the domain is not privileged. + * This function can be called multiple times within a single process. + * Multiple processes can have an open hypervisor interface at the same time. + * + * Each call to this function should have a corresponding call to + * xc_grant_interface_close(). + * + * This function can fail if a Xen-enabled kernel is not currently running. + * + * @return a handle to the hypervisor grant table interface or -1 on failure + */ +int xc_grant_interface_open(void); + +/** + * This function closes an open grant table hypervisor interface. + * + * This function can fail if the handle does not represent an open interface or + * if there were problems closing the interface. + * + * @parm xc_handle a handle to an open grant table hypervisor interface + * @return 0 on success, -1 otherwise. + */ +int xc_grant_interface_close(int xc_handle); + +int xc_gnttab_map_grant_ref(int xc_handle, + u64 host_virt_addr, + u32 dom, + u16 ref, + u16 flags, + s16 *handle, + u64 *dev_bus_addr); + +int xc_gnttab_unmap_grant_ref(int xc_handle, + u64 host_virt_addr, + u64 dev_bus_addr, + u16 handle, + s16 *status); + +int xc_gnttab_setup_table(int xc_handle, + u32 dom, + u16 nr_frames, + s16 *status, + unsigned long **frame_list); + +/* Grant debug builds only: */ +int xc_gnttab_dump_table(int xc_handle, + u32 dom, + s16 *status); + +/* Get current total pages allocated to a domain. */ +long xc_get_tot_pages(int xc_handle, u32 domid); + +/* Execute a privileged dom0 operation. */ +int xc_dom0_op(int xc_handle, dom0_op_t *op); + +/* Initializes the store (for dom0) + remote_port should be the remote end of a bound interdomain channel between + the store and dom0. + + This function returns a shared frame that should be passed to + xs_introduce_domain + */ +long xc_init_store(int xc_handle, int remote_port); + +#endif /* __XC_H__ */ diff -r be5c24f2709c -r 6e899a3840b2 tools/libxc/xc.h --- a/tools/libxc/xc.h Wed Aug 24 21:50:52 2005 +++ /dev/null Wed Aug 24 23:07:29 2005 @@ -1,558 +0,0 @@ -/****************************************************************************** - * xc.h - * - * A library for low-level access to the Xen control interfaces. - * - * Copyright (c) 2003-2004, K A Fraser. - */ - -#ifndef __XC_H__ -#define __XC_H__ - -#include <stdint.h> - -typedef uint8_t u8; -typedef uint16_t u16; -typedef uint32_t u32; -typedef uint64_t u64; -typedef int8_t s8; -typedef int16_t s16; -typedef int32_t s32; -typedef int64_t s64; - -#include <sys/ptrace.h> -#include <xen/xen.h> -#include <xen/dom0_ops.h> -#include <xen/event_channel.h> -#include <xen/sched_ctl.h> -#include <xen/acm.h> - -#ifdef __ia64__ -#define XC_PAGE_SHIFT 14 -#else -#define XC_PAGE_SHIFT 12 -#endif -#define XC_PAGE_SIZE (1UL << XC_PAGE_SHIFT) -#define XC_PAGE_MASK (~(XC_PAGE_SIZE-1)) - -/* - * DEFINITIONS FOR CPU BARRIERS - */ - -#if defined(__i386__) -#define mb() __asm__ __volatile__ ( "lock; addl $0,0(%%esp)" : : : "memory" ) -#define rmb() __asm__ __volatile__ ( "lock; addl $0,0(%%esp)" : : : "memory" ) -#define wmb() __asm__ __volatile__ ( "" : : : "memory") -#elif defined(__x86_64__) -#define mb() __asm__ __volatile__ ( "mfence" : : : "memory") -#define rmb() __asm__ __volatile__ ( "lfence" : : : "memory") -#define wmb() __asm__ __volatile__ ( "" : : : "memory") -#elif defined(__ia64__) -/* FIXME */ -#define mb() -#define rmb() -#define wmb() -#else -#error "Define barriers" -#endif - -/* - * INITIALIZATION FUNCTIONS - */ - -/** - * This function opens a handle to the hypervisor interface. This function can - * be called multiple times within a single process. Multiple processes can - * have an open hypervisor interface at the same time. - * - * Each call to this function should have a corresponding call to - * xc_interface_close(). - * - * This function can fail if the caller does not have superuser permission or - * if a Xen-enabled kernel is not currently running. - * - * @return a handle to the hypervisor interface or -1 on failure - */ -int xc_interface_open(void); - -/** - * This function closes an open hypervisor interface. - * - * This function can fail if the handle does not represent an open interface or - * if there were problems closing the interface. - * - * @parm xc_handle a handle to an open hypervisor interface - * @return 0 on success, -1 otherwise. - */ -int xc_interface_close(int xc_handle); - -/* - * DOMAIN DEBUGGING FUNCTIONS - */ - -typedef struct xc_core_header { - unsigned int xch_magic; - unsigned int xch_nr_vcpus; - unsigned int xch_nr_pages; - unsigned int xch_ctxt_offset; - unsigned int xch_index_offset; - unsigned int xch_pages_offset; -} xc_core_header_t; - - -long xc_ptrace(enum __ptrace_request request, - u32 domid, - long addr, - long data); - -long xc_ptrace_core(enum __ptrace_request request, - u32 domid, - long addr, - long data); - -int xc_waitdomain(int domain, - int *status, - int options); - -int xc_waitdomain_core(int domain, - int *status, - int options); - -/* - * DOMAIN MANAGEMENT FUNCTIONS - */ - -typedef struct { - u32 domid; - u32 ssidref; - unsigned int dying:1, crashed:1, shutdown:1, - paused:1, blocked:1, running:1; - unsigned int shutdown_reason; /* only meaningful if shutdown==1 */ - unsigned long nr_pages; - unsigned long shared_info_frame; - u64 cpu_time; - unsigned long max_memkb; - unsigned int vcpus; - s32 vcpu_to_cpu[MAX_VIRT_CPUS]; - cpumap_t cpumap[MAX_VIRT_CPUS]; -} xc_dominfo_t; - -typedef dom0_getdomaininfo_t xc_domaininfo_t; -int xc_domain_create(int xc_handle, - u32 ssidref, - u32 *pdomid); - - -int xc_domain_dumpcore(int xc_handle, - u32 domid, - const char *corename); - - -/** - * This function pauses a domain. A paused domain still exists in memory - * however it does not receive any timeslices from the hypervisor. - * - * @parm xc_handle a handle to an open hypervisor interface - * @parm domid the domain id to pause - * @return 0 on success, -1 on failure. - */ -int xc_domain_pause(int xc_handle, - u32 domid); -/** - * This function unpauses a domain. The domain should have been previously - * paused. - * - * @parm xc_handle a handle to an open hypervisor interface - * @parm domid the domain id to unpause - * return 0 on success, -1 on failure - */ -int xc_domain_unpause(int xc_handle, - u32 domid); - -/** - * This function will destroy a domain. Destroying a domain removes the domain - * completely from memory. This function should be called after sending the - * domain a SHUTDOWN control message to free up the domain resources. - * - * @parm xc_handle a handle to an open hypervisor interface - * @parm domid the domain id to destroy - * @return 0 on success, -1 on failure - */ -int xc_domain_destroy(int xc_handle, - u32 domid); -int xc_domain_pincpu(int xc_handle, - u32 domid, - int vcpu, - cpumap_t *cpumap); -/** - * This function will return information about one or more domains. It is - * designed to iterate over the list of domains. If a single domain is - * requested, this function will return the next domain in the list - if - * one exists. It is, therefore, important in this case to make sure the - * domain requested was the one returned. - * - * @parm xc_handle a handle to an open hypervisor interface - * @parm first_domid the first domain to enumerate information from. Domains - * are currently enumerate in order of creation. - * @parm max_doms the number of elements in info - * @parm info an array of max_doms size that will contain the information for - * the enumerated domains. - * @return the number of domains enumerated or -1 on error - */ -int xc_domain_getinfo(int xc_handle, - u32 first_domid, - unsigned int max_doms, - xc_dominfo_t *info); - -/** - * This function will return information about one or more domains, using a - * single hypercall. The domain information will be stored into the supplied - * array of xc_domaininfo_t structures. - * - * @parm xc_handle a handle to an open hypervisor interface - * @parm first_domain the first domain to enumerate information from. - * Domains are currently enumerate in order of creation. - * @parm max_domains the number of elements in info - * @parm info an array of max_doms size that will contain the information for - * the enumerated domains. - * @return the number of domains enumerated or -1 on error - */ -int xc_domain_getinfolist(int xc_handle, - u32 first_domain, - unsigned int max_domains, - xc_domaininfo_t *info); - -/** - * This function returns information about one domain. This information is - * more detailed than the information from xc_domain_getinfo(). - * - * @parm xc_handle a handle to an open hypervisor interface - * @parm domid the domain to get information from - * @parm info a pointer to an xc_domaininfo_t to store the domain information - * @parm ctxt a pointer to a structure to store the execution context of the - * domain - * @return 0 on success, -1 on failure - */ -int xc_domain_get_vcpu_context(int xc_handle, - u32 domid, - u32 vcpu, - vcpu_guest_context_t *ctxt); - -int xc_domain_setcpuweight(int xc_handle, - u32 domid, - float weight); -long long xc_domain_get_cpu_usage(int xc_handle, - domid_t domid, - int vcpu); - - -typedef dom0_shadow_control_stats_t xc_shadow_control_stats_t; -int xc_shadow_control(int xc_handle, - u32 domid, - unsigned int sop, - unsigned long *dirty_bitmap, - unsigned long pages, - xc_shadow_control_stats_t *stats); - - -#define XCFLAGS_VERBOSE 1 -#define XCFLAGS_LIVE 2 -#define XCFLAGS_DEBUG 4 -#define XCFLAGS_CONFIGURE 8 - -struct XcIOContext; - -/** - * This function will save a domain running Linux. - * - * @parm xc_handle a handle to an open hypervisor interface - * @parm fd the file descriptor to save a domain to - * @parm dom the id of the domain - * @return 0 on success, -1 on failure - */ -int xc_linux_save(int xc_handle, int fd, u32 dom); - -/** - * This function will restore a saved domain running Linux. - * - * @parm xc_handle a handle to an open hypervisor interface - * @parm fd the file descriptor to restore a domain from - * @parm dom the id of the domain - * @parm nr_pfns the number of pages - * @parm store_evtchn the store event channel for this domain to use - * @parm store_mfn returned with the mfn of the store page - * @return 0 on success, -1 on failure - */ -int xc_linux_restore(int xc_handle, int io_fd, u32 dom, unsigned long nr_pfns, - unsigned int store_evtchn, unsigned long *store_mfn); - -int xc_linux_build(int xc_handle, - u32 domid, - const char *image_name, - const char *ramdisk_name, - const char *cmdline, - unsigned int control_evtchn, - unsigned long flags, - unsigned int vcpus, - unsigned int store_evtchn, - unsigned long *store_mfn); - -struct mem_map; -int xc_vmx_build(int xc_handle, - u32 domid, - int memsize, - const char *image_name, - struct mem_map *memmap, - const char *ramdisk_name, - const char *cmdline, - unsigned int control_evtchn, - unsigned long flags, - unsigned int vcpus, - unsigned int store_evtchn, - unsigned long *store_mfn); - -int xc_bvtsched_global_set(int xc_handle, - unsigned long ctx_allow); - -int xc_bvtsched_domain_set(int xc_handle, - u32 domid, - u32 mcuadv, - int warpback, - s32 warpvalue, - long long warpl, - long long warpu); - -int xc_bvtsched_global_get(int xc_handle, - unsigned long *ctx_allow); - -int xc_bvtsched_domain_get(int xc_handle, - u32 domid, - u32 *mcuadv, - int *warpback, - s32 *warpvalue, - long long *warpl, - long long *warpu); - -int xc_sedf_domain_set(int xc_handle, - u32 domid, - u64 period, u64 slice, u64 latency, u16 extratime, u16 weight); - -int xc_sedf_domain_get(int xc_handle, - u32 domid, - u64* period, u64 *slice, u64 *latency, u16 *extratime, u16* weight); - -typedef evtchn_status_t xc_evtchn_status_t; - -/* - * EVENT CHANNEL FUNCTIONS - */ - -/** - * This function allocates an unbound port. Ports are named endpoints used for - * interdomain communication. This function is most useful in opening a - * well-known port within a domain to receive events on. - * - * @parm xc_handle a handle to an open hypervisor interface - * @parm dom the ID of the domain. This maybe DOMID_SELF - * @parm port a pointer to a port. This is an in/out parameter. If *port is - * 0, then a new port will be assigned, if port is > 0 then that - * port is allocated if the port is unallocated. - * @return 0 on success, -1 on failure - */ -int xc_evtchn_alloc_unbound(int xc_handle, - u32 dom, - int *port); - -/** - * This function creates a pair of ports between two domains. A port can only - * be bound once within a domain. - * - * @parm xc_handle a handle to an open hypervisor interface - * @parm dom1 one of the two domains to connect. Can be DOMID_SELF. - * @parm dom2 the other domain to connect. Can be DOMID_SELF. - * @parm port1 an in/out parameter. If > 0, then try to connect *port. If - * 0, then allocate a new port and store the port in *port. - * @parm port2 the port connected on port2. This parameter behaves the same - * way as port1. - * @return 0 on success, -1 on error. - */ -int xc_evtchn_bind_interdomain(int xc_handle, - u32 dom1, - u32 dom2, - int *port1, - int *port2); -int xc_evtchn_bind_virq(int xc_handle, - int virq, - int *port); - -/** - * This function will close a single port on an event channel. - * - * @parm xc_handle a handle to an open hypervisor interface - * @parm dom the domain that the port exists on. May be DOMID_SELF. - * @parm port the port to close - * @return 0 on success, -1 on error - */ -int xc_evtchn_close(int xc_handle, - u32 dom, /* may be DOMID_SELF */ - int port); - -/** - * This function generates a notify event on a bound port. - * - * Notifies can be read within Linux by opening /dev/xen/evtchn and reading - * a 16 bit value. The result will be the port the event occurred on. When - * events occur, the port is masked until the 16 bit port value is written back - * to the file. When /dev/xen/evtchn is opened, it has to be bound via an - * ioctl to each port to listen on. The ioctl for binding is _IO('E', 2). The - * parameter is the port to listen on. - * - * @parm xc_handle a handle to an open hypervisor interface - * @parm local_port the port to generate the notify on - * @return 0 on success, -1 on error - */ -int xc_evtchn_send(int xc_handle, - int local_port); -int xc_evtchn_status(int xc_handle, - u32 dom, /* may be DOMID_SELF */ - int port, - xc_evtchn_status_t *status); - -int xc_physdev_pci_access_modify(int xc_handle, - u32 domid, - int bus, - int dev, - int func, - int enable); - -int xc_readconsolering(int xc_handle, - char **pbuffer, - unsigned int *pnr_chars, - int clear); - -typedef dom0_physinfo_t xc_physinfo_t; -int xc_physinfo(int xc_handle, - xc_physinfo_t *info); - -int xc_sched_id(int xc_handle, - int *sched_id); - -int xc_domain_setmaxmem(int xc_handle, - u32 domid, - unsigned int max_memkb); - -int xc_domain_memory_increase_reservation(int xc_handle, - u32 domid, - unsigned int mem_kb); - -typedef dom0_perfc_desc_t xc_perfc_desc_t; -/* IMPORTANT: The caller is responsible for mlock()'ing the @desc array. */ -int xc_perfc_control(int xc_handle, - u32 op, - xc_perfc_desc_t *desc); - -/* read/write msr */ -long long xc_msr_read(int xc_handle, int cpu_mask, int msr); -int xc_msr_write(int xc_handle, int cpu_mask, int msr, unsigned int low, - unsigned int high); - -/** - * Memory maps a range within one domain to a local address range. Mappings - * should be unmapped with munmap and should follow the same rules as mmap - * regarding page alignment. Returns NULL on failure. - * - * In Linux, the ring queue for the control channel is accessible by mapping - * the shared_info_frame (from xc_domain_getinfo()) + 2048. The structure - * stored there is of type control_if_t. - * - * @parm xc_handle a handle on an open hypervisor interface - * @parm dom the domain to map memory from - * @parm size the amount of memory to map (in multiples of page size) - * @parm prot same flag as in mmap(). - * @parm mfn the frame address to map. - */ -void *xc_map_foreign_range(int xc_handle, u32 dom, - int size, int prot, - unsigned long mfn ); - -void *xc_map_foreign_batch(int xc_handle, u32 dom, int prot, - unsigned long *arr, int num ); - -int xc_get_pfn_list(int xc_handle, u32 domid, unsigned long *pfn_buf, - unsigned long max_pfns); - -int xc_ia64_get_pfn_list(int xc_handle, u32 domid, unsigned long *pfn_buf, - unsigned int start_page, unsigned int nr_pages); - -/*\ - * GRANT TABLE FUNCTIONS -\*/ - -/** - * This function opens a handle to the more restricted grant table hypervisor - * interface. This may be used where the standard interface is not - * available because the domain is not privileged. - * This function can be called multiple times within a single process. - * Multiple processes can have an open hypervisor interface at the same time. - * - * Each call to this function should have a corresponding call to - * xc_grant_interface_close(). - * - * This function can fail if a Xen-enabled kernel is not currently running. - * - * @return a handle to the hypervisor grant table interface or -1 on failure - */ -int xc_grant_interface_open(void); - -/** - * This function closes an open grant table hypervisor interface. - * - * This function can fail if the handle does not represent an open interface or - * if there were problems closing the interface. - * - * @parm xc_handle a handle to an open grant table hypervisor interface - * @return 0 on success, -1 otherwise. - */ -int xc_grant_interface_close(int xc_handle); - -int xc_gnttab_map_grant_ref(int xc_handle, - u64 host_virt_addr, - u32 dom, - u16 ref, - u16 flags, - s16 *handle, - u64 *dev_bus_addr); - -int xc_gnttab_unmap_grant_ref(int xc_handle, - u64 host_virt_addr, - u64 dev_bus_addr, - u16 handle, - s16 *status); - -int xc_gnttab_setup_table(int xc_handle, - u32 dom, - u16 nr_frames, - s16 *status, - unsigned long **frame_list); - -/* Grant debug builds only: */ -int xc_gnttab_dump_table(int xc_handle, - u32 dom, - s16 *status); - -/* Get current total pages allocated to a domain. */ -long xc_get_tot_pages(int xc_handle, u32 domid); - -/* Execute a privileged dom0 operation. */ -int xc_dom0_op(int xc_handle, dom0_op_t *op); - -/* Initializes the store (for dom0) - remote_port should be the remote end of a bound interdomain channel between - the store and dom0. - - This function returns a shared frame that should be passed to - xs_introduce_domain - */ -long xc_init_store(int xc_handle, int remote_port); - -#endif /* __XC_H__ */ _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |