ZXFoundation™ 26h2
Loading...
Searching...
No Matches
core.cxxm File Reference

Strand context setup and user-mode first-entry trampolines. More...

import arch.s390x.sched.types;
import zxfoundation.base.types;
import zxfoundation.dgp.domain.types;
Include dependency graph for core.cxxm:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

using zxfoundation::sched::strandctx::strand_entry_fn = auto (*)(void*) noexcept -> void
 Kernel-thread entry function type.

Functions

auto zxfoundation::sched::strandctx::domain_enter_user (domain *d) noexcept -> void
 Overload taking domain* for backward compatibility.
auto zxfoundation::sched::strandctx::domain_enter_user (strand *s) noexcept -> void
 Enter user mode for a domain.
auto zxfoundation::sched::strandctx::setup_primary_strand_context (domain *d, strand_entry_fn entry, void *arg) noexcept -> void
 Convenience wrapper — kernel-thread first-switch for the primary strand of a domain.
auto zxfoundation::sched::strandctx::setup_primary_strand_context_user (domain *d) noexcept -> void
 Convenience wrapper — user-process first-switch for the primary strand of a domain.
auto zxfoundation::sched::strandctx::setup_strand_context_kernel_thread (strand *s, strand_entry_fn entry, void *arg) noexcept -> void
 Set up the initial kernel stack frame for a strand so that the.
auto zxfoundation::sched::strandctx::setup_strand_context_user (strand *s, const user_regs *uregs, const domain *owner) noexcept -> void
 Set up the initial kernel stack frame for a strand whose first context switch performs an LPSWE into user mode.

Detailed Description

Strand context setup and user-mode first-entry trampolines.

SPDX-License-Identifier: Apache-2.0

Function Documentation

◆ domain_enter_user() [1/2]

auto zxfoundation::sched::strandctx::domain_enter_user ( domain * d) ->void
exportnoexcept

Overload taking domain* for backward compatibility.

Overload taking domain* for backward compatibility.

◆ domain_enter_user() [2/2]

auto zxfoundation::sched::strandctx::domain_enter_user ( strand * s) ->void
exportnoexcept

Enter user mode for a domain.

Enter user mode for a domain at runtime.

Parameters
sStrand with valid body->uregs; domain accessed via s->owner.

◆ setup_strand_context_kernel_thread()

auto zxfoundation::sched::strandctx::setup_strand_context_kernel_thread ( strand * s,
strand_entry_fn entry,
void * arg )->void
exportnoexcept

Set up the initial kernel stack frame for a strand so that the.

Parameters
sTarget strand with valid kstack_top
entryNon-null kernel entry function
argOpaque argument passed to entry in r2

◆ setup_strand_context_user()

auto zxfoundation::sched::strandctx::setup_strand_context_user ( strand * s,
const user_regs * uregs,
const domain * owner )->void
exportnoexcept

Set up the initial kernel stack frame for a strand whose first context switch performs an LPSWE into user mode.

Parameters
sTarget strand with valid kstack_top and body->uregs already populated
uregsPointer to the user_regs snapshot
ownerThe owning domain, used for ASC normalization and DGP isolation validation.
Here is the call graph for this function: