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

plat/kvm/x86: ExitBootService after GetMemoryMap and retry if fail

We exit Boot Service after obtaining MemoryMap, since it is no
longer needed. The function `uk_e...

github.com/unikraft/unikraft - d2a7fa728f09a3bfc4d86746b88182ac5cb0ea63 authored almost 1 year ago by Kha Dinh <[email protected]>
plat/kvm/x86: Make uk_efi_setup_bootinfo called last in EFI boot

The next commit makes `uk_efi_setup_boot_info` also invoke
ExitBootService, so it should be the ...

github.com/unikraft/unikraft - 45891a65fbb45f41a6276754e4c7c8fac7211663 authored almost 1 year ago by Kha Dinh <[email protected]>
arch: Introduce dedicated CPU Exception stack configuration

Before, traps and IRQ's would share the same stack size as user
created threads through the `STA...

github.com/unikraft/unikraft - 5590d994f805531c8cd649fc158538fccab066ed authored almost 1 year ago by Sergiu Moga <[email protected]>
plat/xen/x86: Use `UKARCH_SP_ALIGN` for Xen events stacks

Use the significantly smaller alignment `UKARCH_SP_ALIGN` for
statically aligning the stacks ass...

github.com/unikraft/unikraft - e631684c4d91898ef01db62928424cade65687bb authored almost 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/x86: Use `UKARCH_SP_ALIGN` for trap/IRQ/crit stacks

Use the significantly smaller alignment `UKARCH_SP_ALIGN` for
statically aligning the trap/IRQ/c...

github.com/unikraft/unikraft - 0180fc4e748d84133d8f9e79aa807484329cd92c authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/posix-process: Copy full parent registers context on `clone`

Register `clone` through `UK_LLSYSCALL_R_U_DEFINE` to have full
access to the `struct uk_syscall...

github.com/unikraft/unikraft - 1dd96bf8ef15162c5b3fd290c2d43a3673c9c9cb authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/syscall_shim/arch/arm64: Add `tpidr_el0` get/set for `sysregs`

Add basic setter/getter operations for the `tpidr_el0` field of the
userland context structure t...

github.com/unikraft/unikraft - 55818085d507eb81917ffa52c65b207143b8fabe authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/syscall_shim: Obsolete `uk_syscall_r_fn`

This is no longer used and unnecessarily adds a bit of difficulty
when it comes to adding new sy...

github.com/unikraft/unikraft - 569fe35716cb5356632a558be4ef8870703056a6 authored almost 1 year ago by Sergiu Moga <[email protected]>
arch/x86/x86_64: Add constant assertions to register structures

Allow catching missized formats of the `struct __regs` at build time
by using `UK_CTASSERT` on t...

github.com/unikraft/unikraft - 0f9ff8a5d3ba07caaf084dad61dd4d28d4420aab authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/syscall_shim: Obsolete `_uk_syscall_[return_addr|ultlsp]`

Now that we rely fully on `struct uk_syscall_ctx` and
`struct ukarch_sysregs`, we no longer need...

github.com/unikraft/unikraft - 7944a31e84c8e17c3363dffd23354b83f6858862 authored almost 1 year ago by Sergiu Moga <[email protected]>
arch/x86/x86_64: Allow asm files access to register offsets macros

It may come in handy to be able to know the offsets of each register
inside the `struct __regs` ...

github.com/unikraft/unikraft - ecda7fd046577a0e0795be2a5c042d3876185b1b authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/syscall_shim: Introduce `struct uk_syscall_ctx`

Define a new structure, `struct uk_syscall_ctx`, which is currently
composed of the following fi...

github.com/unikraft/unikraft - f849560d88322b00dd858569633156276cd0c2fe authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/syscall_shim/arch/arm64: Add `sysregs` switch from/to Unikraft

Implement `switch_ul`/`switch_uk` functions to be used in conjunction
with the system registers....

github.com/unikraft/unikraft - 8b06cd3d520c03ee5ce8964ce030df2d77d15fcf authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/syscall_shim: Save `struct uk_syscall_ctx` in `uk_syscall6_r`

Being the center of all system call dispatching, it may be useful
to let `uk_syscall6_r` receive...

github.com/unikraft/unikraft - 6f8a1259d51b827b30505f531446576094247a12 authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/syscall_shim/arch/x86_64: Add `fs_base` get/set in `sysregs`

Add basic setter/getter operations for the `fs_base` field of the
userland context structure tha...

github.com/unikraft/unikraft - ead32b3dbfbe08546542ed78a50226cf844d8e82 authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/syscall_shim/arch/x86_64: Add `gs_base` getter/setter

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]>
lib/syscall_shim/arch/arm64: Implement TLS switch from/to Unikraft

Implement two basic methods:
- TLS switch to Unikraft: stores current userland TLS into `tpidr_e...

