Commit Graph

207 Commits

Author SHA1 Message Date
91f8281618 depot: update recipe hashes 2020-10-09 13:35:57 +02:00
1b41d9db90 base: remove alarm library from base
Ref #3884
2020-10-09 13:33:36 +02:00
c1d0179194 dde_rump: move private headers to src/include
Ref #3884
2020-10-09 13:33:36 +02:00
04463806a8 dde_rump: remove unused rump_cgd
Ref #3884
2020-10-09 13:33:36 +02:00
af01370cc1 run/rump_fat: raise ram quota
Ref #3884
2020-10-09 13:33:35 +02:00
c59c266afc depot: update recipe hashes 2020-09-17 14:23:14 +02:00
c649307720 depot: update recipe hashes 2020-08-28 08:29:12 +02:00
7d0cb9620b depot: update recipe hashes 2020-08-25 11:50:41 +02:00
de795b1a6e depot: update recipe hashes 2020-07-13 11:33:53 +02:00
9a8a42e819 dde_rump: use Mutex/Blockade
Issue #3805
2020-07-13 11:33:12 +02:00
4450b37ff5 depot: update recipe hashes 2020-06-29 14:25:28 +02:00
6fc7ed55cf Replace 'rom_block' with 'vfs_block'
Issue #3781.
2020-06-29 14:22:28 +02:00
ec711b008e Replace 'ram_block' with 'vfs_block'
Issue #3781.
2020-06-29 14:22:28 +02:00
6006051fb9 depot: update recipe hashes 2020-05-27 11:56:47 +02:00
b078224753 Replace Genode::strncpy by Genode::copy_cstring
- Since Genode::strncpy is not 100% compatible with the POSIX
  strncpy function, better use a distinct name.

- Remove bogus return value from the function, easing the potential
  enforcement of mandatory return-value checks later.

Fixes #3752
2020-05-27 11:56:45 +02:00
0f27d139bd depot: update recipe hashes 2020-05-18 10:16:59 +02:00
be65c4acd2 Avoid use of deprecated Xml_node methods
Issue #3755
2020-05-18 10:16:14 +02:00
9d67f9fc8e Remove Allocator_guard
This patch removes old 'Allocator_guard' utility and replaces its use
with the modern 'Constrained_ram_allocator'.

The adjustment of core in this respect has the side effect of a more
accurate capability accounting in core's CPU, TRACE, and RM services.
In particular, the dataspace capabilities needed for core-internal
allocations via the 'Sliced_heap' are accounted to the client now.
The same goes for nitpicker and nic_dump as other former users of the
allocator guard. Hence, the patch also touches code at the client and
server sides related to these services.

The only remaining user of the 'Allocator_guard' is the Intel GPU
driver. As the adaptation of this component would be too invasive
without testing, this patch leaves this component unchanged by keeping a
copy of the 'allocator_guard.h' locally at the component.

