Commit Graph

429 Commits

Author SHA1 Message Date
François Autin
afce2c66c9
Synch now public mod 2023-04-12 13:16:04 +02:00
Quentin Legot
a36e470ea1 Add new thread exception (untested) 2023-04-11 17:47:36 +02:00
Quentin Legot
6c19f66d62 use setter instead of modifying the field itself 2023-04-06 13:48:37 +02:00
Quentin Legot
66d6daf0b9 Lint: remove some warnings 2023-04-06 13:46:59 +02:00
Quentin Legot
9cc57e7f03 Add launch argument parser, add debug parameter to machine
burritos now launch binary
2023-04-06 13:27:03 +02:00
François Autin
2f0b9e6592
Tests now point to the correct locations 2023-04-05 17:07:58 +02:00
Quentin Legot
01ac29160b Fix test 2023-04-05 16:57:37 +02:00
Quentin Legot
b804117127 Fix loader test, only use one bin file in test_thread_context 2023-04-05 16:51:32 +02:00
François Autin
cfb58fd6b3
Fixed machine tests not passing 2023-04-05 16:44:41 +02:00
François Autin
df4fd53c96
Added documentation for trait 2023-04-05 16:44:41 +02:00
Rémi Rativel
f79b63e930 implemented getter for objaddr 2023-04-05 16:43:09 +02:00
Quentin Legot
f246e84f91 Use Default trait instead of init_machine() 2023-04-05 16:12:57 +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
François Autin
8ee7470dc5
Added objaddr 2023-04-05 16:09:10 +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
3685bb6590
Added general failure case in raise exception and removed break in main loop for system exceptions 2023-04-05 13:41:56 +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
Quentin Legot
fc3237c4ad Adding test to loader, update ci (hope it work) 2023-04-04 11:50:29 +02:00
Samy Solhi
655bf9eab7 added tests for SC_SHUTDOWN and SC_WRITE (print) 2023-04-03 23:08:13 +02:00
Quentin Legot
aef8d219d0 Continue to add comments 2023-04-03 15:58:57 +02:00
Quentin Legot
025ede6080 Add some comments 2023-04-03 15:26:55 +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
Quentin Legot
0a744f0f94 Add parsing of sections 2023-03-31 22:48:02 +02:00
Quentin Legot
443556b18a Refactor loader into multiple struct 2023-03-31 21:49:26 +02:00
Quentin Legot
35c81e5269 Fix get_address_point 2023-03-31 19:34:45 +02:00
Quentin Legot
453de4b704 Fix is_riscv_isa 2023-03-31 15:34:04 +02:00
Quentin Legot
b4b7eb69c2 Add elf header parsing 2023-03-31 15:18:58 +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
e117ec2132 Merge branch 'thread_scheduler' of gitlab.istic.univ-rennes1.fr:simpleos/burritos into thread_scheduler 2023-03-29 17:01:44 +02:00
Samy Solhi
06f6137852 Added MachineOk to one_instruction 2023-03-29 17:01:28 +02:00
François Autin
8629d859e4
♻️ Documentation updates and fn renaming 2023-03-29 16:42:08 +02:00
François Autin
45a2ee952c
Merge branch 'thread_scheduler' of gitlab.istic.univ-rennes1.fr:simpleos/burritos into thread_scheduler 2023-03-29 16:26:35 +02:00
François Autin
2d241e4dd5
♻️ Started refactoring instruction.rs 2023-03-29 16:26:27 +02:00
Samy Solhi
ac1f2287a2 Merge branch 'thread_scheduler' of gitlab.istic.univ-rennes1.fr:simpleos/burritos into thread_scheduler 2023-03-29 16:15:53 +02:00
Samy Solhi
15f3608b63 Start syscall 2023-03-29 16:13:57 +02:00
François Autin
3fa3ce0e99
♻️ Consolidated instruction definition and manipulation in instruction.rs 2023-03-29 16:08:06 +02:00
François Autin
d77c2448e3
📝 Commented trait RegisterNum 2023-03-29 15:40:35 +02:00
François Autin
72f560f3ec
♻️ Simplified fp_instruction 2023-03-29 15:25:58 +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
7dff3bcdd9 Merge branch 'thread_scheduler' into bin-loader 2023-03-28 21:08:00 +02:00
Quentin Legot
cfcdce750b Change filename in thread_manager::test-thread_context 2023-03-28 19:47:42 +02:00
François Autin
40039eca17
♻️ Error cleanup 2023-03-28 19:37:31 +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
François Autin
7f37965ed4
♻️ Implement From<&str> and From<String> traits to MachineError, and simplified opiw_instruction 2023-03-27 15:56:23 +02:00
François Autin
2162232199
♻️ Simplified branch_instruction 2023-03-27 15:37:30 +02:00
François Autin
ff93fab832
♻️ Amend of previous commit 2023-03-27 15:01:34 +02:00
François Autin
288703321e
♻️ OPI instruction done 2023-03-27 14:59:22 +02:00
François Autin
ba8e36ea90
:rotating_lights: Small lint fixes 2023-03-27 11:35:04 +02:00
François Autin
939e23883e
♻️ Simplified OPI 2023-03-27 11:22:53 +02:00
François Autin
a8bbc13142
🐛 Readded check for system instructions in order to pass tests 2023-03-27 10:34:10 +02:00
François Autin
8ba63d38a3
♻️ Main loop now panics on error 2023-03-27 10:21:18 +02:00
François Autin
e77e125f96
♻️ Error management and simplification
Modified methods
 - load_instruction
  - store_instruction
