Commit graph

354 commits

Author SHA1 Message Date
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
Jonas 'Sortie' Termansen
823d3a3e2f Add fsblkcnt_t and fsfilcnt_t. 2014-03-17 19:22:10 +01:00
Jonas 'Sortie' Termansen
0117c4fbc7 Improve ix86 and x86_64 data types ABI.
Increase gid_t to an unsigned 64-bit integer.
Increase id_t to an unsigned 64-bit integer.
Increase pid_t to a signed 64-bit integer.
Increase time_t to a signed 64-bit integer.
Increase uid_t to an unsigned 64-bit integer.

Note: This is an incompatible ABI change.
2014-03-17 19:22:10 +01:00
Jonas 'Sortie' Termansen
6419df7a6d Fix missing includes from private kernel headers. 2014-03-17 17:00:00 +01:00
Jonas 'Sortie' Termansen
739f8ba865 Fix <sortix/uio.h> not declaring size_t. 2014-03-17 17:00:00 +01:00
Jonas 'Sortie' Termansen
cfa3b19cf2 Fix <sortix/itimerspec.h> not declaring struct timespec. 2014-03-17 17:00:00 +01:00
Jonas 'Sortie' Termansen
2fe4a1ca92 Fix <sortix/initrd.h> not including <stdint.h>. 2014-03-17 17:00:00 +01:00
Jonas 'Sortie' Termansen
3a1c89f7a5 Fix tcgetpgrp resetting the foreground process group to zero. 2014-03-17 16:59:59 +01:00
Jonas 'Sortie' Termansen
9cc2f555e5 Fix print format warnings in kernel/syscall.cpp. 2014-03-01 14:37:42 +01:00
Jonas 'Sortie' Termansen
093d583dea Fix print format warnings in kernel/x86-family/memorymanagement.cpp. 2014-03-01 14:37:42 +01:00
Jonas 'Sortie' Termansen
fc713baba3 Rename libc-sortix to libk. 2014-03-01 14:37:42 +01:00
Jonas 'Sortie' Termansen
0ac60d68ea Add function for clearing user-space memory from the kernel. 2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen
5559377532 Replace kernel STATIC_ASSERT macro with C++11 static_assert. 2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen
292cca5f0e Update kernel/copy.cpp to current coding conventions. 2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen
cf352a64a7 Update kernel/syscall.cpp to current coding conventions. 2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen
cd254cd799 Remove kernel/utf8.{cpp,h}. 2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen
7a6b222e07 Update kernel/uart.{cpp,h} to current coding conventions. 2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen
c3f1550bba Remove kernel/serialterminal.{cpp,h}. 2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen
6d79781497 Update kernel/x86-family/x86-family.{cpp,h} to current coding conventions. 2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen
cacd010066 Update kernel/{x64/x64,x86/x86}.cpp to current coding conventions. 2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen
fcb8ae3af3 Update kernel/{x64,x86}/thread.cpp to current coding conventions. 2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen
ccb0f368a3 Update kernel/{x64,x86}/process.cpp to current coding conventions. 2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen
3fa5fff3f5 Update kernel/linebuffer.{cpp,h} to current coding conventions. 2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen
bb3b6b0260 Update kernel/kb/ps2.{cpp,h} to current coding conventions. 2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen
6e6df64fa8 Update kernel/kb/layout/us.{cpp,h} to current coding conventions. 2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen
263cc21058 Update <sortix/kernel/sortedlist.h> to current coding conventions. 2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen
d5b1d4853d Update kernel/end.cpp to current coding conventions. 2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen
a099f82890 Update kernel memory management to current coding conventions. 2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen
1e671aa8cd Rename struct kernel_dirent::d_off to d_nextoff.
The d_off field exists on other operating systems and the kernel used the
field in an incompatible manner. The easy solution is to call the field
something else and later address the design mistake.
2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen
da933464e5 Add d_namlen, d_dev, and d_type to struct dirent. 2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen
4f4594037f Sort <sortix/__/types.h> types. 2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen
6788f0096e Preprocess assembly files with the C preprocessor. 2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen
98a87fa1e5 Rename Sortix kernel directory to kernel. 2014-03-01 14:37:39 +01:00