github.com/unikraft/unikraft - 58cea0db87d82d009535cee725affd85ed10d8ba authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/syscall_shim: Save `struct uk_syscall_ctx` on binary syscalls

Make it so that `ukplat_syscall_handler` now receives a
`struct uk_syscall_ctx` pointer as its a...

github.com/unikraft/unikraft - 76d5701c19b0241a3badbd951a07d6f89259e9ba authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/syscall_shim/arch/arm64: Add `struct uk_syscall_ctx` restore

Introduce an assembly written method `uk_syscall_ctx_popall` that
may be used in conjunction wit...

github.com/unikraft/unikraft - 7c5a2681de4c3bcc3e8971fe74065942150b2b95 authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/syscall_shim: Define `UK_LLSYSCALL_R_U_DEFINE`

Implement `UK_LLSYSCALL_R_U_DEFINE`, a `struct uk_syscall_ctx`
alternative to `UK_LLSYSCALL_R_DE...

github.com/unikraft/unikraft - 90f00c72b2c11b78e347b92ffa286c5cf1a56414 authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/syscall_shim/arch/x86_64: Add `ukarch_sysregs` from/to Unikraft

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]>
lib/syscall_shim/arch/x86_64: Implement TLS switch from/to Unikraft

Implement two basic methods:
- TLS switch to Unikraft: stores current userland TLS into `fs_base...

github.com/unikraft/unikraft - 64449c8a1b8997cfd9b9652cb14611fc9a043ff1 authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/syscall_shim/arch/arm64: Add `uk_syscall_ctx` saving prologue

Implement an ARM inline assembly macro `UK_SYSCALL_USC_PROLOGUE_DEFINE`
function named after `pn...

github.com/unikraft/unikraft - 5ebd5d3b99ad97b41935441614f5d4f36fb0dcef authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/syscall_shim/arch/x86_64: Add `struct uk_syscall_ctx` restore

Introduce an assembly written method `uk_syscall_ctx_popall` that
may be used in conjunction wit...

github.com/unikraft/unikraft - e0cb8d423cabf82bfc0d9eaea043a8b5c5dbced8 authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/syscall_shim/arch/x86: Add `uk_syscall_ctx` saving prologue

Implement an x86 inline assembly macro `UK_SYSCALL_USC_PROLOGUE_DEFINE`
function named after `pn...

github.com/unikraft/unikraft - 4b558ab63c36616482344d86213841ff32d0d7e2 authored almost 1 year ago by Sergiu Moga <[email protected]>
include/essentials: Provide `__naked` macro

Add a macro for `__attribute__((naked))`. This hints to the compiler
to generate code without pr...

github.com/unikraft/unikraft - c016cc75bdcecae42e548850c66eff0dbaabb43b authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/syscall_shim: Introduce `struct ukarch_sysregs`

Define an architecture specific userland context that an architecture
can use to store things it...

github.com/unikraft/unikraft - 01f8570e736bfee3c1bfc8515a16ca9462029613 authored almost 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/arm: Switch to auxiliary stack on syscall entry

We would usually use the trap stack to execute the issued
system call. However this may be troub...

github.com/unikraft/unikraft - 2ec8c04a1955085fe1e16c09b69d26f5564972a0 authored almost 1 year ago by Sergiu Moga <[email protected]>
plat/common/x86: Save `ss`/`rsp`/`eflags`/`cs`/`rip` on syscall frame

Previously, we would save zeroes on the syscall entry frame instead
of using the actual values f...

github.com/unikraft/unikraft - 40f5e76e363a522e5a4ed7952014ef8370481fd6 authored almost 1 year ago by Sergiu Moga <[email protected]>
plat/common/x86: Switch to auxiliary stack on syscall entry

We would usually use the application's stack to execute the issued
system call. However this pre...

github.com/unikraft/unikraft - f9409428ba24e8bf566cebbf0ab5c8e31ba1670b authored almost 1 year ago by Sergiu Moga <[email protected]>
plat/common/x86: Use `uk/asm.h` defined `ENTRY` for syscall entry

