Commit Graph

7679 Commits

Author SHA1 Message Date
Norman Feske
78c09c27ca terminal: respond to window-close event 2018-05-30 13:36:23 +02:00
Norman Feske
d3626bd84f nitpicker: fix transparency artifacts
The 'View_stack::draw_rec' method limited the redraw to parts of the
view that were explicitly marked as dirty. This does not produce the
desired result when stacking multiple transparent views. Here, the
background views must be drawn regardless of whether they are marked as
dirty or not.
2018-05-30 13:36:23 +02:00
Norman Feske
096c1e1f7f run/image/disk: omit * from GENODE partition label
This way, the boot partition is not considered as default partition by
Sculpt unless the user explicitly marks it as such.

Issue #2778
2018-05-30 13:36:22 +02:00
Christian Helmuth
66d44289e1 tool/ports: streamline hash tool usage 2018-05-30 13:36:22 +02:00
Emery Hemingway
82897d672e Remove SHA1 verification for port downloads
Revert support for both SHA1 and SHA256 verification and support SHA256
only.

Ref #2767
2018-05-30 13:36:22 +02:00
Emery Hemingway
72cb71c827 Replace SHA1 hashes of port downloads with SHA256
Now SHA256 has been shown to be an adequate replacement for SHA1, use
SHA256 for verifying all port downloads.

Ref #2767
2018-05-30 13:36:22 +02:00
Emery Hemingway
e36ddaf659 Rename lwip library to lwip_legacy
Rename LwIP library in preparation for removal of LwIP libc plugin. The
current LwIP library will be replaced with a new version stripped of its
synchronous socket support. The next version will be incompatible with
the current, so removing 'lwip.lib.so' completely for a period makes it
easy to identify legacy users.

Fix #2797
2018-05-30 13:36:22 +02:00
Alexander Boettcher
b1389416d2 run: created hybrid MBR for image/disk
Issue #2778
2018-05-30 13:36:21 +02:00
Alexander Boettcher
0efa67893e acpica: generate report usable by platform_drv
Fixes #2816
2018-05-30 13:36:21 +02:00
Roman Iten
874815ebf6 run: improve error handling regarding depots
Fixes #2821
2018-05-30 13:36:21 +02:00
Christian Prochaska
c5f1ac615c Usb::Packet_handler: avoid completion handler recursion
Fixes #2828
2018-05-30 13:36:20 +02:00
Christian Prochaska
c6e4f5914e usb_block_drv: release packet after device reset
Fixes #2827
2018-05-30 13:36:20 +02:00
Christian Prochaska
68ec33b0d3 usb_block_drv: use 10-byte SCSI commands by default
Fixes #2826
2018-05-30 13:36:20 +02:00
Christian Prochaska
5ac56be748 usb_block_drv: set inquiry response length to 36 bytes
Fixes #2825
2018-05-30 13:36:20 +02:00
Christian Prochaska
cecd461f38 usb_block_drv: look up endpoints at runtime
Fixes #2824
2018-05-30 13:36:19 +02:00
Christian Prochaska
106a5f1d4d usb_block_drv: calculate block count correctly
Fixes #2823
2018-05-30 13:36:19 +02:00
Martin Stein
3d480ec947 nic_router: fix config update of ICMP links
Previously, the update of ICMP links on a new router configuration lead to an
uncaught exception.

Issue #2795
2018-05-30 13:36:19 +02:00
Christian Helmuth
23f4acfabc Remove redundant calls to exec_static_constructors() 2018-05-30 13:36:19 +02:00
Alexander Boettcher
501d82b99f platform_drv: skip assign device if iommu missing
Avoid red messages in the log on machines with no IOMMU, which recurring
confuse people.

