Commit Graph

62 Commits

Author SHA1 Message Date
Jonas 'Sortie' Termansen 92c5533820 Improved the implementation of the exec* functions. 2012-04-30 21:10:02 +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 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 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 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 cd0e402bbb Added {,l,ll,imax}abs(3). 2012-03-27 16:36:55 +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 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 e0eabd0e5f <dirent.h> now declares size_t. 2012-03-12 02:03:46 +01:00
Jonas 'Sortie' Termansen 8399b1a2ee Made <sys/types.h> more POSIX compliant. 2012-03-12 02:00:00 +01:00
Jonas 'Sortie' Termansen 44e2537d7b Added mode_t to <sys/types.h>.
Gonna do something about that header.
2012-03-12 01:31:48 +01:00
Jonas 'Sortie' Termansen d564574cd0 Added fseterr(3). 2012-03-12 01:31:48 +01:00
Jonas 'Sortie' Termansen 366cc2549a Added the stdio_ext(3) API.
The API is available in <stdio.h> without __ prefix if _SORTIX_SOURCE.
2012-03-12 00:38:48 +01:00
Jonas 'Sortie' Termansen d033a58b10 Added a hacky definition of MB_CUR_MAX. 2012-03-11 20:49:50 +01:00
Jonas 'Sortie' Termansen 9fa5690d79 Added time_t declaration to <time.h>. 2012-03-11 20:38:55 +01:00
Jonas 'Sortie' Termansen bdd8b2a77a Added strnlen(3). 2012-03-10 23:04:49 +01:00
Jonas 'Sortie' Termansen 8a9a0c58ea Added kernelinfo(2), which reads a kernel information string.
Currently it lets you query the name of the kernel, its version, and the
build timestamp of the kernelinfo.cpp file.
2012-03-07 18:04:59 +01:00
Jonas 'Sortie' Termansen 9f7175fbc8 Forgot to add fputs(3) to <stdio.h>. 2012-03-06 13:24:10 +01:00
Jonas 'Sortie' Termansen 065ceae509 Added fgets(3). 2012-03-06 13:15:02 +01:00
Jonas 'Sortie' Termansen 6bcb3d7384 Added stat(2) and fstat(2) in the kernel.
It's a bit hacky, but it works.

lstat(2) currently redirects to stat(2).
2012-03-06 13:10:59 +01:00
Jonas 'Sortie' Termansen c03738a9f3 Added a stub for sscanf(3).
This stub implements an ugly hack to help port binutils.

Hopefully we'll get a real scanf family of functions soon.
2012-03-05 16:01:43 +01:00
Jonas 'Sortie' Termansen f089a030b4 Added stub for lstat(2). 2012-03-05 15:50:41 +01:00
Jonas 'Sortie' Termansen 4b2c22d480 Added access(2). 2012-03-05 15:46:23 +01:00
Jonas 'Sortie' Termansen 25b33b4755 Fixed broken declaration of mktemp(3) in <stdlib.h>. 2012-03-05 13:10:56 +01:00
Jonas 'Sortie' Termansen 85549b5688 Uncommented warning in <assert.h> to prevent compile errors in binutils.
This is because they treat warnings as errors.
2012-03-05 13:09:00 +01:00
Jonas 'Sortie' Termansen 5449ae78f4 Added atol(3) and atoll(3). 2012-03-05 12:53:58 +01:00
Jonas 'Sortie' Termansen 422d2fd579 Added qsort(3).
This is a rather slow implementation. Will be fixed soon.
2012-03-05 12:37:59 +01:00
Jonas 'Sortie' Termansen 12e8dd6d81 Added stub for getenv(3). 2012-03-04 23:55:41 +01:00
Jonas 'Sortie' Termansen 00c3aaa919 Added stub for ctime(3). 2012-03-04 23:51:39 +01:00
Jonas 'Sortie' Termansen e2d673294c Added a stub for assert(3). 2012-03-04 23:40:30 +01:00
Jonas 'Sortie' Termansen 7c33b3f10f Always show the declaration of sbrk(2).
This was done because binutils need this to compile.
2012-03-04 23:36:04 +01:00
Jonas 'Sortie' Termansen be98120b49 Added stubs for setjmp(3) and longjmp(3). 2012-03-04 23:15:32 +01:00
Jonas 'Sortie' Termansen 390150839e Added a stub for umask(2). 2012-03-04 23:01:41 +01:00
Jonas 'Sortie' Termansen 6f9b8b2f64 Added stubs for chmod(2) and fchmod(2). 2012-03-04 22:57:44 +01:00
Jonas 'Sortie' Termansen 9b2de25f9b Added strcasecmp(3), strncasecmp(3) and <strings.h>.
Why <strings.h>? Stupid POSIX.
2012-03-04 22:46:24 +01:00
Jonas 'Sortie' Termansen 2b57319c1c Added stub for time(3). 2012-03-04 22:26:27 +01:00
Jonas 'Sortie' Termansen d3c4df72b1 Added st_{a,c,m}time to struct stat. 2012-03-04 22:25:47 +01:00
Jonas 'Sortie' Termansen c0a02248da Added <sys/time.h>, struct timeval and gettimeofday(3) stub. 2012-03-04 22:05:52 +01:00
Jonas 'Sortie' Termansen e006687645 Added abort(3) to <stdlib.h>. 2012-03-04 21:49:03 +01:00
Jonas 'Sortie' Termansen 5e75f5c428 Added fcntl(3) with FD_GET and FD_SET. 2012-03-04 21:36:40 +01:00
Jonas 'Sortie' Termansen 777fc04682 Added <time.h>, clock_t, and a stub for clock(3). 2012-03-04 18:38:23 +01:00
Jonas 'Sortie' Termansen 0bd6a4ff67 Added <math.h>. 2012-03-04 18:17:04 +01:00
Jonas 'Sortie' Termansen 6695da9229 Added strncat(3). 2012-03-04 18:12:54 +01:00
Jonas 'Sortie' Termansen 38f27a45fc Added strpbrk(3). 2012-03-04 17:44:24 +01:00
Jonas 'Sortie' Termansen b1b123109a Added mktemp(3).
This is a stupid, ugly function added for compatibility.
2012-03-04 17:29:50 +01:00
Jonas 'Sortie' Termansen 5d826ec284 Added strstr(3). 2012-03-04 17:20:42 +01:00
Jonas 'Sortie' Termansen 6c6e1091a1 Added memmove(3). 2012-03-04 17:10:52 +01:00