Commit Graph

149 Commits

Author SHA1 Message Date
Jonas 'Sortie' Termansen cbdf54fcdd Moved SEEK_SET, SEEK_CUR, and SEEK_SET to <sortix/seek.h>. 2012-02-24 17:34:50 +01:00
Jonas 'Sortie' Termansen 5de83df6ec Unified constants from sortix/filesystem.h and <fcntl.h> in <sortix/fcntl.h>. 2012-02-23 13:15:40 +01:00
Jonas 'Sortie' Termansen 03273d0076 Added stubs for stat(2), and fstat(2). 2012-02-22 00:30:34 +01:00
Jonas 'Sortie' Termansen 75b3b9c858 Added a Maxsi::String::Substring function. 2012-02-21 23:23:57 +01:00
Jonas 'Sortie' Termansen 2a4a51fafc Added getline(3), getdelim(3), sortix_gets(3) and gets(3).
gets(3) exists and is an alias for sortix_gets(3) if _SORTIX_SOURCE.

sortix_gets(3) returns a pointer to a safe newly read and allocated line.
2012-02-13 01:07:02 +01:00
Jonas 'Sortie' Termansen 3bf5b1f17e Added realloc(3). 2012-02-13 00:31:05 +01:00
Jonas 'Sortie' Termansen 4804e60a8b Fixed race condition when building libmaxsi with -j.
The headers could end up being made before their dirs were ready.
2012-02-12 13:54:07 +01:00
Jonas 'Sortie' Termansen c8dfe630af Removed annoying warnings when declaring x64 systemcalls.
Actually, the warnings are true, but that's a task for later.
2012-02-12 13:20:53 +01:00
Jonas 'Sortie' Termansen c6682265aa Fixed minor compile errors in fddir-sortix.c. 2012-02-12 13:20:53 +01:00
Jonas 'Sortie' Termansen e05e934beb Changed return type of FILE::tell_func to off_t. 2012-02-12 13:20:53 +01:00
Jonas 'Sortie' Termansen fec176fa15 Refactored the libmaxsi/ directory.
C and C++ files are now kept together and so are the mxmpp declarations.

Header files are now stored in include/ and mxmpp'd into preproc/.

All other code now -I ../libmaxsi/preproc.

And other stuff to make this happen, including refactoring Makefile.
2012-02-12 13:20:53 +01:00
Jonas 'Sortie' Termansen b4131def9f The offsetof macro now expands to __builtin_offsetof.
The compiler knows this stuff best, anyway.
2012-02-11 19:50:27 +01:00
Jonas 'Sortie' Termansen d693f8a2f4 Fixed broken <stddef.h>. 2012-02-11 19:38:51 +01:00
Jonas 'Sortie' Termansen 6d1129c29a Removed compile warnings related to feature macros.
Accidentally commited them. Oops.
2012-02-11 19:03:17 +01:00
Jonas 'Sortie' Termansen ed68db03fb Replaced SORTIX_EXTENSIONS macro with _SORTIX_SOURCE macro.
<features.h> declares _SORTIX_SOURCE if no conflicting macros are
declared, such as _GNU_SOURCE.

Fixed g++ automatically declaring _GNU_SOURCE, but Sortix isn't GNU.

Replaced SORTIX_UNIMPLEMENTED macro with __SORTIX_SHOW_UNIMPLEMENTED.
2012-02-11 18:51:55 +01:00
Jonas 'Sortie' Termansen 88c7788b4e Fixed stdint.h include guard conflicting with unistd.h. 2012-02-11 18:46:17 +01:00
Jonas 'Sortie' Termansen 028867ab9d Removed the unused and deprecated old <libmaxsi/sortix-keyboard.h> API.
This has been entirely replaced by stdin and <sys/termmode.h>.
2012-02-10 13:46:26 +01:00
Jonas 'Sortie' Termansen 5fde8e13ed Blocking systemcalls now return EBLOCKING instead of EWOULDBLOCK.
EWOULDBLOCK is now used when it wanted to block, but didn't.
2012-02-10 13:28:28 +01:00
Jonas 'Sortie' Termansen ecc3114f2a Refactored the system to use the new Terminal interface.
This will allow development of a better terminal providing stdin.

Added new system calls settermmode(2) and gettermmode(2) declared in
<sys/termmode.h>. They allow querying and changing the current mode of
terminals (enabling raw keyboard data, signal handling, line buffering,
UTF-8 encoding stdin, and more). However, all that is unsupported by the
current terminal device driver.

Added KBKEY_ENCODE and KBKEY_DECODE macros to <sys/keycodes.h> which allows
encoding the kbkey format in UTF-32 characters.
2012-01-22 16:48:57 +01:00
Jonas 'Sortie' Termansen ead0e1523f Refactored the kernel keyboard API, but kept system calls compatible.
Caps lock now works as caps lock, not as shift lock.

This new design will allow implementing a working tty, such that stdin is
the only way to access the keyboard, instead of the current hacky way of
using a special system call to read from the keyboard.

Added a new system header file <sys/keycodes.h> defining the constants for
every key on the keyboard. This will be used in future APIs.