2023-03-25 15:57:28 +01:00
François Autin
3dfeca4c42
♻️ simplified store_instruction using closure 2023-03-25 15:43:33 +01:00
François Autin
651e03a446
📝 :refactor: Form and documentation updates 2023-03-25 15:37:14 +01:00
François Autin
7ed53261a0
📝 Documentation updates 2023-03-24 19:02:50 +01:00
François Autin
4e90d9fef7
♻️ Now all machine methods are called through self 2023-03-24 18:48:07 +01:00
François Autin
a2d5b22774
♻️ Machine::write_memory is now indeed a self method 2023-03-24 18:36:02 +01:00
François Autin
b33c31ef38
♻️ Machine::read_memory is now indeed a self method 2023-03-24 18:34:06 +01:00
François Autin
88e1921b3c
♻️ Further simplified tests 2023-03-24 18:27:28 +01:00
François Autin
7bdde70989
♻️ Removed tons of casts to usize 2023-03-24 18:20:59 +01:00
François Autin
35fdb1e0b0
📝 ♻️ Doc updates & Registers are now sized from consts 2023-03-24 18:13:18 +01:00
François Autin
928628c305
📝 Documentation updates 2023-03-24 18:11:37 +01:00
François Autin
228d58655a
🐛 Fixed missing check for position 0 2023-03-24 17:56:37 +01:00
François Autin
03cc8e17c6
♻️ Simplified imports and moved Register struct to own file 2023-03-24 17:44:24 +01:00
François Autin
c74c99499e
♻️ Removed loads of casts to usize 2023-03-24 17:32:04 +01:00
François Autin
bee0e8ce71
📝 Documentation updates for machine.rs 2023-03-23 21:55:46 +01:00
François Autin
cc6aab7c3f
Documented ExceptionType 2023-03-23 20:58:10 +01:00
François Autin
21159d3d98
Renamed exceptions to follow CamlCase convention 2023-03-23 20:54:05 +01:00
François Autin
43de76bd72
♻️ Started work on machine.rs refactoring
# Current changes

 - Crude error management
 - Readability improvements
 - Broke down one_instruction into smaller, more manageable methods
 - Added crude documentation
2023-03-23 20:05:46 +01:00
François Autin
87d90c394f
Added MachineError struct 2023-03-23 20:04:21 +01:00
François Autin
c6ea3a0cb3
♻️ Refacted machine tests with macros 2023-03-23 17:42:36 +01: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
Quentin Legot
da37e0657c Merge branch 'thread_rework' into thread_scheduler 2023-03-22 15:08:38 +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