Jonas 'Sortie' Termansen
2b72262b4f
Relicense Sortix to the ISC license.
...
I hereby relicense all my work on Sortix under the ISC license as below.
All Sortix contributions by other people are already under this license,
are not substantial enough to be copyrightable, or have been removed.
All imported code from other projects is compatible with this license.
All GPL licensed code from other projects had previously been removed.
Copyright 2011-2016 Jonas 'Sortie' Termansen and contributors.
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
2016-03-05 22:21:50 +01:00
Jonas 'Sortie' Termansen
01b59c1947
Convert libc to C.
2016-03-03 23:02:23 +01:00
Jonas 'Sortie' Termansen
3487b62152
Remove dead MTRR code from the kernel.
2016-02-29 01:37:31 +01:00
Jonas 'Sortie' Termansen
ede0571926
Add UTIME_NOW and UTIME_OMIT.
2016-02-24 17:32:05 +01:00
Jonas 'Sortie' Termansen
02c6316e95
Remove kernel debugger, old kernel US layout and kernel symbol code.
...
The debugger has fallen behind and has become a maintenance burden. It was
the only user of the old kernel US layout system, which is good to get rid
of. The debugger didn't work with graphical output and was likely to
conflict with the new keyboard system if used, which no longer triggered it.
The kernel symbol code was removed to simplify the kernel.
The kernel debugger was an useful debugging feature, but it needs to be done
in a better way before it can be added back.
2016-02-22 00:12:26 +01:00
Jonas 'Sortie' Termansen
bab21ae7dd
Add tar and tix initrd support.
2016-02-07 14:48:28 +01:00
Jonas 'Sortie' Termansen
475bd7c26e
Add support for multiple initrds.
2016-02-07 14:48:27 +01:00
Jonas 'Sortie' Termansen
79e01c2eba
Rewrite ATA driver.
2016-02-02 22:47:49 +01:00
Jonas 'Sortie' Termansen
2e4b15daed
Simplify directory reading.
2016-01-26 18:42:54 +01:00
Jonas 'Sortie' Termansen
bff1265d62
Add termios(2).
2016-01-25 15:47:40 +01:00
Jonas 'Sortie' Termansen
8f233b4a10
Add console backspace bold and underline support.
...
Combine textbuffer char and attr concepts while here.
2016-01-23 01:02:50 +01:00
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