Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(core/remio): add Remote I/O infrastructure #176

Merged
merged 7 commits into from
Nov 5, 2024

Commits on Nov 5, 2024

  1. ref(core/hypercall): rename first argument

    This commit renames the first argument of the hypercall to make
    the code independent of the specific hypercall type.
    
    Signed-off-by: João Peixoto <[email protected]>
    joaopeixoto13 committed Nov 5, 2024
    Configuration menu
    Copy the full SHA
    e13ddb6 View commit details
    Browse the repository at this point in the history
  2. feat(inc/hypercall): introduce arch-specific hypercall in/out convention

    This commit introduces a separation of input and output conventions for
    hypercalls, addressing architecture-specific differences between ARM
    and RISC-V. On ARM, the x0 register is used to pass both the extid,
    fid, and the return value, while additional parameters (hypercalls arguments)
    are passed via registers x1 to xn. On RISC-V, while the return value is
    passed in a0, the extid and fid are handled by the a7 and a6 registers,
    respectively. This means that the hypercall input arguments on RISC-V
    should be passed through registers a0 to a5, while output hypercall
    arguments are passed via a2 and onward (because all registers except
    a0 and a1 must be preserved across an SBI call by the callee).
    To accommodate these differences and provide a uniform interface,
    two macros were introduced to abstract the handling of input and output
    hypercall arguments across architectures.
    
    Signed-off-by: João Peixoto <[email protected]>
    joaopeixoto13 committed Nov 5, 2024
    Configuration menu
    Copy the full SHA
    cdf3494 View commit details
    Browse the repository at this point in the history
  3. feat(inc/hypercall): add generic hypercall get/set argument methods

    This commit introduces two methods for setting and retrieving hypercall
    arguments, allowing each hypercall implementation to flexibly manage its
    specific arguments as needed.
    
    Signed-off-by: João Peixoto <[email protected]>
    joaopeixoto13 committed Nov 5, 2024
    Configuration menu
    Copy the full SHA
    eb4d558 View commit details
    Browse the repository at this point in the history
  4. ref(riscv/sync_exceptions): use vcpu_writepc method

    Refactored the vCPU program counter incrementation by introducing
    the architecture-agnostic method vcpu_writepc, aligning the
    implementation with the approach used in the ARM architecture.
    
    Signed-off-by: João Peixoto <[email protected]>
    joaopeixoto13 committed Nov 5, 2024
    Configuration menu
    Copy the full SHA
    6731369 View commit details
    Browse the repository at this point in the history
  5. feat(arch/exception_handler): enable exception handlers to suspend vCPU

    Implemented support for abort and exception handlers to suspend the
    current vCPU based on the vCPU active flag.
    
    Signed-off-by: João Peixoto <[email protected]>
    joaopeixoto13 committed Nov 5, 2024
    Configuration menu
    Copy the full SHA
    cd6f46b View commit details
    Browse the repository at this point in the history
  6. feat(core/objpool): add objpool_alloc_with_id and objpool_get_by_id

    This commit introduces two new methods to the objpool API.
    The first method, objpool_alloc_with_id, enables the allocation of an
    object within a pool and returns the index where the object was allocated.
    The second method, objpool_get_by_id, allows retrieving a previously
    allocated object using the index of the pool where it was initially allocated.
    
    Signed-off-by: João Peixoto <[email protected]>
    joaopeixoto13 committed Nov 5, 2024
    Configuration menu
    Copy the full SHA
    f9d8d0c View commit details
    Browse the repository at this point in the history
  7. feat(core/remio): add Remote I/O infrastructure

    This commit introduces the foundational support for VirtIO by implementing
    a mechanism to forward VirtIO requests bidirectionally between the
    guest VM (or frontend VM) and its associated backend VM.
    
    Signed-off-by: João Peixoto <[email protected]>
    joaopeixoto13 committed Nov 5, 2024
    Configuration menu
    Copy the full SHA
    cfcec7c View commit details
    Browse the repository at this point in the history