Jonas 'Sortie' Termansen
db5d216cbe
Added ReadParamString to libmaxsi as a hack.
2012-07-24 21:26:09 +02:00
Jonas 'Sortie' Termansen
4dda38cab3
Added ENODRV.
2012-07-24 19:56:32 +02:00
Jonas 'Sortie' Termansen
143120d160
Added tcgetwinsize(2) for determining terminal resolution.
...
Unfortunately this area is not standardized by POSIX. Linux uses an ioctl
which is not that bad, but I'd like to have a designated function. I'm not
sure if this facility is powerful enough and whether it should be improved.
Also note that I use a struct winsize as on Linux, but I use size_ts instead
for the heck of it. Perhaps I should use another name for the struct.
2012-07-24 18:43:34 +02:00
Jonas 'Sortie' Termansen
1761db9f27
Updated copyright format in unistd.h.
...
This is because I usually copy the header of new files from unistd.h.
2012-07-24 17:03:14 +02:00
Jonas 'Sortie' Termansen
d75a7145ef
Updated vga code to newer coding conventions.
2012-07-23 00:05:31 +02:00
Jonas 'Sortie' Termansen
22990b77b8
Refactored the internal kernel memory management API.
...
It is now permission-oriented, not just user/kernel oriented.
Added <sys/mman.h> with nice PROT_{READ,WRITE,EXEC,FORK} constants.
2012-07-06 17:18:07 +02:00
Jonas 'Sortie' Termansen
ec5fa92761
Programmers can now redirect what the errno macro refers to.
2012-07-06 17:18:06 +02:00
Jonas 'Sortie' Termansen
887abdfe87
Added a CRC32 function to libmaxsi.
2012-07-02 17:16:23 +02:00
Jonas 'Sortie' Termansen
0ab2bbbd1b
Finally fixed the loaderbug!
...
Programs were crashing randomly at startup on the kthread branch. After some
investigation, it turned out that the programs weren't correctly loaded by
the program loader in rare cases. Although, all investigation showed that
the program loader was correct and so was the interrupt routines (well,
almost, but nothing that could really trigger this). Yada yada, a few months
later I discovered that memcpy(3) was being corrupted by an interrupt handler
(which was correct). Turns out memcpy used stack space it hadn't allocated.
This is a Linux optimization that I had forgotten to disable with
-mno-red-zone in libmaxsi and thus interrupts just overwrote the stack of
optimized functions. Eek!
2012-07-02 16:09:13 +02:00
Jonas 'Sortie' Termansen
aac12add54
Added stubs for functions in dlfcn.h.
2012-05-30 23:58:04 +02:00
Jonas 'Sortie' Termansen
6eb6a14ace
Added stubs for fscanf(3) and mbtowc(3).
...
This helps gzip build.
2012-05-29 22:17:27 +02:00
Jonas 'Sortie' Termansen
622e0176e3
Added stubs for gmtime(3), localtime(3) and utime(3).
2012-05-29 22:17:27 +02:00
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
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
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
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
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
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
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
757184fd5c
Added EEOF.
2012-03-24 15:19:16 +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
e0e0cadf4a
Changed error message for ENOMEM to something sensible.
2012-03-19 02:26:32 +01:00
Jonas 'Sortie' Termansen
f54cb6ab94
Added EAGAIN and made read(1) and write(1) retry if they get it.
2012-03-17 15:35:45 +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
3cab1113cf
Made EOPNOTSUPP an alias for ENOTSUP.
2012-03-12 01:46:12 +01:00
Jonas 'Sortie' Termansen
2cdeb575f8
Renamed EACCESS to EACCES.
...
Stupid POSIX.
2012-03-12 01:43:00 +01:00
Jonas 'Sortie' Termansen
6de3c462be
Added EMFILE.
2012-03-12 01:37:50 +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
4ad0d360da
Added EILSEQ.
2012-03-11 20:44:57 +01:00
Jonas 'Sortie' Termansen
9fa5690d79
Added time_t declaration to <time.h>.
2012-03-11 20:38:55 +01:00
Jonas 'Sortie' Termansen
beb88d0443
Added EPIPE.
2012-03-11 20:11:32 +01:00
Jonas 'Sortie' Termansen
c2660e5432
Added EBUSY.
2012-03-10 23:18:27 +01:00
Jonas 'Sortie' Termansen
f8bcf3117d
Added ENOTEMPTY.
2012-03-10 23:12:31 +01:00
Jonas 'Sortie' Termansen
bdd8b2a77a
Added strnlen(3).
2012-03-10 23:04:49 +01:00
Jonas 'Sortie' Termansen
cde10097e6
Fixed realloc(3) bug causing buffer overruns.
2012-03-07 20:52:44 +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
d6f9505d3b
Made getdelim(3) follow POSIX-2008 a bit more closely.
...
It now reads lines that aren't delimited, but terminated by EOF.
2012-03-07 15:52:07 +01:00
Jonas 'Sortie' Termansen
3cc1f7a687
Made fgetc(3) and fputc(3) use unsigned char internally.
2012-03-07 15:51:25 +01:00
Jonas 'Sortie' Termansen
2722c3f03d
Added EINTR.
2012-03-06 13:36:44 +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
fa4bd9e7a8
Forgot to add extern "C" to sscanf.
2012-03-05 16:06:15 +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
cd350620f2
Added fputs(3).
2012-03-05 13:32:42 +01:00
Jonas 'Sortie' Termansen
bc38dc5127
Added a stub for environ(3).
2012-03-05 13:20:37 +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
c1affdf6db
Added missing extern "C" linkages in libmaxsi/string.cpp.
2012-03-05 13:08:02 +01:00
Jonas 'Sortie' Termansen
7082ac4ac9
Forgot to add extern "C" linkage to mktemp(3).
2012-03-05 13:05:45 +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
73e2d9db3c
Made errno(3) a macro to itself.
2012-03-04 18:06:24 +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