Commit Graph

246 Commits

Author SHA1 Message Date
Kevin Lange
3e605ec2d8 Crank the volume a bit 2015-05-13 18:58:24 -07:00
Kevin Lange
034cd38cf4 Gracefully handle failures to load audio files 2015-05-13 18:52:00 -07:00
Kevin Lange
5573199c4e Actually let the file finish playing instead of cutting it off 2015-05-13 18:39:56 -07:00
Kevin Lange
a3ca443492 Don't bind shell functions if we didn't find it 2015-05-13 15:27:41 -07:00
Kevin Lange
fb9e02fbd8 Clean up AC97 driver for merge 2015-05-13 15:26:28 -07:00
Mike Gerow
3b60e8c36f Added experimental ac97 driver.
This doesn't include a userland interface, but it does include a couple
of commands for the debug shell. ac97_status, which shows some register
and port values for the ac97 and ac97_noise which attempts to play a
(very annoying) 440Hz sine wave through the sound card.
2015-05-13 01:35:55 -07:00
Kevin Lange
85795869f2 Add an early boot testing module 2015-05-03 18:36:57 -07:00
Kevin Lange
0cdcef9b3e When requesting larger video modes, map more memory 2015-05-03 18:36:02 -07:00
Kevin Lange
59d0481db4 Fix pcspkr timing 2015-04-30 16:34:23 -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
b54e2d1b54 Several ridiculous hacks for networking 2015-04-04 12:19:10 -07:00
Kevin Lange
c11a871ad5 Support PCI init from VirtualBox BGE 2015-04-04 12:18:09 -07:00
Kevin Lange
d44289b593 empty stub intel hda module 2015-04-04 11:48:57 -07:00
Kevin Lange
f33f723735 Remove ext2 debug stuff 2015-02-15 17:40:31 -08:00
Kevin Lange
a9f5727a8b sketchy incorrect unlink and truncate on open 2015-02-12 21:43:20 -08:00
Kevin Lange
e64eb6c90c Cleanup and bugfixes for previous ext2 work 2015-02-12 21:02:02 -08:00
Kevin Lange
25df3dfe0e File permissions when writing ext2 2015-02-12 20:34:40 -08:00
Kevin Lange
ba65120b0a More experimental ext2 write support - vfs linkage 2015-02-12 20:24:29 -08:00
Kevin Lange
a73a033a29 Experimental updates to write support in ext2 (incomplete, internals only) 2015-02-11 23:12:01 -08:00
Kevin Lange
4b1778293b Add a silly module for debugging on my netbook 2015-02-04 19:53:16 -08:00
Kevin Lange
a7eb739963 Support notably slower drives 2015-02-04 19:53:02 -08:00
Kevin Lange
91c51272bc Copyright years (hello 2015) 2015-02-03 19:43:04 -08:00
Kevin Lange
f631283fb2 minor keyboard module cleanup 2015-02-03 15:19:09 -08:00
Kevin Lange
724a58930f Fix rtl_ircd startup sequence 2014-08-05 22:33:56 -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
b58f7ed353 Strip vim hints from modules 2014-06-07 23:45:54 -07:00
Kevin Lange
d3b4a7c5dc Tweak a few extraneous copyright headers 2014-06-07 23:29:17 -07:00
Kevin Lange
ef7d72c1e1 License headers and a tool to generate them 2014-06-07 23:13:29 -07:00
Kevin Lange
09c8678953 add a debug shell command to replace with a login shell 2014-06-07 20:44:13 -07:00
Kevin Lange
dfc5901575 Cleanup module loading command (messages in particular) 2014-06-07 19:48:37 -07:00
Kevin Lange
77761d0266 Fix double free in kdebug ls 2014-06-07 19:42:19 -07:00
Kevin Lange
d532f0350a Only include binary name, and not path, in /proc/x/status 2014-06-07 18:07:23 -07:00
Kevin Lange
c843c60888 Fix permission masks on procfs 2014-06-07 15:05:12 -07:00
Kevin Lange
24e34911bf Some net cleanup, still working on generic interface 2014-06-07 13:25:28 -07:00
Kevin Lange
02dbc0e1f4 some vague attempt at revealing links in stat 2014-06-07 12:58:45 -07:00
Kevin Lange
871da8a2d4 Reset tty after divine-size 2014-06-06 11:37:47 -07:00
Kevin Lange
9d389c52d5 Add PPid to procfs 2014-06-05 23:41:21 -07:00
Kevin Lange
4c199aa6b8 close previous wd on kdebug cd 2014-06-05 22:22:17 -07:00
Kevin Lange
34d81fca37 Probably fix mkdir in tmpfs 2014-06-05 19:08:07 -07:00
Kevin Lange
99ca785025 Fix warning in ps2mouse module 2014-06-01 12:56:47 -07:00
Kevin Lange
d7b7d17a00 That assertion should be a warning 2014-05-31 20:35:23 -07:00
Kevin Lange
f317b18a25 Add a debug command to maybe fix mouse if it gets stuck 2014-05-30 22:27:45 -07:00
Kevin Lange
04fa7a39b7 Support ^D in debug shell; make VINTR ^B for serial console 2014-05-29 22:01:53 -07:00
Kevin Lange
54cd6e4547 Hm. Not sure why that's happening. 2014-05-28 20:17:23 -07:00
Kevin Lange
84420f9e5c Support closing packetfs connections 2014-05-28 19:21:56 -07:00
Kevin Lange
d696f51f8b Real unix pipes 2014-05-27 21:38:30 -07:00
Kevin Lange
ad1074184c Fix an IRC bail fprintf that was dropping a unit 2014-05-23 13:26:03 -07:00
Kevin Lange
3743d0e311 Fix irc prompt 2014-05-23 12:44:14 -07:00
Kevin Lange
290eb0f344 Some IRC cleanup 2014-05-19 19:39:04 -07:00
Kevin Lange
c5f256a4d3 terrible hack - kernel irc client 2014-05-18 20:23:21 -07:00
Kevin Lange
4c99c387f5 Expose pc speaker as device file 2014-05-18 16:11:14 -07:00
Kevin Lange
1dfa71aee9 A start on cleaning up network stack 2014-05-17 23:16:30 -07:00
Kevin Lange
25af2c88eb minor cleanup 2014-05-17 18:50:52 -07:00
Kevin Lange
216a26e6c4 fix NICK/USER 2014-05-17 16:45:15 -07:00
Kevin Lange
7b05a869a5 Silly IRC client 2014-05-17 15:08:50 -07:00
Kevin Lange
03f8f5062c Interactive IRC connection 2014-05-17 12:40:01 -07:00
Kevin Lange
39787e16f3 Additional cleanup, fix multiple messages 2014-05-15 20:45:14 -07:00
Kevin Lange
372ded0b4d cobbled-together mess of an irc packet sending thing 2014-05-14 23:24:43 -07:00
Kevin Lange
f074cbd8b1 More broken TCP stuff 2014-05-14 21:26:53 -07:00
Kevin Lange
63b51a566a Working acks 2014-05-14 21:02:10 -07:00
Kevin Lange
4f289bd594 tcp syn :D 2014-05-14 16:34:05 -07:00
Kevin Lange
a252e54ce5 more general DNS cleanup 2014-05-14 01:44:31 -07:00
Kevin Lange
21b6454ba4 Cleanup DNS client a bit and query freenode 2014-05-14 01:23:12 -07:00
Kevin Lange
ff2cf9ee72 Fix mac addresses I accidentally zero'd 2014-05-14 00:13:36 -07:00
Kevin Lange
e9c05fa216 terrible DNS client 2014-05-13 23:56:54 -07:00
Kevin Lange
a3df5f1e22 IP convenience functions 2014-05-13 22:59:36 -07:00
Kevin Lange
98d6516cd4 Craft our own packets instead of using prebuilt ones 2014-05-13 22:09:15 -07:00
Kevin Lange
913c4b004f make the video panic screen display a message 2014-05-10 19:12:31 -07:00
Kevin Lange
ba46564785 Add a cheap, terrible vignette to the panic screen 2014-05-10 14:46:18 -07:00
Kevin Lange
7be6baffa4 Add a debug shell command to force a kernel panic 2014-05-10 14:16:35 -07:00
Kevin Lange
898c5f23d3 Desaturate entire display on kernel panic 2014-05-10 14:03:13 -07:00
Kevin Lange
56592bb600 Fix silly issue with not setting fd count in debug shell 2014-05-08 20:24:26 -07:00
Kevin Lange
e37fdd2b4b Various bits of cleanup; actually examine packets 2014-05-08 19:29:23 -07:00
Kevin Lange
6b8c425000 Minor cleanup, embed a DNS request 2014-05-07 23:08:34 -07:00
Kevin Lange
1ed5be7bc7 There are actually 5 of those, not 4, mr. cantcount 2014-05-07 00:17:31 -07:00
Kevin Lange
80fef4f1cb test sending multiple packets 2014-05-06 23:29:17 -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
7d84693b95 Make ext2 driver should magic on magic mismatch 2014-05-03 02:06:26 -07:00
Kevin Lange
e838019d67 fix ata driver for devices not providing sectors_48 2014-05-03 02:06:08 -07:00
Kevin Lange
ce48da7973 Fix debug_shell module 2014-05-03 00:15:07 -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
5fb5e07b8e pcspkr - add device to makefile (but not module) 2014-04-26 20:18:30 -07:00
Kevin Lange
f07b2c18aa pcspkr module because why not 2014-04-26 20:12:06 -07:00
Kevin Lange
6d85b85b60 More progress maybe 2014-04-19 15:00:20 -07:00
Kevin Lange
e8bbfd3221 Add an ioctl to query available pex data 2014-04-16 18:29:49 -07:00
Kevin Lange
9934846531 make crash mod actually crash 2014-04-13 00:51:50 -07:00
Kevin Lange
8b5bc834d9 Change debug levels in packetfs module 2014-04-12 16:19:50 -07:00
Kevin Lange
4a09128a10 change format of modules command so it looks more orderly 2014-04-12 00:22:08 -07:00
Kevin Lange
faeab1ee2f Now all the descriptions fit in 80 chars 2014-04-11 22:51:16 -07:00
Kevin Lange
38429b9f03 Update description for divine-size 2014-04-11 22:50:02 -07:00
Kevin Lange
d3b873cd04 Kill some silly debug shell commands 2014-04-11 22:48:25 -07:00
Kevin Lange
3d7a3969eb Support launching arbitrary debug shells 2014-04-11 22:43:39 -07:00
Kevin Lange
a5a17099f6 pretty kernel debug shell 'help' command 2014-04-11 18:29:28 -07:00
Kevin Lange
9b2d31f51f make pci_scan take an extra arg 2014-04-10 23:34:55 -07:00
Kevin Lange
62f0afa077 stub usb-uhci module 2014-04-10 23:22:10 -07:00
Kevin Lange
75a7d5e7f2 Fix some module loading silliness 2014-04-10 23:08:07 -07:00
Kevin Lange
cf2bad7886 debug shell pci command - use correct widths 2014-04-10 22:23:36 -07:00
Kevin Lange
b728f1ce16 determine count of procfs functions at compile time 2014-04-10 20:57:33 -07:00
Kevin Lange
a9b9c2e20d Random header cleanup 2014-04-05 16:36:17 -07:00
Kevin Lange
521dc9b77b rename fs_printf, move it to logging, kill kprintf
fs_printf is now fprintf
kprint_to_file is now debug_file