Deprecate locally defined `ENTRY` macro in favor of the more generally
available, equivalent mac...

github.com/unikraft/unikraft - 3e2440d95ca9c6a76c1910b024a10bb53b72ecdf authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/uksched: Update `auxsp` of current LCPU when switching stacks

If uksched/ukthread is enabled, make sure that the current LCPU's
auxiliary stack pointer is upd...

github.com/unikraft/unikraft - f56ee5a458a32e89b960624a14792168d30324f3 authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/uksched: Set bootstrap lcpu's `auxsp` during `uk_sched_start`

Make sure to fill in the value of current lcpu's (bootstrap lcpu in
our case) auxiliary stack po...

github.com/unikraft/unikraft - 1a03d8d83edbe68f584cbbc4bb0737ad7fd46dd3 authored almost 1 year ago by Sergiu Moga <[email protected]>
plat/common: Add `auxsp` getter/setter for `struct lcpu`

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]>
lib/ukboot: Allocate bootstrap LCPU auxiliary stack

If shcheduling/multithreading is not enabled, allocate an auxiliary
stack for bootstrap LCPU. Ot...

github.com/unikraft/unikraft - 69aadb4b242ccd5743f0401275e47f3e3515f197 authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/uksched: Introduce the per-thread auxiliary stack

Add a new field to `struct uk_thread` that can represent a secondary
stack that can be used as a...

github.com/unikraft/unikraft - c46df5b2ab75363db06486cf74e10c51ee4f23aa authored almost 1 year ago by Sergiu Moga <[email protected]>
plat/common: Add `auxsp` field to `struct lcpu`

`struct uk_thread` contains a field called `auxsp` which is meant to
represent an auxiliary stac...

github.com/unikraft/unikraft - 3a77a2b748e7d46ea4a61773907db488e3e548f7 authored almost 1 year ago by Sergiu Moga <[email protected]>
plat: Implement a method for allocating the auxiliary stack

Add a method that transparently allocates and returns an auxiliary
stack according to CONFIG_UKP...

github.com/unikraft/unikraft - f81c51935d5218fd490c17f7b64477b1a7ccdfca authored almost 1 year ago by Sergiu Moga <[email protected]>
arch: Make context specific macros visible in assembly code

Simple macros that do not involve C code may as well be visible to code
written in assembly. Thi...

github.com/unikraft/unikraft - 45f9ff9c0728543f0fe7d49225b591d205c767e2 authored almost 1 year ago by Sergiu Moga <[email protected]>
arch/x86/x86_64: Add `ECTX` save maximum alignment/size macro's

Define two macros to represent the maximum known possible alignment
we can have for the ECTX we ...

github.com/unikraft/unikraft - 93bae0de460f140fdaeed17852b5af6a2273ff04 authored almost 1 year ago by Sergiu Moga <[email protected]>
arch/arm/arm64: Add `ECTX` save maximum alignment/size macro's

Define two macros to represent the maximum known possible alignment
we can have for the ECTX we ...

github.com/unikraft/unikraft - a9805e551c4c675ea8708a9b0f2063d82ee136ab authored almost 1 year ago by Sergiu Moga <[email protected]>
arch/arm64: Implement stack switching on IRQ/trap

Define a per-cpu buffer whose size is twice that of the configured
stacks and whose definition m...

github.com/unikraft/unikraft - b806183a1525ade37cac2db7bbd6dbf95e8ae773 authored almost 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/arm: Obsolete `EL0` logic from trap/IRQ handling

Although the Vector table has `EL0` exceptions related entries,
we never execute from `EL0` and ...

github.com/unikraft/unikraft - 00d1d993cb1e1cb03f15944f5232300cb5674a5c authored almost 1 year ago by Sergiu Moga <[email protected]>
arch/arm/arm64: Allow asm files access to register offsets macros

Therefore, move the guarding `#ifdef` below the register definitions
so that assembly files may ...

github.com/unikraft/unikraft - 846acb087f30493cc227bb94e173307a13a27b24 authored almost 1 year ago by Sergiu Moga <[email protected]>
plat/common: Make `ukplat_lcpu_id()` not use `lcpu_arch_id()`

The `lcpu_arch_id()` method can be slow depending on the architecture.
Instead, rely on the ID c...

