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