Commit graph

347 commits

Author SHA1 Message Date
Jonas 'Sortie' Termansen
3116161f5d BGA: Fix possible memory leak. 2012-12-14 14:13:37 +01:00
Jonas 'Sortie' Termansen
4d37197472 Sort objects in kernel makefile. 2012-12-14 14:13:37 +01:00
Jonas 'Sortie' Termansen
4f60d028ef Update coding style of ATA driver. 2012-12-14 14:13:37 +01:00
Jonas 'Sortie' Termansen
c9b3002e43 Add openat(2).
This is a rather hacky implementation.
2012-12-14 14:13:37 +01:00
Jonas 'Sortie' Termansen
32f87f461d Remember path when opening files. 2012-12-14 14:13:37 +01:00
Jonas 'Sortie' Termansen
db57bb6336 Port remaining x86 nasm assembly to GNU as. 2012-12-14 14:13:37 +01:00
Jonas 'Sortie' Termansen
24c89ec673 Use libgcc. 2012-12-14 14:13:36 +01:00
Jonas 'Sortie' Termansen
838992c3d8 Don't build libmaxsi.a.
This should just about remove most of the old and deprecated (and now
obsolete) Maxsi:: API. Of course, large parts of libc still suffer from
its poor design, but I'll get around to fix that eventually.
2012-12-14 14:13:35 +01:00
Jonas 'Sortie' Termansen
bd8967069e Replace libmaxsi headers with libc headers. 2012-12-14 14:13:35 +01:00
Jonas 'Sortie' Termansen
c0fabc2e8d Move remainder of Maxsi::String into kernel tree. 2012-12-14 14:13:35 +01:00
Jonas 'Sortie' Termansen
1b26d1bacf Make sprintf family freestanding.
And use them in the kernel.
2012-12-14 14:13:35 +01:00
Jonas 'Sortie' Termansen
c55a2882dc Replace Maxsi::String::ToInt with atoi. 2012-12-14 14:13:35 +01:00
Jonas 'Sortie' Termansen
6ce762aac4 Replace Maxsi::String::Seek with strchr. 2012-12-14 14:13:35 +01:00
Jonas 'Sortie' Termansen
2206412e14 Replace Maxsi::String::Reject with strcspn. 2012-12-14 14:13:35 +01:00
Jonas 'Sortie' Termansen
02a711befb Replace Maxsi::String::Accept with strspn. 2012-12-14 14:13:35 +01:00
Jonas 'Sortie' Termansen
e5cf6c18f7 Replace Maxsi::String::Compare with strcmp. 2012-12-14 14:13:35 +01:00
Jonas 'Sortie' Termansen
70da61f5d1 Replace Maxsi::String::Copy with strcpy. 2012-12-14 14:13:35 +01:00
Jonas 'Sortie' Termansen
5e4dadbba0 Replace Maxsi::String::Length with strlen. 2012-12-14 14:13:34 +01:00
Jonas 'Sortie' Termansen
5e7bf8527c Move <libmaxsi/sortedlist.h> into kernel tree. 2012-12-14 14:13:34 +01:00
Jonas 'Sortie' Termansen
df7d8ca335 Move crc32 checksum code into kernel. 2012-12-14 14:13:34 +01:00
Jonas 'Sortie' Termansen
2c286d6830 Replace <libmaxsi/format.h> with <stdio.h>. 2012-12-14 14:13:34 +01:00
Jonas 'Sortie' Termansen
b4374f66b7 Replace <libmaxsi/memory.h> with <string.h>. 2012-12-14 14:13:34 +01:00
Jonas 'Sortie' Termansen
5d082b3bbb Replace Maxsi::Error:: with <errno.h>. 2012-12-14 14:13:34 +01:00
Jonas 'Sortie' Termansen
42754f1728 Replace ASSERT with assert of <assert.h>. 2012-12-14 14:13:34 +01:00
Jonas 'Sortie' Termansen
b685b7a9eb Don't include Maxsi:: API in kernel.cpp.
Since kernel.cpp is intended to be an example of the current best coding
practices within the Sortix kernel, and the Maxsi:: API is deprecated and
is being removed, it should rather use the nice C standard library.
2012-12-14 14:13:34 +01:00
Jonas 'Sortie' Termansen
0437d75147 Remove libmaxsi stddef.h and stdarg.h.
These are provided by the cross compiler.
2012-12-14 14:13:34 +01:00
Jonas 'Sortie' Termansen
b293fb3171 Remove kernel platform.h dependency on libmaxsi platform.h.
This reduces the dependence on libmaxsi with the aim that the Maxsi:: api
can be removed and replaced with the standard C library.
2012-12-14 14:13:33 +01:00
Jonas 'Sortie' Termansen
3095503b9b Correct usage of deprecated nat and byte data types. 2012-12-14 14:13:33 +01:00
Jonas 'Sortie' Termansen
9cf092d32e Use cross compiler in build system. 2012-12-14 14:13:33 +01:00
Jonas 'Sortie' Termansen
81530bc58c Really fix size_t declarations by asking compiler. 2012-09-12 12:39:30 +02:00
Jonas 'Sortie' Termansen
cceaaf0089 Fix declaration of size_t on x86. 2012-09-12 12:19:57 +02:00
Jonas 'Sortie' Termansen
53e945aa4f Fix including private signal.h in kthread.h. 2012-09-12 12:18:51 +02:00
Jonas 'Sortie' Termansen
82035e87da Add makefile targets for installing sysroot base headers. 2012-09-10 21:45:38 +02:00
Jonas 'Sortie' Termansen
0b94239912 Fix missing WEXITSTATUS in init and kernel. 2012-09-09 23:08:03 +02:00
Jonas 'Sortie' Termansen
66487f2895 Make waitpid(2) fail on signal arrival. 2012-09-09 22:58:18 +02:00
Jonas 'Sortie' Termansen
da7f10269d Better declarations of limits in stdint.h.
This is more compatible with how gcc limits.h does stuff.
2012-09-09 22:41:02 +02:00
Jonas 'Sortie' Termansen
0245e9867c Fix NULL deference if no ATA bus is present. 2012-09-09 13:15:33 +02:00
Jonas 'Sortie' Termansen
b9b697f2cb Implement proper W* error codes in sys/wait.h and kernel.
Note that signals can't really kill a process at this time.
2012-09-09 12:21:39 +02:00
Jonas 'Sortie' Termansen
b0807e8c7a Fix reading /dev/video/fb causing a write instead.
This really fucks stuff up.
2012-09-08 19:40:22 +02:00
Jonas 'Sortie' Termansen
07b3cc8e06 Implement WNOHANG in waitpid(2). 2012-09-08 19:19:31 +02:00
Jonas 'Sortie' Termansen
356ae79f64 Don't deliver signals to zombies. 2012-09-08 19:15:56 +02:00
Jonas 'Sortie' Termansen
32a1be0008 Increased tab size from 4 to 8. 2012-09-08 18:45:53 +02:00
Jonas 'Sortie' Termansen
16019e5897 Make interrupt handler more robust. 2012-09-08 18:45:53 +02:00
Jonas 'Sortie' Termansen
3fd270f7a2 Remove trailing whitespace. 2012-09-08 18:45:53 +02:00
Jonas 'Sortie' Termansen
09c4f34e66 Remove -pc from Sortix host triplet. 2012-09-08 18:45:53 +02:00
Jonas 'Sortie' Termansen
17a93359dd Add . and .. support to kernel filesystems.
This makes the hack in ls(1) not needed and is hence removed.
2012-09-08 18:45:52 +02:00
Jonas 'Sortie' Termansen
118fc9ce9a The lfb text buffer class now uses the correct cursor color. 2012-09-08 18:45:52 +02:00
Jonas 'Sortie' Termansen
755e855c08 Renamed sforkr(2) to tfork(2).
It's a much better name if you think of it as task-fork or thread-fork in the
sense that it either modifies this task or creates a new one. This call will
be used to provide user-space threads as well as fork(2).
2012-09-08 18:45:52 +02:00
Jonas 'Sortie' Termansen
7d39906acc Added support for saving FPU registers upon context switch.
This code uses the cr0 task switched bit to disable the FPU upon task
switch, which allows the kernel to delay copying the registers until
another task starts using them. Or better yet, if no other thread actually
uses the registers, then it won't need to do any copying at all!
2012-09-08 18:45:52 +02:00
Jonas 'Sortie' Termansen
93bb4f992b Added support for floating point numbers.
Note that the scheduler does not load/restore floating point numbers yet
upon task switching. This means only one task can use floating point numbers
at the same time without the risk of race conditions.

Note that this enables SSE in 32-bit x86 platforms - but not all models
have such support, which limits which computers Sortix works on. Ideally, we
should detect what features are available on the computer at runtime and
enable/disable the proper kernel support. This is not a problem on x86_64.
2012-09-08 18:45:52 +02:00