Matthew Leach
efe34026fa
Merge pull request #81 from arihant2math/mutex-timeouts
2025-12-24 08:08:20 +00:00
Matthew Leach
1d25f0d292
apply fix
2025-12-24 00:02:29 -08:00
someone
877dc9bf2e
Implement sys_truncate ( #86 )
2025-12-23 22:08:16 -08:00
someone
3aef9a4e15
add chown/chmod ( #84 )
2025-12-23 15:19:25 -08:00
Ashwin Naren
c4f1d9acf5
support timeouts for futex
2025-12-23 13:08:37 -08:00
Ashwin Naren
888c099072
implement sys_sched_yield
2025-12-23 12:46:26 -08:00
Matthew Leach
88549fee5a
sys_set_tid_address: finish implementation
...
Now CLONE_CHILD_CLEARTID has been implemented properly, we can finish
the implementation of `sys_set_tid_address`.
2025-12-23 11:28:44 -08:00
Matthew Leach
6bada491b6
futex: check value while queue locked
...
Lock the futex queue when checking the value to ensure atomicity.
2025-12-23 10:21:30 -08:00
Matthew Leach
957b28e8a7
uaccess: implement try_copy_from_user
...
Implement a new function, `try_copy_from_user` which will not sleep when
a fault occures, making it safe to be called while a spinlock has been
acquired.
2025-12-23 10:21:30 -08:00
ootinnyoo
8f00af7587
implement sys_fchdir
2025-12-22 18:34:22 -05:00
Ashwin Naren
2cb93c0891
address review
2025-12-22 02:06:11 -08:00
Ashwin Naren
8bf0a72bce
fix futex based thread joining
2025-12-21 17:02:19 -08:00
Matthew Leach
e77742e029
aarch64: syscalls: clone: fix arg order
...
The clone syscal on aarch64 is the following:
```
SYS_clone, flags, stack, ptid, tls, ctid
x8, x0, x1, x2, x3, x4
```
which is a different order than listed on the man page. Fix the ordering
in the aarch64 syscall dispatch code.
2025-12-21 16:13:15 -08:00
Matthew Leach
3273d6451e
clone: implement CLONE_SETTLS
...
Set the TLS pointer when `CLONE_SETTLS` is set in `sys_clone`.
2025-12-21 16:13:15 -08:00
Matthew Leach
a7ebe8e214
threading: fix clone to spawn threads
...
Fix issues identify in `sys_clone` logic to enable basic threading.
2025-12-21 16:13:15 -08:00
Matthew Leach
eb2369f621
Merge pull request #57 from arihant2math/futex
2025-12-21 13:30:40 +00:00
Matthew Leach
03a400d2bd
Merge pull request #72 from some100/master
2025-12-21 13:30:05 +00:00
Ashwin Naren
637874620b
address review
2025-12-21 01:56:33 -08:00
Ashwin Naren
f004824bbd
make clippy happy
2025-12-21 01:43:54 -08:00
Ashwin Naren
b7e8e9edcc
add note
2025-12-21 01:43:54 -08:00
Ashwin Naren
a6efc75686
final fixes
2025-12-21 01:43:54 -08:00
Ashwin Naren
93df6b0ebc
get data w/ spinlock
2025-12-21 01:43:54 -08:00
Ashwin Naren
cb6dbdf5bb
futex impl
2025-12-21 01:43:54 -08:00
Ashwin Naren
3fbb56098c
futex impl
...
# Conflicts:
# usertest/src/main.rs
2025-12-21 01:43:54 -08:00
Ashwin Naren
cd6d830ae9
Initial proc fs ( #70 )
2025-12-21 01:37:14 -08:00
ootinnyoo
237ab737df
implement sys_chroot
2025-12-20 19:06:07 -05:00
Ashwin Naren
35a6caa541
Implement sys_sysinfo ( #71 )
2025-12-20 15:42:08 -08:00
Ashwin Naren
b98a54b928
Stub sys_madvise ( #67 )
2025-12-19 15:28:43 -08:00
Ashwin Naren
781b9b5c3f
implement mkdir and unlink
...
rm, mkdir and rmdir now work in tmpfs
2025-12-18 15:35:09 +00:00
Matthew Leach
9db6162414
formatting
2025-12-17 20:04:31 -08:00
Matthew Leach
5511e28b72
syscalls: implement ftruncate
2025-12-17 20:04:31 -08:00
Matthew Leach
8bc271c266
fs: open: pass create mode parameter
...
Pass the `mode` parameter to the open VFS call, specifying the
permissions of the file when O_CREAT is specified.
2025-12-17 20:04:31 -08:00
Matthew Leach
236dd3aa84
fs: reg: implement write
...
For some reason, `write` is just a copy of the `read` code. Fix that by
implementing `write`.
2025-12-17 20:04:31 -08:00
Matthew Leach
264d603044
drivers: fs: tmpfs: new
...
Add tmpfs driver and register with the kernel driver's FS subsystem.
2025-12-17 20:04:31 -08:00
Matthew Leach
54f2d683b8
libkernel: move ClaimedPage into libkernel crate
...
By moving `ClaimedPage` into libkernel we can utilise it in
arch-agonstic ode.
2025-12-17 20:04:31 -08:00
Ashwin Naren
bc9676b696
Add stopped state
2025-12-15 16:49:04 -08:00
Ashwin Naren
f1d2d007bb
handle stop and continue
2025-12-15 16:49:04 -08:00
Ashwin Naren
f63ad250f4
implement restarting
2025-12-15 21:22:53 +00:00
Ashwin Naren
e2534ffd9c
Implement /dev/zero
2025-12-10 14:37:59 -08:00
Ashwin Naren
71f025b437
Implement /dev/null ( #48 )
2025-12-09 08:40:27 -08:00
Matthew Leach
511a0db41e
arch: arm64: parse cmdline from chosen node
...
The kernel command line is passed via the FDT's chosen node. Use that,
rather than hard-coding it into the kernel.
Fixes : #20
2025-12-07 16:41:45 +00:00
Ashwin Naren
661f368334
implement sys_kill
2025-12-01 19:55:41 +00:00
Matthew Leach
910203e0c2
syscalls: mprotect: implement
...
Implement the `mprotect` syscall. Including a bunch of tests for
ensuring proper VMA functionality regarding splitting and merging via
`mprotect`.
2025-11-30 20:13:36 +00:00
Matthew Leach
8038a6c4e2
syscalls: sys_getrand: implement
...
Implement sys_getrand
2025-11-28 21:24:37 +00:00
Ashwin Naren
5f2c2491b8
implement fair scheduler
2025-11-28 21:06:07 +00:00
Bjorn Beishline
911a85e4ef
Implement sys_set_robust_list and sys_gettid
2025-11-28 20:46:45 +00:00
Matthew Leach
fb405282cc
syscalls: rseq: return ENOSYS
...
Return ENOSYS for sys_rseq
2025-11-28 20:09:05 +00:00
Matthew Leach
1741b036bb
syscalls: getrlimit: return error
...
Return error for the moment for `sys_getrlimit`.
2025-11-28 20:09:05 +00:00
Matthew Leach
6e988c3639
syscall: socket: return with error
...
Return with an error when calling socket()
2025-11-28 20:09:05 +00:00
Matthew Leach
6a029c340a
syscall: gettimeofday: impement
...
Provide a dummy implementation of sys_gettimeofday
2025-11-28 20:09:05 +00:00