github.com/unikraft/unikraft - 7b75a22687be8919d40362726ac714e61ad3f1d3 authored almost 1 year ago by Sergiu Moga <[email protected]>
plat/common: Obsolete `CONFIG_UKPLAT_LCPU_IDISIDX`

Now that we have a fast access to the currently executing CPU's
`struct lcpu` structure inside t...

github.com/unikraft/unikraft - 62acc5221a20fc0305748142637750f19e17e2d5 authored almost 1 year ago by Sergiu Moga <[email protected]>
plat/common/arm: Define `lcpu_arch_idx`

Implement an architecture specific fast access to the currently
executing CPU's index in the arr...

github.com/unikraft/unikraft - c1cb4969bd1cb99acb70b565ebeac93172a63cb3 authored almost 1 year ago by Sergiu Moga <[email protected]>
plat/common/x86: Define `lcpu_arch_idx`

Implement an architecture specific fast access to the currently
executing CPU's index in the arr...

github.com/unikraft/unikraft - 98b0da046db2d5a9c5c5a6126084476ccff46f86 authored almost 1 year ago by Sergiu Moga <[email protected]>
plat/common/arm: Init `TPIDR_EL1` in `lcpu_arch_init`

Every LCPU shall have their `TPIDR_EL1` system register assigned
the value of the address of the...

github.com/unikraft/unikraft - b5892de03f8af4e16a48b659764087071f996354 authored almost 1 year ago by Sergiu Moga <[email protected]>
plat/common/x86: Init `GS_BASE`/`KERNEL_GS_BASE` in `lcpu_arch_init`

Every LCPU shall have their `GS_BASE` and `KERNEL_GS_BASE` registers
assigned to their own `stru...

github.com/unikraft/unikraft - f147dbc7813dad5dc26d2bfbef9dc0e04ae9aa90 authored almost 1 year ago by Sergiu Moga <[email protected]>
plat/common: Declare `lcpus` array through `UKPLAT_PER_LCPU_DEFINE`

Align the `lcpus` array with other per-cpu variables by defining
it through the `UKPLAT_PER_LCPU...

github.com/unikraft/unikraft - 2f69d858d772b55f8908320e448dce69c22a410e authored almost 1 year ago by Sergiu Moga <[email protected]>
plat/common/x86: Add `gs_base`/`k_gs_base` MSR's read/write methods

Implement basic methods to be able to read/write from/to the
GS_BASE and KERNEL_GS_BASE MSR's, a...

github.com/unikraft/unikraft - 193a8b2baca755747ffbd434c3de3cc946996be3 authored almost 1 year ago by Sergiu Moga <[email protected]>
plat/common/x86: Add `X86_MSR_KERNEL_GS_BASE`/`X86_MSR_GS_BASE`

Add a macro-definition for the x86 `KERNEL_GS_BASE` MSR that is usually
used in conjunction with...

github.com/unikraft/unikraft - 6dd0f1112e3dd36658988bc2ee9eb4264d1c7ade authored almost 1 year ago by Sergiu Moga <[email protected]>
lib/ukboot: Fix warning on undefined variable

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]>
lib/vfscore: Use `unsigned long` for `fcntl`'s third argument's type

Although `fcntl` is most frequently used in conjunction with `int`s
as its third argument, the u...

github.com/unikraft/unikraft - 735c31844f32e333ab61e652197d6301b2a6825b authored about 1 year ago by Sergiu Moga <[email protected]>
arch/arm64: Fix `ukarch_tlb_flush_entry`

Fix a bug in `ukarch_tlb_flush_entry` that leads to the TLB entry
not being invalidated on arm64...

github.com/unikraft/unikraft - 35daa8ae28be123d4011f943eadc2cbf755151e2 authored about 1 year ago by Robert Kuban <[email protected]>
plat/kvm: Make fdt libraries only available on arm64

Enable HAVE_OFW on ARCH_ARM_64 and make make fdt libraries
conditional to HAVE_OFW. This removes...

github.com/unikraft/unikraft - ffa5a9df8f665b0c4ca53da44e731aad63fbfb26 authored about 1 year ago by Michalis Pappas <[email protected]>
lib/fdt: Add HAVE_FDT option and make libfdt depend on it

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]>
plat/xen: Enable HAVE_FDT on arm

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]>
lib/ukofw: Make libukofw conditional to HAVE_FDT

Make libukofw conditional to HAVE_FDT so that the library only appears
in fdt-capable platforms ...

