Commit Graph

69 Commits

Author SHA1 Message Date
Chris Copeland 4da8e59ea0
fix cond.c after sem refactor
add comments about atomicity of cond_wait

add cond examples
2024-05-17 00:04:57 -07:00
Chris Copeland ad24bc930c
bump rust package version to 0.3.0
update bindgen to 0.69
2024-05-16 01:47:04 -07:00
Chris Copeland 51b29dabde
improvements to arch/signal
use mmap for stacks

split up main into different steps

add SA_RESTART to sigaction flags
2024-05-16 01:39:55 -07:00
Chris Copeland c1d56c6c6d
fix condvar initialization in rust barrier and rwlock 2024-05-13 01:07:07 -07:00
Chris Copeland 5d417de3bd
get arch/signal rt_trap to work in the debugger
make test scripts exit with failure if any tests failed
2024-05-13 00:00:08 -07:00
Chris Copeland 0ad0bd508b
remove trap statement from test scripts 2024-05-05 17:22:36 -07:00
Chris Copeland 32774b0158
arch/signal with aarch64 and x86_64 on Linux and macOS 2024-05-04 20:24:32 -07:00
Chris Copeland 83e223cdf4
make rust task stacks aligned to 16 bytes 2024-05-02 10:31:52 -07:00
Chris Copeland b1652ca4d6
add #[repr(transparent)] where applicable 2024-04-20 00:29:31 -07:00
Chris Copeland 8170a8484c
only look at rust arm/ar features if the target is arm 2024-04-19 23:33:09 -07:00
Chris Copeland bfb77a07b3
add clang-tidy to Dockerfiles 2024-04-16 06:46:25 -07:00
Chris Copeland 4b18d53d7a
rename rust rt::sync::Semaphore to rt::sync::Sem 2024-04-14 17:16:53 -07:00
Chris Copeland 634a007749
rustfmt 2024-04-01 00:07:32 -07:00
Chris Copeland 7e225ba2df
fix clippy lints 2024-04-01 00:02:07 -07:00
Chris Copeland b08e976788
change rust condvar sem max value to match C 2024-03-31 18:36:20 -07:00
Chris Copeland 0140bb11f3
remove bool combinators from queue.rs 2024-03-31 18:36:20 -07:00
Chris Copeland 33ca1b7e83
fix rust mutex guards in fallible acquire functions 2024-03-31 18:36:20 -07:00
Chris Copeland ec1e67c984
word wrap rust/test.bash 2024-03-28 22:55:48 -07:00
Chris Copeland 20b9d8859b
remove extraneous brackets in TEST_INIT.call_once 2024-03-28 22:54:08 -07:00
Chris Copeland 3814e430bc
remove extraneous export of bindings::rt_syscall_record 2024-03-28 20:44:05 -07:00
Chris Copeland 35a58297dd
add cargo features for each of the arm/ar interrupt controllers 2024-03-27 01:49:49 -07:00
Chris Copeland 1a2e750313
reduce scope of unsafe in rust task constructor 2024-03-26 23:07:50 -07:00
Chris Copeland 4fb87ce26d
put rust task stacks in the .stack section on none targets 2024-03-26 22:40:41 -07:00
Chris Copeland da97fc9bd8
make rust Task not a static mut anymore 2024-03-26 22:40:10 -07:00
Chris Copeland 98d60a504b
yield_ -> yield_now 2024-03-26 22:28:50 -07:00
Chris Copeland 46e42e468a
use cast, cast_const, and cast_mut instead of as * 2024-03-26 22:02:12 -07:00
Chris Copeland b9b6bcd6fc
update task.rs to remove references to static mut 2024-03-26 09:49:44 -07:00
Chris Copeland 6beea0defb
update queue.rs to remove references to static mut 2024-03-26 09:49:25 -07:00
Chris Copeland e94e61acd8
update msrv to 1.76.0 and use core::ptr::from_ref where possible 2024-03-26 09:49:19 -07:00
Chris Copeland 24d9525447
run tests in parallel 2024-03-19 21:12:54 -07:00
Chris Copeland 7d0353b1d7
pass synchronous syscall arguments in registers
rt_syscall_op -> rt_syscall

split the syscall enum between synchronous and asynchronous syscalls

add explicit YIELD syscall enum

split blocking states by sem vs. mutex to simplify donation and timeouts
2024-03-08 00:28:27 -08:00
Chris Copeland 82d9af898e
remove RT_SYSCALL_TASK_READY
have rust's task init add directly to ready lists, which themselves don't need a constructor anymore
2024-03-03 18:18:47 -08:00
Chris Copeland 8845d8d1b6
refactor ready list management and make lower priority numbers higher priority 2024-02-24 03:37:52 -08:00
Chris Copeland 4e080c271a
use core::mem::zeroed where possible and update msrv to 1.75.0 2023-12-29 01:27:30 -08:00
Chris Copeland b40b253e74
clean up lib.rs 2023-12-19 00:00:57 -08:00
Chris Copeland 0fda9abfaf
add support for arm A-profile
add support for the intc from the sitara am335x

refactor arm port to move more headers into rt/arch/

add rt/arch/profile.h
2023-11-26 18:17:37 -08:00
Chris Copeland 783dda62ff
use then and then_some in rust interfaces 2023-10-29 11:14:30 -07:00
Chris Copeland 313bda2380
rework rwlock and add {try,timed}{rd,wr}lock add {rd,wr}unlock 2023-10-29 07:04:51 -07:00
Chris Copeland 4192c24579
rwlock.m -> rwlock.mutex 2023-10-28 12:30:10 -07:00
Chris Copeland edd070fc14
cargo fmt 2023-10-25 00:37:24 -07:00
Chris Copeland 520c28fb38
fix rust mutex test 2023-10-22 12:13:05 -07:00
Chris Copeland f9f8a30bd0
update rust donate example 2023-10-22 12:09:07 -07:00
Chris Copeland eebe9b3af5
add missing level initializer to mutex in rust 2023-10-22 11:58:52 -07:00
Chris Copeland d8182e4f1c
clean up comments, use #pragma once everywhere 2023-10-14 13:50:37 -07:00
Chris Copeland e2d4cb6c63
add rt_syscall_pend to rust task init, rustfmt 2023-10-10 23:52:42 -07:00
Chris Copeland c4abb96de1
refactor MPU interface, simplify start and unify creation of idle task 2023-10-10 23:09:58 -07:00
Chris Copeland 092ced3ecf
fix rust notify initialization and test 2023-10-10 23:09:50 -07:00
Chris Copeland 598d9759c7
implement lazy enable fp for cortex r 2023-09-22 09:05:42 -07:00
Chris Copeland 778399d0d3
refactor rt_syscall and rt_syscall_pend
make rt_syscall_pend work from interrupts and rt_syscall work from tasks
remove old rt_syscall_pend that works from both

rename enum rt_syscall to enum rt_syscall_op
2023-09-19 23:19:33 -07:00
Chris Copeland b606cf06c7
move syscall records out of the task and put tasks in privileged memory 2023-09-17 21:47:58 -07:00