aboutsummaryrefslogtreecommitdiffstats
path: root/extras
Commit message (Collapse)AuthorAgeFilesLines
* mini-os: do not wait for pci backend in pcifront_scanIan Campbell2011-12-092-12/+4
| | | | | | | | | | | | | | | | | | | | | | | | | This blocks the main thread indefinitely if there is no PCI backend present in xenstore. Even in the case where there are passthrough devices configured libxl creates the stubdom and waits for it to startup _before_ adding the backend. Since the stub domains main thread is blocked before it can write the "running" state to xenstore the toolstack eventually times out and kills everything. There is already a separate pcifront thread which waits for the backend to appear and calls init_pcifront at the appropriate time should a backend ever appear. Unfortunately I don't have any free test boxes with VT-d so I haven't been able to test the cases where PCI deivces are passed through but I obviously have tested that I can now start an HVM domain with stub qemu without PCI devices passed through which I couldn't do before so this is an improvement. This stuff is a bit like pushing the lump around the carpet :-/ Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson.citrix.com> Committed-by: Ian Jackson <ian.jackson.citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
* mini-os: work around ld bug causing stupid CTOR countJeremy Fitzhardinge2011-08-194-8/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | I'm seeing pvgrub crashing when running CTORs. It appears its because the magic in the linker script is generating junk. If I get ld to output a map, I see: .ctors 0x0000000000097000 0x18 0x0000000000097000 __CTOR_LIST__ = . 0x0000000000097000 0x4 LONG 0x25c04 (((__CTOR_END__ - __CTOR_LIST__) / 0x4) - 0x2) *(.ctors) .ctors 0x0000000000097004 0x10 /home/jeremy/hg/xen/unstable/stubdom/mini-os-x86_32-grub/mini-os.o 0x0000000000097014 0x4 LONG 0x0 0x0000000000097018 __CTOR_END__ = . In other words, somehow ((0x97018-0x97000) / 4) - 2 = 0x25c04 The specific crash is that the ctor loop tries to call the NULL sentinel. I'm seeing the same with the DTOR list. Avoid this by terminating the loop with the NULL sentinel, and get rid of the CTOR count entirely. From: Jeremy Fitzhardinge <jeremy@goop.org> Signed-off-by: Keir Fraser <keir@xen.org>
* mini-os: fix lib.h licenceSamuel Thibault2011-05-012-43/+96
| | | | | | | | | Update the Linux stdio functions prototypes, and move them to a separate header, licenced under GPL2+. Import FreeBSD8 string functions prototypes, update licence. Drop kvec, of unsure source and useless anyway. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
* mini-os: lib/math.c: import FreeBSD 8 functionsSamuel Thibault2011-05-011-44/+65
| | | | | | | | | Import lib/math.c functions (and thus licence) from FreeBSD 8, and re-apply a few of our changes. Whitespaces left aside, this leads to almost no source change except s/int64_t/quad_t/ and s/uint64_t/u_quad_t/. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
* mini-os: Fix printf.c licenceSamuel Thibault2011-05-011-38/+31
| | | | | | | | | Changeset df1348e72390 actually completely replaced the freebsd printf implementation with the Linux printf implementation. Further changes are extremely minor and thus don't pose IP issue. Fix the licence accordingly. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
* build: Make XEN_ROOT an absolute path.Keir Fraser2011-03-174-7/+7
| | | | | | | | Otherwise make can search the path relative to certain standard paths such as /usr/include (e.g., the line '-include $(XEN_ROOT)/.config' in Config.mk suffers from this). Signed-off-by: Keir Fraser <keir@xen.org>
* minios: do not export {test,set,clear}_bit etc to applicationsIan Campbell2011-02-071-1/+2
| | | | | | | | | | | | | | | Fixes ioemu stubdom build: CC i386-stubdom/piix4acpi.o [...]/stubdom/ioemu/hw/piix4acpi.c:272: error: expected ')' before '?' token [...]/stubdom/ioemu/hw/piix4acpi.c:277: error: conflicting types for 'set_bit' [...]/stubdom/../extras/mini-os/include/x86/mini-os/os.h:396: error: previous definition of 'set_bit' was here [...]/stubdom/ioemu/hw/piix4acpi.c:282: error: conflicting types for 'clear_bit' [...]/stubdom/../extras/mini-os/include/x86/mini-os/os.h:414: error: previous definition of 'clear_bit' was here [...]/stubdom/ioemu/hw/piix4acpi.c: In function 'gpe_sts_write': Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* minios: Fix bug/build problem introduced in c/s 22799John Weekes2011-01-271-3/+3
| | | | | | | | With "debug=n", "make stubdom" currently fails in xen-unstable. This patch addresses this through minor fixups. Signed-off-by: John Weekes <lists.xen@nuclearfallout.net> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* libxl, minios: stubdom console based save/restoreStefano Stabellini2011-01-213-7/+72
| | | | | | | | | | | | | | | | Add two "special" PV consoles to stubdoms that are going to be used to send and receive the qemu-xen save files on save/restore. Use the second PV console to send the qemu-xen save file and the third PV console to receive the qemu-xen save file on restore. Fix the console shutdown function free_consfront that is called when the qemu save file is closed. Stubdom save/restore is still broken with xend. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* tools: remove fs-front/fs-backTim Deegan2011-01-116-1570/+14
| | | | | | | | | | | | | | | | Its access controls are really not OK. In particular, it's not good for libxl, which stores per-VM config blobs in a directory that is exported to all VMs. This will break stub-qemu save/restore, which is the only user of fs-front that I'm aware of, but: - It's currently broken anyway (fs-back isn't run by default and crashes if it is run manually); and - Stefano has a plan to plumb qemu save records through a dedicated console channel instead. Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* stubdom/minios: don't retrieve the address of void variableGianni Tedesco2011-01-111-1/+1
| | | | | | | | | Objects must not be declared to have type void. Declare shared_info to have the appropriate type instead. Author: Ganni Tedesco <gianni.tedesco@citrix.com> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* stubdom/minios: use correct sized types for software floating pointSamuel Thibault2011-01-111-20/+16
| | | | | | | | | Replace long/int/short sizes with proper exact-size types for 64bit architectures. As well as making the code correct, this eliminates a compiler warning about an uninitialised variable. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* minios: use constant expression to size arraysGianni Tedesco2011-01-071-2/+2
| | | | | | | | | Fixes a compile error in gcc-4.5 which is the reason __CONST_RING_SIZE() was introduced. Let's just use it in minios netfront. Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com> Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* minios: reverse layering of xc vs minios fd closeKeir Fraser2010-12-031-7/+6
| | | | | | | | | | | | 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>
* minios: add parentheses to mlock/mulock arguments.Ian Campbell2010-10-261-2/+2
| | | | | | | Fixes warning/build error with non-trivial arguments. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
* MiniOS: Fix continue; in netfront receive loopSamuel Thibault2010-10-121-7/+3
| | | | | | | | | To properly ignore some requests through the use of continue;, indexes need to be updated. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> committer: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* libxc: eliminate static variables, use xentoollog; API changeKeir Fraser2010-05-281-2/+3
| | | | | | | | | | | | | | | | | | | | This patch eliminate the global variables in libxenctrl (used for logging and error reporting). Instead the information which was in the global variables is now in a new xc_interface* opaque structure, which xc_interface open returns instead of the raw file descriptor; furthermore, logging is done via xentoollog. There are three new parameters to xc_interface_open to control the logging, but existing callers can just pass "0" for all three to get the old behaviour. All libxc callers have been adjusted accordingly. Also update QEMU_TAG for corresponding qemu change. Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
* mini-os: Revert 21106:b20f897d6010 "Fix xenbus initialisation"Keir Fraser2010-05-044-37/+12
| | | | | | Jeremy Fitzhardinge (jeremy@goop.org) reports that this fixes HVM+stubdom. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* mini-os: Fix xenbus_switch_state's transaction retryKeir Fraser2010-04-071-1/+3
| | | | | | | When xenbus_switch_state has to retry the transaction which it just created, it needs to recreate another one. Clearing xbt triggers it. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
* mini-os: Fix crash on frontend shutdown failuresKeir Fraser2010-04-074-5/+10
| | | | | | | Do not free frontend resources if some error happened, since the backend may not have finished properly restarting in such case. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
* mini-os: Fix frontend shutdown wait loopKeir Fraser2010-04-074-8/+13
| | | | | | | minios frontends must wait for backends to be shut down and reinitialized before freeing resources. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
* mini-os: Fix xenbus initialisationKeir Fraser2010-04-064-12/+37
| | | | | | | | | This fixes xenbus initialization of blkfront, netfront and pcifront by uniformizing with fbfront: after writing parameters, set state to initialised, then wait for backend to switch to connect state, and then only read its parameter and switch to the connect state. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
* mini-os: Do not use the same wait element twiceKeir Fraser2010-04-061-1/+2
| | | | | | | To enqueue the kbdfront thread on two separate wait queues, we need two different wait elements. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
* minios: Trivial spelling typo fixed.4.0.0-branchedKeir Fraser2010-03-301-1/+1
| | | | Sigend-off-by: Keir Fraser <keir.fraser@citrix.com>
* minios: implement xc_map_foreign_bulkKeir Fraser2010-01-187-26/+27
| | | | | | | In order to do so it modifies map_frames_ex and do_map_frames to take an int *err as parameter and return any error that way. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* mini-os: Fix build error when !HAVE_LIBCKeir Fraser2009-12-181-1/+1
| | | | Signed-off-by: Yu Zhiguo <yuzg@cn.fujitsu.com>
* mini-os: Fix a compilation error in xencons_ring when !HAVE_LIBCKeir Fraser2009-12-141-1/+1
| | | | Signed-off-by: Yu Zhiguo <yuzg@cn.fujitsu.com>
* mini-os: Fix memory leaks in blkfront, netfront, pcifront, etc.Keir Fraser2009-12-147-25/+80
| | | | | | | | | The return value of Xenbus routines xenbus_transaction_start(), xenbus_printf(), xenbus_transaction_end(), etc. is a pointer of error message. This pointer should be passed to free() to release the allocated memory when it is no longer needed. Signed-off-by: Yu Zhiguo <yuzg@cn.fujitsu.com>
* mini-os: Fix memory leaks in xs_read() and xs_write()Keir Fraser2009-12-111-0/+2
| | | | | | | | xenbus_read() and xenbus_write() will allocate memory for error message if any error occurs, this memory should be freed. Signed-off-by: Yu Zhiguo <yuzg@cn.fujitsu.com> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* minios: Fix fb/kbd initializationKeir Fraser2009-11-231-0/+2
| | | | | | | When allocating kbdfront and fbfront structures, we should zero them since we do not initialize all fields. Signed-Off-By: Samuel Thibault <samuel.thibault@ens-lyon.org>
* minios: Fix xenbus_unwatch_path callsKeir Fraser2009-11-236-15/+15
| | | | | | | | | | In a lot of places in MiniOS frontends, xenbus_watch_path_token is used instead of xenbus_watch_path to get more precise wake ups. To free those, xenbus_unwatch_path_token has to be used instead of xenbus_unwatch_path, else the unwatch operation will fail. This fixes spurious watch events left by pv-grub. Signed-Off-By: Samuel Thibault <samuel.thibault@ens-lyon.org>
* pcifront: fix multiple initialization bugKeir Fraser2009-11-231-5/+14
| | | | | | | | | Now that we have pcifront_watches to dynamically initialize pcifront we don't need a call to init_pcifront in pcilib and pcifront_scan anymore; we should just wait for the frontend to connect to the backend instead. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* pcifront: implement dynamic connections and disconnectionsKeir Fraser2009-11-134-8/+134
| | | | | | | | | | this patch implements dynamic connections and disconnections in pcifront. This feature is required to properly support pci hotplug, because when no pci devices are assigned to a guest, xend will remove the pci backend altogether. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* minios: xmalloc and realloc fixesKeir Fraser2009-10-291-3/+9
| | | | | | | | | - xmalloc currently faults if xmalloc_new_page fails due to OOM - realloc treats xmalloc_hdr.size as the size of just the data region rather than the total size of data region + headers + padding. From: James Pendergrass <James.Pendergrass@jhuapl.edu> Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* minios: Optimize mmap(open("/dev/mem"))Keir Fraser2009-10-231-5/+2
| | | | | | | Set map_frames_ex's stride parameter to 0 and increment to 1 to avoid building an explicit list of mfns. Signed-Off-By: Samuel Thibault <samuel.thibault@ens-lyon.org>
* stubdom: mmap on /dev/mem supportKeir Fraser2009-10-212-1/+12
| | | | | | | | | | This patch adds support for mmap on /dev/mem in a stubdom; it is secure because it only works for memory areas that have been explicitly allowed by the toolstack (xc_domain_iomem_permission). Incidentally this is all that is needed to make MSI-X passthrough work with stubdoms. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* minios: fix console end of line: \n\r -> \r\nKeir Fraser2009-10-141-5/+9
| | | | | | Change the end of line produced by minios' console from \n\r to \r\n. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* minios: fix minios consoleKeir Fraser2009-10-141-7/+11
| | | | | | | | MiniOS' console_print tries to expand '\n' into "\n\r" in place, causing page faults if the string resides in text. Use a duplicate of the string instead. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* minios pcifront: translate physical into virtual addressesKeir Fraser2009-10-141-2/+63
| | | | | | | | Qemu understands physical pci addresses while pciback expects virtual pci addresses: this patch adds a translation function in pcifront to make the conversion. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* stubdom/minios: re-structure headersKeir Fraser2009-10-0140-234/+240
| | | | | | | | | As part of making stubdom usable on NetBSD, it is necessary to restructure the minios headers to avoid conflicts with NetBSD's crossbuild toolchain. Signed-off-by: Christoph Egger <Christoph.Egger@amd.com> Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
* fs-front: cope with a missing fs-backendKeir Fraser2009-07-232-10/+44
| | | | | | | | Obviously save\restore is not going to work if fs-backend is missing, but at least the stubdom will be able to work correctly in all the other cases. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* minios: switch to C99 integer typesKeir Fraser2009-07-1522-96/+89
| | | | | | This is a necessary step to make minios build on NetBSD. Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
* minios: fix free_fbfrontKeir Fraser2009-06-271-2/+0
| | | | | | | When a stubdom is destroyed, fbfront tries to unbind the evtchn twice. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* minios: add few missing constants in limits.hKeir Fraser2009-06-251-0/+2
| | | | Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* minios: Use posix_openpt() rather than non-standard openpty().Keir Fraser2009-06-182-3/+9
| | | | Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* minios: support secondary guest consoles.Keir Fraser2009-06-176-50/+283
| | | | Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* Introduce mechanism to check standard conformance of headersKeir Fraser2009-06-171-16/+16
| | | | | | | | | | | While pretty simplistic, it appears to serve the purpose at the moment (i.e. it spotted two places where a GNU extension was used withou proper preprocessor conditionals). The "simplistic" here includes that the checking gets only done for native builds, and ia64 gets excluded due to its arch-specific header intentionally (for whatever reason) checking that anonymous struct/unions can be used. Signed-off-by: Jan Beulich <jbeulich@novell.com>
* minios: Introduce BSD license COPYING fileKeir Fraser2009-06-041-0/+23
| | | | Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* minios: Clean up and remove Linux remnants from x86_64.SKeir Fraser2009-06-031-111/+20
| | | | Sigend-off-by: Keir Fraser <keir.fraser@citrix.com>
* minios: refactor xenbus state machineKeir Fraser2009-06-036-67/+321
| | | | | | | | Implement xenbus_wait_for_state_change and xenbus_switch_state and change the various frontends to use the two functions and do proper error checking. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>