Jonas 'Sortie' Termansen
45981431de
Added atexit(3) and on_exit(3).
2012-05-29 22:17:27 +02:00
Jonas 'Sortie' Termansen
c5c92d9615
Added ungetc(3).
2012-05-29 22:17:27 +02:00
Jonas 'Sortie' Termansen
b2b54d108d
Added getdtablesize(3) for gzip compatibility.
...
Remove this once sysconf(_SC_OPEN_MAX) is implemented.
2012-05-28 23:11:44 +02:00
Jonas 'Sortie' Termansen
35347ec709
Added raise(3).
2012-05-28 23:10:55 +02:00
Jonas 'Sortie' Termansen
309416c291
Renamed error(3) to gnu_error(3), but with a redirect.
...
This fixes compatibility issues with programs that like to make their own
error function. This includes zlib and gzip.
2012-05-28 23:03:03 +02:00
Jonas 'Sortie' Termansen
271c64e537
Added a stub locale.h header.
2012-05-28 22:57:03 +02:00
Jonas 'Sortie' Termansen
b650c9a8f0
Added a O_ACCMODE flag for GNU compatibility.
2012-05-28 22:52:11 +02:00
Jonas 'Sortie' Termansen
8ae9f6bd79
Added struct tm and implemented a gettimeofday stub.
...
Note that gettimeofday calls uptime() and has no idea what the time was when
the system booted.
2012-05-28 22:51:20 +02:00
Jonas 'Sortie' Termansen
341bd73cb0
GCC no longer fixes stdio.h because of va_list.
...
Note that for non-ANSI C programs, stdio.h includes stdarg.h which defines
macros that stdio.h wasn't supposed to define.
2012-05-28 22:37:45 +02:00
Jonas 'Sortie' Termansen
500f8651bb
Prevent GCC from fixing headers that are OK.
2012-05-27 23:46:59 +02:00
Jonas 'Sortie' Termansen
4b252fc55e
<libmaxsi/platform.h> now autodetects the current platform.
2012-05-27 23:08:20 +02:00
Jonas 'Sortie' Termansen
87b81080d5
Added sortix_strerror(3) which replaces strerror(3).
...
The string returned is now const - POSIX did not allow modifying the string
in any case, conforming applications should not break. If _SORTIX_SOURCE is
defined strerror(3) automatically redirects to sortix_strerror(3),
otherwise the application will receive the traditional function.
2012-05-27 17:38:00 +02:00
Jonas 'Sortie' Termansen
9905a2f2d6
Added EINIT, "Not initialized".
2012-05-27 17:20:33 +02:00
Jonas 'Sortie' Termansen
e8d75643ea
More efficient memcpy(3) for aligned data.
2012-05-27 14:11:35 +02:00
Jonas 'Sortie' Termansen
00869bcdc1
The PIC can now be deprogrammed and reprogrammed.
2012-05-26 14:00:24 +02:00
Jonas 'Sortie' Termansen
a75b215fe3
Added fpipe(3) providing pipe(2) through the FILE interface.
2012-05-21 12:52:27 +02:00
Jonas 'Sortie' Termansen
795b1ef4fd
Added String::Combine.
...
It was previously commented out because it was broken.
2012-05-04 13:36:21 +02:00
Jonas 'Sortie' Termansen
bd489eb73a
Forward compatbility with the kthread branch.
2012-05-04 13:13:44 +02:00
Jonas 'Sortie' Termansen
92c5533820
Improved the implementation of the exec* functions.
2012-04-30 21:10:02 +02:00
Jonas 'Sortie' Termansen
93abeda32e
Fixed buffer overflow in devfs.cpp.
2012-04-14 22:03:55 +02:00
Jonas 'Sortie' Termansen
042aeb0181
Added the $PWD environmental variable to the shell.
2012-04-13 23:01:04 +02:00
Jonas 'Sortie' Termansen
b554eb2dfb
The shell now implements $$, $PPID, and $? as normal variables.
2012-04-13 22:41:07 +02:00
Jonas 'Sortie' Termansen
a24e86e751
init(1) now restarts the shell upon crash.
2012-04-13 21:47:47 +02:00
Jonas 'Sortie' Termansen
10291fcb38
Removed old draft for Sortix subsystems.
...
It was removed because it does represent the current vision for Sortix
development, which is more flexible than subsystems. Mainly, I wish to
implement processes being able to have their own user-id table, their
own filesystem namespace, own root directory, and so on.
2012-04-13 19:58:52 +02:00
Jonas 'Sortie' Termansen
3b63a70191
Added Interrupt::SetEnabled(bool).
2012-04-13 17:42:21 +02:00
Jonas 'Sortie' Termansen
f59b53ddce
Ported x64 interrupt assembly to the GNU assembler.
2012-04-13 17:34:17 +02:00
Jonas 'Sortie' Termansen
8cbf9ff8f0
Added Interrupt::IsEnabled().
2012-04-11 15:46:32 +02:00
Jonas 'Sortie' Termansen
36ff6c7f96
seek(2) now correctly rejects a bad whence value.
2012-04-10 13:20:33 +02:00
Jonas 'Sortie' Termansen
6367a2352e
Added sforkr(2) that controls the child registers as well.
...
sfork(2) now calls sforkr(2) with the current registers.
This will prove useful in creating threads, where user-space now can fully
control what state the child will start in. This is unlike the Linux clone
system call that accepts a pointer to the child stack; this is more powerful
and somehow simpler. Note that this will create a rather raw thread; no
thread initization has been done by the standard thread API (when it is
implemented), so this feature shouldn't be used by programmers unless they
know what they are doing.
fork(2) now calls sfork(2) directly. Also removed fork(2) and sfork(2) from
the kernel as they are done using sforkr(2) now. So technically they aren't
system calls right now, but that could always change.
2012-04-05 23:00:47 +02:00
Jonas 'Sortie' Termansen
6f36ecf0b3
execve(2) now pushes envp to the new stack and sets up registers.
...
This fully implements environmental variables over exec.
2012-04-04 01:49:14 +02:00
Jonas 'Sortie' Termansen
60b9a84a51
execv(3) now passes environ(7) to execve(2).
2012-04-04 01:38:45 +02:00
Jonas 'Sortie' Termansen
33645eb347
<unistd.h> now declares environ(7) if _WANT_ENVIRON.
...
Note that it is very bad style of programs to access it directly.
2012-04-04 01:37:05 +02:00
Jonas 'Sortie' Termansen
05b29ce25a
Renamed rfork(2) to sfork(2) to avoid compatibility issues.
...
sfork is much like rfork except sharing is default for everything.
Eventually, I'll make a rfork(3) wrapper function around sfork(2) to
provide compatibility to BSD programs.
I don't like Linux clone(2): that's some messy function.
2012-04-04 00:29:25 +02:00
Jonas 'Sortie' Termansen
2331a1a234
Added hacky support for environmental variables to the shell.
2012-04-03 22:03:58 +02:00
Jonas 'Sortie' Termansen
dd5157da6a
Implemented setenv(3), putenv(3), getenv(3), clearenv(3), sortix_getenv(3),
...
unsetenv(3), envlength(3), getenvindexed(3), and environ(7).
This provides the user-space foundation for environmental variables.
Note that this works over fork(2), but not execve(2) yet.
2012-04-03 20:23:28 +02:00
Jonas 'Sortie' Termansen
5d59f0ed03
Added EBOUND.
2012-04-02 20:24:56 +02:00
Jonas 'Sortie' Termansen
95a088fec5
Added a dummy implementation rfork(2) equal to fork(2).
...
Note that in my implementation, you share per default, unless you ask.
2012-04-02 16:30:13 +02:00
Jonas 'Sortie' Termansen
b3b1f6af66
Make sure that the right bits.h file is always included.
2012-03-27 16:36:55 +02:00
Jonas 'Sortie' Termansen
cd0e402bbb
Added {,l,ll,imax}abs(3).
2012-03-27 16:36:55 +02:00
Jonas 'Sortie' Termansen
554b2e44cc
Added a Page::IsAligned inline function.
2012-03-26 16:46:26 +02:00
Jonas 'Sortie' Termansen
9ab0bc5474
Added {,p}{read,write}{all,least}(3).
2012-03-24 15:34:30 +01:00
Jonas 'Sortie' Termansen
c62eb09cdc
Added stubs for pread(2) and pwrite(2).
...
These are not implemented yet because the current kernel design is bad.
However, I need the stubs for other code.
2012-03-24 15:23:07 +01:00
Jonas 'Sortie' Termansen
757184fd5c
Added EEOF.
2012-03-24 15:19:16 +01:00
Jonas 'Sortie' Termansen
1ba4417b19
Removed dead ancient code.
2012-03-22 01:04:27 +01:00
Jonas 'Sortie' Termansen
db79994e64
Refactored all the sortix headers into a include directory.
...
Also got rid of trailing white space. That corrupted .git/.
Big ass-commit because of recovered .git directory.
2012-03-22 00:52:29 +01:00
Jonas 'Sortie' Termansen
e496c07764
Added a <libmaxsi/integer.h> header with divide-round-up functions.
2012-03-21 16:23:05 +01:00
Jonas 'Sortie' Termansen
ea11c20689
Added a way for discover refcount of Refcounted classes.
2012-03-21 16:20:41 +01:00
Jonas 'Sortie' Termansen
0f099c65ca
The virtual memory fork code can now handle ENOMEM conditions.
...
(forkbombs now don't panic the system!)
2012-03-19 02:39:11 +01:00
Jonas 'Sortie' Termansen
e0e0cadf4a
Changed error message for ENOMEM to something sensible.
2012-03-19 02:26:32 +01:00
Jonas 'Sortie' Termansen
02d309a92d
Began development of Sortix 0.7
2012-03-18 23:35:04 +01:00