Commit Graph

150 Commits

Author SHA1 Message Date
Rémi Rativel
f79b63e930 implemented getter for objaddr 2023-04-05 16:43:09 +02:00
François Autin
91f5c6054c
Added trait SynchObj to relevant structs 2023-04-05 16:12:15 +02:00
Rémi Rativel
586c077002 fixed get_string_param 2023-04-05 16:09:39 +02:00
Quentin Legot
02dd1f5ccf Merge branch 'thread_scheduler' of gitlab.istic.univ-rennes1.fr:simpleos/burritos into thread_scheduler 2023-04-05 16:05:31 +02:00
Quentin Legot
44cfb828fb Remove useless libc, elf and ucontext, add comments to exceptions
improve propagation of errors in raise_exception
2023-04-05 16:02:54 +02:00
Samy Solhi
7060098809 Merge remote-tracking branch 'origin/thread_scheduler' into thread_scheduler
# Conflicts:
#	src/kernel/exception.rs
2023-04-05 16:00:06 +02:00
Samy Solhi
a151bef7ef added fn get string param 2023-04-05 15:57:34 +02:00
Rémi Rativel
77086155b5 started to implement sc_sem_create and auxiliar function 2023-04-05 15:47:57 +02:00
François Autin
2756477e67
Project now builds 2023-04-05 13:49:32 +02:00
François Autin
b96808b55f
Fixed incorrect flow control 2023-04-05 13:44:43 +02:00
François Autin
69f91170f6
Optimized to avoid cloning heap values 2023-04-05 13:34:06 +02:00
Quentin Legot
8b3a3bebe7 Fix list::remove when trying to remove first element of the list (SIGSEGV) 2023-04-05 13:07:10 +02:00
Quentin Legot
24be35547e Add Exit Exception 2023-04-05 12:01:31 +02:00
Quentin Legot
0fd2815a59 Improve test in thread_manager, increase memory size to make it fit 2023-04-04 22:01:49 +02:00
Legot Quentin
0c3a254296 Merge branch 'bin-loader' into 'thread_scheduler'
Binary loader

