Commit Graph

812 Commits

Author SHA1 Message Date
Jonas 'Sortie' Termansen 70a661e1ab Add dirname(3) and basename(3). 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen 8cc4c6cb03 Add tmpfile(3). 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen cab4293090 Add wcstombs(3). 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen 8e0d659cec Add wcsrtombs(3). 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen 9e242e9cd7 Add mbstowcs(3). 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen 9c336562a7 Add mbsrtowcs(3). 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen eb9e027697 Add wcstok(3). 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen b4945e88b2 Add wcscspn(3). 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen 1938db2c25 Add wcsspn(3). 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen 1902f2d797 Add wcsrchr(3). 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen 7734074ba7 Add wcsncpy(3). 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen 3ec03badf3 Add wcsncat(3). 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen c4da23f1f5 Add wcscmp(3). 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen ff33adeb7f Add wcschr{,nul}(3). 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen 10d01d8098 Add wcscat(3). 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen 93eda97b84 Add wcslen(3). 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen 8f1e1018c7 Add wcscpy(3). 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen 01a82b2882 Add ttyname(2). 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen 3c4b4ace0c Add ECONNRESET. 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen 9e04af42a9 Add ECONNABORTED. 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen 74a3081d5b Add ESHUTDOWN. 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen 7f1a542f7b Add EALREADY. 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen cf9719526e Add EINPROGRESS. 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen 552ecf521e Add EDOM. 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen 17f51aca20 Add <__/limits.h> stub. 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen 694f043bea Add __pure2 attribute to features.h. 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen 79a49b2015 Add socket interface. 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen ee106231c4 Add utimensat(2) and futimens(2). 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen 472155173d Adopt struct timespec as the kernel time format.
Note: Incompatible ABI change.
2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen 46b86892de Add __PRAGMA_WARNING for inserting warnings. 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen cc5302af31 Add atof(3). 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen b852fbcc9b Add ctime{,_r}(3). 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen c6d1285337 Add pathconf(3). 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen 6da33c469b Add grent(3). 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen dab4b8a981 Add pwent(3). 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen 7ef559e2e1 Add asctime{,_r}(3). 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen 440e34ef62 Add strftime(3). 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen 8162011b5d Add <time.h> header forward declarations.
Note that many of the functions are not yet implemented.
2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen dbc6c8c663 Add ioctl(2). 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen ade239f18b Add {g,s}et{e,}{g,u}id(2). 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen 068c12be04 Add sig_atomic_t. 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen ac1d64fd7e Refactor descriptor flags and security. 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen 915169bdae Bootstrap program_invocation_name. 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen 1e20b0e7ec Add freopen(3). 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen 476b27c301 Refactor FILE creation and destruction. 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen a90e6d5d16 Implement stdio line buffering semantics. 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen 15c48f4efc Add PATH variable. 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen f29abd73ec Add fsync(2). 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen 25b70f0e1c Add ECONNREFUSED. 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen 633f4bb55c Add ETIMEDOUT. 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen d2b6543558 Add EADDRINUSE. 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen 279f15398f Add ENOTSOCK. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen 8a72874548 Add EAFNOSUPPORT. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen c7d833686a Add EPROTONOSUPPORT. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen 971fc090b6 Add select(2). 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen 729bfa3c32 Add readlink{,at}(2). 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen 9d3937fe9e Add realpath(3). 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen 0ce3d61cb9 Add canonicalize_file_name{,_at}(3). 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen 1a3aa45c2c Add srand(3). 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen 6d86af8d60 Avoid noreturn macro conflict in <stdlib.h>. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen 2630c7cb4e Add div(3), ldiv(3) and lldiv(3). 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen c26cb897a0 Use malloc in memmove instead of operator new. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen fc8d64013d Refactor datatype declarations. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen 54da838c79 Refactor kernel address space allocation. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen 6e22ee877d Provide __/wordsize.h. 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen 8180797aa7 Support field widths in %c printf conversion. 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen 4e46b40b4c Add support for ' ' and '+' flags to printf. 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen a023f2a348 Add alternate flag to printf. 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen e70887cf3d Add endian.h. 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen bb1c80f68e Add byteswap.h. 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen 7098317c09 Only define the restrict macro if it hasn't already been. 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen 7b21a9eabd Always declare usleep(2). 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen d3b9bdb3ba Provide envp to the main function. 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen e8e5f14a5d Add popen(3) and pclose(3). 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen 2d86b7dcf2 Add system(3). 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen 6b790a3184 Conditionally calltrace in abort(3). 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen f6371bfcec Add calltrace(3) function. 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen 133e5d4410 Make program_invocation_name a macro. 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen 03ab6cf26e Add program_invocation_short_name(3). 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen b9d633108d Add wctype(3). 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen 05219a27f2 Add mbrtowc(3), mbtowc(3), wcrtomb(3), wctomb(3). 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen e52c6c0966 Add support for * field width in printf and %s field width. 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen 4f9bbd1717 Add octal and adjusted blank support to printf. 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen c25e4a1842 Add creat(3). 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen 391d844aca FILE backend controls return value of fclose. 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen 06e2025a87 Add support for useless 't' mode in fopen. 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen 9ad7690c74 Rewrite stdio functions.
These changes aim to make the stdio functions much more stable, flexible,
correct and bugfree.
2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen 8e0aefda20 Add rename(2) and renameat(2). 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen 9ba7f26bf0 Refactor kernel time API and add timespec API. 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen b2b55bc34a Add poll(2) and ppoll(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen e76073cc4f Add user-space filesystem API. 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen 500d853f77 Add removeat(3) and split remove(3) into its own file. 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen deeedf9e5d Add lchown(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen 3b35dad9f7 Add AT_REMOVEFILE flag to unlinkat(2).
This allows unlinkat(2) to delete files and directories in the same call,
which is useful for the implementation of remove(3).
2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen 1fa2df3e6a Replace system calls that accept a path with *at versions. 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen 921deb6eeb Add linkat(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen 2ef2269168 Add fchmodat(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen f21462bf18 Add fchmod(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen c1280bedb0 Add fchown(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen cb4569c615 Add fchownat(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen f843e15666 Add truncateat(2).
Linux doesn't have this, but since I do truncate(2) in the kernel, it would
be more consistent to do it 'at'-style. (I will remove truncate(2) from the
kernel and let libc call truncateat(2) soon anyway).
2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen 37a4c8f05e Add fchdir(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen 7dd59dd2e0 Add mkdirat(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen caf4a1f2c5 Add faccessat(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen 835f0d5fbc Add unlinkat(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen 8e50f3d76b Add dup2(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen 49fe4aa51f Add link(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen 2389a834b5 Add chown(3). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen a11439bc87 Add chmod(2). 2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen 1444683ea8 Refactor kernel VFS.
Note: This is an incompatible ABI change.
2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen bfd013ab10 Fix vfprintf(3) error case. 2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen d6c1e64628 Fix poor implementation of the strchr(3) family. 2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen e72b1c0ac1 Fix flushlbf(3) being in a file with the wrong name. 2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen c109f5165e Fix fnewfile(3) being in a file with the wrong name. 2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen 59edfdb787 Remove <readparamstring.h>. 2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen 752153d801 Remove vexecl(3), vexecle(3), and vexeclp(3).
These functions were non-standard and their use compared to the execv*
family is questionable. Additionally, they would have to repeat much of
the code from the execl* family of functions. In the end, they were removed
because they weren't strictly needed and less bloat is better here. Besides
programs that would use these functions would need to ship their own
versions to be portable.
2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen dd3662e3d0 Fix prototypes for execl(3), execle(3), and execlp(3). 2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen b9eef9ed5d Fix fopen allowing opening directories for writing. 2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen 6f6d775d47 Fix using NULL environment in vexecle(3). 2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen 63ad7d64dd Fix abort(3) not being freestanding. 2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen 90036ca6a8 Update copyright headers of old files to the current format. 2013-12-17 14:30:23 +01:00
Jonas 'Sortie' Termansen 92b029b07f Remove tabs from header include guards. 2013-12-17 14:30:23 +01:00
Jonas 'Sortie' Termansen eb5be61d20 Fix trailing blank lines. 2013-12-17 14:30:23 +01:00
Jonas 'Sortie' Termansen 7eb9e3c33f Refactor Sortix build system and de-autoconf mxmpp. 2013-12-17 14:30:22 +01:00
Jonas 'Sortie' Termansen 0c7d1486b5 Add PARANOIA level 3 and better malloc/free error reporting. 2013-09-24 17:09:49 +02:00
Jonas 'Sortie' Termansen 6afca10c25 Add sigset_t to signal.h. 2013-09-24 17:09:49 +02:00
Jonas 'Sortie' Termansen bf2c624c9b Add struct timespec. 2013-09-24 17:09:49 +02:00
Jonas 'Sortie' Termansen a6a8a75a0c Add data types to <time.h> and tm_yday to struct tm. 2013-09-24 17:09:49 +02:00
Jonas 'Sortie' Termansen 9411784b58 Set up initial stack frame as zero pointer.
This allows call traces to know when they are done.
2013-09-24 17:09:48 +02:00
Jonas 'Sortie' Termansen 27fda0c0eb Add ENXIO. 2013-09-24 17:09:48 +02:00
Jonas 'Sortie' Termansen 517025f474 Add EMLINK. 2013-09-24 17:09:48 +02:00
Jonas 'Sortie' Termansen 6c9852c21f Add ELOOP. 2013-09-24 17:09:48 +02:00
Jonas 'Sortie' Termansen 1e2785b17f Add ENAMETOOLONG. 2013-09-24 17:09:48 +02:00
Jonas 'Sortie' Termansen 4627031f44 Add ESPIPE. 2013-09-24 17:09:48 +02:00
Jonas 'Sortie' Termansen 7f99ccb36d Add EXDEV. 2013-09-24 17:09:48 +02:00
Jonas 'Sortie' Termansen 123eabd60a Add EFBIG. 2013-09-24 17:09:48 +02:00
Jonas 'Sortie' Termansen 0095983c80 Add dispmsg_issue(2). 2013-09-24 17:09:48 +02:00
Jonas 'Sortie' Termansen 5ebf7a3c88 Set O_CLOEXEC in opendir(3). 2013-09-24 17:09:47 +02:00
Jonas 'Sortie' Termansen 2c2fd29585 Make "C" the default locale. 2013-09-24 17:09:47 +02:00
Jonas 'Sortie' Termansen dc4ef04e7c Add assembly file symbol sizes. 2013-09-24 17:09:47 +02:00
Jonas 'Sortie' Termansen 9224f8f43d Fix wrong malloc include guard. 2013-09-24 17:09:47 +02:00
Jonas 'Sortie' Termansen 3abad890ec Fix non-standard struct flock declaration. 2013-09-24 17:09:47 +02:00
Jonas 'Sortie' Termansen 8d2c585479 Fix getdelim and getline having the wrong external linkage. 2013-09-24 17:09:35 +02:00
Jonas 'Sortie' Termansen d12c420ca1 Add W* wait constants to stdlib.h. 2013-09-24 16:52:29 +02:00
Jonas 'Sortie' Termansen 54e68a0c51 Fix '\0' support in strchr(3) and strchrnul(3). 2013-09-24 16:52:10 +02:00
Jonas 'Sortie' Termansen 3a35139e6c Fix fopen(filename, "w") not creating files. 2013-07-11 18:07:03 +02:00
Jonas 'Sortie' Termansen df67725221 Fix fgets(3) handling EOF incorrectly. 2013-07-11 18:07:03 +02:00
Jonas 'Sortie' Termansen 6aa4eb3405 Refactor fwrite(3) to remove buffer overflow bug. 2013-07-11 18:07:03 +02:00
Jonas 'Sortie' Termansen d950421358 Implement pread(2) and pwrite(2). 2013-07-11 18:07:03 +02:00
Jonas 'Sortie' Termansen 7fc1f0011a Fix libc compile warnings. 2013-07-09 20:28:55 +02:00
Jonas 'Sortie' Termansen 8318c51819 Allow syscall parameters and return values larger than native words.
Note: This is an incompatible ABI change.
2013-07-08 15:47:27 +02:00
Jonas 'Sortie' Termansen d890488304 Void system calls must now have a return value. 2013-07-07 17:03:01 +02:00
Jonas 'Sortie' Termansen 6a44dcae04 Don't use movs in memcpy as it causes performance loss. 2012-12-15 22:40:56 +01:00
Jonas 'Sortie' Termansen 1b0ddadab3 Optimize memcpy(3). 2012-12-14 14:13:37 +01:00
Jonas 'Sortie' Termansen f1bbbe5153 Add strsignal(3). 2012-12-14 14:13:37 +01:00
Jonas 'Sortie' Termansen ffab25b0f4 Fix strerror redirecting to wrong function. 2012-12-14 14:13:37 +01:00
Jonas 'Sortie' Termansen e08c13b344 Add strxfrm(3). 2012-12-14 14:13:37 +01:00
Jonas 'Sortie' Termansen 0c54bcd6e9 Add memccpy(3). 2012-12-14 14:13:37 +01:00
Jonas 'Sortie' Termansen e80f765fbf Add strndup(3). 2012-12-14 14:13:37 +01:00
Jonas 'Sortie' Termansen fd088903dd Add stpncpy(3). 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 be4858f82c Rename libmaxsi to sortix libc. 2012-12-14 14:13:36 +01:00