History log of /barrelfish-master/include/barrelfish_kpi/init.h
Revision Date Author Comments
# 9bd8d1d5 03-Apr-2019 Reto Achermann <reto.achermann@inf.ethz.ch>

replacing umlaute and fixing address in headers Haldeneggsteig -> Universitaetsstrasse

Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>


# 6f1b5f71 19-Dec-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

dispatcher: remove DISPATCHER_FRAME_BITS, and redefine DISPATCHER_FRAME_SIZE as 512kB.

This is necessary with the new contents struct dispatcher_<arch> when
using array-based pmap on larger machines, as we otherwise run out of
room for LMP channel receive buffers in the SKB.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 1bd35ffc 08-Nov-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

Early cnode allocation: only provide 64 16kB RAM caps per domain for early cnode allocator

This allows us to decrease CORE_DATA_PAGES to 1100 (from 2200), because
we don't need to allocate as many 16kB regions for the monitor on each
core.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# b62040d2 08-Dec-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

T384: x86_64: change shadow page tables to have dedicated cnodes for mapping caps

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# e53c0471 05-Mar-2018 Reto Achermann <reto.achermann@inf.ethz.ch>

monitor: hand kaluga the device manager capability

Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>


# 93751d0a 20-Jun-2017 Razvan Damachi <razvan.damachi@gmail.com>

Add spawn, spawn_with_caps and span calls to the Process Manager API.

The process manager keeps local domain state and forwards valid requests to
spawnds, acting as a proxy for spawning & spanning. Requests are validated as
per the Span-Stop-Cleanup state machine at https://goo.gl/6JuJj2.

Spawnd has been enriched with several asynchronous API calls, in order for
the process manager to serve requests non-blockingly. Specifically, clients of
the process management service issue RPCs to the process manager server
(blockingly), but the latter forwards requests to spawnd asynchronously, hence
it is able to serve multiple clients at the same time.

The client code for spanning uses libbarrelfish/domain.h to create the new
dispatcher for the remote core.

Bug: if the first dispatcher exits main(), dispatchers spanned on other cores
will pagefault.

Signed-off-by: Razvan Damachi <razvan.damachi@gmail.com>


# 83ef5171 12-Jun-2017 Razvan Damachi <razvan.damachi@gmail.com>

Create "ProcessManager" and "Domain" capabilities.

The ProcessManager capability is created by the CPU driver at startup and given
to init, where it will be passed on to the monitor and then the process manager
subsequently.

The Domain capability is an ID-like cap retypeable from the ProcessManager cap
above. The process management server can hence use the ProcessManager cap to
create Domain caps and give them to spawnd instances, to facilitate identifying
domains locally and globally.

Signed-off-by: Razvan Damachi <razvan.damachi@gmail.com>


# 06f04c77 21-Sep-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T288: Remove references to DEFAULT_CNODE_BITS and derived values.

Closes T288.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 17948f60 22-Jul-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T258, T264, T270: Implement two-level cspace layout using L1/L2 CNode objects.

distops functionality is NYI.

This commit also makes the root cnodes explicit for sys_map(), closes T270.

Notable changes:
* LRPC LMP endpoints are regular capabilities in L2 cnode, no longer in root
cnode.
* Capability operations take a capability address for the root cnode relative
to which capability addresses are to be resolved. The root cnode capability
address must be resolvable in the current domains cspace.

Closes T264.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 3b8b38f1 20-Jul-2016 Moritz Hoffmann <moritz.hoffmann@hpe.com>

barrelfish_kpi: Add new ACPI_TABLE region type.

Signed-off-by: Moritz Hoffmann <moritz.hoffmann@hpe.com>


# 36753238 07-Jul-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T258: rewrite domain creation to stay inside two level cspace layout

