Simon Gerber [Thu, 15 Dec 2016 09:38:35 +0000]
libbarrelfish: make cap deletion in memobj_destroy_anon() optional
Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>
Simon Gerber [Wed, 14 Dec 2016 17:05:15 +0000]
acpi: osglue: improve and simplify AcpiOsMapMemory and AcpiOsUnmapMemory
Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>
Simon Gerber [Wed, 14 Dec 2016 17:03:58 +0000]
libbarrelfish: memobj_anon: return error if frame_identify fails
Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>
Simon Gerber [Wed, 14 Dec 2016 14:52:28 +0000]
capabilities: make mapping caps size 1 (from 0) so they do not mess up mdb_range_query()
Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>
Simon Gerber [Wed, 14 Dec 2016 14:51:52 +0000]
kernel: retype: more diagnostics on retype range checks
Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>
Simon Gerber [Wed, 14 Dec 2016 14:49:21 +0000]
libmdb: add argument sanity check in mdb_is_inside()
Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>
David Cock [Tue, 13 Dec 2016 14:32:35 +0000]
Comments in the scheduler interface, from code walkthrough.
Signed-off-by: David Cock <david.cock@inf.ethz.ch>
Adam Turowski [Tue, 13 Dec 2016 11:54:08 +0000]
systime: reverting to a RTC-based calibration on x86
Signed-off-by: Adam Turowski <adam.turowski@inf.ethz.ch>
Moritz Hoffmann [Mon, 12 Dec 2016 13:00:22 +0000]
harness: Replace reset_module with add_module
The reset_module method does not exist anymore in the test infrastructure.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Thu, 8 Dec 2016 13:45:13 +0000]
harness/fvp: Increase boot timeout to 60s for EFI-based tests
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Thu, 8 Dec 2016 13:32:39 +0000]
harness/fvp: Use correct module source path for building EFI image
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Thu, 8 Dec 2016 13:04:46 +0000]
harness/fvp: Correct EFI image path, was duplicate
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Thu, 8 Dec 2016 12:08:07 +0000]
hake: add menu.lst for armv8_a57_1
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Roni Häcki [Wed, 7 Dec 2016 14:50:39 +0000]
Solarflare driver header fix
Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>
Moritz Hoffmann [Wed, 7 Dec 2016 13:49:44 +0000]
kaluga: Do not try to obtain IRQ cap on ARMv8 because it is not implemented
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Wed, 7 Dec 2016 13:47:57 +0000]
harness: Add kaluga to default boot modules on ARMv8
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Wed, 7 Dec 2016 14:04:21 +0000]
kaluaga: cpu_count parameter to wait for n instead of all spawnd processes
This is a work-around for ARMv8 where we know about all cores from ACPI but
do not have support for starting other than the BSP core, yet.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Wed, 7 Dec 2016 13:45:57 +0000]
kernel/armv8: Return FVP platform for ARMv8 VM cpu drivers
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Wed, 7 Dec 2016 10:35:57 +0000]
kernel/armv8: Read value from first instead of second parameter in sysreg.S
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Wed, 7 Dec 2016 10:35:20 +0000]
kernel/armv8: Use armv8 register definitions in efiboot_init.c
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Wed, 7 Dec 2016 10:37:43 +0000]
armv8: Add more register definitions
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Wed, 7 Dec 2016 10:33:25 +0000]
mackerel: Do not pass device pointer to registerwise address space functions
Due to limitations in Hake, we cannot include device headers in other
header files. Hence, the device type is not known and it is not possible
to define correct header files. This change remove the device parameter
from REGISTERWISE address space implementations.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 6 Dec 2016 13:05:58 +0000]
kernel/armv8: Add GIC v3 placeholder implementation
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 6 Dec 2016 13:00:16 +0000]
armv8: Add ICC cpu register definitions
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 6 Dec 2016 10:42:10 +0000]
armv8: Default to static linking
This explicitly forces static linking of all binaries.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 6 Dec 2016 10:39:59 +0000]
Initial ARMv8 device file with backing sysreg implementation
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 6 Dec 2016 10:38:47 +0000]
mackerel: Add registerwise address space.
The registerwise address space expects functions of the form
__DN(REG_read_SIZE) to exist and declares them as well.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Mon, 5 Dec 2016 13:07:05 +0000]
harness/fvp: Update DStream path to 5.26.0
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Mon, 5 Dec 2016 09:26:00 +0000]
hake: GHC 8 compatibility
GHC removed Opt_DeriveDataTypeable and Opt_StandaloneDeriving from DynFlags.
This patch does not require the two extension flags anymore and specifies them
as an in-file flag in TreeDB where required. It does not change the behavior on GHC 7.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Reto Achermann [Mon, 5 Dec 2016 10:30:34 +0000]
adding simple TFTP read test
Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>
Moritz Hoffmann [Fri, 2 Dec 2016 10:25:07 +0000]
harness/xeonphi: Fix test by using correct module directory
A change in the Machine API broke this test.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Fri, 2 Dec 2016 10:23:01 +0000]
kernel/x1om: Fix compile errors
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Fri, 2 Dec 2016 08:03:56 +0000]
kernel/armv8: Fix timer initialization to properly initialize kernel state
Initialize systime_frequency and kernel_timeslice according to timer frequency.
Previously, the frequency was not initialized, confusing the scheduler.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Thu, 1 Dec 2016 11:02:45 +0000]
libbarrelfish: align dispatcher stacks to 16 byte
This is required on ARMv8 where stacks must be 16-byte aligned.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Thu, 1 Dec 2016 11:02:07 +0000]
libbarrelfish: Increase dispatcher stack to 8k
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Thu, 1 Dec 2016 08:24:09 +0000]
irqtest: Fix pass condition to what description says
Allow 5 instead of 4 missed interrupts.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Thu, 1 Dec 2016 08:12:11 +0000]
Fix T325: ETH rack Pandaboards should not use picocom
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Simon Gerber [Wed, 30 Nov 2016 16:21:20 +0000]
harness: exit with non-zero when tests fail
Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>
Reto Achermann [Wed, 30 Nov 2016 14:40:38 +0000]
armv8/hake: use of gcc/g++ instead of gcc-5/g++5
Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>
Moritz Hoffmann [Wed, 30 Nov 2016 13:34:34 +0000]
harness/pandaboard: Fix Machine implementation by passing parameters to super class
Also uses the Machine's menulst_template variable.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Wed, 30 Nov 2016 13:33:01 +0000]
harness: Better error message if instantiating a machine fails
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Adam Turowski [Wed, 30 Nov 2016 12:20:27 +0000]
systime: fixing timers on A15
Signed-off-by: Adam Turowski <adam.turowski@inf.ethz.ch>
Moritz Hoffmann [Wed, 30 Nov 2016 11:10:25 +0000]
kernel/armv8: Read CNTPCT_EL0 for timestamp_read/systime_now
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Wed, 30 Nov 2016 10:36:15 +0000]
kernel/armv8: Fix console initialization
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Wed, 30 Nov 2016 10:35:48 +0000]
harness/fvp: Fix get_output for EFI machines because it doesn't use telnet
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Wed, 30 Nov 2016 10:35:02 +0000]
harness/fvp: Document where EFI firmware can be obtained
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Wed, 30 Nov 2016 10:34:37 +0000]
harness/fvp: Add more EFI machine targets
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Wed, 30 Nov 2016 10:34:00 +0000]
harness/fvp: Do not open a window for second uart
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Wed, 30 Nov 2016 10:33:37 +0000]
harness/fvp: Disable configuring telnet port as it's not used
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Wed, 30 Nov 2016 10:33:09 +0000]
harness/fvp: Output to stdout (unbuffered)
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Wed, 30 Nov 2016 10:30:10 +0000]
harness/fvp: Use UEFI firmware on netos share
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Wed, 30 Nov 2016 09:55:42 +0000]
harness/fvp: Use correct kernel_img property for EFI machines
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Wed, 30 Nov 2016 09:55:04 +0000]
harness/fvp: Initialize FVPMachineEFI correctly
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Wed, 30 Nov 2016 09:34:37 +0000]
harness/fvp: Do not override get_output
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Adam Turowski [Wed, 30 Nov 2016 09:02:38 +0000]
systime: correcting includes
Signed-off-by: Adam Turowski <adam.turowski@inf.ethz.ch>
Moritz Hoffmann [Wed, 30 Nov 2016 09:05:52 +0000]
harness: Update netos FVP path
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 29 Nov 2016 18:25:42 +0000]
systime: Correct includes
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 29 Nov 2016 18:25:16 +0000]
barrelfish_kpi: correct includes for rdtsc on x86_64
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 29 Nov 2016 18:24:37 +0000]
barrelfish_kpi: Add unknown_arch.h to x86_64 although it is empty
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 29 Nov 2016 18:23:13 +0000]
hake: Generate $arch_All target that compiles all binaries for an arch
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 29 Nov 2016 13:45:28 +0000]
barrelfish/systime.h: Need to include kpi/unknown_arch for rdtsc on arm
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 29 Nov 2016 12:35:13 +0000]
kaluga: Properly support ARMv8 platforms
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 29 Nov 2016 12:34:51 +0000]
crt: Change static ctors array to volatile to disable GCC 6 optimiazations
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 29 Nov 2016 12:33:51 +0000]
kernel/systime: Include more specific header
Was kernel.h, should be barrelfish_kpi/types.h.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 29 Nov 2016 12:33:18 +0000]
kernel/armv8: syscall.c depends on systime.h
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 29 Nov 2016 12:32:56 +0000]
kernel/armv8: More timer implementation. Also align with systime-changes
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 29 Nov 2016 12:32:12 +0000]
kernel/armv8: kernel_timeslice is not unsigned long, fix argument parsing
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 29 Nov 2016 12:31:37 +0000]
barrelfish_kpi: Add FVP platform
This is a placeholder platform for more ARMv8-based platforms to come.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 29 Nov 2016 12:30:51 +0000]
libbarrelfish/systime: Include more specific header
<barrelfish_kpi/types.h> declares systime_t.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 29 Nov 2016 12:30:14 +0000]
armv8/kpi: Correct include
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Tue, 29 Nov 2016 10:31:21 +0000]
solarflare: Correct device/if includes
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Adam Turowski [Tue, 29 Nov 2016 11:47:39 +0000]
systime: complete remove of kernel_now from x86_64
Signed-off-by: Adam Turowski <adam.turowski@inf.ethz.ch>
Moritz Hoffmann [Tue, 29 Nov 2016 10:08:37 +0000]
barrelfish_kpi/aarch64: Fix compilation by using correct include
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Mon, 28 Nov 2016 17:13:16 +0000]
schedsim: Compatibility to systime changes
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Adam Turowski [Mon, 28 Nov 2016 15:30:54 +0000]
systime: adding support for A15 (broken for the moment)
Signed-off-by: Adam Turowski <adam.turowski@inf.ethz.ch>
Moritz Hoffmann [Mon, 28 Nov 2016 15:28:11 +0000]
Revert "kernel/pl011: Map kernel virtual address of device if MMU is enabled"
This reverts commit
39e6e9be28e8d120c1fc0c7af60bce4f9c7e8082.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Mon, 28 Nov 2016 15:10:36 +0000]
harness: Remove shadowing methods from ETHMachineBase
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Mon, 28 Nov 2016 15:10:08 +0000]
harness: Fix force_write to forward to machine operations.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Adam Turowski [Mon, 28 Nov 2016 11:44:42 +0000]
systime: introducing system time based on time stamp counter/global timer, removing kernel_now
Signed-off-by: Adam Turowski <adam.turowski@inf.ethz.ch>
Moritz Hoffmann [Mon, 28 Nov 2016 10:46:11 +0000]
harness: Use self._name instead of self.name
Shouldn't access private variable anyhow...
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Mon, 28 Nov 2016 10:34:46 +0000]
harness: Better error message for unknown machine parameters
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Mon, 28 Nov 2016 10:34:19 +0000]
harness: Change machine create parameters from dict to kwargs
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Mon, 28 Nov 2016 10:32:13 +0000]
harness: Add machine parameter validation before machines are created
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Mon, 28 Nov 2016 08:21:07 +0000]
harness: Gracefully fail test if get_output returns None
This happens when a simulator fails to start.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Mon, 28 Nov 2016 08:20:20 +0000]
harness: Update gem5 tests
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Mon, 28 Nov 2016 08:10:13 +0000]
harness: Fix qemu tests
Use new Machine/Operation split structure.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Fri, 25 Nov 2016 16:37:26 +0000]
harness: Make Machine class configurable in constructor
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Fri, 25 Nov 2016 12:52:40 +0000]
harness: Split machine operations into MachineOperations class
This avoids the need for multiple inheritance of machine objects
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Fri, 25 Nov 2016 09:18:36 +0000]
harness: Remove support for $BUILD in test module names
This is not needed anymore as modules starting with a / are treated as
absolute and hence do not get the prefix.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Fri, 25 Nov 2016 09:12:21 +0000]
harness: Refactor ETH machines to use object variables instead of shared machine dict
This is the first step of de-duplicating code within various machine definitions
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Fri, 25 Nov 2016 09:10:54 +0000]
harness: Move default_bootmodules to Machine class
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Thu, 24 Nov 2016 17:32:14 +0000]
harness: fix add_kernel_arg by changing it to only taking iterables
Also rename it to add_kernel_args.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Thu, 24 Nov 2016 17:10:35 +0000]
kernel/armv8/sysreg: Add wrappers for more registers
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Thu, 24 Nov 2016 17:09:37 +0000]
kernel/pl011: Map kernel virtual address of device if MMU is enabled
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Thu, 24 Nov 2016 17:08:44 +0000]
kernel/logging: Convert defined constants to enum
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Thu, 24 Nov 2016 17:08:09 +0000]
harness/builds: Do not clobber os.environ but rather work on copy
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Thu, 24 Nov 2016 17:07:37 +0000]
harness: Remove unused code
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Thu, 24 Nov 2016 17:07:16 +0000]
harness: Remove kludges from menu.lst generation
This might break some tests.
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Thu, 24 Nov 2016 17:05:37 +0000]
harness/FVP: Add ARMv8 FVP machine booting from EFI
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Moritz Hoffmann [Thu, 24 Nov 2016 17:04:29 +0000]
harness/FVP: Do not redirect error output to /dev/null
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>