Commit Graph

1017 Commits

Author SHA1 Message Date
Kevin Lange
2de88539f4 cld going into irq/isr handlers 2017-02-20 00:19:38 +09:00
Kevin Lange
51ff3df1e0 Bump to 1.0.4 2017-02-18 23:19:23 +09:00
Kevin Lange
dca9c2b9d3 Add an ioctl interface for setting video mode 2017-02-18 22:19:35 +09:00
Kevin Lange
e3d5994233 Gateways and ARP, how about that? 2017-02-18 00:34:16 +09:00
Kevin Lange
ef6527caa6 Fix recursive PCI bus scan 2017-02-17 22:12:45 +09:00
Kevin Lange
caf46a5866 Bump to 1.0.3 2017-02-15 22:06:30 +09:00
Kevin Lange
a8890a5f2d Use PIT mode 2 instead of 3
Works around what is believed to be a bug in VirtualBox where the PIT
*and* RTC were slowing down while playing quake to roughly half their
expected rates. I have no idea why this fixes the problem, but it does,
and with no expected ill effects elsewhere. With the future 64-bit
kernel, ToaruOS will no longer being using the PIT, so it doesn't really
matter anyway.
2017-02-10 14:55:24 +09:00
Kevin Lange
fc66bf325a Bump kernel for audio interface updates 2017-02-08 22:11:21 +09:00
Ofek
353ae32697 Fix unoptimized loop when rounding to page size in sys_sbrk (#145) 2017-02-06 14:23:51 +09:00
Kevin Lange
27d866f682 #pragma once 2017-02-04 20:03:00 +09:00
Kevin Lange
3d5eeb8a81 Version bump. 2017-02-03 17:28:30 +09:00
Kevin Lange
06dd1c9218 Reduce log level on message about fswait2 2017-02-03 08:38:52 +09:00
Kevin Lange
22279b02f0 Fix some edge-case tty lockups 2017-02-01 22:29:33 +09:00
Kevin Lange
6b63a05471 Final version bump for 1.0.0 2017-01-30 14:28:32 +09:00
Kevin Lange
beb5f165ab Bump kernel to 0.99.27 2017-01-29 20:32:30 +09:00
Kevin Lange
2f5e83da6b Track process start time 2017-01-29 19:30:07 +09:00
Kevin Lange
64c8e85324 Make cursor-off use a system call 2017-01-29 18:48:10 +09:00
Kevin Lange
0647e3a19a Support fswait in sockets (maybe?) 2017-01-28 23:34:40 +09:00
Kevin Lange
ba1506bd2d Bump kernel version for upgrade notices 2017-01-27 22:56:56 +09:00
Kevin Lange
7c6004b1a8 Bump kernel (for several updates from today) 2017-01-26 22:27:46 +09:00
Kevin Lange
ae64757838 Cleanup timeout sleep nodes if something else woke us up 2017-01-26 18:57:08 +09:00
Kevin Lange
80f85db895 Add a syscall to change cmdline (for thread names) 2017-01-26 16:15:43 +09:00
Kevin Lange
fc08dbc8e8 Bump kernel. 2017-01-24 21:52:28 +09:00
Kevin Lange
984db775a1 Bump kernel 2017-01-23 23:01:40 +09:00
Kevin Lange
b15ed83f20 Other random kernel fixes. 2017-01-23 22:59:59 +09:00
Kevin Lange
e1cc8a936b Fix an issue where trying to wake up a zombie would do exactly what that sounds like it would do 2017-01-23 22:59:31 +09:00
Kevin Lange
736e886ea8 Fix a big leak with fswait 2017-01-23 19:51:21 +09:00
Kevin Lange
28c3ee0fa6 Bump kernel 2017-01-22 20:35:59 +09:00
Kevin Lange
c0ef0105fe Bump kernel for new module stuff 2017-01-21 15:38:02 +09:00
Kevin Lange
42e25d1231 Support for checking network status from userspace 2017-01-21 12:23:17 +09:00
Kevin Lange
34c24e5275 wake up init when it is receiving new children 2017-01-20 14:49:48 +09:00
Kevin Lange
dd0457ee2e Bump kernel version for incoming changes 2017-01-20 13:46:41 +09:00
Kevin Lange
5b2171a4fb Track mount types for vfs mounts 2017-01-20 13:45:46 +09:00
Kevin Lange
be263cd3cb Bump kernel version to v0.99.17 2017-01-17 23:52:42 +09:00
Kevin Lange
1d53e401c4 Actually set a dev value for stat 2017-01-17 23:50:06 +09:00
Kevin Lange
8fc3c07f4b Support fswait in (unix) pipes 2017-01-14 12:00:46 +09:00
Kevin Lange
dd823cd835 Bump kernel to 0.99.12 2017-01-08 20:12:48 +09:00
Kevin Lange
a284789c75 Close file descriptors >=3 on exec. 2017-01-08 19:43:34 +09:00
Kevin Lange
77e5c5c943 Change when proc->cmdline is set in exec 2017-01-08 19:42:54 +09:00
Kevin Lange
ca8d3af8c7 Bump kernel version to 0.99.11 2017-01-08 17:39:54 +09:00
Kevin Lange
ffe78daf18 Add timeouts to fswait (with new fswait2) and fix signals when fswaiting 2017-01-07 23:53:58 +09:00
Kevin Lange
217b7182a6 Actually bump version to something meaningful 2017-01-06 19:34:51 +09:00
Kevin Lange
6e0562b78e Improve some debug messages 2017-01-06 19:34:09 +09:00
Kevin Lange
7301a3c29a Bump kernel version 2017-01-06 19:14:19 +09:00
Kevin Lange
7d47cab8ab Support fswait in tty 2017-01-06 19:01:22 +09:00
Kevin Lange
665343e636 First pass at a select-like fs wait function 2017-01-06 18:30:17 +09:00
Kevin Lange
2dbf655c9c Fix unixpipe permissions (and thus fgrep, prepend, etc.) 2017-01-05 22:21:49 +09:00
Kevin Lange
ce875e1938 Bump kernel version to 0.99.7 2016-12-30 19:57:31 +09:00
Kevin Lange
364f70cd8b Detect some bad cases with process queuing 2016-12-30 18:46:29 +09:00
Kevin Lange
80664e0f8e Add stacktrace to kernel assertion failure message 2016-12-30 18:46:14 +09:00
Kevin Lange
325e059af2 Fix init kernel stack size 2016-12-30 18:13:10 +09:00
Kevin Lange
22390fce45 Support building with -fsanitize=undefined 2016-12-26 18:02:47 +09:00
Kevin Lange
8b1acc5b66 Various random fixes 2016-12-26 18:02:47 +09:00
Kevin Lange
1e5b785b0d GCC and Binutils upgrade attempt 2016-12-26 09:48:37 +09:00
Kevin Lange
9901f15d70 Allow esoteric boot configs 2016-12-24 14:06:05 +09:00
Kevin Lange
8ef8dec183 Add link support in tmpfs 2016-12-19 23:28:03 +09:00
Kevin Lange
58f1ad6bc5 Call readlink_fs instead of node directly 2016-12-19 23:27:45 +09:00
Kevin Lange
26c78333ec Rough, incomplete VFS permissions 2016-12-14 21:21:32 +09:00
Kevin Lange
b7da7a4f73 Fix debug backdoor to not crash on null format string 2016-12-10 20:09:21 +09:00
Kevin Lange
39da315a48 Build a dynamic userspace.
- Builds (terrible, broken) shared versions of (most) third-party
  dependencies for the userspace.
- Fixes several incorrect dependency mappings in auto-dep.
- Makes auto-dep understand shared libraries (and that some things,
  like OSMesa, don't work with them).
- init must be built static because reasons
- some libraries were cleaned up to fix dependency calculation
- version bumped to 0.99.0 (saten) for eventual 1.0.0 release.
- CDs no longer drop teapot, select-wallpaper (space is available
  for them - we could even make the images smaller)
2016-12-03 17:10:48 +09:00
Kevin Lange
c56d40f132 Try to fix args in linker 2016-12-03 00:14:49 +09:00
Kevin Lange
270f3324a0 New kernel elf loader 2016-12-02 17:53:53 +09:00
Kevin Lange
03962d45a5 Attempt load dynamic binaries with the loader 2016-12-02 12:54:01 +09:00
Kevin Lange
f57be44604 Add a dumb syscall to force an address+size to be mapped in userspace 2016-12-01 23:23:31 +09:00
Kevin Lange
5e39becfce Add missing Elf32_Dyn definition to elf header 2016-11-29 21:34:21 +09:00
Kevin Lange
124ea87658 Fix missing element in elf phdr struct 2016-11-24 19:36:25 +09:00
Kevin Lange
e827580b79 Add ugly hack to support loader 2016-11-24 19:36:15 +09:00
Peter Harliman Liem
6073d23abe Fix potential leak in mkdir_fs error path 2016-11-21 19:35:16 +09:00
Kevin Lange
8ac9742906 Add a userspace interface for loading modules 2016-10-26 14:11:12 +09:00
Kevin Lange
ce34e6a40f Disable FPU lazy switching (it's breaking bochs) 2016-09-26 15:25:30 +09:00
Kevin Lange
6297bac128 Preview mkdir from creating directories that already exist 2016-09-18 21:19:20 +09:00
Kevin Lange
51fd0a83b0 Various fixes for Python 2016-09-15 19:18:57 +09:00
Kevin Lange
f0f4489d87 remove duplicate bus scan? 2016-09-13 16:24:24 +09:00
Kevin Lange
779909ae5b Disable PCI-PCI bridge recursion (it's broken) 2016-09-13 15:59:09 +09:00
Kevin Lange
caef2a0d27 Disable caching for MMIO regions 2016-09-09 09:25:39 +09:00
Kevin Lange
e7f7a40da3 Bump version to v0.14.1 2016-09-04 13:55:43 +09:00
Kevin Lange
48c9f2ffc0 Bump to v0.14.0 and update codename 2016-09-01 10:21:37 +09:00
Kevin Lange
6027f71d60 Add some new entries to the PCI device list 2016-08-31 10:16:27 +09:00
Kevin Lange
ee81679c40 Break out vbox guest driver
- Add general support for changing display resolution.
- Support display resolution changes in the vmware svga driver.
- Add a small module to add a set_mode command to the debug shell.
- Include these modules on CDs.
- Include the vidset module in debug/qemu targets.
2016-08-30 16:37:17 +09:00
Kevin Lange
a9fabe285d Initial support for changing display modes 2016-08-30 15:45:58 +09:00
Fabien Siron
01ebba1a52 Improve code readability of the cmos driver 2016-01-27 19:00:14 +00:00
Fabien Siron
135c881e4d Improve cmos reading 2016-01-27 17:51:46 +00:00
Kevin Lange
1257e0424c Bump version to 0.13.0 and change codename to mikoto 2015-12-15 22:41:22 -08:00
Kevin Lange
d8f9c3e085 remove incorrect description of strtok_r 2015-12-15 22:36:20 -08:00
Kevin Lange
a649abbdb8 Fix a leak when spawning threads 2015-11-05 22:28:52 -08:00
Kevin Lange
4893d4899b Bump version to v0.12.0 2015-11-05 22:19:18 -08:00
Kevin Lange
292f535a6a Fix critical directory release refcount issue 2015-11-05 22:18:49 -08:00
Kevin Lange
43629a0b13 Fix a minor memory leak due to improper file pointer operations 2015-11-05 21:44:41 -08:00
Kevin Lange
e195298e5b multiboot graphics request should consist of longs not bytes 2015-09-18 20:00:58 -07:00
Kevin Lange
19a35b3c8e Cleanup fetch, net_recv 2015-08-05 20:03:44 -07:00
Kevin Lange
ea5ea6ec2e Hacky method of tracking disconnects so we can EOF 2015-08-03 21:54:55 -07:00
Matt White
a27d971fef No longer place TCP ACKs with no payload in receive queue 2015-07-31 10:57:51 -07:00
Kevin Lange
93549c53f6 hacked-together irc stuff 2015-07-31 09:30:20 -07:00
Matt White
46345f9c29 Rudimentary support for multiple connections. Seq/Acks are probably not great 2015-07-31 00:41:35 -07:00
Matt White
4547929321 Can successfully send valid SYN packet 2015-07-30 22:40:21 -07:00
Matt White
f34285a3de Removed bit fields and change to doing some bit math to remove compiler warnings 2015-07-30 17:02:14 -07:00
Matt White
de43948e73 Fix wrong struct name 2015-07-30 16:54:07 -07:00
Matt White
19c5b581ab Remove dependency of net module on rtl module 2015-07-30 16:46:08 -07:00
Matt White
3447ffcb03 Super basic outline of separating network stuff from rtl module into net module 2015-07-30 15:48:31 -07:00
Kevin Lange
514fef6b9f Bump version to v0.11.1 2015-07-12 19:08:38 +09:00
Kevin Lange
a0c1350369 Fix next_pid to not reallocate PIDs immediately 2015-07-02 21:39:43 -07:00
Kevin Lange
ce05bdbff7 Actually fix the math on bitsets 2015-07-02 21:25:11 -07:00
Kevin Lange
cb8f821489 Fix incorrect default state and bit math for bitsets 2015-07-02 14:56:35 -07:00
Kevin Lange
b2d0021a63 Terrible hack for combining modules [ci skip]
Please don't use this, it's a workaround for iPXE module limits.
2015-06-23 20:15:19 -07:00
Kevin Lange
3b48ab5be1 Bump version to 0.11.0 2015-06-10 21:00:47 -07:00
Kevin Lange
20367b15f9 Fixups for merging symlinks 2015-06-10 20:59:27 -07:00
Mike Gerow
a7f27a604d Cleaned up debug_print calls 2015-06-05 00:38:13 -07:00
Mike Gerow
84846c6dac Added symlink support to ext2 module 2015-06-03 19:08:38 -07:00
Mike Gerow
e8689bb0c6 Added symlink support to vfs and plumbed it to syscall layer
This commit requires a rebuild of the toolchain.
2015-06-03 19:07:08 -07:00
Kevin Lange
7f07d7403e Fix very broken comparisons 2015-06-02 21:29:28 -07:00
Kevin Lange
212efda313 Fix a bad memset that was breaking reboots on ramdisks 2015-06-02 12:15:38 -07:00
Kevin Lange
20c9535d29 Clean up termemu and add a new kernel vga logging mechanism 2015-06-01 00:20:02 -07:00
Kevin Lange
027d979fbc Fix incorrectly 0'd userspace entry pointer; bad pointer validate in stat_node 2015-05-29 16:12:04 -07:00
Kevin Lange
a4d749a91a fix memcpy/memset clobbers, etc. 2015-05-26 23:38:21 -07:00
Kevin Lange
3bf0d0ed89 Mark off 0.10.1 2015-05-21 14:39:00 -07:00
Dale Weiler
d6ff2dc428 Better PID allocation technique 2015-05-21 16:23:31 -04:00
Dale Weiler
e27cb1b96f Align stack pointer on kernel proper entry to 16-byte. Eliminate dead-lock in frame allocator on OOM. Formatting. 2015-05-21 15:09:42 -04:00
Dale Weiler
a699c91ddd ISR/IRQ cleanup 2015-05-21 13:22:06 -04:00
Dale Weiler
0dbd5ab089 Cleanup and improve spin lock code 2015-05-21 04:28:14 -04:00
Dale Weiler
3820512357 Merge branch 'strawberry-dev' of github.com:klange/toaruos into strawberry-dev 2015-05-21 03:15:19 -04:00
Dale Weiler
57de8417fa formattng 2015-05-21 03:13:47 -04:00
Dale Weiler
cb0e217c31 Cleaned up, optimized and rewrote crucial parts of libc for the kernel, fixed a few bugs as well. 2015-05-21 03:12:09 -04:00
Kevin Lange
1654d371e3 Marking off 0.10.0 2015-05-20 20:34:20 -07:00
Dale Weiler
12ef7fba8b Optimizations 2015-05-20 23:32:21 -04:00
Dale Weiler
6e1a594adc Wait for IO on IRQ remap. 2015-05-20 23:08:58 -04:00
Dale Weiler
5ddbbf8199 Some IRQ cleanup 2015-05-20 19:52:19 -04:00
Dale Weiler
82d706f453 Rewrite IDT code 2015-05-20 18:53:03 -04:00
Dale Weiler
51fbc77e3f Eliminate superfluous strlen pass in vasprintf 2015-05-20 18:21:39 -04:00
Dale Weiler
d6a7db993e Use PUSH macro when setting up thread argument and return address 2015-05-20 16:53:14 -04:00
Dale Weiler
333d97bc7a Fix system calls 2015-05-20 16:45:30 -04:00
Dale Weiler
c9f9625722 Use uintptr_t and document sys_mount arguments which are not used with a TODO 2015-05-20 14:59:47 -04:00
Dale Weiler
117225b626 Cleanup system call code and improve branch prediction. 2015-05-20 14:14:51 -04:00
Dale Weiler
31900155fb ring3 switch code in user.S now 2015-05-20 04:46:10 -04:00
Dale Weiler
ca5a319ee6 Validate syscall inputs 2015-05-20 03:34:39 -04:00
Dale Weiler
01176e0f97 Use GAS instead of YASM. 2015-05-20 03:12:20 -04:00
Kevin Lange
9d41b3fc25 Merge branch 'mixer-rebase' of https://github.com/gerow/toaruos into gerow-mixer-rebase 2015-05-18 21:15:25 -07:00
Kevin Lange
9a72bfc4cd Add half-assed support for IRQ chaining.
We only support 4 total chain entries at the moment, but that can be
"easily expanded"... We don't really have a lite dynamic vector, just
the big fat dynamic lists, so improving on this needs some extra effort.

This commit also drags in a bunch of random network work by necessity.
2015-05-18 21:07:06 -07:00
Kevin Lange
b4d7e263b6 Fix critical issue in spawn_process 2015-05-18 21:05:41 -07:00
Mike Gerow
0f35a5bfe3 Add ioctl interface for snd mixer 2015-05-17 20:31:36 -07:00
Mike Gerow
f53ea98e05 Implement snd mixer interface in ac97.c 2015-05-17 20:31:36 -07:00
Mike Gerow
ad708efd5a Add support for managing mixer knobs to snd interface 2015-05-17 20:31:36 -07:00
Kevin Lange
9df3810da9 Separate pipe write/read locking 2015-05-15 22:51:27 -07:00
Mike Gerow
b06b4af8b9 Add snd sound subsystem.
It's got a long way to go, but this provides basic mixing between
applications.
2015-05-15 01:04:07 -07:00
Mike Gerow
fd8c5db72a Surround list macros in parens in order to allow calls like this:
list_t list;
foreach(node, &list) {
  ...
}
2015-05-15 01:04:07 -07:00
Kevin Lange
e1720dbc8a Fix allocation of common symbols in modules
Fixes #87
2015-05-14 09:47:23 -07:00
Kevin Lange
66938e3123 Fix symbols not marked extern 2015-05-14 09:32:52 -07:00
Mike Gerow
ac17214207 Added ability to check if an IRQ is already occupied.
A proper solution would probably be to introduce shared IRQs at some
point in time.
2015-05-13 01:33:05 -07:00
Kevin Lange
648aedc0a4 Use a different resynch strategy for timer 2015-05-01 23:01:12 -07:00
Kevin Lange
4fd1ae9aa3 Support scrollwheel mice 2015-04-26 18:05:14 -07:00
Kevin Lange
7344a50fe0 Major changes to timing interfaces
- The kernel version has been bumped to 0.9.0
- The timer resolution in the kernel has been increased to millseconds.
- The preemptive scheduling interval has been descreased to one
  millisecond.
- Relative sleep continues to use 10 millsecond intervals for legacy
  reasons.
- `gettimeofday` now uses the internal tick counter to calculate the
  current time. Drift is calculated from the CMOS every 5 seconds and
  applies only to `gettimeofday` and other places that use it.
- The resolution of timing information provided by debug functions has
  been increased to three digits (milliseconds).
- The resolution of timing information provided by the procfs uptime
  virtual file has been increased to three digits (milliseconds).
- Functions have been added to the debug shell to read the TSC. The TSC
  is not used in timing functions at this time.
2015-04-14 23:05:07 -07:00
Kevin Lange
4a36d6bb9e Fix a potential deadlock and improve irq on/off 2015-04-13 23:39:23 -07:00
Kevin Lange
5f84e679ca Add more flags to <ipv4.h> 2015-04-04 12:18:36 -07:00
Kevin Lange
a73a033a29 Experimental updates to write support in ext2 (incomplete, internals only) 2015-02-11 23:12:01 -08:00
Kevin Lange
990d6ae269 Fix #54 - missing close/free in sys_chdir 2014-10-07 10:46:54 -07:00
Kevin Lange
6d2bcef1cb Fix root= argument 2014-08-15 16:25:15 -07:00
Kevin Lange
09a38b3abb Remove unused label 2014-06-11 18:51:36 -07:00
Kevin Lange
87c212017b Various bits of cleanup to unbreak mounting 2014-06-09 21:21:46 -07:00
Kevin Lange
17e332b5e7 expose mounting to userspace 2014-06-09 20:13:11 -07:00
Kevin Lange
d3cddf169a And then some more magic to merge the vimhints and the copyright headers 2014-06-07 23:58:31 -07:00
Kevin Lange
1287af81ef Reinsert vim hints magically 2014-06-07 23:51:01 -07:00
Kevin Lange
71fa8d5185 ... missed a couple 2014-06-07 23:48:18 -07:00
Kevin Lange
a2ed4b4f0e strip vim: lines from kernel 2014-06-07 23:43:21 -07:00
Kevin Lange
e1a9cd87d2 Include additional contributors in kernel/main.c 2014-06-07 23:31:45 -07:00
Kevin Lange
ef7d72c1e1 License headers and a tool to generate them 2014-06-07 23:13:29 -07:00
Kevin Lange
dcaa023347 Processes now inherit names 2014-06-07 18:32:10 -07:00
Kevin Lange
02dbc0e1f4 some vague attempt at revealing links in stat 2014-06-07 12:58:45 -07:00
Kevin Lange
f21ab2b3fb Default st_nlink to 1, not 0 2014-06-05 22:19:46 -07:00
Kevin Lange
34d81fca37 Probably fix mkdir in tmpfs 2014-06-05 19:08:07 -07:00
Kevin Lange
3f6a5e0fdc remove debug output from shebang exec 2014-06-03 23:21:38 -07:00
Kevin Lange
3e03dffc4b merge 2014-06-03 23:20:46 -07:00
Kevin Lange
5eacca2361 Fix argument handling and recursive shebangs 2014-06-03 20:42:59 -07:00
Kevin Lange
4733a26c74 Fix argument offsets 2014-06-01 23:37:00 -07:00
Kevin Lange
389f20f140 fairly naïve shebang implementation 2014-06-01 23:10:11 -07:00
Kevin Lange
fb49a12728 Add reverse foreach for lists 2014-06-01 12:56:55 -07:00
Kevin Lange
9eb63b4bfd more room for panic messages 2014-06-01 01:32:33 -07:00
Kevin Lange
6296aff867 Fix handling of eof in login 2014-05-30 17:05:49 -07:00
Kevin Lange
9eef96cb6a ^D should actually not echo 2014-05-29 23:41:17 -07:00
Kevin Lange
d4b334f119 Remove redundant r_b_interrupts in tty 2014-05-29 22:08:52 -07:00
Kevin Lange
53aee7dc38 Implement ^D 2014-05-29 21:39:56 -07:00
Kevin Lange
84420f9e5c Support closing packetfs connections 2014-05-28 19:21:56 -07:00
Kevin Lange
252fe84ab0 Close and cleanup before we reap. 2014-05-27 23:20:02 -07:00
Kevin Lange
c5d79b2bc6 Fix a memory leak in file opening 2014-05-27 22:52:37 -07:00
Kevin Lange
049057cd23 reenable sigpipe delivery 2014-05-27 21:42:22 -07:00
Kevin Lange
d696f51f8b Real unix pipes 2014-05-27 21:38:30 -07:00
Kevin Lange
ab2a9f056f Quick and dirty display server nesting - lots of mouse event changes 2014-05-26 12:43:22 -07:00
Kevin Lange
f054cebdce naive implementation of sudo and possibly insecure setuid support 2014-05-25 21:59:51 -07:00
Kevin Lange
18251f66c1 Merge pull request #46 from lioncash/leak
Fix a memory leak within vfs.c in kopen.
2014-05-21 17:55:49 -07:00
Lioncash
935f594cd3 Fix a memory leak within vfs.c in kopen. 2014-05-21 20:41:26 -04:00
Lioncash
55bf5fe03d Fix incorrect module size in kmain. 2014-05-21 20:22:24 -04:00
Kevin Lange
290eb0f344 Some IRC cleanup 2014-05-19 19:39:04 -07:00
Kevin Lange
dff654ae93 Reduce debug messages for waitpid to INFO level 2014-05-18 10:27:28 -07:00
Kevin Lange
1dfa71aee9 A start on cleaning up network stack 2014-05-17 23:16:30 -07:00
Kevin Lange
03f8f5062c Interactive IRC connection 2014-05-17 12:40:01 -07:00
Kevin Lange
3ae82af245 Fix DHCP packets 2014-05-14 00:37:06 -07:00
Kevin Lange
98d6516cd4 Craft our own packets instead of using prebuilt ones 2014-05-13 22:09:15 -07:00
Kevin Lange
1f3066d949 Display graphical panic on out-of-memory 2014-05-10 20:22:04 -07:00
Kevin Lange
913c4b004f make the video panic screen display a message 2014-05-10 19:12:31 -07:00
Kevin Lange
898c5f23d3 Desaturate entire display on kernel panic 2014-05-10 14:03:13 -07:00
Kevin Lange
e37fdd2b4b Various bits of cleanup; actually examine packets 2014-05-08 19:29:23 -07:00
Kevin Lange
cecf4f619d Oops, only do that for certain allocations 2014-05-07 00:09:15 -07:00
Kevin Lange
d50710e250 Fix erroneous irq ack 2014-05-06 23:27:58 -07:00
Kevin Lange
e5a8ed3a68 Not the cleanest, but better than before... 2014-05-06 22:38:21 -07:00
Kevin Lange
b824abf250 Kill lwip stuff; add back in native rtl driver
Now with actual working stuff.
2014-05-06 22:14:05 -07:00
Kevin Lange
5319ce7e80 Fix an edge case failure in elf allocation 2014-05-03 15:35:24 -07:00
Kevin Lange
15c0208e99 Show user EIP for segfaults in kernel 2014-05-03 15:35:03 -07:00
Kevin Lange
ce48da7973 Fix debug_shell module 2014-05-03 00:15:07 -07:00
Kevin Lange
edd086b4aa Bump version to 0.7.2 2014-05-02 23:28:27 -07:00
Kevin Lange
10e241e982 Fix non-syscall validate 2014-05-02 19:28:14 -07:00
Kevin Lange
976c086e9c Define num_syscalls at compile time 2014-05-02 18:52:43 -07:00
Kevin Lange
fe19f4ad19 Extensive syscall table cleanup 2014-05-02 18:47:41 -07:00
Kevin Lange
bff1314c29 Add a header with syscall numbers 2014-05-02 18:34:38 -07:00
Kevin Lange
ac32220090 Remove disabled block of unneeded code in fork 2014-05-02 18:34:25 -07:00
Kevin Lange
bd73b07da9 Drop a few more legacy syscalls 2014-05-02 10:58:28 -07:00
Kevin Lange
e16043684a Only bother to deliver non-ignored blocked signals
So we don't accidentally interrupt a read or something.
2014-04-29 00:52:36 -07:00
Kevin Lange
4d8335ad75 Implement proper wait/waitpid.
This is a pretty big commit, so let's run through it in parts:

- All of the userspace changes are to switch away from syscall_wait
  Mostly, this is to waitpid; some things were tweaked to do things
  "properly" instead of waiting for particular processes. Init has
  been fixed to do a proper spin wait.
- syscall_wait is gone - as are its uses. newlib bindings have been
  using just waitpid for a while now.
- waitpid now performs like a Unix waitpid
- process reaping is no longer a "do this on next change thing":
  it happens when a process is waited on, like it should
  (That means we can have real zombies: terminated processes that
  have not yet been waited on)
- Reparenting of children to init has been implemented, so you
  can fork-daemonize!

Overall, this is pretty big... So I hope it doesn't break everything.
2014-04-27 01:37:33 -07:00
Kevin Lange
1c65d3d663 Include git short sha in version string instead of -dev 2014-04-26 22:17:30 -07:00
Kevin Lange
2db3fccd24 Do a better job with page table management 2014-04-25 23:17:20 -07:00
Kevin Lange
f9db32ec99 Bump version 2014-04-25 20:39:09 -07:00
Kevin Lange
1f235bb3e7 Don't forget to invalidate page directories after we free everything 2014-04-25 20:02:30 -07:00
Kevin Lange
8a786b6ffe Fix some potential mapping issues 2014-04-25 19:48:43 -07:00
Kevin Lange
4beb3a42dc throw frame allocation behind a lock so it's atomic 2014-04-25 00:15:08 -07:00
Kevin Lange
dedc201bc1 Ensure {0,0} auxv makes it into memory 2014-04-24 23:02:28 -07:00
Kevin Lange
e2a6ce072d Fix call to external malloc from klrealloc 2014-04-24 22:38:12 -07:00
Kevin Lange
e3ffd36083 Fix critical exec issue with not freeing old dir
We weren't freeing old page directories on exec, so regardless of the
actual size needed for the new process, we ended up with a huge address
space usage. Now, all of the memory from the other process is going to
be copied on the fork, and we can't do anything about that (beyond
writing a separate syscall that forks+replaces without the copy, or
implementing CoW, the latter being preferred) but that's at least a
well-know "problem".
2014-04-24 00:03:55 -07:00
Kevin Lange
c31bedd69e Let's just ... not do that 2014-04-21 19:40:28 -07:00
Kevin Lange
d0bfc0a5bb Efficient reallocation of SHM chunks (mostly) 2014-04-20 17:11:35 -07:00
Kevin Lange
d967fae3a5 Track down the root of that malloc problem 2014-04-20 13:19:52 -07:00
Kevin Lange
d99dc5688e Fix a glitch with signal handling 2014-04-19 19:10:22 -07:00
Kevin Lange
ff56f48ed5 Handle common symbols in module loader 2014-04-19 13:21:56 -07:00
Kevin Lange
3459f19443 List all undefined symbols before bailing when loading modules 2014-04-19 00:08:42 -07:00
Kevin Lange
ead93c5307 Probably as good a time as any to mark off 0.7.0 2014-04-18 20:40:25 -07:00
Kevin Lange
9b3cfc7fe6 More gracefully handle cases where ramdisk is big 2014-04-15 23:10:00 -07:00
Kevin Lange
6c6c3e18c1 Don't spam the log when increases the kernel heap 2014-04-15 19:57:25 -07:00
Kevin Lange
9ad1b50cb8 Change how we determine that a process is in a queue 2014-04-13 02:05:12 -07:00
Kevin Lange
d43f517464 Remove a lock from something that shouldn't be locking anyway 2014-04-13 02:05:01 -07:00
Kevin Lange
7d2083cae9 handle printf("%s", NULL) without crashing 2014-04-13 02:04:34 -07:00
Kevin Lange
20a1c56023 Fix some major paging issues 2014-04-13 02:04:01 -07:00
Kevin Lange
c1a2c312bb Fix a typo and a potentially crash with timers 2014-04-13 02:03:11 -07:00
Kevin Lange
d25e66b4bf Fix a null dereference from lists/trees 2014-04-13 02:02:17 -07:00
Kevin Lange
bf5d607a83 Fix extern declaration of isrs table 2014-04-13 02:01:56 -07:00
Kevin Lange
1f4d108c6c Don't allocate buffer on stack 2014-04-13 02:01:31 -07:00
Kevin Lange
0033d16cfa Fix a bad printf in syscalls 2014-04-13 02:01:20 -07:00
Kevin Lange
402392c109 Fix a potential crash on kernel tasklet startup 2014-04-13 02:01:08 -07:00
Kevin Lange
5a5cb62ce0 kill sockfs, what even is this 2014-04-13 00:51:37 -07:00
Kevin Lange
367c31c687 Restructuring intial paging setup 2014-04-12 23:03:56 -07:00
Kevin Lange
5673c2ee8f Cleanup fault handling 2014-04-12 23:03:44 -07:00
Kevin Lange
8cd386ba5b Set up a fake device for early boot logging 2014-04-12 23:02:03 -07:00
Kevin Lange
9e50872d5e Add multiboot mem map struct 2014-04-12 23:01:38 -07:00
Kevin Lange
e11edbbfd4 Don't calculate syscall table size at runtime 2014-04-12 23:00:59 -07:00
Kevin Lange
5a134e9a67 Fix missing header include 2014-04-12 18:46:25 -07:00