Jonas 'Sortie' Termansen
aa72efdb2c
Added <sortix/timeval.h> to the list of public headers.
2012-03-04 22:18:53 +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
5e75f5c428
Added fcntl(3) with FD_GET and FD_SET.
2012-03-04 21:36:40 +01:00
Jonas 'Sortie' Termansen
75b14aa821
Refactored the descriptor table and added FD_CLOEXEC and FD_CLOFORK.
...
open(2) now also respects O_CLOEXEC and O_CLOFORK.
2012-03-04 21:06:49 +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
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
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
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
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
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
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
ead53567a1
Made the compile process a little less verbose.
2012-02-11 19:06:00 +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
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
Jonas 'Sortie' Termansen
f6f0d24b5c
Added TERMMODE_NONBLOCK.
...
This allows user-space to query whether data is available.
2012-01-22 18:38:46 +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
16dd39e467
Added a nice Log::PrintData function to the kernel.
...
This allows writing binary data to the kernel log.
2012-01-22 02:12:52 +01:00
Jonas 'Sortie' Termansen
1f3f85b609
Added a simple utf8 encoder in the kernel.
2012-01-22 00:56:58 +01:00
Jonas 'Sortie' Termansen
83aeec2514
Multiple threads can now wait on the same pipe.
2012-01-18 17:19:08 +01:00
Jonas 'Sortie' Termansen
ba2cb5103a
Made Device::IsType 'const', because it is.
2012-01-18 01:11:17 +01:00
Jonas 'Sortie' Termansen
35fc0f6dfe
Removed the old unused interrupt 177.
2012-01-15 19:00:05 +01:00
Jonas 'Sortie' Termansen
93fb66ff90
Refactored Interrupt handlers to provide a user pointer.
2012-01-15 18:32:42 +01:00
Jonas 'Sortie' Termansen
c8c34d3cdd
readdirents(2) now properly reports ERANGE.
2012-01-15 00:43:13 +01:00
Jonas 'Sortie' Termansen
f476a82498
Fixed idention error in ramfs.
2012-01-14 23:19:31 +01:00
Jonas 'Sortie' Termansen
c94f6b64c3
readdirents(2) now returns ERANGE if insufficient storage space
...
was provided, but that the needed size could be copied to d_namelen.
2012-01-14 23:06:18 +01:00
Jonas 'Sortie' Termansen
8ef439b328
Fixed NULL-pointer in SysReadDirEnts.
2012-01-14 22:57:17 +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
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