Commit graph

533 commits

Author SHA1 Message Date
Jonas 'Sortie' Termansen
b88853de81 Remove obsolete PLATFORM_X86 and PLATFORM_X64 macros. 2013-12-17 14:30:37 +01:00
Jonas 'Sortie' Termansen
c36b35adc2 Refactor kernel GDT code. 2013-12-17 14:30:37 +01:00
Jonas 'Sortie' Termansen
c77d9395cd Refactor kernel interrupt handling. 2013-12-17 14:30:36 +01:00
Jonas 'Sortie' Termansen
138e279e62 Remove obsolete sortix/{x86,x64}/bits.h headers. 2013-12-17 14:30:36 +01:00
Jonas 'Sortie' Termansen
7a6b4920ce Rename SYSCALL_WAIT to SYSCALL_WAITPID. 2013-12-17 14:30:36 +01:00
Jonas 'Sortie' Termansen
938f722dcb Add tcsetpgrp(2) and tcgetpgrp(2). 2013-12-17 14:30:36 +01:00
Jonas 'Sortie' Termansen
b6349e21cb Implement sending signals to process groups. 2013-12-17 14:30:36 +01:00
Jonas 'Sortie' Termansen
be0ece3fe0 Add setpgid(2) and getpgid(2). 2013-12-17 14:30:36 +01:00
Jonas 'Sortie' Termansen
2cb3f2860a Update sortix/process.cpp coding style. 2013-12-17 14:30:36 +01:00
Jonas 'Sortie' Termansen
8d420c9de7 Remove unused platform-specific scheduler file. 2013-12-17 14:30:36 +01:00
Jonas 'Sortie' Termansen
740187674a Add reference counting filesystem messages. 2013-12-17 14:30:36 +01:00
Jonas 'Sortie' Termansen
2ea7607f4e Clean up ATA PIO driver. 2013-12-17 14:30:36 +01:00
Jonas 'Sortie' Termansen
7c3740a85d Hook crash handler up against kernel debugger. 2013-12-17 14:30:36 +01:00
Jonas 'Sortie' Termansen
5d1fe2620b Add mkpartition(2). 2013-12-17 14:30:36 +01:00
Jonas 'Sortie' Termansen
d2aab888d1 Add chroot(2), fchroot(2) and fchrootat(2). 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
6a62446bab Prevent escaping the root filesystem. 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
871469d443 Add terminal support for ^L. 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
ddf3dd329f Add fchdirat(2). 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
3093623f18 Add PCI Bar utility functions. 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
df0c842b77 Add internal kernel debugger. 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
cd1cc19b01 Load program symbol tables. 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
b84d9d26d0 Update sortix/elf.cpp to current coding conventions. 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
2525de507c Add kernel symbol support. 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
834789d006 Chain kernel frame pointer list with user-space. 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
4e3692cf88 Optimize x86_64 system calls. 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
951b6edccd Improve kernel terminal line editing. 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
3c6ecd6512 Add umask(2). 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
a91af78c1f Preserve modification dates when extracting initrd. 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
27bdbf1c9d Add utimens support to inodes. 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
eb00186be1 Add x86 realtime clock support. 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
0903f4edc2 Add times(3). 2013-12-17 14:30:34 +01:00
Jonas 'Sortie' Termansen
3938f80055 Add timens(2). 2013-12-17 14:30:34 +01:00
Jonas 'Sortie' Termansen
04f797490d Add clocks for process and child execute and system time. 2013-12-17 14:30:34 +01:00
Jonas 'Sortie' Termansen
5da12519cd Maintain recursive process execution and system time. 2013-12-17 14:30:34 +01:00
Jonas 'Sortie' Termansen
1c64a7fda1 Maintain process execution and system time. 2013-12-17 14:30:34 +01:00
Jonas 'Sortie' Termansen
dbe8dafaac Refactor kernel calltrace.h header. 2013-12-17 14:30:34 +01:00
Jonas 'Sortie' Termansen
1bc470624f Refactor kernel process.h and thread.h headers. 2013-12-17 14:30:34 +01:00
Jonas 'Sortie' Termansen
7aa061e50e Refactor kernel signal.h header. 2013-12-17 14:30:34 +01:00
Jonas 'Sortie' Termansen
d0f68eec68 Refactor kernel cpu.h header. 2013-12-17 14:30:34 +01:00
Jonas 'Sortie' Termansen
71a2fef5f6 Add clock_nanosleep(2). 2013-12-17 14:30:34 +01:00
Jonas 'Sortie' Termansen
1e2550c0d5 Add clock_*(2) API. 2013-12-17 14:30:34 +01:00
Jonas 'Sortie' Termansen
2d94cd1246 Add alarm(2) and alarmns(2). 2013-12-17 14:30:33 +01:00
Jonas 'Sortie' Termansen
df5deac29b Add support for per-process timers. 2013-12-17 14:30:33 +01:00
Jonas 'Sortie' Termansen
ef32b3fcbe Add {,p}{read,write}v(2). 2013-12-17 14:30:33 +01:00
Jonas 'Sortie' Termansen
73f3d1c251 Add /dev/net/fs network device. 2013-12-17 14:30:33 +01:00
Jonas 'Sortie' Termansen
658defdbc3 Refactor pipe implementation. 2013-12-17 14:30:33 +01:00
Jonas 'Sortie' Termansen
615bf32c60 Forward declare <signal.h> API. 2013-12-17 14:30:32 +01:00
Jonas 'Sortie' Termansen
0ff17a00c8 Add O_NONBLOCK support to the kernel terminal. 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen
514fab5359 Add O_NONBLOCK support to pipes. 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen
c514dda0b2 Add O_NONBLOCK support to sockets. 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen
1052f2c47a Add O_NONBLOCK. 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen
ed5f14878d Add AT_SYMLINK_FOLLOW. 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen
79a49b2015 Add socket interface. 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen
ee106231c4 Add utimensat(2) and futimens(2). 2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen
472155173d Adopt struct timespec as the kernel time format.
Note: Incompatible ABI change.
2013-12-17 14:30:30 +01:00
Jonas 'Sortie' Termansen
8162011b5d Add <time.h> header forward declarations.
Note that many of the functions are not yet implemented.
2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen
dbc6c8c663 Add ioctl(2). 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen
ade239f18b Add {g,s}et{e,}{g,u}id(2). 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen
087bacb30f Increase user-space stack to 512 KB. 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen
38b146472e Implement F_SETFL and F_GETFL support in fcntl. 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen
ac1d64fd7e Refactor descriptor flags and security. 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen
f29abd73ec Add fsync(2). 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen
80b4287c9d Print program image path upon crash. 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen
f2556c3551 Keep track of program image path. 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen
e4bd7cad82 Add MAP_PRIVATE and MAP_SHARED to sortix/mman.h. 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen
729bfa3c32 Add readlink{,at}(2). 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen
fc8d64013d Refactor datatype declarations. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen
ce66539ff7 Free surplus unused bcache blocks. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen
9434ee94fd Add file cache. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen
dc4924585e Free the initrd after extraction. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen
54da838c79 Refactor kernel address space allocation. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen
b8f85d9ef2 Add NSIG. 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen
b9d633108d Add wctype(3). 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen
8e0aefda20 Add rename(2) and renameat(2). 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen
fd6098a3a2 Locking a NULL pointer using ScopedLock is a noop. 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen
bb284d9421 Support doing calltraces on user-space/kernel crashes. 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen
7b3fd0f06f Support doing kernel calltraces on another stack. 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen
ef53864d36 dispd: Wait for console rendering to finish.
This prevents a race condition where the console may still be rendering,
but the process may be able to get data on the screen faster, which results
in visual corruption as the two race.
2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen
ca7ad9709f Queue lfb text render commands with async render. 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen
ad0875aaac Add TextPos relations. 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen
907acf1e18 Add GetKernelProcess function to scheduler. 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen
193b76f8cb Refactor scheduler API. 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen
9ba7f26bf0 Refactor kernel time API and add timespec API. 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen
5424760719 Refactor kernel interrupt API. 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen
2ce76e3876 Refactor system call API. 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen
76fe8602f3 Add poll support to pipes. 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen
51da410dea Add poll support to log terminal. 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen
b2b55bc34a Add poll(2) and ppoll(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen
e76073cc4f Add user-space filesystem API. 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen
3b35dad9f7 Add AT_REMOVEFILE flag to unlinkat(2).
This allows unlinkat(2) to delete files and directories in the same call,
which is useful for the implementation of remove(3).
2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen
1fa2df3e6a Replace system calls that accept a path with *at versions. 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen
921deb6eeb Add linkat(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen
2ef2269168 Add fchmodat(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen
f21462bf18 Add fchmod(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen
c1280bedb0 Add fchown(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen
cb4569c615 Add fchownat(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen
f843e15666 Add truncateat(2).
Linux doesn't have this, but since I do truncate(2) in the kernel, it would
be more consistent to do it 'at'-style. (I will remove truncate(2) from the
kernel and let libc call truncateat(2) soon anyway).
2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen
37a4c8f05e Add fchdir(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen
7dd59dd2e0 Add mkdirat(2). 2013-12-17 14:30:25 +01:00
Jonas 'Sortie' Termansen
caf4a1f2c5 Add faccessat(2). 2013-12-17 14:30:25 +01:00