github.com/unikraft/unikraft - c9be654930c82ee57c1bfa7f57e50bda42e2f11e authored about 1 year ago by Michalis Pappas <[email protected]>
lib/uknetdev: Include `semaphore.h` conditionally to DISPATCHERTHREADS

`uknetdev` selects `uklock` when `CONFIG_LIBUKNETDEV_DISPATCHERTHREADS`
is set. Include `semapho...

github.com/unikraft/unikraft - f587a60838a94c987440f7d1cf97275fbbd24319 authored about 1 year ago by Michalis Pappas <[email protected]>
ukboot: Remove explicit PLAT_KVM dependency

Remove an explicit PLAT_KVM dependency in LIBUKBOOT_HEAP_BASE
to allow plattforms other then pla...

github.com/unikraft/unikraft - 46614b304bede161e58d87b382a43e725796c033 authored about 1 year ago by Robert Kuban <[email protected]>
plat/common: Fix missing chosen node handling

`fdt_path_offset` returns an negative value on error.
Instead of checking for an zero return val...

github.com/unikraft/unikraft - 03799bdbc90c3108aeca4c1d8ddafd4481c524d6 authored about 1 year ago by Robert Kuban <[email protected]>
lib/posix-unixsocket: Do not raise events on close

Previously a socket would raise the same set of hangup events on either
shutdown or when closing...

github.com/unikraft/unikraft - 6579b1d55a162952291be2b3d04d55ce925ce3f2 authored about 1 year ago by Andrei Tatar <[email protected]>
lib/posix-unixsocket: Fix internal pipe leak

Previously stream sockets of a socket pair had the write end of their
internal pipe duplicated a...

github.com/unikraft/unikraft - fbfd9b011edc4fdd95969b1be51a88491b61eea9 authored about 1 year ago by Andrei Tatar <[email protected]>
lib/posix-pipe: Fix missing EPOLLIN event

Previously read pipes whose write end had been closed were missing the
EPOLLIN event, which is r...

github.com/unikraft/unikraft - 94fe9ca489db92c6c25b71c86a977e66a3d972a1 authored about 1 year ago by Andrei Tatar <[email protected]>
lib/posix-fdtab: Reprioritize fdtab init & cleanup

Commit <8e7a01d50> (lib/posix-fdtab: Register library termination method)
introduced a fd cleanu...

github.com/unikraft/unikraft - 9dc2701657811c0e965591018bf09962f9ae1c1c authored about 1 year ago by Andrei Tatar <[email protected]>
lib/posix-socket: Add stat support to socket files

This change adds support for fstat*-like syscalls on socket files.
The values output do not depe...

github.com/unikraft/unikraft - f71d3710c041f903e7480c7243c19bae73cdde16 authored about 1 year ago by Andrei Tatar <[email protected]>
lib/posix-fdio: Remove unneeded locking from fstat

This change removes file locking from fstat, no longer synchronizing it
with other POSIX file op...

github.com/unikraft/unikraft - 349e257f623c182761116b8fa296e7e2843a2c01 authored about 1 year ago by Andrei Tatar <[email protected]>
lib/posix-fdio: Zero out output stat buffer

This change makes fstat zero out its output buffer before filling in
stat values from the file, ...

github.com/unikraft/unikraft - f6eea04e6865fe31fcc15de47530d77035aa44c9 authored about 1 year ago by Andrei Tatar <[email protected]>
lib/vfscore: Implement volume unmounting termination method

Since the constructor of `vfscore` simply mounts the `rootfs` and any
additional volumes in `vfs...

github.com/unikraft/unikraft - 4fc709481b81313a29586f05273898078b040706 authored about 1 year ago by Sergiu Moga <[email protected]>
lib/posix-fdtab: Register library termination method

Implement a termination method that allows to close all remaining open
file descriptors and sync...

github.com/unikraft/unikraft - 8e7a01d5047fc6cee9f175cfaa1dfe57e1ef95ad authored about 1 year ago by Andrei Tatar <[email protected]>
uk/prio: Introduce `UK_PRIO_BEFORE` for precedeeing priorities

Similarly to `UK_PRIO_AFTER`, implement the precedeeing priority
equivalent `UK_PRIO_BEFORE`. Th...

github.com/unikraft/unikraft - 1e674bf7ca83959f98c4da30e6b4fe02ab5ccfc9 authored about 1 year ago by Sergiu Moga <[email protected]>
lib/vfscore: Sync open file structure on last reference release

