Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
github.com/unikraft/unikraft
A next-generation cloud native kernel designed to unlock best-in-class performance, security primitives and efficiency savings.
https://github.com/unikraft/unikraft
If `CONFIG_FPSIMD`, the `fp_arm64.c` source file should be added to the
build. Currently this is...
Introduces the parameter type `PT_DEC` as format for signed decimal
arguments.
Signed-off-by: S...
151239aa277ba8c7e5a89fba2971c2cd195a00b6 authored over 1 year ago by Simon Kuenzer <[email protected]>
Introduces a configuration option to enable debug messages for
`lib/posix-event`.
Signed-off-by...
eaafc316c31bcf6635705b7c43db3fcf8cbf5ff4 authored over 1 year ago by Simon Kuenzer <[email protected]>
Adds the format definitions for the system calls`eventfd` and `eventfd2`
for decoding with `uk_p...
The eventfd constructor system call `eventfd2` uses the the `fcntl` system
call to setup the fil...
Commit
fc96850 - lib/vfscore: Enable FIONBIO in fcntl(F_SETFL)
introduced a complete implementa...
`python3` uses `isatty()`, which does an `ioctl()` with
`TIOCGWINSZ` as an argument for checking...
Newer glibc versions translate `sysconf(_SC_PHYS_PAGES)` to a `sysinfo`
syscall. Internally, `to...
It is hardcoded to always return the first CPU (index 0)
Signed-off-by: Cosmin Vancea <csvancea...
e0150b7d55b00a850ae9f32c93be74a368e5417b authored over 1 year ago by Cosmin Vancea <[email protected]>
Since we enable IRQ's before context switching, there is a chance that
IRQ's may fire in the sho...
Make sure that `IRQ`'s are disabled when calling `ukplat_lcpu_halt_to`.
Furthermore, do not surr...
Our `spinlock`s have a size of 4-bytes and an alignment of 8, which,
in our `semaphore` implemen...
This allows other modules to disable the weak main function. This is
useful in situations where ...
This change fixes a logic error that allocates less memory than
necessary in specific cases, ris...
Several unikraft files have inconsistent docstrings which generate many
warnings when building w...
Change `uk_9pfs_ioctl` from `vfscore_vop_einval` to
`vfscore_vop_nullop`, effectively stubbing i...
A wrong check caused the idle thread to keep busy looping instead of
halting the cpu when no wak...
To switch the i8254 to sw-triggered strobe mode a value must be
written into the counter. Previo...
The musl imported rusage structure keeps an extra buffer in the rusage.
This can lead to errors ...
Signed-off-by: Razvan Deaconescu <[email protected]>
Signed-off-by: Simon Kuenzer <simon@unikr...
Checking for the output of `$(CC) -v` may fail depending on compiler
versions (e.g. `clang-15 -v...
Using the `9p 2000U` version as the default leads to problems,
especially when using Unikraft in...
Add the option to choose a VMM when building for arm64. There are build
options that depend on t...
checkpatch.uk has been introduced to allow invoking checkpatch.uk with
Unikraft's configuration ...
`ukplat_syscall_handler` allocates uninitialized stack space for saving
ectx; this coupled with ...
Most context saving instructions/routines overwrite the target area with
a valid representation ...
Signed-off-by: Christiano Haesbaert <[email protected]>
Reviewed-by: Cezar Craciunoiu <cez...
Signed-off-by: Razvan Deaconescu <[email protected]>
Signed-off-by: Marc Rittinghaus <marc@uni...
This commit introduces the support of escaping single (`'`) and double
quotes (`"`) with the esc...
clock_nanosleep syscall should mimic the nanosleep syscall
when the clockid equals CLOCK_REALTIM...
Currently `m_path` and `m_special` are statically-allocated arrays,
meaning their storage spaces...
The VFS `struct vnode` structure has two `uk_list_head` members:
`v_link` and `v_names`. These n...
The `DPRINTF()` macro in `vfscore` requires a semicolon (`;`). If this
is not present (once `DEB...
This commit adds an unconditional wait, which is required
for reader-writer locks. The commit al...
Wait queues use a linked list to store the threads waiting on a
particular condition. But operat...
This commit adds macros to atomically add, subtract, and
perform a bitwise or based on the built...
This commit introduces a reader-writer lock. To avoid
starvation of readers and writer, the lock...
On uniprocessor systems, it is sufficient to disable interrupts.
In SMP environments, however, i...
We can safely acquire a lock on uniprocessor systems by disabling the
interrupts, but this does ...
Holding a spinlock which is required by an interrupt handler, causes a
deadlock. To avoid this, ...
If the source and destination directories are the same in sys_rename,
the vnode is locked two ti...
This commit adds an include for errno.h that might not be included
otherwise and causes the buil...
This commit adds a workaround for a bug in QEMU where performing
an fsync using the WSTAT comman...
Performing an fsync with the 9P2000.u protocol version previously
resulted in an I/O error. This...
GCC optimizes the use of `memcmp()` if the `-ffreestanding` flag is
missing. In the current conf...
This commit makes so that the correct info will be printed when the current
thread gets killed. ...
This commit marks the TID/PID as unavailable to mimic the behaviour of
other kernels. This chang...
This commit changes the tid_map size to reflect the kernel
reservation of the 0 TID/PID value. B...
The path resolution doesn't correctly work for a set of file cases
(e.g. symlinks to binaries or...
This commit changes the default device/tag name for an automatically
mounted 9pfs root volume fr...
Compiler flag -fcf-protection sets control-flow integrity measures
that improve security, and so...
`clang` does not understand the `rflags` register name, so the build
will fail. On the other han...
We have PAGE_ALIGN_DOWN, PAGE_ALIGN_UP, and PAGE_ALIGN macros, but don't
use them consistently. ...
This commit typecasts `src` and `dst` strings from `memmove()` to ensure
that their values are t...
At runtime we don't care about the content of them, and we only need
them on host side to decode...
For the linuxu platform we rely on the default linker script and only
add some additional sectio...
Keep a locally declared static variable `init` to cache the
current amount of memory region desc...
Ensure that we do not try to fetch a memory region descriptor by an
index that is larger than ou...
This commit introduces 3 additional Git trailers to be recognised by the
checkpatch program:
-...
d39b30308e957893cd2bed2115aeb056f2b08b59 authored over 1 year ago by Alexander Jung <[email protected]>
GitHub-Fixes: #650
Signed-off-by: Aryan Verma <[email protected]>
Co-authored-by: Alexand...
Commits
- 7741af97 "`UK_LIBPARAM_PARAM_ALIAS()`,`UK_LIBPARAM_PARAM_ARR_ALIAS()`"
- 1cc3a2f6 "R...
The return value of uk_palloc is not checked in _arch_init_p2m.
Allocation failure at that poin...
275429893d983ff13d9874b310b4566c254631fe authored over 1 year ago by Hugo Lefeuvre <[email protected]>
The current `ioctl` implementation for pipes does not handle
the `FIONBIO` command, which leads ...
This should make it easier in the future to extend the entry point to
support proper boot loader...
The paging code currently does not unmap the memory area before the
kernel image, but then tries...
This makes it more clear on what hypervisor the image works on.
Signed-off-by: Marco Schlumpp <...
59111c4f28254c0614c62d56113e2048300a5549 authored over 1 year ago by Marco Schlumpp <[email protected]>
This is currently not conforming to the actual Linux boot protocol and
only suitable for firecra...
Firecracker emulates a PS/2 controller and detects attempted writes to
the CPU reset line.
Co-a...
0f75e55ba08647b2e398a19aea35f31b06c0da6a authored over 1 year ago by Andrei Tudor TOPALĂ (101668) <[email protected]>
This defines the necessary structures to parse the information passed by
a linux boot protocol c...
Mapping all memory makes the page table more independent of the actual
boot protocol. Firecracke...
The multiboot entry point had a few internal functions that are also
useful for other entry poin...
This allows the configuration of a target hypervisor. Depending on the
hypervisor a suitable boo...
We can simplify the check by observing that there are only two
conditions necessary to check whe...
Some boot protocols already have the length information and the internal
command line handling w...
This object was previously used to hide all symbols except the entry
point. But this step was re...
When a node is missing the "ranges" property, offset should be set to 0.
The current implementat...
The current implementation returns as soon as a node that matches a
compatible string is found. ...
This commit fixes the definition of pointer arguments in GCC >= 11.
Signed-off-by: Takeru Wada ...
4792af49d89c1c0e141b40720d4ec1b89530411a authored over 1 year ago by Takeru Wada <[email protected]>
This commit imports needed code from musl 1.2.3. This concentrates mostly
on the following helpe...
In order to comply with common libc behavior, we provide the following
symbol aliases for enviro...
Signed-off-by: Simon Kuenzer <[email protected]>
Reviewed-by: Delia Pavel <delia_maria.pavel@stu...
This commit integrates and enables compiling of the imported environment
helper functions (see p...
Introduces the ability to populate additional environment variables via the
kernel command line....
We introduce the ability to compile-in up to 16 environment variables.
The values can be set via...
This commit provides `UK_LIBPARAM_PARAM_ALIAS()` and
`UK_LIBPARAM_PARAM_ARR_ALIAS()` which are v...
This commit introduces a rewrite of `lib/uklibparam`. The rewrite ensures
that it is errno-free,...
.lds.S files are linker script files that use the C preprocessor in order
to generate the final ...
This commit adds needed linker scripts as dependency to the linking rule
of the final image. Thi...
Add a brief description of nolibc, providing an overview
of its purpose, usage and limitations.
...
With the changes to the vnode ops definitions the symlink operation
takes a constant string. We ...
The current vnode operations define strings as mutable, which
makes it more difficult to do opti...
This commit changes all vnode operations to accept constant
string parameters to be inline with ...
This commit changes all vnode operations to accept constant
string parameters to be inline with ...
This commit cleans up sys_symlink() according to the current coding
conventions and uses separat...
This commit changes all vnode operations to accept constant
string parameters to be inline with ...
The flag can be specified for all operations and does not make a
difference in the context of a ...
Many modern applications use FUTEX_WAIT_BITSET to be able to set an
absolute timeout. To accompl...
This allows external API clients to specify an absolute deadline for
waking up. This is potentia...
The documentation specifies a list of operations which support this
flag. This adds a check that...
Signed-off-by: Nour-eddine Taleb <[email protected]>
Reviewed-by: Adina Smeu <adina.smeu@gm...