Commit Graph

360 Commits

Author SHA1 Message Date
François Autin
e5242aab0c Ignored machine tests for now 2023-03-15 10:53:22 +01:00
François Autin
0047b7d762 Fixed incorrect length and address readouts because of an incorrectly configured radix 2023-03-15 10:45:02 +01:00
François Autin
2a3d8f3550 Exported macro init_system 2023-03-15 10:10:53 +01:00
Moysan Gabriel
77f28d029d impl translate 2023-03-15 00:32:58 +01:00
Moysan Gabriel
ea309ab124 taille de la memoire recalculée 2023-03-14 22:55:48 +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
François Autin
81f3ac2099
Merge branch 'thread_scheduler' of gitlab.istic.univ-rennes1.fr:simpleos/burritos into thread_scheduler 2023-03-14 14:50:02 +01:00
François Autin
d1935e9399
Fully documented mem_cmp.rs 2023-03-14 14:49:58 +01:00
François Autin
03ac599c7f
Removed lifetime tag from Semaphore implementation 2023-03-14 14:49:45 +01:00
Rémi Rativel
df1b7a59e4 Merge remote-tracking branch 'origin/thread_scheduler' into thread_scheduler 2023-03-14 14:45:26 +01:00
Rémi Rativel
d70de26f02 Structure documentation 2023-03-14 14:45:19 +01:00
François Autin
eeb0e336c7 what the fuck was that 2023-03-14 00:33:53 +01:00
Rémi Rativel
08f684ccce Merge remote-tracking branch 'origin/thread_scheduler' into thread_scheduler 2023-03-14 00:09:54 +01:00
Rémi Rativel
d4333a672a fixed some issues made in last merge 2023-03-14 00:09:45 +01:00
François Autin
9318871c31 Fixed tests from mem_cmp 2023-03-13 23:55:35 +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
Moysan Gabriel
3391d3cb65 impl translation table + debut impl mmu 2023-03-13 22:52:27 +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
amaury
c0765270d7 ajout de fichiers mémoire et des registre en cours d'execution 2023-03-13 19:00:54 +01:00
Moysan Gabriel
be19031c32 enum visibility 2023-03-13 18:01:02 +01:00
Moysan Gabriel
5f798edb94 enum d'erreurs dans machine, du code pour gerer les erreurs dans le futur 2023-03-13 17:49:48 +01:00
Moysan Gabriel
172dad6598 mmu & translation table def 2023-03-13 17:42:03 +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
François Autin
c75e2995e7
Reworked unit tests for machine and renamed test_programs directory 2023-03-12 00:22:16 +01:00
François Autin
177abfe846
Renamed Machine::init_machine and fixed stack overflow by allocating main_memory to the heap 2023-03-11 23:49:20 +01:00
Quentin Legot
1f54ed35db Implement thread#t_yield() 2023-03-11 14:48:56 +01:00
François Autin
e1283c9c42
Fixed missing crate import 2023-03-10 19:17:41 +01:00
François Autin
61c9300c6a
Merge branch 'thread_scheduler' of gitlab.istic.univ-rennes1.fr:simpleos/burritos into thread_scheduler 2023-03-10 19:14:03 +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
ec07158633
Added partialeq trait to Node 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
Quentin Legot
bf4be44676
Add list.remove(T) 2023-03-10 19:04:22 +01:00
François Autin
6b95969c4b
Added partialeq trait to List struct 2023-03-10 19:04:22 +01:00
François Autin
b59fb83e60
Main now initializes System object 2023-03-10 19:04:21 +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
e4db7ec96b
Implement interrupt 2023-03-10 19:02:37 +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
958407ab77
Improve list by adding iterator trait 2023-03-10 19:01:21 +01:00
Quentin Legot
407480bcd4
Add double linked list 2023-03-10 19:01:21 +01:00
Quentin Legot
a38251c111
Add kernel mod 2023-03-10 19:01:20 +01:00
François Autin
6ee74ba126
Fixed more clippy complaining 2023-03-10 11:03:54 +01:00
François Autin
be8435cf83
Cleaned clippy lint warnings from machine.rs 2023-03-10 10:59:14 +01:00
François Autin
44e3f586e2
Fixed some clippy complaining 2023-03-10 10:38:58 +01:00
François Autin
6db52669b4
Removed useless variable 2023-03-10 10:34:13 +01:00
François Autin
5155b62b06
Added proper error handling to extract_memory_method 2023-03-10 10:32:20 +01:00
François Autin
3971fb0630
Merge branch 'thread_scheduler' of gitlab.istic.univ-rennes1.fr:simpleos/burritos into thread_scheduler 2023-03-09 14:03:39 +01:00
François Autin
ecff299b28
added comments to macros 2023-03-09 14:03:35 +01:00
Quentin Legot
e1ba3f6078 Changed all reference to thread with an RefCell to enforce mutability 2023-03-09 14:00:42 +01:00
François Autin
f586c56a0b
Put default thread name in a const 2023-03-09 13:33:00 +01:00
François Autin
bfef7254d8
Added debug attributes to structs pertaining to thread in order to allow for applying assertions upon Thread 2023-03-09 13:24:04 +01:00
François Autin
8bf7a452f3
Added macro to get new thread easily and started writing test 2023-03-09 13:07:50 +01:00
François Autin
0f339dd936
Changed constructor to allow any string slice as parameter + started writing unit tests 2023-03-09 12:44:03 +01:00
Quentin Legot
d392c69535 Add thread save and restore processor context 2023-03-09 12:08:33 +01:00
Quentin Legot
fe4bbb2fc2 Fix start_thread 2023-03-08 21:43:03 +01:00
Quentin Legot
4ca85b54d4 Added thread manager 2023-03-08 21:10:51 +01:00
Baptiste
075d6cb737 add tests run programs 2023-03-08 17:58:38 +01:00
Samy Solhi
82731cabcf synch.rs implemented 2023-03-08 16:39:00 +01:00
Quentin Legot
0f5eb84c7b Remove old static vars in scheduler, doesn't work 2023-03-08 16:05:05 +01:00
Quentin Legot
f15d782916 Fix thread 2023-03-08 15:54:10 +01:00
François Autin
f4edac230e
Added partialeq trait to Node 2023-03-08 15:49:31 +01:00
François Autin
5e265ab27b
Added partialeq trait where relevant 2023-03-08 15:48:33 +01:00
François Autin
ed5b760758
Merge branch 'thread_scheduler' of gitlab.istic.univ-rennes1.fr:simpleos/burritos into thread_scheduler 2023-03-08 15:48:08 +01:00
François Autin
7520fd4458
Added partialeq trait to List struct 2023-03-08 15:48:03 +01:00
Quentin Legot
99be85acf5 Merge branch 'thread_scheduler' of gitlab.istic.univ-rennes1.fr:simpleos/burritos into thread_scheduler 2023-03-08 15:47:19 +01:00
Quentin Legot
62b60186e9 Add list.remove(T) 2023-03-08 15:46:53 +01:00
Rémi Rativel
a29f410a66 small fix 2023-03-08 15:46:27 +01:00
Rémi Rativel
d03bb47131 Merge remote-tracking branch 'origin/thread_scheduler' into thread_scheduler 2023-03-08 15:45:47 +01:00
Rémi Rativel
cf65688566 Sarting synch.rs implementation 2023-03-08 15:45:35 +01:00
François Autin
a11ca01368
Main now initializes System object 2023-03-08 15:38:19 +01:00
François Autin
de502973c7
Added System initializer method 2023-03-08 15:34:13 +01:00
François Autin
06be5c9796
Merge branch 'thread_scheduler' of gitlab.istic.univ-rennes1.fr:simpleos/burritos into thread_scheduler 2023-03-08 15:16:27 +01:00
François Autin
0309614396
New system structure 2023-03-08 15:16:10 +01:00
Moysan Gabriel
4c79f86b89 dataTypes definition 2023-03-08 14:38:02 +01:00
François Autin
8889d43f9d
Fixed ucontext & libc 2023-03-08 14:09:07 +01:00
Rémi Rativel
de0013ad3e remade compare_machine_memory 2023-03-08 13:34:12 +01:00
Quentin Legot
8c6ef4e131 Implemente finish (not finished yet), fix ucontext for windows 2023-03-08 13:21:08 +01:00
François Autin
58890d85d1
Fixed naming conventions not followed 2023-03-08 13:05:59 +01:00
Rémi Rativel
e60ca57bc7 Warning fix 2023-03-08 13:04:03 +01:00
Rémi Rativel
da30122c87 Added documentation for from function 2023-03-08 11:15:13 +01:00
Baptiste
1e2e537ec9 compare mem_checker and machine 2023-03-07 17:32:59 +01:00
Quentin Legot
6ca0b564c5 Add ucontext_t 2023-03-06 16:31:35 +01:00
Baptiste
d352f5dcd2 fix jal, branch instr & LD. + better print for machine status 2023-03-06 13:50:45 +01:00
amaury
cef082bfd5 ajout des mémoires nachos de tous les tests 2023-03-06 11:19:00 +01:00
Baptiste
6f6191ea3c memory.txt can be execute 2023-03-05 23:49:28 +01:00
Baptiste
6072ba97d6 update memory 2023-03-03 12:21:37 +01:00
Quentin Legot
4dae299008 Implement interrupt 2023-03-01 17:18:45 +01:00
Quentin Legot
b39e56b9c4 Move system to the right location 2023-03-01 17:01:02 +01:00
Quentin Legot
68ee179e12 Implement Thread::start and join 2023-03-01 16:55:17 +01:00
Baptiste
5a90419ebb change memory to a vector, it can now be fill 2023-03-01 16:12:46 +01:00
Quentin Legot
77e6d74b3b Adding some content to thread 2023-03-01 15:45:49 +01:00
Baptiste
73c49414ff print_memory dans Machine 2023-03-01 15:11:35 +01:00
Quentin Legot
792497b14c Change var name to fit with rust conventions 2023-03-01 11:16:21 +01:00
Quentin Legot
4c8062905c Fix global var 2023-03-01 11:10:15 +01:00
Quentin Legot
6f98224da1 scheduler done 2023-03-01 10:11:19 +01:00
Quentin Legot
013a2968cd Add scheduler structure 2023-02-28 16:39:40 +01:00
Quentin Legot
e422e65767 Add thread structure 2023-02-28 14:43:40 +01:00
Quentin Legot
fd6b22a2f3 Improve list by adding iterator trait 2023-02-17 09:45:47 +01:00
Samy Solhi
0530d980be Merge conflicts 2023-02-15 18:12:15 +01:00
Quentin Legot
bd0b6e17a5 Add double linked list 2023-02-15 18:10:08 +01:00
Samy Solhi
82c9282f0e debug loader 2023-02-15 18:09:18 +01:00
Baptiste
c1e2676f01 merging 2023-02-15 18:02:51 +01:00
Baptiste
39b7db864a calling mem_checker in main 2023-02-15 18:01:50 +01:00
Samy Solhi
6c08ed24b1 Merge branch 'decode_print' of https://gitlab.istic.univ-rennes1.fr/simpleos/burritos into decode_print 2023-02-15 17:21:25 +01:00
Samy Solhi
6507b601e7 Added loader 2023-02-15 17:20:10 +01:00
Rémi Rativel
4a201268e7 Merge branch 'decode_print' of gitlab.istic.univ-rennes1.fr:simpleos/burritos into decode_print 2023-02-15 16:14:45 +01:00
Rémi Rativel
9fab99e31f make struct and function public 2023-02-15 16:14:27 +01:00
Baptiste
4425ac747e debuging mem_checker::from 2023-02-15 15:45:37 +01:00
Quentin Legot
f1f57a76e1 Add kernel mod 2023-02-15 14:56:11 +01:00
Samy Solhi
b5690a7f57 Merge branch 'decode_print' of https://gitlab.istic.univ-rennes1.fr/simpleos/burritos into decode_print 2023-02-15 14:34:10 +01:00
Samy Solhi
06f0be9ece Fixed R32F 2023-02-15 14:33:40 +01:00
Rémi Rativel
619b67f7ec Merge branch 'decode_print' of gitlab.istic.univ-rennes1.fr:simpleos/burritos into decode_print 2023-02-15 14:22:49 +01:00
Rémi Rativel
d76047e48b changed Mem_Checker method 2023-02-15 14:22:31 +01:00
Samy Solhi
a9a86b674b Merge branch 'decode_print' of https://gitlab.istic.univ-rennes1.fr/simpleos/burritos into decode_print 2023-02-15 13:56:08 +01:00
Samy Solhi
e3c6917486 Added RV32F Standard Extension 2023-02-15 13:55:16 +01:00