When all strong references to an open file structure are gone, `fdrop`
calls `vfs_close` which i...

github.com/unikraft/unikraft - 6efe0ca87c62c92abfb83c2745fe2cf4be84e39e authored about 1 year ago by Sergiu Moga <[email protected]>
lib/syscall_shim: Fix `arch_prctl`'s `ARCH_SET_FS` handling

NOTE: This is interdependent with the `app-elfloader` commit that
changes `arch_prctl`'s `ARCH_S...

github.com/unikraft/unikraft - 2cdf84f6d252875e3db97fd747e9829e46ab490a authored about 1 year ago by Sergiu Moga <[email protected]>
.github/workflows: Do not run checkpatch on pushes

Signed-off-by: Cezar Craciunoiu <[email protected]>
Reviewed-by: Simon Kuenzer <simon@u...

github.com/unikraft/unikraft - ab6eb9f9e7fee8173cb0078c670cf66417d47bd1 authored about 1 year ago by Cezar Craciunoiu <[email protected]>
build: Do not run integration tests on markdown-only changes

This commit adds an exception to the only GitHub Action workflow
which disables the integration ...

github.com/unikraft/unikraft - 3d61f7f3fad3eaf88eaed639c4ad5c03bc644d41 authored about 1 year ago by Alexander Jung <[email protected]>
lib/ramfs: Return proper errors on `ioctl` calls

Currently ramfs returns EINVAL for any ioctl request, which leads to the
Ruby binary compatibili...

github.com/unikraft/unikraft - cd3f33f58fef00f0eea3876ea830bdc83093e864 authored about 1 year ago by Stefan Jumarea <[email protected]>
lib/posix-poll: Fix epoll file identification

Previously epoll_ctl would identify epoll entries by fd alone, in
accordance with published docu...

github.com/unikraft/unikraft - 562bca83954e6e04c8884a2c97ce83445103f1a2 authored about 1 year ago by Andrei Tatar <[email protected]>
lib/posix-poll: Fix missing fd lookup on epoll_ctl

Previously, when compiling without CONFIG_LIBVFSCORE, epoll_ctl would
fail to lookup the file de...

github.com/unikraft/unikraft - 241071f4786adf8a52f690c3cf49ca9e93dffc1e authored about 1 year ago by Andrei Tatar <[email protected]>
lib/posix-fdio: Handle FD_CLOEXEC flag in fcntl

Previously fcntl (wronly) passed the FD_CLOEXEC flag to uk_fdtab_*
functions instead of O_CLOEXE...

github.com/unikraft/unikraft - 9934ccd5f17a37b8dea5248050a1e8d58c2e1bfe authored about 1 year ago by Andrei Tatar <[email protected]>
.github/workflows: Add checkpatch checks for commits

Signed-off-by: Cezar Craciunoiu <[email protected]>
Reviewed-by: Simon Kuenzer <simon@u...

github.com/unikraft/unikraft - 3ae1e79fad85ef951887bf20001948f698541255 authored about 1 year ago by Cezar Craciunoiu <[email protected]>
lib/vfscore: Re-enable the mounting of `initrd`'s through `fstab`

After commit 9946c9329346 ("lib/vfscore: Embedded initrd"), the
mounting of `initrd`'s became de...

github.com/unikraft/unikraft - 621fd9ca14d0e24a20edb18f6d37704e578aea0b authored about 1 year ago by Sergiu Moga <[email protected]>
lib/ukboot: Shutdown request event handler

This commit registers the shutdown request function
`uk_boot_shutdown_req_isr()` to the shutdown...

github.com/unikraft/unikraft - 46754d78acd22ef8dd880433f9feb82afed238e0 authored about 1 year ago by Simon Kuenzer <[email protected]>
include/uk: Notes about shutdown request event queue

This commit documents the shutdown request event queue within
`include/uk/plat/bootstrap.h`. The...

github.com/unikraft/unikraft - afcba56944675d51047262f12f3696c4532329c3 authored about 1 year ago by Simon Kuenzer <[email protected]>
lib/ukboot: ISR variant of `uk_boot_shutdown_req()`

This commit provides an ISR-safe variant of `uk_boot_shutdown_req()`. THis
function is safe to b...

