Commit graph

63 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
Jonas 'Sortie' Termansen
66999ff94a Added putc(3) and getc(3). 2011-12-30 01:03:24 +01:00
Jonas 'Sortie' Termansen
d39d4222b5 Added fputc(3) and fgetc(3). 2011-12-30 00:55:59 +01:00
Jonas 'Sortie' Termansen
76800553da Clarified comment about typedef struct _FILE FILE. 2011-12-30 00:42:36 +01:00
Jonas 'Sortie' Termansen
064b69d2b6 Added fseeko(3) and ftello(3). 2011-12-30 00:36:39 +01:00
Jonas 'Sortie' Termansen
912b2f78f0 Implemented the fdio backend of fseek(3) and ftell(3). 2011-12-26 23:15:52 +01:00
Jonas 'Sortie' Termansen
648b324385 Added lseek(2). 2011-12-26 23:12:12 +01:00
Jonas 'Sortie' Termansen
fdbd4ca90d Implemented large parts of the stdio(3), including fprintf.
Made FILE an interface to various backends. This allows application writers
to override the standard FILE API functions with their own backends. This
is highly unportable - it'd be nice if a real standard existed for this.
glibc already does something like this internally, but AFAIK you can't hook
into it.

Added fdopen(3), fopen(3), fregister(3), funregister(3), fread(3),
fwrite(3), fseek(3), clearerr(3), ferror(3), feof(3), rewind(3), ftell(3),
fflush(3), fclose(3), fileno(3), fnewline(3), fcloseall(3), memset(3),
stdio(3), vfprintf(3), fprintf(3), and vprintf(3).

Added a file-descriptor backend to the FILE API.

fd's {0, 1, 2} are now initialized as stdin, stdout, and stderr when the
standard library initializes.

fcloseall(3) is now called on exit(3).

decl/intn_t_.h now @include(size_t.h) instead of declaring it itself.

Added <stdint.h>.

The following programs now flush stdout: cat(1), clear(1), editor(1),
init(1), mxsh(1).

printf(3) is now hooked up against vprintf(3), while Maxsi::PrintF
remains using the system call, for now.
2011-12-24 04:28:34 +01:00
Jonas 'Sortie' Termansen
4841d83ff8 Added calloc(3). 2011-12-24 04:05:38 +01:00
Jonas 'Sortie' Termansen
bf6a4c1861 Added strto{u,}{l,}l(3). 2011-12-16 16:49:27 +01:00
Jonas 'Sortie' Termansen
acf1eebc98 Added user-space memory allocation. 2011-12-16 13:24:49 +01:00
Jonas 'Sortie' Termansen
854d9b171a uptime(2) now reports usecs instead of msecs. 2011-12-04 21:27:21 +01:00
Jonas 'Sortie' Termansen
635a49644a Made usleep(2) a sortix extension. 2011-12-04 15:24:55 +01:00
Jonas 'Sortie' Termansen
7623ff8092 unistd.h now uses the __useconds_t from sortix/bits.h. 2011-12-04 15:11:39 +01:00
Jonas 'Sortie' Termansen
b0859c6d92 usleep'ing for 0 usecs simply causes a context-switch. 2011-12-02 22:37:17 +01:00
Jonas 'Sortie' Termansen
8c146f14c0 Added uptime(1). 2011-11-28 16:29:53 +01:00
Jonas 'Sortie' Termansen
bd1b1fe3bc Added isatty(2), which is used by editor. 2011-11-26 21:00:40 +01:00
Jonas 'Sortie' Termansen
9152443816 Added memstat, a program for displaying memory usage. 2011-11-26 20:14:57 +01:00
Jonas 'Sortie' Termansen
d4231b2027 Added program_invocation_name(3), error(3), and perror(3) and used them. 2011-11-26 11:00:45 +01:00
Jonas 'Sortie' Termansen
4890c306c4 printf(3) now writes to fd 1. 2011-11-24 10:26:36 +01:00
Jonas 'Sortie' Termansen
2b032b0414 Initial signal support. Please squash improvements into this commit. 2011-11-23 00:19:09 +01:00
Jonas 'Sortie' Termansen
9f35df813e Implemented errno(3), added support in both kernel and utils. 2011-11-22 17:26:47 +01:00
Jonas 'Sortie' Termansen
8b2b52b9f6 Added unlink(2) and rm(1). 2011-11-21 19:01:56 +01:00
Jonas 'Sortie' Termansen
d4590cefa1 Added chdir(2), getcwd(2), which mxsh and ls now uses. 2011-11-21 12:19:57 +01:00
Jonas 'Sortie' Termansen
313079483a Missing files from the previous two commits. Ooops! 2011-11-21 00:19:55 +01:00