Commit graph

164 commits

Author SHA1 Message Date
Jonas 'Sortie' Termansen
306709fc4a Add PS/2 controller driver. 2016-01-23 00:50:53 +01:00
Jonas 'Sortie' Termansen
ff8b2be515 Implement CLOCK_THREAD_CPUTIME_ID and CLOCK_THREAD_SYSTIME_ID. 2016-01-09 02:28:44 +01:00
Jonas 'Sortie' Termansen
af9cc8ed05 Schedule full console redraw after user-space framebuffer write. 2016-01-08 19:56:11 +01:00
Jonas 'Sortie' Termansen
dad5c57f33 Allow bootloader bitmap framebuffer modesetting. 2016-01-08 19:56:11 +01:00
Jonas 'Sortie' Termansen
8c7c6fa59f Center ascii cat on boot. 2016-01-08 19:56:11 +01:00
Jonas 'Sortie' Termansen
22351d7f72 Fix untimely delivery of signals during userfs reference count messages. 2016-01-07 19:08:43 +01:00
Jonas 'Sortie' Termansen
559857b97e Fix features.h inclusions not yet changed to sys/cdefs.h. 2015-12-23 17:49:59 +01:00
Jonas 'Sortie' Termansen
f60b2c6ec4 Add keyboard layout support to kernel. 2015-12-19 02:44:15 +01:00
Jonas 'Sortie' Termansen
7da84494ab Add kblayout-compiler(1). 2015-12-19 02:21:15 +01:00
Jonas 'Sortie' Termansen
4b6b06bbc8 Add scram(2). 2015-12-12 22:53:07 +01:00
Jonas 'Sortie' Termansen
0045f18c81 Remove kernel Scheduler::Init(). 2015-12-12 19:28:07 +01:00
Jonas 'Sortie' Termansen
cee24359d8 Add psctl(2). 2015-12-12 19:28:07 +01:00
Jonas 'Sortie' Termansen
fc637c8880 Prevent orphan processes from becoming zombies. 2015-10-28 19:36:33 +01:00
Jonas 'Sortie' Termansen
6725972e11 Fix LinkInodeInDir return value.
The callers expected it to return an int different than 0 on failure. The
link method returns different than 0 on failure. This actually worked by
lucky coincidence. Change the return type to int and 0 on success, and -1
on failure per popular demand.