See merge request simpleos/burritos!12
2023-04-04 13:35:10 +00:00
Quentin Legot
4480212ab0 Merge branch 'thread_scheduler' into bin-loader 2023-04-04 15:28:24 +02:00
Samy Solhi
655bf9eab7 added tests for SC_SHUTDOWN and SC_WRITE (print) 2023-04-03 23:08:13 +02:00
Quentin Legot
8c844c3e5c Initialize sp value for each threads (temporary workaround) 2023-04-02 19:55:06 +02:00
Quentin Legot
8239079130 Add section flag support, loader now ready to run binary files 2023-04-01 00:14:09 +02:00
Samy Solhi
5c7979b746 Added Write system call 2023-03-29 17:52:25 +02:00
Samy Solhi
2981925401 Added shutdown system call 2023-03-29 17:21:34 +02:00
Samy Solhi
15f3608b63 Start syscall 2023-03-29 16:13:57 +02:00
Quentin Legot
703c8e5448 Loader seem to work, be seem we have a problem with jalr 2023-03-28 21:26:58 +02:00
Quentin Legot
cfcdce750b Change filename in thread_manager::test-thread_context 2023-03-28 19:47:42 +02:00
Quentin Legot
c9792d1a1a Ignore uncomplete test 2023-03-27 22:24:46 +02:00
Quentin Legot
2f986da7ae fix save_processor_state, move test to thread_manager 2023-03-27 22:20:29 +02:00
Quentin Legot
08ba0154f7 Add a bin loader 2023-03-27 18:10:11 +02:00
Quentin Legot
5963759141 Merge branch 'thread_scheduler' of gitlab.istic.univ-rennes1.fr:simpleos/burritos into thread_scheduler 2023-03-22 18:31:05 +01:00
Quentin Legot
6d0477153b First iteration (not complete) of a test in thread_manager 2023-03-22 18:30:31 +01:00
François Autin
1118f1fa0f
Added doc to thread manager 2023-03-22 17:17:53 +01:00
François Autin
6edb88f337
Merge branch 'thread_scheduler' of gitlab.istic.univ-rennes1.fr:simpleos/burritos into thread_scheduler 2023-03-22 16:22:28 +01:00
François Autin
df7c0af62b
Form changes 2023-03-22 16:21:15 +01:00
Samy Solhi
21a0da8f24 Removed unwraps in synch.rs 2023-03-22 16:20:53 +01:00
François Autin
caddc445b8
Updated docs 2023-03-22 16:03:36 +01:00
Quentin Legot
ca9f458a7e Add test module to tm 2023-03-22 15:52:48 +01:00
Quentin Legot
1b44949842 remove machine from system 2023-03-22 15:48:29 +01:00
Samy Solhi
9ade363ca9 Merge branch 'thread_rework' of gitlab.istic.univ-rennes1.fr:simpleos/burritos into thread_rework 2023-03-22 15:00:27 +01:00
Samy Solhi
9d19f0630b Fix Semaphore and Lock tests 2023-03-22 14:59:28 +01:00
Quentin Legot
b104bcc6da Fix memory leak 2023-03-22 14:33:56 +01:00
Quentin Legot
b9c329219a Added 2 tests to list.rs, improve semantic and using Default trait instant of function new 2023-03-21 22:40:49 +01:00
Quentin Legot
d3b2d0bac6 List is now a fifo list 2023-03-21 22:03:48 +01:00
Quentin Legot
977cb2bf96 kernel now build
I commented out semaphore code too cause it need to be updated
and having some error cause the compiler to not check for borrow errors
2023-03-16 14:52:53 +01:00
Quentin Legot
fa64d4314d decrease some dependencies 2023-03-15 17:57:53 +01:00
Samy Solhi
6dd0cbcc87 Shadow the hedgehog 2023-03-15 16:51:57 +01:00
Samy Solhi
b22b1dea21 update synch.rs 2023-03-15 16:28:29 +01:00
François Autin
1906ec836c
Moved to reference passing system 2023-03-15 15:20:20 +01:00
François Autin
abb97d17d5
Removed Rc<RefCell<Machine>> 2023-03-15 14:56:05 +01:00
Quentin Legot
9c3501eb40 Merge branch 'thread_scheduler' of https://gitlab.istic.univ-rennes1.fr/simpleos/burritos into thread_scheduler 2023-03-15 11:09:41 +01:00
Quentin Legot
c8df1e5053 use of system in parameters in synch 2023-03-15 11:09:34 +01:00
François Autin
b379305631 🎨 Exported get_new_thread macro out of thread mod 2023-03-15 11:05:01 +01:00
François Autin
bed763cf54 📝 Updated mod doc for list and system 2023-03-15 11:01:25 +01:00
François Autin
2a3d8f3550 Exported macro init_system 2023-03-15 10:10:53 +01:00
Quentin Legot
88a0b31300 Add thread_finish 2023-03-14 22:01:52 +01:00
Samy Solhi
aef8b18966 Added tests for semaphore and lock 2023-03-14 20:28:57 +01:00
Rémi Rativel
cc6ec2f94c Corrected a line added by the IDE 2023-03-14 16:46:48 +01:00
Rémi Rativel
ba895e3587 Small fix with not matching types 2023-03-14 16:44:10 +01:00
Rémi Rativel
5b8abd2a07 Merge remote-tracking branch 'origin/thread_scheduler' into thread_scheduler 2023-03-14 16:34:53 +01:00
Rémi Rativel
287a608adf Implemented constructors for synch structs 2023-03-14 16:34:44 +01:00
François Autin
4ee0c11c56
A few documentation updates 2023-03-14 15:16:40 +01:00
Rémi Rativel
d70de26f02 Structure documentation 2023-03-14 14:45:19 +01:00
Rémi Rativel
d4333a672a fixed some issues made in last merge 2023-03-14 00:09:45 +01:00
Rémi Rativel
65ac9c6f06 merging 2023-03-13 23:45:09 +01:00
Rémi Rativel
dc6c454250 Merge remote-tracking branch 'origin/thread_scheduler' into thread_scheduler
# Conflicts:
#	src/kernel/synch.rs
2023-03-13 23:41:20 +01:00
Rémi Rativel
5b7a12ab0f Documentation for different functions of synch.rs 2023-03-13 23:38:45 +01:00
Quentin Legot
7de7f2e007 Fix scheduler switch_to by making a lot of change(use smart pointers in place of lifetime reference) 2023-03-13 21:47:06 +01:00
Quentin Legot
39e26e61bb Add thread_sleep 2023-03-13 20:55:46 +01:00
François Autin
5b4683c736
Merge branch 'thread_scheduler' of gitlab.istic.univ-rennes1.fr:simpleos/burritos into thread_scheduler 2023-03-13 15:09:50 +01:00
François Autin
0e57576b6a
Added single unit test necessary for system 2023-03-13 15:09:46 +01:00
Quentin Legot
5a6a70f1b7 Force the compiler and clippy to return a warning when a function isn't documented 2023-03-13 14:51:32 +01:00
Quentin Legot
1f54ed35db Implement thread#t_yield() 2023-03-11 14:48:56 +01:00
Quentin Legot
45fea708fc
Changed all reference to thread with an RefCell to enforce mutability 2023-03-10 19:11:16 +01:00
François Autin
a1713e0373
added comments to macros 2023-03-10 19:11:16 +01:00
François Autin
9a86520a77
Put default thread name in a const 2023-03-10 19:11:15 +01:00
François Autin
6e6b97911a
Added debug attributes to structs pertaining to thread in order to allow for applying assertions upon Thread 2023-03-10 19:11:15 +01:00
François Autin
71ccd0c16e
Added macro to get new thread easily and started writing test 2023-03-10 19:11:15 +01:00
François Autin
eeac26aba6
Changed constructor to allow any string slice as parameter + started writing unit tests 2023-03-10 19:11:15 +01:00
Quentin Legot
26b75ffe8d
Add thread save and restore processor context 2023-03-10 19:11:13 +01:00
Quentin Legot
0c3af96b78
Fix start_thread 2023-03-10 19:04:23 +01:00
Quentin Legot
6820086579
Added thread manager 2023-03-10 19:04:23 +01:00
Samy Solhi
1ac2e322cf
synch.rs implemented 2023-03-10 19:04:23 +01:00
Quentin Legot
3406544e3b
Remove old static vars in scheduler, doesn't work 2023-03-10 19:04:23 +01:00
Quentin Legot
75e5c17f28
Fix thread 2023-03-10 19:04:23 +01:00
François Autin
95e0ac4499
Added partialeq trait where relevant 2023-03-10 19:04:22 +01:00
Rémi Rativel
aad2ecbd4c
small fix 2023-03-10 19:04:22 +01:00
Rémi Rativel
5465267f3c
Sarting synch.rs implementation 2023-03-10 19:04:22 +01:00
François Autin
a459a31210
Added System initializer method 2023-03-10 19:03:51 +01:00
Moysan Gabriel
6e6fbb5e1d
dataTypes definition 2023-03-10 19:03:51 +01:00
François Autin
e763712880
New system structure 2023-03-10 19:03:51 +01:00
François Autin
69e1a3e444
Fixed ucontext & libc 2023-03-10 19:03:51 +01:00
Quentin Legot
dc49951bab
Implemente finish (not finished yet), fix ucontext for windows 2023-03-10 19:03:49 +01:00
Quentin Legot
3457f67a7c
Add ucontext_t 2023-03-10 19:02:38 +01:00
Quentin Legot
621b0568b0
Move system to the right location 2023-03-10 19:01:22 +01:00
Quentin Legot
83df053dc6
Implement Thread::start and join 2023-03-10 19:01:22 +01:00
Quentin Legot
c140830faa
Adding some content to thread 2023-03-10 19:01:22 +01:00
Quentin Legot
99fc514720
Change var name to fit with rust conventions 2023-03-10 19:01:22 +01:00
Quentin Legot
cf1c7aad5a
Fix global var 2023-03-10 19:01:22 +01:00
Quentin Legot
e3e217c57f
scheduler done 2023-03-10 19:01:22 +01:00
Quentin Legot
adce79aaa8
Add scheduler structure 2023-03-10 19:01:21 +01:00
Quentin Legot
336ccd1425
Add thread structure 2023-03-10 19:01:21 +01:00
Quentin Legot
a38251c111
Add kernel mod 2023-03-10 19:01:20 +01:00