Commit graph

1231 commits

Author SHA1 Message Date
Jonas 'Sortie' Termansen
50a2342a37 Update README. 2012-09-10 12:28:29 +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
ab1901976c Add support for escaping spaces and tabs in shell. 2012-09-09 21:03:02 +02:00
Jonas 'Sortie' Termansen
5209258de0 Fix asteroids compile warnings. 2012-09-09 13:34:48 +02:00
Jonas 'Sortie' Termansen
0b1c515790 Made smarter bots. 2012-09-09 13:34:48 +02:00
Jonas 'Sortie' Termansen
45f8bb1fa1 Pressing B spawns a stupid AI controlled spaceship. 2012-09-09 13:34:48 +02:00
Jonas 'Sortie' Termansen
e1ddf82ba7 TMP asteroids stuff 2012-09-09 13:34:48 +02:00
Steve Dougherty
043ceed621 Add firework weapon fired on left control. 2012-09-09 13:34:48 +02:00
Steve Dougherty
46efe8923f Missiles add spaceship vel; point in direction fired.
This issue was visible as crooked missiles when firing in a direction other
than that of travel, and being able to keep pace with fired missiles.
2012-09-09 13:34:48 +02:00
Jonas 'Sortie' Termansen
a1c106ce1c Early prototype of an asteroids game.
asteroids(1) now uses chvideomode(1) if no driver is active.

Made the asteroids game object oriented.

Added asteroids to ateroids(1).

uptime(2) in asteroids.
2012-09-09 13:34:48 +02:00
Jonas 'Sortie' Termansen
41ed053fba Build benchmarks by default. 2012-09-09 13:20:48 +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
1369aa9da9 Fix wrong datatypes to printf in ls.
gcc still complains, but that is because uintmax_t is declared incorrectly.
2012-09-09 12:20:58 +02:00
Jonas 'Sortie' Termansen
8595ec83da Print error if running VGA game in graphics mode. 2012-09-08 22:46:20 +02:00
Jonas 'Sortie' Termansen
46d02b784b Fix compile warnings in userspace programs. 2012-09-08 20:55:43 +02:00
Jonas 'Sortie' Termansen
d855c6cec7 Add warnings to userspace compile flags. 2012-09-08 20:33:52 +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
c9eb1b2cb3 Better collection of zombie processes.
Note that there seems to be a deadlock if a process exits when there are
zombies around. Init also doesn't handle zombie children correctly as there
is sent no SIGCHLD signal yet.
2012-09-08 19:25:13 +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
bde41a37ec Implement crt1.o, crti.o, and crtn.o.
This helps running cross compiled programs as well as compiling programs
under Sortix with gcc. There is also support for global constructors.

Currently, cross-compiled executables uses these startup files. The current
build system continues to use start.o, which does not offer global
constructors and other useful features.

Note that these using the crtX.o files requires the crtbegin.o and crtend.o
files that ship with the cross compiler, but that should be no problem.
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
2135a2d432 Improve assertions in malloc.
This also uses the user-space available <assert.h> header.
2012-09-08 18:45:53 +02:00
Jonas 'Sortie' Termansen
2158a16904 Add setlocale(3) and localeconv(3).
Ok, these are kinda hacky but they do implement a skeleton that a real
implementation can be based upon.
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
bb3e590915 Add proper implementation of scanf family.
There are still a few non-standard quirks and things that needs to be
properly implemented but that shouldn't be too hard and the most important
features are now implemented.
2012-09-08 18:45:53 +02:00
Jonas 'Sortie' Termansen
cd728c9af9 Add fabs{,f,l}(3). 2012-09-08 18:45:53 +02:00
Jonas 'Sortie' Termansen
01ea5419cc Add E2BIG. 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
9aba01cc82 Make libmaxsi/c++.cpp symbols weak.
This prepares for Sortix using libgcc.a, since it would otherwise collide
with libmaxsi/c++.o.
2012-09-08 18:45:53 +02:00
Jonas 'Sortie' Termansen
6755318919 Add bsearch(3).
This is a rather stupid implementation as it does the search in linear
time. More importantly, it is correct and helps porting gcc. Besides, it
can easily be fixed in due time.
2012-09-08 18:45:53 +02:00
Jonas 'Sortie' Termansen
90a4009c53 Make putenv(3) copy the input string.
This violates POSIX but POSIX is stupid in this respect. Of course, this
will ever so subtly break some applications. Not sure how this stupid design
can be fixed without breaking backwards compatibility. Perhaps remove the
putenv(3) function and replace it with a better replacement? (Or perhaps you
should just use setenv(3) anyways..)
2012-09-08 18:45:53 +02:00
Jonas 'Sortie' Termansen
550f9db140 Make string.h include strings.h.
This helps gcc build since it assumes that string.h provides various
functions that POSIX mandates is in strings.h. This is OK with me since that
strings.h is a nasty hack anyways. Also, glibc does this.
2012-09-08 18:45:52 +02:00
Jonas 'Sortie' Termansen
720b02b0fc Declare size_t and off_t before FILE in wchar.h. 2012-09-08 18:45:52 +02:00
Jonas 'Sortie' Termansen
a478dda4d9 fflush(3) on fseeko(3).
This caused a corruption of the resulting file if the program fwrite some
data that is buffered, then fseeks, and then fflushes. The fwrite will then
happen at the wrong memory location. Flushing in fseeko(3) fixes the problem
but it may cause violate some standard or just be inefficient.
2012-09-08 18:45:52 +02:00
Jonas 'Sortie' Termansen
910197ffa7 Fix wrong return value of fdio_seek. 2012-09-08 18:45:52 +02:00
Jonas 'Sortie' Termansen
29f5cd2335 Fix return value of fdio fread(3) and fwrite(3).
Previously fread and fwrite for file descriptors would return the number of
bytes read/written rather than the number of elements read/written. This
breaks the C standard and broke various third party programs such as
readelf from binutils.
2012-09-08 18:45:52 +02:00
Jonas 'Sortie' Termansen
b4192c10e9 Refactor libc process exit and abortion.
Removed Maxsi::Process:: functions as they suck and are barely used. Gave
the functions standard names and put them in their own source files.

The declarations now have nice noreturn attributes attached.
2012-09-08 18:45:52 +02:00
Jonas 'Sortie' Termansen
34970e63f3 Implement assert(3) properly. 2012-09-08 18:45:52 +02:00
Jonas 'Sortie' Termansen
13c0ab638a Sort the output of ls(1). 2012-09-08 18:45:52 +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
e761332366 Fixed bad gets(3) declaration in stdio.h. 2012-09-08 18:45:52 +02:00
Jonas 'Sortie' Termansen
8bac113573 Split libmaxsi/terminal.cpp into multiple files. 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
111e359482 Updated README. 2012-09-08 18:45:52 +02:00