From dab89a2906472ea5dc5b29ae72bf8cd075f2a7fe Mon Sep 17 00:00:00 2001 From: mohanson Date: Thu, 30 Oct 2025 19:04:35 +0800 Subject: [PATCH] Fix stub-syscalls feature --- .github/workflows/develop.yml | 1 + src/syscalls/stub.rs | 21 +++++++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/.github/workflows/develop.yml b/.github/workflows/develop.yml index 7109be4..871373f 100644 --- a/.github/workflows/develop.yml +++ b/.github/workflows/develop.yml @@ -17,4 +17,5 @@ jobs: wget https://apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh 18 && rm llvm.sh - name: Test run: | + cargo build --features=stub-syscalls make test diff --git a/src/syscalls/stub.rs b/src/syscalls/stub.rs index 5fdc537..405d106 100644 --- a/src/syscalls/stub.rs +++ b/src/syscalls/stub.rs @@ -2,9 +2,9 @@ //! an impl of SyscallImpls trait. use crate::{ - ckb_constants::{CellField, HeaderField, InputField, Source}, + ckb_constants::{CellField, HeaderField, InputField, Place, Source}, error::SysError, - syscalls::traits::SyscallImpls, + syscalls::traits::{Bounds, SyscallImpls}, }; use alloc::{boxed::Box, string::String, vec::Vec}; use core::ffi::CStr; @@ -48,7 +48,13 @@ pub fn debug(s: String) { } pub fn exec(index: usize, source: Source, place: usize, bounds: usize, argv: &[&CStr]) -> u64 { - let result = get().exec(index, source, place, bounds, argv); + let result = get().exec( + index, + source, + Place::try_from(place as u64).unwrap(), + Bounds::from(bounds as u64), + argv, + ); match result { Ok(_) => 0, Err(e) => e.into(), @@ -236,7 +242,14 @@ pub fn spawn( i += 1; } } - let process_id = get().spawn(index, source, place, bounds, &argv, &fds)?; + let process_id = get().spawn( + index, + source, + Place::try_from(place as u64).unwrap(), + Bounds::from(bounds as u64), + &argv, + &fds, + )?; unsafe { spgs.process_id.write(process_id) } Ok(process_id) }