github.com/unikraft/unikraft - 1c6c44e1dfe6cbfdd9dc39f3464c5edac0838fac authored about 1 year ago by Simon Kuenzer <[email protected]>
lib/uknetdev: Make `uk_netdev_drv_rx_event()` ISR-safe

This commit uses the ISR-safe semaphore variant (`uk_semaphore_up_isr()`)
so that `uk_netdev_drv...

github.com/unikraft/unikraft - 2dcc7aff3ca8ecaedd7d6e9fff7aba3914719a25 authored about 1 year ago by Simon Kuenzer <[email protected]>
lib/uklock: Provide ISR variant of `uk_semaphore_up()`

This commit provides an ISR-safe variant of `uk_semaphore_up()`. This
enables unblocking of thre...

github.com/unikraft/unikraft - d3dd0806c4bc10d1ba92cd9f887751dcefae6d78 authored about 1 year ago by Simon Kuenzer <[email protected]>
lib/ukschedcoop: Implement ISR variant of `thread_woken_func`

This commit compiles the implementation of `schedcoop_thread_woken()`
as ISR-safe. The same func...

github.com/unikraft/unikraft - 53d28a7d8f76c0679263eec68730dee588be6384 authored about 1 year ago by Simon Kuenzer <[email protected]>
lib/uksched: Provide ISR variants for thread wake up interfaces

This commit provides ISR variants of the following thread wake up
functions:
- `uk_waitq_wake_u...

github.com/unikraft/unikraft - 2f66efd99466e6f729fcd2e934508ffab1bce34c authored about 1 year ago by Simon Kuenzer <[email protected]>
lib/ukboot: Handle shutdown requests with "init" thread

This commit introduces a "main" thread for calling the application's
`main()` function. This is ...

github.com/unikraft/unikraft - 28bc4195b3ada448d008157732c5443d91ade789 authored about 1 year ago by Simon Kuenzer <[email protected]>
lib/ukboot: Provide argv for __init_array

Most UNIX-like operating systems call the constructors listed in
__init_array with the argument ...

github.com/unikraft/unikraft - 3cd3cfc9e342a23b6acf027fcf412e589acacc03 authored about 1 year ago by Marc Rittinghaus <[email protected]>
include/uk: Registration of termination functions

This commit adopts the inittab registration macros so that termination
function can be handed ov...

github.com/unikraft/unikraft - e9b3fe3aaee1632a00bfd6f94ba5741a75481783 authored about 1 year ago by Simon Kuenzer <[email protected]>
include/uk: Extend inittab with termination functions

This commit extends the inittab entries with another function pointer:
a corresponding terminati...

github.com/unikraft/unikraft - 1733b8c6200df3dbdfb6ffeea3a55966705c7892 authored about 1 year ago by Simon Kuenzer <[email protected]>
include/uk: Introduce context for init function

This commit introduces a context argument (`struct uk_init_ctx *`) to
the initialization functio...

github.com/unikraft/unikraft - a4a732d23b58c2729ef11a1b6e046be7b38b2dbd authored about 1 year ago by Simon Kuenzer <[email protected]>
lib/vfscore: Add `mkmp` to `ukopts` as a `vfs.fstab` option

In case someone may want to mount a filesystem to a directory
that does not currently exist in t...

github.com/unikraft/unikraft - 4244c95c4d90125de5ab50c18ccc25d5ac81ddc3 authored about 1 year ago by Sergiu Moga <[email protected]>
lib/vfscore: Introduce `ukopts`, a new `vfs.fstab` option

Allow the `vfs.fstab` option arguments to receive an additional
option that is Unikraft specific...

github.com/unikraft/unikraft - 282e75825ec7798b8830f5e56e35786150882ff3 authored about 1 year ago by Sergiu Moga <[email protected]>
lib/uklock: Fix recursive mutex static inititializer

The `struct uk_mutex` structure expects the members to be, in order,
`lock_count`, `flags`, `own...

github.com/unikraft/unikraft - 191a262145ab93afdfda4678e03f1b4d79bd6c14 authored about 1 year ago by Stefan Jumarea <[email protected]>
lib/posix-fdio: Add `__unused` attribute to stubs

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]>
lib/vfscore: Directly register init_stdio to inittab

This is a clean-up commit that removes the indirection of init_stdio() from
fdtable_init() that ...

github.com/unikraft/unikraft - 23381a349d0fe440a2a8233e4cf1127bb5082d5d authored about 1 year ago by Simon Kuenzer <[email protected]>