Commit graph

253 commits

Author SHA1 Message Date
Marian Ohligs
4f0bc05a74 add basic support of scanf, get ... 2011-05-23 12:56:14 +02:00
Stefan Lankes
08f5153257 add the support of inter core interrupts 2011-05-17 08:13:20 -07:00
Stefan Lankes
ea4a7477c5 set CR0's MP flag to monitor the coprocessor 2011-04-21 19:46:55 +02:00
Stefan Lankes
a563c756ee fix bug in the setup of the caching strategy 2011-04-21 09:33:49 -07:00
Stefan Lankes
f3b620a9be add rudimental support of the system call times
- no full support of the POSIX API
- however, the libc function clock works correctly
2011-04-21 10:13:58 +02:00
Stefan Lankes
0c411fd702 add basic support of sbrk and fix bug in saving of the fpu context 2011-04-21 07:32:20 +02:00
Stefan Lankes
7cb05d8f4a first version to support the FPU
- seems to work
- currently, we didn't support SIMD instructions
2011-04-21 07:32:10 +02:00
Jacek Galowicz
a9c4b5ddc0 Encapsulated IDT-/GDT-descriptor configuring code into helper functions. 2011-04-21 07:31:45 +02:00
Stefan Lankes
4fc507bc6b fix bug in the TSS initialization for a new task, which is a copy of the current task 2011-04-18 12:18:59 -07:00
Stefan Lankes
68564c3238 Merge branch 'tests'
Conflicts:
	include/metalsvm/spinlock.h
	include/metalsvm/spinlock_types.h
	kernel/tasks.c
2011-04-18 15:36:22 +02:00
Stefan Lankes
68281c8ad0 cosmetic changes, minor code optimization 2011-04-18 15:10:24 +02:00
Stefan Lankes
47f37e3b00 use memory barriers instead of read memory barriers to determine the current TSC
=> more accurate caclculation of the timer frequency
+ minor cosmetic changes
2011-04-18 15:07:45 +02:00
Stefan Lankes
624afd187c by entering a system call, we need also to push the segment descriptor on the stack 2011-04-18 15:05:27 +02:00
Stefan Lankes
04a0dfb114 enable the support of the system call "fork"
remove obsolete file
2011-04-18 15:03:35 +02:00
Jacek Galowicz
b9b7841dc3 Moved IDT related structs from idt.c to idt.h. 2011-04-15 15:08:41 +02:00
Stefan Lankes
b5908af744 Merge branch 'master' of git.lfbs.rwth-aachen.de:metalsvm into doxygen
Conflicts:
	.gitignore
	arch/x86/include/asm/apic.h
	arch/x86/include/asm/page.h
	arch/x86/include/asm/processor.h
	arch/x86/kernel/idt.c
2011-04-14 08:40:52 +02:00
Stefan Lankes
0fbf2df5ac use inline assembler to load the IDT 2011-04-08 10:45:26 -07:00
Stefan Lankes
e3e06fe523 set APICID of the boot processor to 0 2011-04-08 16:02:29 +02:00
Stefan Lankes
ab78beb859 cosemtic changes 2011-04-08 16:02:28 +02:00
Stefan Lankes
ea5b7e4930 reset APIC before timer initialization 2011-04-08 16:02:01 +02:00
Stefan Lankes
e96a549349 more accurate calculation of the processor frequency 2011-04-08 16:01:54 +02:00
Stefan Lankes
e599063dd2 cosmetic changes 2011-04-05 11:37:20 +02:00
Stefan Lankes
b46664b375 increasing the readability 2011-04-05 11:33:41 +02:00
Stefan Lankes
e8abd6f336 minor improvements and cosmetic changes to increase the readability 2011-04-05 02:00:02 -07:00
Jacek Galowicz
f411498368 Commented another bunch of header files. 2011-04-04 18:12:08 +02:00
Jacek Galowicz
dfe2c817de Continued the small documentation journey.
Edited Doxyfile - will show static functions and vars now, because some
of them were interesting for documentation.
2011-04-04 11:27:49 +02:00
Jacek Galowicz
60fd07542f Documented GDT and IDT files and optimized doxygen-output by fixing
__attribute__ misparsings as structure names
2011-04-03 20:46:53 +02:00
Stefan Lankes
f14c693e10 fix bug in the routine, which calculates the apic timer frequecy 2011-04-01 00:24:03 -07:00
Stefan Lankes
fb215aca47 redesign of the SCC bootloader and rename kernel file to metalsvm.elf 2011-03-31 12:50:42 -07:00
Stefan Lankes
017233d7df use .text instead of .code section 2011-03-31 12:38:04 -07:00
Stefan Lankes
f9ec7ccadc redesign of the SCC's init routines 2011-03-25 20:28:43 +01:00
Stefan Lankes
1a141d9dc9 create a separate directory for SCC specific code 2011-03-24 07:13:55 +01:00
Stefan Lankes
de9fb1fc65 use for debugging the normal C callig convention!
=> no using of compiler flags -fomit-frame-pointer
=> definition of the macro WITH_FRAME_POINTER
2011-03-22 22:11:43 +01:00
Stefan Lankes
ed29ee444a minor optimization in our assembler code 2011-03-08 14:39:21 +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
c21b1bf8a2 remove compiler warnings 2011-03-04 22:42:41 +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
16efb49204 remove obsolete function arguments 2011-02-24 10:15:58 +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
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
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