Issue #2801
2018-05-30 13:36:18 +02:00
Norman Feske
24e6b677bd util/list_model.h: graceful handling of duplicates
This patch makes the 'List_model' utility robust against duplicated
occurrences of node IDs in the supplied XML data. If two or more XML
nodes correspond to the same model element, the existing element is
updated with the information of the subsequent XML nodes.
2018-05-30 13:36:18 +02:00
Norman Feske
bf52f73d03 menu_view: improved box and float layouts
This patch enhances the box layout such that child widgets are
equally stretched to the available size whenever the box layout's
size is larger than its min size. Furthermore, it corrects the
mixed-up use of the terms east and west in the float widget.
2018-05-30 13:36:18 +02:00
Norman Feske
2a9b0a163e depot_deploy: make child-state tracking reusable 2018-05-30 13:36:18 +02:00
Norman Feske
94db45036c fetchurl: expand report buffer on demand 2018-05-30 13:36:17 +02:00
Norman Feske
9fd2ab1aaf depot_download: forward fetchurl progress reports
This patch enables the observation of the download progress from the
outside of the depot-download subsystem.
2018-05-30 13:36:17 +02:00
Norman Feske
e314edb736 depot_download: respond to 'installation' changes
This patch enables the 'depot_download' subsystem to trigger downloads
whenever there is a new version of the 'installation' ROM.
2018-05-30 13:36:17 +02:00
Christian Helmuth
8f102264d3 server/fs_report: open/close file for each write
The file may also be changed by other components, so a open-close cycle
for write() is more robust. For example, Vim removes the original file
and recreates with the new content.
2018-05-30 13:36:17 +02:00
Josef Söntgen
ab77f94348 gems: add tool to write a GPT to a Block device
This component creates a GPT on a Block device. It supports the common
actions, as in adding, deleting and modifying entries in the GPT, while
considering alignment constraints. If needed it will round the length of
a partition down to meet those constraints. The component will not
perform layout checking, i.e., it does not care about overlapping
partitions. Only when apping a partition it will make sure that the
partition will fit.

Please read _repos/gems/src/app/gpt_write/README_ for more detailed
information on how to use the component and feel free to check out
_repos/gems/run/gpt_write.run_.

Fixes #2814.
2018-05-30 13:36:16 +02:00
Norman Feske
3065cceb73 menu_view: defer geometry animation to layout step
The box-layout widget used to trigger the geometry animation of its
children immediately when updating the widget from the XML model (by
calling 'child->Widget::geometry'). This caused layout inconsistencies
in situations where the box layout is defined not by the constraints of
the child widgets but from the outside (the parent calls Widget::size).
Since the final layout is not known before the parent defines the actual
size, this patch moves the trigger point for the geometry animation to
'Widget::size'.
2018-05-30 13:36:16 +02:00
Norman Feske
05b0010281 menu_view: optional 'version' widget attribute
The new 'version' attribute can be used to explicitly distinguish
widgets that have the same name. E.g., if one widget is removed and
another with the same name is created somewhere else at the same time,
the menu view would normally interpret this change as a movement.
By attaching a distinct 'version' the new instance, menu view won't
attempt perform a smooth transition between the old and new widgets.
2018-05-30 13:36:16 +02:00
Norman Feske
7d55adf01c nit_fb: defer mode change to client response
The '_active_mode' must not be changed at any time except when the
client asks for the 'Framebuffer::mode'. Otherwise, the dimensions of
dataspace used by the client is not always consistent with the mode
information as gathered by the client.
2018-05-30 13:36:15 +02:00
Roman Iten
5d23ef9447 run: make run script fail on unmet dependencies
Fixes #2820
2018-05-30 13:36:15 +02:00
Christian Prochaska
f4cfa0ca43 vbox5: remove 'force_ioapic' code
Fixes #2806
2018-05-30 13:36:15 +02:00
Christian Helmuth
cb3556877d pointer: show default pointer on empty shape report 2018-05-30 13:36:15 +02:00
Christian Helmuth
0f7de9268d check_port_source: download first kilobytes of file
Unfortunately, some sites do not support the HTTP/1.1 range header and
just serve the whole file, which takes it's time and may result in a
timeout.

Fixes #2819
2018-05-30 13:36:14 +02:00
Alexander Boettcher
d450573681 run: image/disk for UEFI & BIOS legacy boot
Fixes #2778
2018-05-30 13:36:14 +02:00
Alexander Boettcher
bbfa65a88a tool: remove rump tools
image/disk was the last user of the tools.