* kernel/startup.c: create CNodes that match two level cspace layout for
initial domain.
* lib/spawndomain: create two-level CSpace for new domain, and keep CN caps
in slots where we can edit the CNode contents (e.g. put L1 CNode of new
domain into L1 CNode of spawning domain.
* lib/barrelfish & KPI: edit caprefs and #defines for Root CNode and other
well-defined CNodes to reflect new sizes.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# c3b00335 06-Jul-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T258: clean up #defines for L2 CNode

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# e2b5a153 21-Apr-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T191: User space works again with reduced set of provided capabilities.


# aefc456c 18-Nov-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T187: remove cap_copy() calls when mapping same frame multiple times

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# bd42059e 17-Nov-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T187: x86_64: squash capability size to 64 bytes

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 8b2e56ce 15-Jun-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T121: Create "real" BSP KCB cap for x86.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 2e6e041c 21-Nov-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Make kernel create IPI cap which is passed to monitor.

This replaces the create_cap invocation in the monitor that creates an IPI cap
when someone requests a copy of it.


# e505fb1c 10-Nov-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Cleaned up page cn and physaddr cn creation code.


# e439beda 15-Oct-2014 Gerd Zellweger <mail@gerdzellweger.com>

Move Xeon Phi entries to beginning to avoid compiler warning.


# 23c26ce8 30-Apr-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: 4x size of supercn to handle larger amounts of RAM.


# aa0947a7 29-Oct-2013 Gerd Zellweger <mail@gerdzellweger.com>

WIP getting capability for real mode memory.

So boot driver can load bootstrap assembly himself.


# 5677cc4f 29-Jul-2014 Reto Achermann <acreto@student.ethz.ch>

adapted the K1OM boot to hand over the message frame size to xeon phi.


# 78ade5c8 03-Jun-2014 Reto Achermann <acreto@student.ethz.ch>

Added K1OM architecture specific extensions that pass certain caps / values to the Xeon Phi manager (card side)

- Passing of cap for the MMIO space and the System Memory range
- passing of base address for the host messaging listener
- Removed IO cap


# 1f80c81c 30-Apr-2014 Reto Achermann <acreto@student.ethz.ch>

Reverted and applied Simon's patch to solve the supercn problem.


# d13c7d2f 30-Apr-2014 Reto Achermann <acreto@student.ethz.ch>

added entries to gitignore


# d45a3c43 29-Apr-2014 Reto Achermann <acreto@student.ethz.ch>

Addition of a second supercn.

It turned out that running Barrelfish on machines with lots of RAM will
results in a error during booting that the supercn has no more space
left. As soon as supercn0 has no space left, the allocator will switch
to the second supercn1 to store the capabilities.

Also memserver will get both endpoints and switches automatically to the
next supercn while building up the memory allocator. The maximum size
bits are extended to 40.

The offsets are adapted to support 1024GB physical memory.

The implementation has been tested on qemu prior commit.


# a6b007aa 30-Apr-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: 4x size of supercn to handle larger amounts of RAM.


# 54e7593f 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Barrelfish (standard config) boots with 1 mapping per cap copy.


# ed27dfea 22-Jun-2012 Raphael Fuchs <raphaelfuchs@student.ethz.ch>

Adding functionality to inherit capabilities and pass capabilities as arguments.

The function 'spawn_domain_with_fdcap' was used to spawn a domain and
inherit the file descriptors of the current domain. A similar inheritance
mechanism is needed for session capabilities.

To this end, the function was renamed to 'spawn_domain_with_caps'. It no longer
expects an fdcap as one of the arguments but a CNode containing all the
capabilities, that should be inherited by the newly spawned domain. The layout
of this CNode is convention an defined in include/barrelfish/spawn_client.h.
Spawnd knows about these capabilities and copies them to the appropriate places.
For example, if the fdcap is present in the inherit CNode, spawnd copies it to
the corresponding slot in the task CNode.

Moreover, we need the ability to pass arbitrary capabilities to a domain at
startup for example to start a device driver. Spawnd does not have to know about
these capabilities. Which capabilities are passed in which order is an agreement
between spawner and spawnee. To this end, this patch adds another CNode argument
to the function 'spawn_domain_with_caps'. If a domain wants to pass certain
capabilites to another domain it therefore creates a CNode and places the
capabilities in this Cnode and the passes this CNode as an argument to
'spawn_domain_with_caps'. Spawnd makes this CNode available to the spawnee in
the ARGCN slot of the root CNode as either a CNode (if spawner and spawnee are
on the same core) or a ForeignCNode (if on different cores).

The first method of inheriting capabilities and the second method of passing
capabilities are intentionally kept as two arguments because of the following
reasons:
* To account for the difference in their handling. Spawnd knows about the
inherited capabilities and places each of them to appropriate places in the
spawnee's CSpace. As a result they are available early-on, i.e. before the
library initialization code for this domain runs.
* Putting both kinds of capabilities in a single flat CNode, would require
recompilation of the whole OS after adding a new capability, that should be
inherited.


# 70c30847 23-Jan-2012 Andrew Baumann <andrew.baumann@microsoft.com>

remove support for Beehive

see the mailing list discussion at the end of December 2011 for motivation


# 52c61712 28-Dec-2011 Zeus Gómez Marmolejo <zeus.gomez@bsc.es>

Replaced caddr_t type with capaddr_t to avoid conflict with libc

for i in $(find . -type f)
do
grep -r caddr_t $i
if [ $? -eq 0 ]
then
sed 's/caddr_t/capaddr_t/g' $i > $i.sed
mv $i.sed $i
fi
done


# 559955b4 02-Aug-2011 Simon Peter <speter@inf.ethz.ch>

Merge from ASPLOS tree.


# 9299dcef 08-Jul-2011 Stefan Kästle <stefan.kaestle@inf.ethz.ch>

Initial version of public stable barrelfish repository.