Thanks to Meisaka Yukara for spotting this.
2015-09-25 15:01:20 +02:00
Jonas 'Sortie' Termansen
73a182f80c Add interface to get 32-bit pages. 2015-08-28 15:24:54 +02:00
Jonas 'Sortie' Termansen
eb11613da6 Add interface to wait for IO port changes. 2015-08-28 15:24:54 +02:00
Jonas 'Sortie' Termansen
a79aeed0c1 Remove __BEGIN_DECLS and __END_DECLS. 2015-08-26 14:52:44 +02:00
Jonas 'Sortie' Termansen
5915e2cd14 Add closefrom(2). 2015-08-26 14:01:25 +02:00
Jonas 'Sortie' Termansen
6405e2ea6e Add arc4random support to the kernel. 2015-08-22 01:04:58 +02:00
Jonas 'Sortie' Termansen
20698b35c7 Refactor kernel log. 2015-08-21 21:25:01 +02:00
Jonas 'Sortie' Termansen
77467b7768 Detect physical memory before initializing the kernel log. 2015-08-21 21:25:00 +02:00
Jonas 'Sortie' Termansen
218875eb79 Initialize paging before KernelInit. 2015-08-21 21:25:00 +02:00
Jonas 'Sortie' Termansen
a422c394b8 Initialize the GDT in the bootstrap assembly. 2015-08-21 21:25:00 +02:00
Jonas 'Sortie' Termansen
cf55531aae Make nfds_t size_t. 2015-08-21 21:25:00 +02:00
Jonas 'Sortie' Termansen
ef45218660 Add S_ISGID and S_ISUID.
I originally left them out because Sortix doesn't have setuid and setgid
executable support, but this created considerable compatibility issues and
it is better to supply them as the mode bits still exist and can be set.
2015-08-21 21:25:00 +02:00
Jonas 'Sortie' Termansen
6cf07034d5 Fix missing parenthesizes in <sys/wait.h> macros. 2015-08-14 17:26:07 +02:00
Jonas 'Sortie' Termansen
9acc74de28 Fix read-only mmap with backing store. 2015-06-27 17:06:33 +02:00
Jonas 'Sortie' Termansen
5589085084 Fix unlinkat potentially following paths twice. 2015-06-27 17:06:32 +02:00
Jonas 'Sortie' Termansen
4f7c5ebdd3 Fix PCI code. 2015-02-08 22:58:32 +01:00
Jonas 'Sortie' Termansen
bb70eef85b Replace system call array types with pointers. 2015-01-23 14:52:51 +01:00
Jonas 'Sortie' Termansen
31023c263b Fix style issues in kernel system call header. 2015-01-22 03:37:37 +01:00
Jonas 'Sortie' Termansen
d890d3082d Add umount(2) and unmountat(2). 2014-12-26 21:45:29 +01:00
Jonas 'Sortie' Termansen
bbf454e164 Rewrite program loader. 2014-12-04 16:14:17 +01:00
Jonas 'Sortie' Termansen
5143f01b0a Remove sbrk(2).
Note: This is an incompatible ABI change.
2014-12-03 23:55:55 +01:00
Jonas 'Sortie' Termansen
ae4534aae1 Update kernel/descriptor.cpp to current coding conventions. 2014-12-03 14:19:58 +01:00
Jonas 'Sortie' Termansen
ba1e0882ec Initialize system call table at compile time. 2014-12-03 14:19:49 +01:00
Jonas 'Sortie' Termansen
3ad7ab4fc3 Add gethostname(2) and sethostname(2). 2014-12-03 13:58:29 +01:00
Jonas 'Sortie' Termansen
59262f6bf2 Refactor interrupt handler registration. 2014-12-02 21:30:39 +01:00
Jonas 'Sortie' Termansen
4c78239721 Implement yielding a timeslice to another thread. 2014-12-02 21:15:08 +01:00
Jonas 'Sortie' Termansen
bb3f591057 Add symbolic links. 2014-12-02 17:36:36 +01:00
Jonas 'Sortie' Termansen
156e73d441 Optimize file descriptor allocation. 2014-12-01 22:51:07 +01:00
Jonas 'Sortie' Termansen
ec7e0cc9a6 Add cbprintf(3) and vcbprintf(3).
Thanks to Owen Shepherd of the Public Domain C Library for helping design
and formalize these interfaces.
2014-12-01 21:39:05 +01:00
Jonas 'Sortie' Termansen
536d7a06f5 Add fcntl(F_PREVFD) and fcntl(F_NEXTFD). 2014-12-01 21:39:05 +01:00
Jonas 'Sortie' Termansen
35708fa900 Retire calltrace support in favor of the kernel debugger. 2014-12-01 21:38:06 +01:00
Jonas 'Sortie' Termansen
b6b19c88fd Use the word invalid instead of illegal. 2014-11-30 19:53:42 +01:00
Jonas 'Sortie' Termansen
76bf0eb30c Remove String::Combine kernel function.
This function has followed me through a few projects for many years. It's
time to retire it. It's not too terribly well-written and it's mostly
replaced by the standard asprintf call. It's not even used in Sortix at the
moment.
2014-11-30 19:53:42 +01:00
Jonas 'Sortie' Termansen
e460be7a72 Add getentropy(2). 2014-11-28 13:35:51 +01:00
Jonas 'Sortie' Termansen
577f2f700b Add shutdown(2). 2014-11-27 01:39:53 +01:00
Jonas 'Sortie' Termansen
a8a8154adc Add getpeername(2) and getsockname(2). 2014-11-27 01:39:11 +01:00
Jonas 'Sortie' Termansen
ad8d025c32 Rename <sortix/syscallnum.h> to <sortix/syscall.h>. 2014-11-27 01:18:58 +01:00
Jonas 'Sortie' Termansen
bb84370c34 Add type limits and print/scan specifiers to <sys/types.h>. 2014-11-26 23:34:14 +01:00
Jonas 'Sortie' Termansen
749d123331 Maintain counts of physical frames used for particular purposes. 2014-11-26 22:27:04 +01:00
Jonas 'Sortie' Termansen
6971cc59b0 Maintain count of used blocks in the filesystem cache. 2014-11-26 22:25:37 +01:00
Jonas 'Sortie' Termansen
01402052f6 Add tcgetblob(2) and tcsetblob(2). 2014-11-25 18:40:50 +01:00
Jonas 'Sortie' Termansen
2ff72426ec Implement SO_RCVBUF and SO_SNDBUF for filesystem sockets. 2014-11-25 17:14:46 +01:00
Jonas 'Sortie' Termansen
dc11b9f837 Add unicode support to kernel terminal and console. 2014-11-24 17:41:26 +01:00
Jonas 'Sortie' Termansen
12eaf46873 Let kernel debugger know how it was invoked. 2014-11-21 00:12:46 +01:00
Jonas 'Sortie' Termansen
ee13ffa715 Refactor kernel graphics support. 2014-11-19 00:08:49 +01:00
Jonas 'Sortie' Termansen
8f7c72abc1 Add utility functions for mapping PCI memory areas. 2014-11-18 23:14:49 +01:00
Jonas 'Sortie' Termansen
50ee8ca323 Implement searching for multiple PCI devices matching a pattern. 2014-11-18 22:00:29 +01:00
Jonas 'Sortie' Termansen
400eb2238f Refactor process id allocation and accounting. 2014-11-18 20:33:21 +01:00
Jonas 'Sortie' Termansen
25e07a9083 Refactor kernel interrupt and thread register support. 2014-11-18 20:33:21 +01:00
Jonas 'Sortie' Termansen
25b4125840 Relocate kernel IO port functions to <sortix/kernel/ioport.h>. 2014-11-18 18:10:22 +01:00
Jonas 'Sortie' Termansen
7b3e2fa229 Clean up kernel thread creation code. 2014-11-18 18:10:22 +01:00
Jonas 'Sortie' Termansen
a24ecf4b83 Add getsockopt(2) and setsockopt(2). 2014-11-18 18:10:22 +01:00
Jonas 'Sortie' Termansen
708bcb4735 Add recvmsg(2) and sendmsg(2). 2014-11-18 16:27:19 +01:00
Jonas 'Sortie' Termansen
933720e0b0 Remove obsolete system calls. 2014-09-25 17:49:02 +02:00
Jonas 'Sortie' Termansen
797efbc15b Fix Ref<T> self-assignment. 2014-09-23 20:45:57 +02:00
Jonas 'Sortie' Termansen
741e48e688 Fix interrupt worker quality. 2014-09-23 20:45:57 +02:00
Jonas 'Sortie' Termansen
8c2befc140 Clean up scheduler. 2014-08-24 14:02:42 +02:00
Jonas 'Sortie' Termansen
594dcaad19 Add format attribute to kernel print and panic functions. 2014-08-23 21:47:05 +02:00
Jonas 'Sortie' Termansen
30cd318c17 Implement signals.
Note: This is an incompatible ABI change.
2014-07-22 13:25:39 +02:00
Jonas 'Sortie' Termansen
c8a3a858b0 Add libpthread. 2014-07-08 17:41:50 +02:00
Jonas 'Sortie' Termansen
8411dce330 Add kernel uthread support. 2014-07-08 17:41:50 +02:00
Jonas 'Sortie' Termansen
fdcfb1f2da Handle ELF notes during program load. 2014-07-07 17:52:33 +02:00
Jonas 'Sortie' Termansen
3f9a7c0a32 Fix <fcntl.h> using C++ comments. 2014-07-07 17:52:33 +02:00
Jonas 'Sortie' Termansen
b607900a00 Fix <dirent.h> not being C89 friendly. 2014-07-07 17:52:33 +02:00
Jonas 'Sortie' Termansen
874baffd57 Fix wrongly named system call constants. 2014-06-27 15:49:55 +02:00
Jonas 'Sortie' Termansen
2bead9df51 Fix <sortix/fork.h> declaring access(2) constants. 2014-06-17 23:53:26 +02:00
Jonas 'Sortie' Termansen
4ea6aa710c Add exit_thread(2). 2014-06-12 00:05:40 +02:00
Jonas 'Sortie' Termansen
f332cf96d4 Add sched_yield(2). 2014-05-29 17:16:49 +02:00
Jonas 'Sortie' Termansen
af23f7ad5e Add rdmsr(2) and wrmsr(2). 2014-05-29 17:14:30 +02:00
Jonas 'Sortie' Termansen
1f72c1637c Maintain fsbase and gsbase as per-thread registers.
Note: This is an incompatible ABI change.
2014-05-29 17:07:42 +02:00
Jonas 'Sortie' Termansen
0ebe5fc04d Fix filesystem sockets sending SIGPIPE on disconnect. 2014-05-28 22:18:54 +02:00
Jonas 'Sortie' Termansen
6774c79ba6 Fix polling Unix sockets in both incoming and outgoing directions. 2014-05-28 22:18:54 +02:00
Jonas 'Sortie' Termansen
68d379c605 Fix insecure user-space pointer dereferences in sys_execve. 2014-05-16 16:58:33 +02:00
Jonas 'Sortie' Termansen
66481bef39 Fix kernel refcounted classes without virtual destructor. 2014-03-31 19:47:54 +02:00
Jonas 'Sortie' Termansen
564f99b3ae Move O_ACCMODE into kernel headers. 2014-03-17 19:22:13 +01:00
Jonas 'Sortie' Termansen
e941ff0430 Rename useresp to esp and userrsp to rsp. 2014-03-17 19:22:13 +01:00
Jonas 'Sortie' Termansen
8c00a4145c Refactor kernel PAT, MTRR, and MSR usage. 2014-03-17 19:22:13 +01:00
Jonas 'Sortie' Termansen
34dbc4d515 Refactor PCI BAR support. 2014-03-17 19:22:13 +01:00
Jonas 'Sortie' Termansen
a133a7717e Refactor i386 and x86_64 interrupt support. 2014-03-17 19:22:13 +01:00
Jonas 'Sortie' Termansen
554894d840 Add O_TTY_INIT. 2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen
426848fbbf Add O_NOCTTY. 2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen
a935148f60 Add statvfs(2), fstatvfs(2) and fstatvfsat(2). 2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen
2fe3595feb Add getumask(2). 2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen
640465320f Improve the reliability of the kernel likely and unlikely macros. 2014-03-17 19:22:11 +01:00
Jonas 'Sortie' Termansen
a0a8ed61d8 Add pipe2(2). 2014-03-17 19:22:11 +01:00
Jonas 'Sortie' Termansen
eaf1618537 Add tcgetwincurpos(2). 2014-03-17 19:22:10 +01:00
Jonas 'Sortie' Termansen
d5241349cc Move OFF_MIN and OFF_MAX to <sys/types.h>. 2014-03-17 19:22:10 +01:00