Issue #2778
2018-05-30 13:36:14 +02:00
Emery Hemingway
29c08d4751 Fix types for VFS error printing
Ref #2793
2018-05-30 13:36:14 +02:00
Christian Helmuth
87e41ef47e rump: remove debugging artifact (rump_dummy) 2018-05-30 13:36:13 +02:00
Emery Hemingway
1097a5c7c2 Libc: ignore address argument to TCP sendto
Generic code that operates over both UDP and TCP sockets might use
'sendto', but in the case of TCP the destination address ought to be
safely discarded. This seems to be the case for certain DNS software
that operates over both UDP and TCP.

Fix #2807
2018-05-30 13:36:13 +02:00
Christian Prochaska
2b75445ac1 usb_block_drv: keep driver instance between sessions
Fixes #2813
2018-05-30 13:36:13 +02:00
Martin Stein
505d30cc42 Update ping tests
On real hardware, the tests expect an IPv4 subnet such that UDP requests
to 10.0.0.2 port 12345 get answered with an ICMP destination port unreachable.

Issue #2775

support USB NIC

Issue #2788

Set DHCP discover timeout to 1 second because, for some reason, the first
DHCP discover attempt of the NIC router on the PandaBoard times out with the
nightly test infrastructure.

Issue #2788

Adaption to mac-address allocation changes
2018-05-30 13:36:13 +02:00
Martin Stein
2d229a2b72 ping: support UDP
Ping via specific UDP port instead of ICMP Echo with the two new configuration
attributes 'protocol' and 'dst_port'.

Issue #2775
2018-05-30 13:36:12 +02:00
Martin Stein
d93fda594a ping: dynamic IP configuration
Use DHCP to obtain and maintain an IP configuration if no static
configuration is given.

Issue #2775
2018-05-30 13:36:12 +02:00
Martin Stein
ce57319e4b nic_router: bind uplink session lifetime to domain
Normally, the NIC sessions are independent from the domain tags.
However, by now the uplink session, in contrast to the sessions of the
other domains, is still not a server but a client. This means that only
the NIC router itself can decide when to open and close uplink sessions
and how many. Thus, with this commit, we break with the pattern that
session lifetime is independent from domains by letting the NIC router
create the uplink session when the uplink domain appears and close the
session when the domain disappears.

Fixes #2795
2018-05-30 13:36:12 +02:00
Martin Stein
7085640f05 nic_router: remove 'mac_first' attribute
Since the router MAC is allocated like the donwlink MACs it can't happen
anymore that these MACs clash, for instance due to nested routers. Thus,
the range of the MAC allocators of nested routers must not be exclusive
anymore which deprecates the 'mac_first' configuration attribute.

Issue #2795
2018-05-30 13:36:12 +02:00
Martin Stein
e83f095fd2 nic_router: downlinks use own router MAC address
Allocate a virtual MAC address at runtime that is used as router
Ethernet-identity for all downlink domains. This makes the downlink
domains independent from the uplink session.

Issue #2795
2018-05-30 13:36:11 +02:00
Martin Stein
41dbad13e4 nic_router/nic_bridge: re-work Mac_allocator
The old MAC allocator had several drawbacks:

* the address base was a public static that could and must have been written
  directly from outside the class
* the in-use-flag array was based on unsigned values consuming 4 bytes each
  for only one bit of information
* it was a public header that we actually don't want to expose to all
  components but only to the few networking components
* it used the not-so-safe bit notation for integer members of GCC

The new version fixes all these drawbacks.

Issue #2795
2018-05-30 13:36:11 +02:00
Martin Stein
980f3e9c5c net: use Size_guard for packet-data accessors
Instead of handing over the maximum available size to the packet data
accessors, hand over a size guard that keeps track of the packets
boundaries.

This commit also moves the size-guard utilitiy header of Ping and NIC
Router to the include/net directory making it a part of the net library.
It applies the new approach to all net-lib users in the basic repositories.

Ping looses its configurability regarding the ICMP data size as this would
require an additional method in the size guard which would be used only by
Ping.

The size guard was also re-worked to fit the fact that a packet can
bring a tail as well as a header (Ethernet).

Issue #2788
2018-05-30 13:36:11 +02:00
Martin Stein
2bd163533b string.h: ascii_to for unsigned char
Issue #2795
2018-05-30 13:36:11 +02:00
Norman Feske
48bc69b14b run/image/disk: consider ext2 overhead
The original value of 256K does not suffice for images of the size of
sculpt.
2018-05-30 13:36:10 +02:00