Fixes #3750
2020-05-18 10:16:12 +02:00
dd899fde29 depot: update recipe hashes 2020-04-24 14:37:57 +02:00
b60b591d06 depot: update recipe hashes 2020-04-17 12:40:13 +02:00
3956530634 base: use Mutex/Blockade
Issue #3612
2020-04-17 12:40:12 +02:00
46fa8197a2 depot: update recipe hashes 2020-03-26 11:39:02 +01:00
5affd51250 depot: update recipe hashes 2020-02-28 08:59:43 +01:00
4cccf74664 depot: update recipe hashes 2020-02-20 12:11:23 +01:00
57ea1dbdd3 depot: update recipe hashes 2020-02-10 14:29:06 +01:00
90535a1401 depot: update recipe hashes 2020-02-04 15:51:10 +01:00
b931b67cba depot: update recipe hashes 2019-12-19 17:01:43 +01:00
8f71c90ca8 dde_rump: backport aarch64 (Fix #3565) 2019-12-19 16:59:03 +01:00
11ef8e1ff2 depot: update recipe hashes 2019-11-28 09:06:39 +01:00
cfba429c15 vfs/rump: offer all files as read-writeable
The distinction between read-only and read-writeable is the
responsibility of the front end, i.e., the vfs server.
2019-11-21 14:25:05 +01:00
7ed1d7f11d depot: update recipe hashes 2019-11-19 14:54:14 +01:00
a8dd7dd2fa Remove rump_fs server component
This patch replaces the use of the rump_fs server by the VFS server with
the Rump VFS plugin.

Issue #3512
2019-11-19 14:23:56 +01:00
5ab1505d43 file system: enhanced file status info
This patch extends the 'File_system::Status',
'File_system::Directory_entry', and the related 'Vfs' types with
the following additional information:

- Distinction between continuous and transactional files (Node_type)
  (issue #3507)
- Readable, writeable, and executable attributes (Node_rwx),
  replacing the former 'mode' bits
  (issue #3030)

The types 'Node_rwx', 'Node_type' are defined twice,
once for the VFS (vfs/types.h) and once for the 'File_system'
session (file_system_session/file_system_session.h).
Similarly, there is a direct correspondance between
'Vfs::Directory_service::Dirent' and 'File_system::Directory_entry'.

This duplication of types follows the existing pattern of keeping the
VFS and file-system session independent from each other.
2019-11-19 14:23:56 +01:00
97df705e53 dde_rump: eliminate global ctors 2019-11-19 14:23:55 +01:00
9a82bbb54d vfs: add modification time member to directory_service
Issue #1784.
2019-11-19 14:17:30 +01:00
400039e1b6 rump_fs: add modification time
Issue #1784.
2019-11-19 14:17:30 +01:00
4a7b0e99a6 depot: update recipe hashes 2019-09-20 14:14:16 +02:00
b2c59576ae depot: update recipe hashes 2019-08-28 14:36:56 +02:00
312f801f8a depot: update recipe hashes 2019-08-21 13:25:26 +02:00
114de7721f rump_fs: support the access of GEMDOS file systems
The GEMDOS variant is supported by NetBSD's msdos file-system driver.
However, it must explicitly be enabled by a mount flag. This patch
adds the principle ability for passing mount flags to file system
drivers and enables the MSDOSFSMNT_GEMDOSFS flag based on the
config attribute 'gemdos="yes"'.

Issue #3471
2019-08-21 12:37:00 +02:00
17d32b3e15 depot: update recipe hashes 2019-07-09 09:06:54 +02:00
2b183f9497 depot: update recipe hashes 2019-05-29 10:20:52 +02:00
8af81668ea rump_fs: fix run time errors when built with GCC 8.3.0
Fixes #3360
2019-05-27 14:46:54 +02:00
ba51800b31 depot: update recipe hashes 2019-05-06 16:15:27 +02:00
181c78d482 timeout: use uint64_t for all plain time values
This enforces the use of unsigned 64-bit values for time in the duration type,
the timeout framework, the timer session, the userland timer-drivers, and the
alarm framework on all platforms. The commit also adapts the code that uses
these tools accross all basic repositories (base, base-*, os. gems, libports,
ports, dde_*) to use unsigned 64-bit values for time as well as far as this
does not imply profound modifications.

Fixes #3208
2019-05-06 16:15:26 +02:00
e5f27b44b5 block_session: turn 'Connection' into template
As a preparatory step for introducing the new block-client API, we have
to turn the 'Block::Connection' into a class template. The template
argument will be used to tie an application-defined job type to the
block connection.

Issue #3283
2019-05-06 16:15:25 +02:00
593e971121 block_session: SYNC and TRIM as async operations
This patch removes the blocking Block::Session::sync RPC function and
adds the asynchronous operations SYNC and TRIM to the block session's
packet-stream interface.

Even though the patch adjusts all block components to the interface
change, the components keep the former blocking handling of sync
internally for now because of the design of the 'Block::Driver'
interface. This old interface is not worth changing. We should instead
migrate the block servers step by step to the new
'Block::Request_stream' API.

Fixes #3274
2019-05-06 16:15:24 +02:00
bbe3ee8dc5 block_session: server-defined payload alignment
This patch replaces the formerly fixed 2 KiB data alignment within the
packet-stream buffer by a server-defined alignment. This has two
benefits.

First, when using block servers that provide small block sizes like 512
bytes, we avoid fragmenting the packet-stream buffer, which occurs when
aligning 512-byte requests at 2 KiB boundaries. This reduces meta data
costs for the packet-stream allocator and also allows fitting more
requests into the buffer.

Second, block drivers with alignment constraints dictated by the
hardware can now pass those constraints to the client, thereby easing
the use of zero-copy DMA directly into the packet stream.

The alignment is determined by the Block::Session_client at construction
time and applied by the Block::Session_client::alloc_packet method.
Block-session clients should always use this method, not the 'alloc_packet'
method of the packet stream (tx source) directly. The latter merely
applies a default alignment of 2 KiB.

At the server side, the alignment is automatically checked by
block/component.h (old API) and block/request_stream.h (new API).

Issue #3274
2019-05-03 13:53:12 +02:00
2208220c12 block session: remove Block::Session::Operations
This patch modernizes the 'Block::Session::info' interface. Instead of
using out parameters, the 'init' RPC function returns a compound 'Info'
object now. The rather complicated 'Operations' struct is replaced by
a 'writeable' attribute in the 'Info' object.

Fixes #3275
2019-05-03 13:53:12 +02:00
6ea1179145 depot: update recipe hashes 2019-04-09 12:30:35 +02:00