Commit Graph

182 Commits

Author SHA1 Message Date
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 58c7070134 Support \e[39m and \e[49m in the console. 2014-11-28 15:30:39 +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 ba12c1d246 Store loaded programs in special allocations rather than the kernel heap. 2014-11-26 22:27:57 +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 36d2dcb745 Slightly improve addralloc virtual address space leaking. 2014-11-26 22:25:37 +01:00
Jonas 'Sortie' Termansen f8c5adf20f Add #! support to execve(2). 2014-11-26 21:14:13 +01:00
Jonas 'Sortie' Termansen f44e46cde5 Flatten initrd symbolic links to hardlinks inside the same directory. 2014-11-25 22:49:19 +01:00
Jonas 'Sortie' Termansen ca70f03be8 Display progress bar during initrd extraction. 2014-11-25 20:57:45 +01:00
Jonas 'Sortie' Termansen c1af231897 Optimize reading the CMOS real time clock. 2014-11-25 19:42:28 +01:00
Jonas 'Sortie' Termansen ae73391a10 Clean up initrd extraction code. 2014-11-25 19:42:28 +01:00
Jonas 'Sortie' Termansen 01402052f6 Add tcgetblob(2) and tcsetblob(2). 2014-11-25 18:40:50 +01:00
Jonas 'Sortie' Termansen 20b8a3c639 Add support for \e[9xm and \e[10xm escape sequences. 2014-11-25 17:19:32 +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 feea0786fc Increase default pipe buffer size to 64 KiB. 2014-11-24 22:32:57 +01:00
Jonas 'Sortie' Termansen 152d768112 Memory efficiently extract the initrd. 2014-11-24 22:32:57 +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 9e6148f6ff Refactor default compiler options logic. 2014-11-24 17:10:50 +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 5dbd89d2aa Delay heap initialization until first heap expansion. 2014-11-20 21:09:14 +01:00
Jonas 'Sortie' Termansen 81ad72ae89 Fix renegade graphical console rendering thread.
The console rendering thread doesn't get shut down as the lfbtextbuffer did
not think it had a rendering thread. This causes corruptions to occur when a
subsequent resolution change destroys the lfbtextbuffer class instance, but
the thread continues to use the class. Lots of undefined behavior occurs as
the memory gets reallocated for other purposes.
2014-11-20 17:04:45 +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 79f7312a49 Fix page protection bugs. 2014-11-06 00:09:55 +01:00
Jonas 'Sortie' Termansen b4c38fd044 Fix wrong sizeof in memstat(2). 2014-10-18 15:30:11 +02:00
Jonas 'Sortie' Termansen e20dd6ed06 Fix waiting for absolute time on clocks. 2014-10-18 15:30:11 +02:00
Jonas 'Sortie' Termansen 1206113425 Fix userfs renaming between directories. 2014-10-18 15:30:11 +02:00
Jonas 'Sortie' Termansen 66f1a62743 Fix userfs bugs return values and bugs. 2014-10-04 17:10:25 +02:00
Jonas 'Sortie' Termansen cef4c8d982 Fix waitpid status copying to user-space. 2014-10-04 17:10:25 +02:00
Jonas 'Sortie' Termansen a6bb538bcf Fix user-space filesystem copying. 2014-10-04 17:10:25 +02:00
Jonas 'Sortie' Termansen 73dc4a0feb Fix kernel leaking ESPIPE in non-error cases. 2014-09-25 18:12:53 +02:00
Jonas 'Sortie' Termansen 933720e0b0 Remove obsolete system calls. 2014-09-25 17:49:02 +02:00
Jonas 'Sortie' Termansen c0ad3d8a80 Fix error case in tfork(2). 2014-09-25 17:27:54 +02:00
Jonas 'Sortie' Termansen e29f0cdd1e Fix class process constructor forgetting some members. 2014-09-23 20:45:57 +02:00
Jonas 'Sortie' Termansen 797efbc15b Fix Ref<T> self-assignment. 2014-09-23 20:45:57 +02:00
Jonas 'Sortie' Termansen 6558de636e Fix tfork(2) not copying signal properties. 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 316ed84e60 Fix process constructor not zeroing the user timers. 2014-07-22 13:16:16 +02:00
Jonas 'Sortie' Termansen 9675bd7475 Deliver SIGPIPE on filesystem socket disconnect.
This fixes the earlier mistake where I believed sockets were not meant to
send SIGPIPE on bad writes, but the standard mandates that sockets do send
SIGPIPE in such cases.
2014-07-20 15:05:58 +02:00
Jonas 'Sortie' Termansen b4d494cf8b Implement thread creation in tfork(2). 2014-07-08 17:41:52 +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 2d8d89b9f8 Fix missing TLB-flush in exit_thread(2). 2014-07-06 22:59:40 +02:00
Jonas 'Sortie' Termansen 8b3e25ce7f Fix FileCache::ChangeNumBlocks using memory after realloc shrink. 2014-06-27 16:17:47 +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 2d46c1e63c Fix missing TLB-flush in mprotect(). 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 92d7c1807e Fix user-space filesystems not disconnecting properly. 2014-05-28 22:18:54 +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 534eb3ddd8 Fix libk being built with -mmmx, -msse and -msse2 on x86_64. 2014-05-28 17:42:19 +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 23d9693261 Fix ATA PIO driver not correctly detecting harddisk size. 2014-05-16 15:13:02 +02:00
Jonas 'Sortie' Termansen 0c48dfca96 Fix 4 KiB memory leak on x86_64 for each process. 2014-05-16 14:48:27 +02:00
Jonas 'Sortie' Termansen 4283d90102 Fix memory leak of processes that are not process group leaders. 2014-05-16 14:48:27 +02:00
Jonas 'Sortie' Termansen bcf72f71e4 Fix premature return during VGA text buffer emergency reset. 2014-04-24 00:03:52 +02:00
Jonas 'Sortie' Termansen 6cf417532e Fix uninitialized bool in kernel Descriptor class. 2014-04-22 18:06:14 +02:00
Jonas 'Sortie' Termansen 24321b0f96 Fix wrong TSS limit. 2014-04-22 18:06:00 +02:00
Jonas 'Sortie' Termansen 46105fd260 Fix missing braces in kernel/debugger.cpp. 2014-04-05 17:02:49 +02:00
Jonas 'Sortie' Termansen da87b6f0aa Fix troublesome debug assertions in kernel/process.cpp. 2014-03-31 19:47:54 +02:00
Jonas 'Sortie' Termansen 66481bef39 Fix kernel refcounted classes without virtual destructor. 2014-03-31 19:47:54 +02:00
Jonas 'Sortie' Termansen 6b8e389b47 Fix 32-bit PCI devices not having bar sizes correctly determined. 2014-03-31 19:08:51 +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 105278a500 Clean up the serial driver read and write routines. 2014-03-17 19:22:11 +01:00
Jonas 'Sortie' Termansen b7bf21bfff Open stdin, stdout and stderr in the kernel rather than init. 2014-03-17 19:22:11 +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