Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
Unikraft
We are developing Unikraft, a fast, secure and opensource unikernel SDK for extreme specialization.
Collective -
Host: opensource -
https://opencollective.com/unikraft
- Website: https://t.co/W6HHOLeiUN
- Code: https://github.com/unikraft/unikraft
We exit Boot Service after obtaining MemoryMap, since it is no
longer needed. The function `uk_e...
The next commit makes `uk_efi_setup_boot_info` also invoke
ExitBootService, so it should be the ...
Before, traps and IRQ's would share the same stack size as user
created threads through the `STA...
Use the significantly smaller alignment `UKARCH_SP_ALIGN` for
statically aligning the stacks ass...
Use the significantly smaller alignment `UKARCH_SP_ALIGN` for
statically aligning the trap/IRQ/c...
Register `clone` through `UK_LLSYSCALL_R_U_DEFINE` to have full
access to the `struct uk_syscall...
Add basic setter/getter operations for the `tpidr_el0` field of the
userland context structure t...
This is no longer used and unnecessarily adds a bit of difficulty
when it comes to adding new sy...
Allow catching missized formats of the `struct __regs` at build time
by using `UK_CTASSERT` on t...
Now that we rely fully on `struct uk_syscall_ctx` and
`struct ukarch_sysregs`, we no longer need...
It may come in handy to be able to know the offsets of each register
inside the `struct __regs` ...
Define a new structure, `struct uk_syscall_ctx`, which is currently
composed of the following fi...
Implement `switch_ul`/`switch_uk` functions to be used in conjunction
with the system registers....
Being the center of all system call dispatching, it may be useful
to let `uk_syscall6_r` receive...
Add basic setter/getter operations for the `fs_base` field of the
userland context structure tha...
Implement basic methods for getting/setting the `gs_base` field of
`struct ukarch_sysregs`.
Sig...
github.com/unikraft/unikraft - dce6981f8dcc35e0a007c2076eb82ae5b871011f authored almost 1 year ago by Sergiu Moga <[email protected]>
Implement two basic methods:
- TLS switch to Unikraft: stores current userland TLS into `tpidr_e...
Make it so that `ukplat_syscall_handler` now receives a
`struct uk_syscall_ctx` pointer as its a...
Introduce an assembly written method `uk_syscall_ctx_popall` that
may be used in conjunction wit...
Implement `UK_LLSYSCALL_R_U_DEFINE`, a `struct uk_syscall_ctx`
alternative to `UK_LLSYSCALL_R_DE...
Implement switch from/to functions to be used in conjunction
with the userland context.
The swi...
github.com/unikraft/unikraft - 384a6d2cfc37953bfaeda3092e45c3d6e978ca99 authored almost 1 year ago by Sergiu Moga <[email protected]>
Implement two basic methods:
- TLS switch to Unikraft: stores current userland TLS into `fs_base...
Implement an ARM inline assembly macro `UK_SYSCALL_USC_PROLOGUE_DEFINE`
function named after `pn...
Introduce an assembly written method `uk_syscall_ctx_popall` that
may be used in conjunction wit...
Implement an x86 inline assembly macro `UK_SYSCALL_USC_PROLOGUE_DEFINE`
function named after `pn...
Add a macro for `__attribute__((naked))`. This hints to the compiler
to generate code without pr...
Define an architecture specific userland context that an architecture
can use to store things it...
We would usually use the trap stack to execute the issued
system call. However this may be troub...
Previously, we would save zeroes on the syscall entry frame instead
of using the actual values f...
We would usually use the application's stack to execute the issued
system call. However this pre...
Deprecate locally defined `ENTRY` macro in favor of the more generally
available, equivalent mac...
If uksched/ukthread is enabled, make sure that the current LCPU's
auxiliary stack pointer is upd...
Make sure to fill in the value of current lcpu's (bootstrap lcpu in
our case) auxiliary stack po...
Implement basic getter/setter methods for the `auxsp` field that
exists in `struct lcpu`.
Signe...
github.com/unikraft/unikraft - 4468296e650ae2f0864d6bab36dcf5453ef5a220 authored almost 1 year ago by Sergiu Moga <[email protected]>
If shcheduling/multithreading is not enabled, allocate an auxiliary
stack for bootstrap LCPU. Ot...
Add a new field to `struct uk_thread` that can represent a secondary
stack that can be used as a...
`struct uk_thread` contains a field called `auxsp` which is meant to
represent an auxiliary stac...
Add a method that transparently allocates and returns an auxiliary
stack according to CONFIG_UKP...
Simple macros that do not involve C code may as well be visible to code
written in assembly. Thi...
Define two macros to represent the maximum known possible alignment
we can have for the ECTX we ...
Define two macros to represent the maximum known possible alignment
we can have for the ECTX we ...
Define a per-cpu buffer whose size is twice that of the configured
stacks and whose definition m...
Although the Vector table has `EL0` exceptions related entries,
we never execute from `EL0` and ...
Therefore, move the guarding `#ifdef` below the register definitions
so that assembly files may ...
The `lcpu_arch_id()` method can be slow depending on the architecture.
Instead, rely on the ID c...
Now that we have a fast access to the currently executing CPU's
`struct lcpu` structure inside t...
Implement an architecture specific fast access to the currently
executing CPU's index in the arr...
Implement an architecture specific fast access to the currently
executing CPU's index in the arr...
Every LCPU shall have their `TPIDR_EL1` system register assigned
the value of the address of the...
Every LCPU shall have their `GS_BASE` and `KERNEL_GS_BASE` registers
assigned to their own `stru...
Align the `lcpus` array with other per-cpu variables by defining
it through the `UKPLAT_PER_LCPU...
Implement basic methods to be able to read/write from/to the
GS_BASE and KERNEL_GS_BASE MSR's, a...
Add a macro-definition for the x86 `KERNEL_GS_BASE` MSR that is usually
used in conjunction with...
Move variable into conditionally defined loop to silence GCC warning.
Signed-off-by: Michalis P...
github.com/unikraft/unikraft - 94066232fd47934ef8dc60b561f653de1af482e7 authored about 1 year ago by Michalis Pappas <[email protected]>
Although `fcntl` is most frequently used in conjunction with `int`s
as its third argument, the u...
Fix a bug in `ukarch_tlb_flush_entry` that leads to the TLB entry
not being invalidated on arm64...
Enable HAVE_OFW on ARCH_ARM_64 and make make fdt libraries
conditional to HAVE_OFW. This removes...
Add a HAVE_FDT option to provide platforms the ability to
conditionally enable fdt libraries.
M...
github.com/unikraft/unikraft - 4ad238ac3734497ee74f7f329b0dffd47913fabe authored about 1 year ago by Michalis Pappas <[email protected]>Enable HAVE_FDT on arm to make libfdt visible in the config menu.
Signed-off-by: Michalis Pappa...
github.com/unikraft/unikraft - a9e60177952eb84c5e91440917b829e8b713edd8 authored about 1 year ago by Michalis Pappas <[email protected]>
Make libukofw conditional to HAVE_FDT so that the library only appears
in fdt-capable platforms ...
`uknetdev` selects `uklock` when `CONFIG_LIBUKNETDEV_DISPATCHERTHREADS`
is set. Include `semapho...
Remove an explicit PLAT_KVM dependency in LIBUKBOOT_HEAP_BASE
to allow plattforms other then pla...
`fdt_path_offset` returns an negative value on error.
Instead of checking for an zero return val...
Previously a socket would raise the same set of hangup events on either
shutdown or when closing...
Previously stream sockets of a socket pair had the write end of their
internal pipe duplicated a...
Previously read pipes whose write end had been closed were missing the
EPOLLIN event, which is r...
Commit <8e7a01d50> (lib/posix-fdtab: Register library termination method)
introduced a fd cleanu...
This change adds support for fstat*-like syscalls on socket files.
The values output do not depe...
This change removes file locking from fstat, no longer synchronizing it
with other POSIX file op...
This change makes fstat zero out its output buffer before filling in
stat values from the file, ...
Since the constructor of `vfscore` simply mounts the `rootfs` and any
additional volumes in `vfs...
Implement a termination method that allows to close all remaining open
file descriptors and sync...
Similarly to `UK_PRIO_AFTER`, implement the precedeeing priority
equivalent `UK_PRIO_BEFORE`. Th...
When all strong references to an open file structure are gone, `fdrop`
calls `vfs_close` which i...
NOTE: This is interdependent with the `app-elfloader` commit that
changes `arch_prctl`'s `ARCH_S...
Signed-off-by: Cezar Craciunoiu <[email protected]>
Reviewed-by: Simon Kuenzer <simon@u...
This commit adds an exception to the only GitHub Action workflow
which disables the integration ...
Currently ramfs returns EINVAL for any ioctl request, which leads to the
Ruby binary compatibili...
Previously epoll_ctl would identify epoll entries by fd alone, in
accordance with published docu...
Previously, when compiling without CONFIG_LIBVFSCORE, epoll_ctl would
fail to lookup the file de...
Previously fcntl (wronly) passed the FD_CLOEXEC flag to uk_fdtab_*
functions instead of O_CLOEXE...
Signed-off-by: Cezar Craciunoiu <[email protected]>
Reviewed-by: Simon Kuenzer <simon@u...
After commit 9946c9329346 ("lib/vfscore: Embedded initrd"), the
mounting of `initrd`'s became de...
This commit registers the shutdown request function
`uk_boot_shutdown_req_isr()` to the shutdown...
This commit documents the shutdown request event queue within
`include/uk/plat/bootstrap.h`. The...
This commit provides an ISR-safe variant of `uk_boot_shutdown_req()`. THis
function is safe to b...
This commit uses the ISR-safe semaphore variant (`uk_semaphore_up_isr()`)
so that `uk_netdev_drv...
This commit provides an ISR-safe variant of `uk_semaphore_up()`. This
enables unblocking of thre...
This commit compiles the implementation of `schedcoop_thread_woken()`
as ISR-safe. The same func...
This commit provides ISR variants of the following thread wake up
functions:
- `uk_waitq_wake_u...
This commit introduces a "main" thread for calling the application's
`main()` function. This is ...
Most UNIX-like operating systems call the constructors listed in
__init_array with the argument ...
This commit adopts the inittab registration macros so that termination
function can be handed ov...
This commit extends the inittab entries with another function pointer:
a corresponding terminati...
This commit introduces a context argument (`struct uk_init_ctx *`) to
the initialization functio...
In case someone may want to mount a filesystem to a directory
that does not currently exist in t...
Allow the `vfs.fstab` option arguments to receive an additional
option that is Unikraft specific...
The `struct uk_mutex` structure expects the members to be, in order,
`lock_count`, `flags`, `own...
This commit adds the `__unused` attribute to the parameters of the
`uk_sys_flock()` stub.
Signe...
github.com/unikraft/unikraft - 992a03c504b7cfc820e22a06a31a4ea02c0a4440 authored about 1 year ago by Simon Kuenzer <[email protected]>
This is a clean-up commit that removes the indirection of init_stdio() from
fdtable_init() that ...