Commit Graph

355 Commits

Author SHA1 Message Date
Jonas 'Sortie' Termansen ac7e55ffbd Added st_dev to struct stat. 2012-03-04 16:48:24 +01:00
Jonas 'Sortie' Termansen db7781c54a Install <sortix/*.h> headers in sysroot. 2012-03-04 16:04:12 +01:00
Jonas 'Sortie' Termansen f9f59e9536 Added ELAKE. 2012-03-03 01:06:32 +01:00
Jonas 'Sortie' Termansen 617c4333c6 Added head(1), tail(1). 2012-03-03 00:29:24 +01:00
Jonas 'Sortie' Termansen 7b9e15baf2 Made cat(1) read from stdin if it isn't a tty. 2012-03-02 18:15:55 +01:00
Jonas 'Sortie' Termansen 98d1ccfa7d Improved the shell with pipes, background processes and semicolons.
It's really hacky, but it's an improvement.
2012-03-02 18:02:31 +01:00
Jonas 'Sortie' Termansen 0ed0082070 Added execv(3) and execve(3).
Removed the older libmaxsi system call.
2012-03-02 15:00:11 +01:00
Jonas 'Sortie' Termansen 93a9ee334d Removed a debug ifdef that isn't used. 2012-03-02 14:25:48 +01:00
Jonas 'Sortie' Termansen cfbbf67247 make CALLTRACE=1 to enable printing primitive calltraces upon panic.
This won't work with optimizations turned fully on.

Added protection against double panics.
2012-03-02 14:08:25 +01:00
Jonas 'Sortie' Termansen 6dd0e586ff Added protection against bad addrspace vars and bad Page::Put() calls.
This will offer protection against the bug fixed in the previous commit.
2012-03-02 13:51:03 +01:00
Jonas 'Sortie' Termansen 5e5991ce19 Fixed x86 addrspace destroy code calling Page::Put with garbage. 2012-03-02 13:45:33 +01:00
Jonas 'Sortie' Termansen a7c38cb997 Improved bad currentdir variable panic message. 2012-03-02 00:09:08 +01:00
Jonas 'Sortie' Termansen f2f4b2ca60 Better argument parsing in column(1). 2012-03-01 16:59:53 +01:00
Jonas 'Sortie' Termansen c5302df277 error(3) now doesn't print an error if supplied errno=0. 2012-03-01 16:42:13 +01:00
Jonas 'Sortie' Termansen 158909033e ls(1) now pipe(2) into column(1) if stdout(3) isatty(2).
This saves precious screen space as Sortix only supports 25-line ttys.
2012-03-01 14:37:28 +01:00
Jonas 'Sortie' Termansen caddf8c191 Added column(1). 2012-03-01 14:36:56 +01:00
Jonas 'Sortie' Termansen 9c193777a9 Pipes now return 0 (EOF) if no data and no fds can write. 2012-03-01 14:31:12 +01:00
Jonas 'Sortie' Termansen 982b9a732a Fixed bug where fopen(3) used the wrong mode in call to fdopen(3). 2012-03-01 14:30:20 +01:00
Jonas 'Sortie' Termansen 081bb6481c Added pwd(1). 2012-03-01 00:27:30 +01:00
Jonas 'Sortie' Termansen b4f47f0f79 Split descriptor_tables.cpp into a gdt.cpp and idt.cpp.
This was about time, since descriptor_tables was a really bad name!
2012-03-01 00:15:28 +01:00
Jonas 'Sortie' Termansen 5162a12d03 Further cleanup and refactoring of the interrupt code. 2012-02-29 23:03:40 +01:00
Jonas 'Sortie' Termansen 0e48b23429 Refactored the interrupt code to make it cleaner and more flexible.
Added support for hooking directly into an interrupt with your own
interrupt handler.
2012-02-29 15:40:30 +01:00
Jonas 'Sortie' Termansen 7ebed6dd6a sortix/io.cpp now uses <sortix/seek.h>. 2012-02-24 22:02:01 +01:00
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 edd806fc74 Added a Refcounted class, useful for refcounted objects. 2012-02-21 20:12:52 +01:00
Jonas 'Sortie' Termansen 74dab2cbca Cleaned up the Sortix makefile. 2012-02-13 13:16:43 +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 4e29f2b907 Fixed spelling error in sortix/*/bits.h. 2012-02-11 21:20:49 +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 ead53567a1 Made the compile process a little less verbose. 2012-02-11 19:06:00 +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 c4264d9c2a Ported the user-space programs to use stdin for keyboard access.
The old keyboard API is hereby deprecated and unused.
2012-02-10 13:46:26 +01:00
Jonas 'Sortie' Termansen fa9c7007b4 Implemented a terminal that reads from keyboard and writes to kernel log.
This terminal will provide the keyboard data in a couple modes as /dev/tty.
2012-02-10 13:28:28 +01:00
Jonas 'Sortie' Termansen 4ba906a157 Added a class for handling terminal linebuffering. 2012-02-10 13:28:28 +01:00
Jonas 'Sortie' Termansen 133fb9871c Fixed buggy and broken KBKEY_ENCODE and KBKEY_DECODE macros. 2012-02-10 13:28:28 +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 9bcfdad174 Added protection against running terminated threads.
A bool is set when a thread is terminated, which may help detect it.

A cached version of the thread's pid is also kept around.

And lastly, the thread is unsubscribed from events upon destruction.
2012-02-10 13:27:11 +01:00