Jonas 'Sortie' Termansen
dd950fc996
Add AT_EACCESS support to faccessat(2).
2014-12-03 14:19:58 +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
67cbc0715c
Clean up COM driver.
2014-12-03 14:04:53 +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
ede6d8f800
Optimize pipe transfers using scheduler yield hints.
2014-12-02 21:17:14 +01:00
Jonas 'Sortie' Termansen
6a14b67feb
Optimize userfs using scheduler yield hints.
2014-12-02 21:17:10 +01:00
Jonas 'Sortie' Termansen
4c78239721
Implement yielding a timeslice to another thread.
2014-12-02 21:15:08 +01:00
Jonas 'Sortie' Termansen
78d9620b0f
Clean up kernel attribute packed use.
2014-12-02 19:36:20 +01:00
Jonas 'Sortie' Termansen
bb3f591057
Add symbolic links.
2014-12-02 17:36:36 +01:00
Jonas 'Sortie' Termansen
2586685061
Ongoing build system maintainance.
2014-12-02 17:09:28 +01:00
Jonas 'Sortie' Termansen
2ecd4c9086
Update kramfs to current coding conventions.
2014-12-02 15:44:05 +01:00
Jonas 'Sortie' Termansen
fbefc30229
Securely copy to and from user-space.
2014-12-02 15:35:50 +01:00
Jonas 'Sortie' Termansen
156e73d441
Optimize file descriptor allocation.
2014-12-01 22:51:07 +01:00
Jonas 'Sortie' Termansen
49000d3bee
Upgrade to latest upstream multiboot header.
...
Tabs were converted to spaces as the original file was inconsistently
indented. The non-standard multiboot_uintx_t types were replaced with the
standard ones from <stdint.h>.
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
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
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