aboutsummaryrefslogtreecommitdiffstats
path: root/extras/mini-os/include
Commit message (Collapse)AuthorAgeFilesLines
* mini-os: make frontends and xenbus optionalDaniel De Graaf2012-02-092-0/+14
| | | | | | | | | | | | | | | | | This adds compile-time logic to disable certain frontends in mini-os: - pcifront is disabled by default, enabled for ioemu - blkfront, netfront, fbfront, kbdfront, consfront are enabled by default - xenbus is required for any frontend, and is enabled by default If all frontends and xenbus are disabled, mini-os will run without needing to communicate with xenstore, making it suitable to run the xenstore daemon. The console frontend is not required for the initial console, only consoles opened via openpt or ptmx. Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov> Acked-by: Ian Campbell <ian.campbell@citrix.com> Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Committed-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
* mini-os: remove per-fd evtchn limitAlex Zeffertt2012-02-091-8/+10
| | | | | | | | | | | | | This changes the minios evtchn implementation to use a list instead of an array which ahis allows it to grow as necessary to support any number of ports, only limited by Xen (NR_EVS is 1024, should be enough for now). Signed-off-by: Diego Ongaro <diego.ongaro@citrix.com> Signed-off-by: Alex Zeffertt <alex.zeffertt@eu.citrix.com> Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov> Acked-by: Ian Campbell <ian.campbell@citrix.com> Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Committed-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
* mini-os: use BSD sys/queue.h instead of Linux list.hIan Campbell2012-01-315-225/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The latter is GPL which makes the whole of mini-os GPL rather than BSD as intended. In tree users are all GPL or GPL-compatible but we should fix this so that mini-os is BSD. Do so by using the same BSD sys/queue.h as we use in libxl. Tested with the builtin mini-os test app and qemu stubdomain, both of which appear to still function as expected. Move tools/libxl/external and the associated sed script to tools/include/xen-external to allow more sensible access from mini-os. Also add s/NULL/0/ in the sed script due to NULL not always being defined in stubdom code when mini-os/wait.h is included. As well as the obvious ABI changes there are a few API updates associated with the change: - struct rw_semaphore.wait_list is unused - remove_waiter needs to take the wait_queue_head The latter requires a qemu update, so there is also a QEMU_TAG update in this changeset. I sprinkled some extra-emacs local variables around the files I edited which didn't have them. I think this should be backported to the stable branches since external users of mini-os may have been mislead into thinking they could safely link mini-os against GPL-incompatible code. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Committed-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
* mini-os: convert mlock macros to C functionsOlaf Hering2012-01-311-2/+2
| | | | | | | | | mlock and munlock are implemented as macros in mini-os. Their usage requires casting in common code. Convert them to C syntax and provide an empty dummy function. Remove the now unneeded (void) cast from two munlock calls. Signed-off-by: Olaf Hering <olaf@aepfle.de>
* 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>
* 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>
* libxl, minios: stubdom console based save/restoreStefano Stabellini2011-01-211-0/+1
| | | | | | | | | | | | | | | | 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-112-56/+1
| | | | | | | | | | | | | | | | 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>
* 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: implement xc_map_foreign_bulkKeir Fraser2010-01-183-9/+9
| | | | | | | 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>
* pcifront: implement dynamic connections and disconnectionsKeir Fraser2009-11-131-0/+1
| | | | | | | | | | 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>
* stubdom: mmap on /dev/mem supportKeir Fraser2009-10-211-0/+1
| | | | | | | | | | 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: switch to C99 integer typesKeir Fraser2009-07-1510-47/+40
| | | | | | This is a necessary step to make minios build on NetBSD. Signed-off-by: Christoph Egger <Christoph.Egger@amd.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-181-1/+0
| | | | Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* minios: support secondary guest consoles.Keir Fraser2009-06-172-11/+39
| | | | Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* minios: refactor xenbus state machineKeir Fraser2009-06-031-0/+4
| | | | | | | | 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>
* minios: implement ffs, ffsl and ffsll.Keir Fraser2009-05-281-0/+4
| | | | | | | | | | | The first function is compiled only in case minios is compiled without newlib, since newlib already provides an implementation for ffs. On the other hand ffsl and ffsll are always compiled because newlib misses those functions. This patch also provides an implementation for __ffsti2 and __ffsdi2 because they are needed by gcc in order to successfully link ffsll. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* minios: Implement some extra lib functions for ocaml xenstored stubdomKeir Fraser2009-05-191-0/+6
| | | | | | | We could stub them out as unsupported, but we may as well implement them as they are very simple. Signed-off-by: Alex Zeffertt <alex.zeffertt@eu.citrix.com>
* minios: Extend struct blkfront_aiocb.Keir Fraser2009-03-311-0/+2
| | | | Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* minios: allow to allocate machine contiguous pagesKeir Fraser2009-03-132-0/+4
| | | | | | | | This is a port of XenLinux xen_alloc_contig_memory() to mini-os. A sufficiently privileged mini-os guest can exchange a small number of its pages with machine contiguous pages. Signed-off-by: Rolf Neugebauer <rolf.neugebauer@netronome.com>
* minios: add ioremap/iounmapKeir Fraser2009-03-023-0/+39
| | | | | | | | Add ioremap and iounmap functions to minios. Also move some unmapping code from and clean up mem_test. Signed-off-by: Rolf Neugebauer <rolf.neugebauer@netronome.com> Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
* mini-os: Make utility function get_self_id() in fs-front.c public.Keir Fraser2008-12-161-0/+3
| | | | Signed-off-by: Yosuke Iwamatsu <y-iwamatsu@ab.jp.nec.com>
* merge with xen-unstable.hgIsaku Yamahata2008-11-251-0/+85
|\
| * minios: add a barebone net/if.hKeir Fraser2008-11-111-0/+85
| | | | | | | | | | | | | | | | net/if.h is a standard header but unfortunately lwip doesn't provide it for any target but linux. Therefore I am adding a net/if.h, with an empty implementation of the declared functions. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* | [IA64] Remove the useless big endian stuff.dietmar.hahn@fujitsu-siemens.com2008-11-184-140/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes all the useless big endian stuff from the mini-os. Before there was an effort to support big endian for PV-guest. But the big endian support was never gotten into the common parts of the mini-os so it makes no sense to have this only in the ia64 specific sources. And as there is no open source big endian os and porting our BS2000 os to ia64 was stopped, nobody wants that stuff in the common minos. So this looks ugly then and remove the big endian stuff. Signed-off-by: Dietmar Hahn <dietmar.hahn@fujitsu-siemens.com>
* | [IA64] minios: Clean up the hypervisor interfacedietmar.hahn@fujitsu-siemens.com2008-11-172-130/+14
|/ | | | | | move all hypervisor calls to xencomm Signed-off-by: Dietmar Hahn <dietmar.hahn@fujitsu-siemens.com>
* minios: Define __INSIDE_MINIOS__ rather than __MINIOS__Keir Fraser2008-10-291-1/+1
| | | | Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
* minios: do not expose #define current to applicationsKeir Fraser2008-10-272-6/+7
| | | | | | | | | | | | | | | | | Currently the minios headers do this: #define current get_current() Obviously when porting general code to this environment, this can cause problems ! The attached patch arranges for this only to be done if #define __MINIOS__ is declared, which is set up by the makefile in extras/mini-os. Suppressing the namespace pollution is necessary to get recent upstream qemu's to compile, since they (quite properly) use `current' as an ordinary identifier. Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
* mini-os: adding some missing posix function declarationsKeir Fraser2008-09-176-0/+99
| | | | | | | Adding some missing posix function declarations, to get rid of some qemu-remote compile time warnings. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* stubdom: add v?errx? and v?warnx? functionsKeir Fraser2008-08-271-0/+15
| | | | Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
* mini-os: Add printf format checking to xenbus_printfKeir Fraser2008-08-271-1/+2
| | | | | Reported-by: "Daniel P. Berrange" <berrange@redhat.com> Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
* mini-os: make xenbus_read_integer and xenbus_printf take const stringsKeir Fraser2008-08-271-3/+3
| | | | Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
* stubdom: add syslog functionsKeir Fraser2008-08-271-0/+37
| | | | Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
* stubdom: add dummy pthread_mutexattr*Keir Fraser2008-08-271-0/+7
| | | | Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
* stubdom: int32_t is provided by stdint.h, not sys/types.hKeir Fraser2008-08-271-1/+1
| | | | Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
* stubdom: for safety, tell lwip we use the heap in the event handlerKeir Fraser2008-08-111-0/+1
| | | | Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
* prefix mini-os lists with minios_, drop QEMU_ prefix from QEMU_LIST_*Keir Fraser2008-08-086-71/+71
| | | | | | That permits to reduce the amount of difference with upstream. Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
* stubdom: turn off_t 64bit on x86Keir Fraser2008-08-083-3/+11
| | | | | | | | We can decide to make off_t 64bit instead of implementing the LFS tricks. Name corresponding functions foo64 to permit simple caml programs linking. Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
* FSIF: extend protocol to multi-grant requests and multi-page ringKeir Fraser2008-08-011-1/+4
| | | | | | | To improve throughput and inline the stat response. Signed-off-by: Grzegorz Milos <gm281@cam.ac.uk> Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
* minios: grant table map (gntdev) for miniosKeir Fraser2008-07-242-0/+38
| | | | | | | | I've implemented a grant map for mini-os to support the xc_gnttab_*() functions, the equivalent of gntdev in linux. This is useful for my work in putting xenstored in a stub domain. Signed-off-by: Diego Ongaro <diego.ongaro@citrix.com>
* mini-os: export allocate_ondemandKeir Fraser2008-07-181-0/+1
| | | | | | | allocate_ondemand can be used to allocate addresse space. Primarily used for mapping MFNs, it can also be used e.g. to map grant refs. Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
* mini-os is missing list_top in its list.hKeir Fraser2008-07-181-0/+6
| | | | Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* mini-os: add stack walking debugKeir Fraser2008-07-182-0/+3
| | | | Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
* stubdom: add functions for caml runtimeKeir Fraser2008-07-171-3/+1
| | | | Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
* stubdom: Fixes for gcc 4.2.4 32bitKeir Fraser2008-07-101-1/+0
| | | | Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
* stubdom: fixes to compile with qemu-xenKeir Fraser2008-07-1036-59/+62
| | | | | | | | | | This adds fixes to the stub domain build into compiling Ian Jackson's qemu-xen. The most notable change is that mini-os headers now #include each other through a mini-os/ prefix, so that we can turn all -I into -isystem and still be sure that we include Mini-OS headers (and not qemu's console.h or blktaplib's list.h for instance...). Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
* minios: Add missing fcntl.h.Keir Fraser2008-07-091-0/+11
| | | | Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* stubdom: fix pass-through compilationKeir Fraser2008-07-051-0/+1
| | | | Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
* stubdom: gcc-4.3 supportKeir Fraser2008-07-041-1/+37
| | | | | | It seems we need to provide limits.h in the gcc-4.3 case. Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>