No description
The RISC-V calling convention specifies that when a C function takes an argument by value, the binary function should take the argument by reference, if the value is larger than 2 pointer words. For binary verification, we avoid implementing this aspect of the RISC-V calling convention, by eliminating all such function arguments for functions which are not inlined. In this commit, we remove `extra_caps_t` function arguments. This primarily concerns invocation decode functions. Since `loookupExtraCaps` already stores extra caps in a global `current_extra_caps`, this essentially amounts to eliminating many redundant structure copy operations. On some execution paths involving IPC, the extra caps lookup may happen twice: first in the invocation decode, and then for cap transfer in the performance phase of the IPC operation. Because the two phases are entirely distinct, there is no interference in the use of a common global variable. Even though we are primarily concerned with RISC-V, we remove `extra_caps_t` arguments across all architectures. Signed-off-by: Matthew Brecknell <Matthew.Brecknell@data61.csiro.au> |
||
|---|---|---|
| .github/workflows | ||
| .reuse | ||
| configs | ||
| include | ||
| libsel4 | ||
| LICENSES | ||
| manual | ||
| src | ||
| tools | ||
| .cmake-format.yaml | ||
| .gitignore | ||
| .licenseignore | ||
| CAVEATS-generic.md | ||
| CAVEATS-ia32.md | ||
| CHANGES | ||
| CMakeLists.txt | ||
| CODE_OF_CONDUCT.md | ||
| config.cmake | ||
| CONTRIBUTING.md | ||
| CONTRIBUTORS.md | ||
| FindseL4.cmake | ||
| gcc.cmake | ||
| gdb-macros | ||
| LICENSE.md | ||
| llvm.cmake | ||
| README.md | ||
| VERSION | ||
The seL4 microkernel
This project contains the source code of seL4 microkernel.
For details about the seL4 microkernel, including details about its formal
correctness proof, please see the sel4.systems website and associated
FAQ.
DOIs for citing recent releases of this repository:
We welcome contributions to seL4. Please see the website for information on how to contribute.
This repository is usually not used in isolation, but as part of the build system in a larger project.
seL4 Basics
- Tutorials
- Documentation
- seL4 libraries
- seL4Test
- Debugging guide
- Benchmarking guide
- Virtualization on seL4
- Host Build Dependencies
- Porting seL4
Community
- Mailing lists
- Suggested projects
- CommunityProjects
Manual
A hosted version of the manual for the most recent release can be found here.
A web version of the API can be found here
Repository Overview
includeandsrc: C and ASM source code of seL4tools: build toolslibsel4: C bindings for the seL4 ABImanual: LaTeX sources of the seL4 reference manual
Build Instructions
See the seL4 website for build instructions.
Status
A list of releases and current project status can be found under seL4 releases.
- Roadmap: new features in development
- Hardware Support: information about hardware platform ports
- Kernel Features: information about available kernel features
- Userland Components and Drivers: available device drivers and userland components