debug_file and fprintf are defined in logging
kprintf has been removed
2014-04-05 16:12:09 -07:00
Kevin Lange
d0c6ff36a8 fix debug_print("...\n")s 2014-04-05 15:22:57 -07:00
Kevin Lange
5277e3ce64 More PEX cleanup 2014-04-02 22:50:32 -07:00
Kevin Lange
d810a9cca1 Fix packet sending 2014-04-02 00:42:35 -07:00
Kevin Lange
272afa1999 Rudimentary packetfs 2014-04-02 00:26:15 -07:00
Kevin Lange
0659d923d7 Support . and .. in a few more dynamic fs modules 2014-04-01 22:54:14 -07:00
Kevin Lange
9ff5bd39da Expose tmpfs functionality so modules can extend it later 2014-03-27 23:38:22 -07:00
Kevin Lange
6f4d55aeff workaround not having a real readline-ish in debug shell 2014-03-26 21:41:58 -07:00
Kevin Lange
1e91dea4cc Move rtl experiments into separate module 2014-03-24 20:00:16 -07:00
Kevin Lange
e0ac170a18 terminal size divination should be a command
and don't do it by default
2014-03-23 20:18:11 -07:00
Kevin Lange
3edad6870c Allow direct reads on directories 2014-03-19 23:03:51 -07:00
Kevin Lange
6e2b1c3e4d Clear out ext2_fs_t before using it
(or we end up with a stale lock sometimes)
2014-03-19 23:01:02 -07:00
Kevin Lange
468c15e57e entire ext2 module should not be #if 1... 2014-03-19 22:40:35 -07:00
Kevin Lange
9b5cf9cec5 Video as a module, kill device_init 2014-03-19 18:56:07 -07:00
Kevin Lange
0122c943aa Add a command to support mounting arbitrary ext2 filesystems 2014-03-18 23:07:10 -07:00
Kevin Lange
2f7fbfb5a7 Export a mount function for ext2 2014-03-18 23:06:57 -07:00
Kevin Lange
7ecf83f32a reimplement ATA write support 2014-03-18 22:57:07 -07:00
Kevin Lange
17d092e3ff Ramdisk support (again) 2014-03-18 21:37:12 -07:00
Kevin Lange
8080a74a2d Module dependencies 2014-03-18 20:11:56 -07:00
Kevin Lange
93ec0cf0d0 Make kbd+mouse appear as character devices 2014-03-16 21:50:04 -07:00
Kevin Lange
aa8ac11dd2 Fix GRUB boot stuff 2014-03-16 18:54:32 -07:00
Kevin Lange
0a08fa257e Partition mappings 2014-03-16 18:39:03 -07:00
Kevin Lange
ee30393e48 Keyboard + Mouse as modules 2014-03-16 15:13:27 -07:00
Kevin Lange
cc0c32f278 Detect segfaults in modules and print information 2014-03-16 14:39:39 -07:00
Kevin Lange
013939fbc3 New ext2 module 2014-03-16 13:30:25 -07:00
Kevin Lange
984fa1d4c6 EXT2 backed by block device
WARNING: THIS BREAKS PARTITIONS