The main change is to split the keyboard driver into a class that reads
from the keyboard, while another class handles the translation into
printable characters (if possible). This allows a terminal driver based
on logical key presses and printable characters, instead of a terminal
driver based only on unicode-ish codes.
2012-01-22 15:53:50 +01:00
Jonas 'Sortie' Termansen ac51e98cb8 Improved removal performance in Maxsi::SortedList. 2012-01-21 01:35:17 +01:00
Jonas 'Sortie' Termansen f29f6dd053 ValidateHeap is now only called when PARANOIA is at least 2.
This speeds up memory allocations from O(N) to O(1) by default.
2012-01-20 23:22:12 +01:00
Jonas 'Sortie' Termansen f676cf75f4 Added ENOTSUP. 2012-01-18 15:40:31 +01:00
Jonas 'Sortie' Termansen 17d1b67a77 Fixed bug in fopen(3) where it didn't open correctly. 2012-01-18 12:40:31 +01:00
Jonas 'Sortie' Termansen d2c4b1d6ac Added readdir(3), closedir(3), rewinddir(3), dirfd(3), fdopendir(3),
opendir(3).

Also added non-standard dregister(3), dunregister(3), dclearerr(3),
derror(3), deof(3), dnewdir(3), dcloseall(3).
2012-01-15 00:51:27 +01:00
Jonas 'Sortie' Termansen 8d18993584 Added stpcpy(3). 2012-01-14 17:20:17 +01:00
Jonas 'Sortie' Termansen a06902baf6 Added strcoll(3). 2012-01-14 16:44:48 +01:00
Jonas 'Sortie' Termansen 56084556bb Added stubs for truncate(2) and ftruncate(3). 2012-01-14 16:37:21 +01:00
Jonas 'Sortie' Termansen 0519af33ee Added stubs for rmdir(2) and mkdir(2). 2012-01-14 16:25:28 +01:00
Jonas 'Sortie' Termansen c5ddc6923a Added ENOSYS. 2012-01-14 16:09:30 +01:00
Jonas 'Sortie' Termansen 1824dd6867 Added memchr(3). 2012-01-09 01:38:44 +01:00
Jonas 'Sortie' Termansen 10a37e1f98 Added {,v}s{,n}printf(3). 2012-01-09 00:31:42 +01:00
Jonas 'Sortie' Termansen 91015a2ea7 Made the size_t declaration compatible with GCC. 2012-01-09 00:31:14 +01:00
Jonas 'Sortie' Termansen 66c411b43a sys/types.h now declares pid_t. 2012-01-08 23:25:11 +01:00
Jonas 'Sortie' Termansen df728efb8c Added strchr(3), strchrnul(3), strrchr(3). 2012-01-08 22:26:32 +01:00
Jonas 'Sortie' Termansen 4806f25e50 Added strtok(3), strtok_r(3), strspn(3), strcspn(3). 2012-01-08 21:59:21 +01:00
Jonas 'Sortie' Termansen 9064185bd8 Added memcmp(3). 2012-01-08 20:17:27 +01:00
Jonas 'Sortie' Termansen 46e717e30f Revert ".so's are no longer installed into sysroot as there are no kernel support."
This reverts commit e6db1874e7ed16a6987d5a86d7f6c10cd8b0ffff.

These dummy .so's are actually OK.
2012-01-08 15:53:10 +01:00
Jonas 'Sortie' Termansen 7cd5363af8 Disabled shared libaries in libmaxsi by default. 2012-01-08 15:49:33 +01:00
Jonas 'Sortie' Termansen 145da20c04 Added a libg (symlink to libc) and symlinks are now copied to sysroot. 2012-01-08 15:45:13 +01:00
Jonas 'Sortie' Termansen d3c16470e3 .so's are no longer installed into sysroot as there are no kernel support. 2012-01-08 15:39:40 +01:00
Jonas 'Sortie' Termansen 954fd11703 Added isalnum(3), isalpha(3), isblank(3), iscntrl(3), isdigit(3),
isgraph(3), islower(3), isprint(3), ispunct(3), isspace(3), isupper(3),
isxdigit(3), tolower(3), and toupper(3).
2012-01-08 15:35:35 +01:00
Jonas 'Sortie' Termansen ad200ffa91 Added getpagesize(2) with the new return type size_t.
This function is non-standard  and size_t is better than int here.
2012-01-08 14:58:57 +01:00
Jonas 'Sortie' Termansen 809bedd32b Just ignore the restrict keyword fully. 2012-01-08 14:30:50 +01:00
Jonas 'Sortie' Termansen 8eebe18922 Added an implementation of puts(3) because gcc needs it.
I still didn't add it to stdio.h since it's still stupid.
2012-01-08 14:30:50 +01:00
Jonas 'Sortie' Termansen 25d8551b26 Moved _start into crtbegin.o as that's where the cross compiler wants it. 2012-01-08 14:30:50 +01:00
Jonas 'Sortie' Termansen 9a77901883 Added missing prototypes to stdio.h. 2011-12-30 01:23:00 +01:00
Jonas 'Sortie' Termansen 73a7e8f53d Forgot to actually add remove(3) in the previous commit. 2011-12-30 01:13:41 +01:00
Jonas 'Sortie' Termansen deee5e4335 Added a partial implementation of remove(3), since rmdir(2) is missing. 2011-12-30 01:11:33 +01:00
Jonas 'Sortie' Termansen 5d16b5c61e Added getchar(3) and putchar(3). 2011-12-30 01:06:27 +01:00