Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve top-level docs #90

Merged
merged 3 commits into from
Feb 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 10 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,9 @@ This work is funded by the [seL4 Foundation](https://sel4.systems/Foundation/hom

### Compatible versions of related seL4 Foundation projects

This project builds upon [seL4](https://github.com/seL4/seL4) and the [seL4 Microkit](https://github.com/seL4/microkit).
In particular, this project works with the following versions of those related projects:
This project builds upon [seL4](https://github.com/seL4/seL4) and the [seL4
Microkit](https://github.com/seL4/microkit). In particular, this project works with at least the
following versions of those related projects:

- seL4, when used without Microkit: `9bac64c6ceb1ece54fe00eae44065a836bd224f3`
([github.com/coliasgroup/seL4:rust](https://github.com/coliasgroup/seL4/tree/rust), an ancestor of
Expand Down Expand Up @@ -64,13 +65,13 @@ In particular, this project works with the following versions of those related p
configuration. Can be used by all targets (i.e. in all of: application code, build scripts, and
build-time tools).
- [`sel4-platform-info`](./crates/sel4-platform-info): Constants corresponding to the contents of
`platform_info.h`. Can be used by all targets.
`platform_info.h`. Can be used by all targets, on configurations where this file exists..
- [`sel4-sync`](./crates/sel4-sync): Synchronization constructs using seL4 IPC. Currently only
supports notification-based mutexes.
- [`sel4-logging`](./crates/sel4-logging): Log implementation for the
[`log`](https://crates.io/crates/log) crate.
- [`sel4-logging`](./crates/sel4-logging): [`Log`](https://docs.rs/log/latest/log/trait.Log.html)
implementation for the [`log`](https://crates.io/crates/log) crate.
- [`sel4-externally-shared`](./crates/sel4-externally-shared): Abstractions for interacting with
data structures in shared memory.
data in shared memory.
- [`sel4-shared-ring-buffer`](./crates/sel4-shared-ring-buffer): Implementation of shared data
structures used in the [seL4 Device Driver Framework](https://github.com/lucypa/sDDF).
- [`sel4-async-*`](./crates/sel4-async): Crates for leveraging async Rust in seL4 userspace.
Expand All @@ -85,7 +86,7 @@ In particular, this project works with the following versions of those related p
Microkit](https://github.com/seL4/microkit) protection domains, including an implementation of
libmicrokit and abstractions for IPC.

##### Programs
##### Complete programs

- [`sel4-capdl-initializer`](./crates/sel4-capdl-initializer): A
[CapDL](https://docs.sel4.systems/projects/capdl/)-based system initializer.
Expand All @@ -94,15 +95,15 @@ In particular, this project works with the following versions of those related p

### Integrating these crates into your project

The best way to learn how to integrate these crates into your project is to check out these concrete
The best way to learn how to integrate these crates into your project is to check out the concrete
examples of their use [listed above](#demos).

These crates are not yet hosted on [crates.io](https://crates.io). Use them either as Git or path
Cargo dependencies.

Some of these crates depend, at build time, on external components and configuration. In all cases,
information for locating these dependencies is passed to the dependant crates via environment
variables which are interpreted by `build.rs` scripts. Here is a list of environment variables that
variables which are interpreted by `build.rs` scripts. Here is a list of environment variables and
the crates which use them:

- `sel4-config` and `sel4-sys`, whose dependants include `sel4`, `sel4-root-task`, `sel4-microkit`,
Expand All @@ -114,9 +115,6 @@ the crates which use them:
contain the path of the `platform_gen.yaml` file from the seL4 kernel build system.
- `sel4-kernel-loader` uses `$SEL4_KERNEL` (defaulting to `$SEL4_PREFIX/bin/kernel.elf` if
`$SEL4_PREFIX` is set) which must contain the path of the seL4 kernel (as an ELF executable).
Furthermore, if `$SEL4_KERNEL_LOADER_CONFIG` is set, then `sel4-kernel-loader` overrides the
default configuration with one in the provided JSON file. Note that no configuration options are
actually implemented yet.

### Quick start for running the tests in this repository

Expand Down
7 changes: 3 additions & 4 deletions crates/private/meta/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,11 @@
//! - [`sel4_config`]: Macros and constants corresponding to the seL4 kernel configuration. Can be
//! used by all targets (i.e. in all of: application code, build scripts, and build-time tools).
//! - [`sel4_platform_info`]: Constants corresponding to the contents of `platform_info.h`. Can be
//! used by all targets.
//! used by all targets, on configurations where this file exists.
//! - [`sel4_sync`]: Synchronization constructs using seL4 IPC. Currently only supports
//! notification-based mutexes.
//! - [`sel4_logging`]: Log implementation for the [`log`] crate.
//! - [`sel4_externally_shared`]: Abstractions for interacting with data structures in shared
//! memory.
//! - [`sel4_logging`]: [`Log`](log::Log) implementation for the [`log`] crate.
//! - [`sel4_externally_shared`]: Abstractions for interacting with data in shared memory.
//! - [`sel4_shared_ring_buffer`]: Implementation of shared data structures used in the [seL4 Device
//! Driver Framework](https://github.com/lucypa/sDDF).
//! - `sel4_async_*`: Crates for leveraging async Rust in seL4 userspace.
Expand Down
3 changes: 0 additions & 3 deletions crates/sel4-kernel-loader/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,6 @@ range's end address is no greater than that of the kernel provided at boot.
they are for the `sel4-config` crate and its dependants (i.e. via `SEL4_PREFIX` or
`SEL4_INCLUDE_DIRS`).

Future versions of `sel4-kernel-loader` will be configurable with a JSON file provided at compile
time via `SEL4_KERNEL_LOADER_CONFIG`. If no configuration is provided, defaults will be used.

Here is an example of how to build and use this crate. First, independantly of the application,
build the loader and accompanying CLI tool:

Expand Down
Loading