Until I get partition maps and can produce device entries like
/dev/hda1, partitions will be broken, so DON'T TRY TO BUILD AN IMAGE
WITH THE IMAGE BUILDER.

Hopefully this is all rectified in under 24 hours...
2014-03-16 01:33:01 -07:00
Kevin Lange
c6b0ca84be ATA block devices 2014-03-16 00:46:03 -07:00
Kevin Lange
1ccd39de5c kill kprint_to_screen 2014-03-15 23:56:10 -07:00
Kevin Lange
82a917d270 no more serial syscall
More cleanup

Oopsy
2014-03-15 20:51:11 -07:00
Kevin Lange
877c2d9d6f tmpfs, random to mods; drop ext2ramdisk 2014-03-15 19:58:38 -07:00
Kevin Lange
b46d632116 serial, null, zero to modules 2014-03-15 19:48:51 -07:00
Kevin Lange
ccc86c4dc3 Fix multiple modules, make procfs a module 2014-03-15 17:51:33 -07:00
Kevin Lange
dba78d67d2 those are kibibytes 2014-03-15 00:50:17 -07:00
Kevin Lange
99db031259 Module listing shell commands 2014-03-15 00:03:48 -07:00
Kevin Lange
903f7f6524 Expose shell to other modules (TODO: dependencies) 2014-03-14 23:37:42 -07:00
Kevin Lange
91767bcc69 Debug shell as a module 2014-03-14 23:17:59 -07:00
Kevin Lange
e9e892bae5 Unresolved symbol handling 2014-03-12 00:18:55 -07:00
Kevin Lange
ed03c517ad More real module loading
Still need to do proper loading of the ELF sections somewhere, but other
than that, we've got a standard interface now. Needs a syscall so we can
write an insmod or something like that.
2014-03-11 23:56:08 -07:00
Kevin Lange
be7dc6fb17 Support more relocation methods 2014-03-09 23:01:30 -07:00
Kevin Lange
1389916cba quick cleanup 2014-03-09 22:37:49 -07:00
Kevin Lange
c051fe7ee1 First module load! 2014-03-09 22:31:34 -07:00
Kevin Lange
cc4391d783 Initial work on modules
There's a lot here, so let's through it:
- Lots of work to include a symbol table in the kernel. We can't rely on
  our bootloader to give us our own ELF information, so we do this
  separately. This probably should be changed to output a C source
  rather than assembly, but that's a TODO.
- Makefile can now generate modules. It works basically the same way any
  other kernel object works, expect with a slightly different linking
  scheme.
- Commands have been added to the debug shell to load modules, but they
  don't work yet - still need to get through relocation and linking.
- Commands have been added to the debug shell to print the symbol list,
  as well as print symbol values (but note that printing symbol values
  is kinda dangerous if you don't know what they are, so don't just go
  printing things willy-nilly).
2014-03-09 19:36:28 -07:00