Commit Graph

704 Commits

Author SHA1 Message Date
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