Commit Graph

172 Commits

Author SHA1 Message Date
Chris Copeland e4a801af20
rename variables in tls example 2024-05-14 01:41:09 -07:00
Chris Copeland 65133cf1ba
make sleep example forgiving by 1 tick 2024-05-08 00:31:11 -07:00
Chris Copeland b716b23be0
rename variables in tls example to avoid collision with a built-in function 2024-05-05 13:20:31 -07:00
Chris Copeland 3ef8529212
change tls example to always run even when tls is disabled 2024-05-05 01:04:15 -07:00
Chris Copeland eb480fb90f
fix examples/SConscript check for tls 2024-05-04 19:47:22 -07:00
Chris Copeland e23d0759fe
only build tls example if enabled 2024-04-29 09:31:29 -07:00
Chris Copeland 06cacd01ee
add thread-local storage support for arm 2024-04-27 01:23:37 -07:00
Chris Copeland 7e225ba2df
fix clippy lints 2024-04-01 00:02:07 -07:00
Chris Copeland 67d3ef07f2
remove sem.h include from mutex.h
add missing sem.h includes
2024-03-14 03:18:25 -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 8845d8d1b6
refactor ready list management and make lower priority numbers higher priority 2024-02-24 03:37:52 -08:00
Chris Copeland fe61771778
use a normal binary semaphore for cond to allow a signal that happens before a cond_wait but after a condition check to be received 2023-12-10 22:28:29 -08:00
Chris Copeland c34dc16b1c
add mutex fairness example 2023-12-09 15:06:23 -08:00
Chris Copeland 072bd60486
run cycle examples in a loop 2023-11-26 23:02:13 -08: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 f9f8a30bd0
update rust donate example 2023-10-22 12:09:07 -07:00
Chris Copeland 812117ff49
add recursive mutexes 2023-10-17 23:03:54 -07:00
Chris Copeland 426d1948a0
use larger stack in some examples 2023-10-14 17:14:34 -07:00
Chris Copeland d8182e4f1c
clean up comments, use #pragma once everywhere 2023-10-14 13:50:37 -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 0b2ba56d57
use rt_task_ready in task constructors, and use __COUNTER__ for the constructor priority 2023-10-06 00:14:27 -07:00
Chris Copeland ea7b8d54b1
add RT_STACK_FP_MIN and use it in examples/float.c 2023-09-23 18:13:31 -07:00
Chris Copeland 598d9759c7
implement lazy enable fp for cortex r 2023-09-22 09:05:42 -07:00
Chris Copeland 7941dbbfdb
use atomics instead of volatile in once and queue examples 2023-09-09 11:09:36 -07:00
Chris Copeland 03319a1c89
RT_TASK_STATIC* -> RT_TASK* 2023-08-24 08:46:43 -07:00
Chris Copeland fe677a7f43
remove main from examples and use constructors for task creation 2023-08-21 20:50:16 -07:00
Chris Copeland aa4705fd96
add RT_TASK_STATIC* and use it in examples 2023-08-19 16:32:19 -07:00
Chris Copeland 13208548e8
use [0,n) in remaining examples 2023-07-30 18:46:01 -07:00
Chris Copeland 0f7b0c43dc
remove temporary from water example 2023-07-29 23:47:28 -07:00
Chris Copeland 92527b7eb6
use 0 <= i < n in notify example 2023-07-29 17:59:32 -07:00
Chris Copeland 11f7652c58
move sleep functions into task.h and rename them to rt_task_sleep* 2023-07-26 23:40:58 -07:00
Chris Copeland 6c81213592
change rwlock interface to align with pthreads 2023-07-25 23:32:13 -07:00
Chris Copeland e32f64b784
add static back to newtask.c example 2023-07-16 15:39:45 -07:00
Chris Copeland e56284bb3e
reduce the number of tasks in rwlock and queue examples 2023-07-15 17:37:23 -07:00
Chris Copeland feb753cd87
don't use static within RT_STACK 2023-07-15 17:11:10 -07:00
Chris Copeland 04b39f9cfb
add support for privileged MPU regions for the kernel's global data structures 2023-07-15 16:12:30 -07:00
Chris Copeland 65ea96c68e
rename rt_once to rt_once_call 2023-07-08 23:30:03 -07:00
Chris Copeland 1db0b30040
rename rt_notify to rt_notify_post 2023-07-08 23:29:40 -07:00
Chris Copeland 3e289cad6d
use unsigned in rwlock example 2023-07-07 01:09:05 -07:00
Chris Copeland ed1ac68cf1
use unsigned in mutex example 2023-07-07 00:30:01 -07:00
Chris Copeland 7aad1ad390
fix conversion issue in queue example 2023-07-04 12:43:58 -07:00
Chris Copeland d2339aeebe
reorder arguments of rt_notify*clear 2023-07-04 12:42:02 -07:00
Chris Copeland 2f03a83d7d
remove extraneous rt_notify declaration in example 2023-07-04 12:40:18 -07:00
Chris Copeland e4bbaec51e
enforce that un-donation happens before unlock for timedlock 2023-07-04 07:25:00 -07:00
Chris Copeland 52e5d0d0ae
add timedlock to donate example 2023-07-03 23:49:36 -07:00
Chris Copeland a4a9f3f90c
change timings of cycle/mutex example 2023-07-03 22:23:19 -07:00
Chris Copeland 6f622c0cae
add all examples to test.bash, add timeout to float.c 2023-07-02 13:45:23 -07:00
Chris Copeland cab5351699
remove extra functions from list.c and list examples 2023-07-02 13:45:00 -07:00
Chris Copeland c3f2171891
implement priority donation for mutexes
add timeout to mutex example

add cycle/mutex example

add donate example
2023-07-02 11:43:54 -07:00
Chris Copeland 77dbff2d7f
clean up includes, rename cond fields 2023-06-28 00:11:10 -07:00