Stefan Lankes
ed29ee444a
minor optimization in our assembler code
2011-03-08 14:39:21 +01:00
Stefan Lankes
fc407a3eda
copy also the entries of the pgt container
2011-03-07 20:25:52 +01:00
Stefan Lankes
6613b13c1c
cosmetic changes
2011-03-07 20:04:44 +01:00
Stefan Lankes
ec5c78fbb3
remove compiler warnings
2011-03-04 23:33:58 +01:00
Stefan Lankes
6f092641ba
remove memory leak and redesign of the internal memory accounting
2011-03-04 22:44:53 +01:00
Stefan Lankes
c21b1bf8a2
remove compiler warnings
2011-03-04 22:42:41 +01:00
Stefan Lankes
08dd1852b6
create all page tables for the kernel space
2011-03-04 21:38:36 +01:00
Stefan Lankes
08b0207dc9
introduce a special PGD lock for the kernel space
2011-03-04 13:47:06 +01:00
Stefan Lankes
56ee331596
add nested spinlocks
...
- required to avoid deadlocks
2011-03-04 11:38:40 +01:00
Stefan Lankes
464f31a53b
optimize the system call fork
...
- add a function to copy a physical page
=> reduce the using of vm_alloc and vm_free
2011-03-03 09:13:00 +01:00
Stefan Lankes
a27150b923
Fix bug in system call "fork"
...
- issues: memory leak
2011-03-02 23:08:01 +01:00
Stefan Lankes
5ce3ed9338
First steps to support the system calls "fork" and "wait"
...
- Currently, the system call "fork" doesn't work and has a memory leak
- However, it is a good starting point for further developments.
2011-03-02 13:49:36 +01:00
Stefan Lankes
cf078ec359
add a function to read the instruction pointer
2011-03-02 06:28:50 +01:00
Stefan Lankes
6772524b08
change copyright statement
...
=> using of a public domain license
2011-03-02 05:32:25 +01:00
Stefan Lankes
187df97227
delete wrong comment
2011-02-24 19:08:51 +01:00
Stefan Lankes
17193475bb
use a spinlock for each PGD
...
increases also the useability of vm_alloc and vm_free
2011-02-24 19:06:32 +01:00
Stefan Lankes
e157f93104
create also for kernel tasks a new PGD
2011-02-24 18:44:11 +01:00
Stefan Lankes
54d636d25c
after process termination, the PGD and its PGTs will be freed
2011-02-24 18:32:58 +01:00
Stefan Lankes
6f23361bf5
include only required headers
2011-02-24 10:19:34 +01:00
Stefan Lankes
16efb49204
remove obsolete function arguments
2011-02-24 10:15:58 +01:00
Stefan Lankes
b4884cde2d
add a function to change the pape permissions
2011-02-24 09:36:05 +01:00
Stefan Lankes
a178734377
Add constants, which defines the permissions on sections in the program header.
2011-02-22 21:04:15 +01:00
Stefan Lankes
31ad08b7ae
Remap lapic and ioapic to the kernel space + some cosmetic changes
2011-02-21 08:36:06 +01:00
Stefan Lankes
c355adb300
create a new pgd for each process
2011-02-18 21:20:15 +01:00
Stefan Lankes
5fe9d5b3e9
Increasing the readability
2011-02-16 22:35:46 +01:00
Stefan Lankes
156bf8fa1b
specify that our assembler code don't need an executable stack
2011-02-16 21:19:44 +01:00
stefan
308e023a85
- use non-recursive Makefiles
...
- this patch based on Florian Zeitz's hint
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@400 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-02-09 19:13:40 +00:00
stefan
9130e9f03c
- increasing the readability
...
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@396 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-02-09 07:07:07 +00:00
stefan
23ed873c24
- define jump_to_user_code as line function
...
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@395 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-02-08 19:47:49 +00:00
stefan
9a9df5ed2e
- merge current eduOS branch to MetalSVM
...
=> add the support of "real" user-space applications, which could be loaded via initrd
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@394 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-02-08 18:37:56 +00:00
stefan
2bfc5a49dc
- move 32bit elf header to arch/x86
...
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@376 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-01-19 07:04:50 +00:00
stefan
810b13f37e
- use the function lapic_read instead of direct memory access to the apic entries
...
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@370 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-01-07 05:37:42 +00:00
stefan
15487b4817
- remove wrong multiplicator
...
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@369 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-01-07 05:34:48 +00:00
stefan
b921da960a
- use the record scc_info to determine the cpu frequency
...
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@368 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-01-06 10:49:04 +00:00
stefan
9d2b73c6cb
- add a workaround to use paging and the apic at the same time
...
(we don't use __attribute__((optimize(0))))
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@366 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-01-05 20:12:07 +00:00
stefan
8646b56a63
- minor changes to support APIC
...
(currently, we got page fault by entering apic_calibration)
- first steps to realize a loader
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@365 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-01-05 10:16:53 +00:00
stefan
7ff346df44
- remove typo
...
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@344 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-12-15 13:39:37 +00:00
stefan
2127c42070
- remove typo
...
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@340 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-12-15 12:08:37 +00:00
stefan
45219bce2e
- huge commit
...
- enable the paging support
- redesign of the APIC code
TODO:
- Currently, we are not able to start user-level applications.
- The RTL8139 driver does not longer work. Perhaps, a bug in the output function.
- The APIC codes doesn't work on all systems. Therefore, the code is currently disabled.
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@326 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-12-10 06:16:58 +00:00
stefan
f28fd84c68
- redesign of the apic code
...
- add ioapic support
- currently, all irq will forwarded to the boot processor
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@293 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-29 02:39:10 +00:00
stefan
3e1c151b5f
- remove an awful bug in the calculation of the io address
...
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@292 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-29 02:36:40 +00:00
stefan
645ce10ed4
- cleanup pci code
...
- add function to determine the iobase address and the irq number of a specific device
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@291 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-27 17:28:32 +00:00
stefan
7871ef692a
- add workaround to run the apic code correctly on qemu 12.5
...
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@290 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-26 18:15:09 +00:00
stefan
0dd542dc47
- code cleanup
...
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@289 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-26 18:14:13 +00:00
stefan
aec80ba9e4
- remove typo
...
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@274 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-26 05:38:01 +00:00
stefan
bc67c946af
- add APIC support for the SCC
...
- seems to work, only the APIC timer doesn't work!
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@273 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-26 05:33:02 +00:00
stefan
0419142d83
- add an inline C function for the assembler operation CL1FLUSHMB
...
- works only on the SCC
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@269 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-24 22:00:03 +00:00
stefan
6346f54594
- redesign of the function cpuid to avoid unintentional overriding of registers
...
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@268 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-24 19:05:04 +00:00
stefan
3ed27e697d
- add some comments
...
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@236 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-05 06:51:19 +00:00
stefan
02ffdc2796
- add special memcpy functions for the RockCreek processor (aka SCC)
...
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@235 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-05 06:14:51 +00:00