Ben Pfaff [Wed, 1 Sep 2004 22:52:13 +0000 (22:52 +0000)]
Set CR0_WP in CR0.
Ben Pfaff [Wed, 1 Sep 2004 22:36:36 +0000 (22:36 +0000)]
Misc cleanups in init, thread.
Ben Pfaff [Wed, 1 Sep 2004 22:36:24 +0000 (22:36 +0000)]
Add assert.
Ben Pfaff [Wed, 1 Sep 2004 22:25:56 +0000 (22:25 +0000)]
Break TSS out of GDT.
Ben Pfaff [Wed, 1 Sep 2004 22:13:26 +0000 (22:13 +0000)]
Break GDT, TSS out of init.c, mmu.h.
Ben Pfaff [Wed, 1 Sep 2004 21:43:44 +0000 (21:43 +0000)]
Remove lots of unused #define's from mmu.h.
Ben Pfaff [Wed, 1 Sep 2004 21:43:20 +0000 (21:43 +0000)]
Clean up interrupts.[ch].
Ben Pfaff [Wed, 1 Sep 2004 06:14:50 +0000 (06:14 +0000)]
Add comments.
Ben Pfaff [Wed, 1 Sep 2004 06:00:50 +0000 (06:00 +0000)]
Make interrupt.h names more regular.
Ben Pfaff [Wed, 1 Sep 2004 05:52:00 +0000 (05:52 +0000)]
Integrate struct addrspace into struct thread.
Ben Pfaff [Wed, 1 Sep 2004 05:38:55 +0000 (05:38 +0000)]
Clean up threads.
Ben Pfaff [Wed, 1 Sep 2004 04:02:22 +0000 (04:02 +0000)]
s/disk_sector_no/disk_sector_t/g
Ben Pfaff [Wed, 1 Sep 2004 03:58:03 +0000 (03:58 +0000)]
Fix PRDSNu.
Ben Pfaff [Wed, 1 Sep 2004 03:56:22 +0000 (03:56 +0000)]
Tweak.
Ben Pfaff [Wed, 1 Sep 2004 01:16:42 +0000 (01:16 +0000)]
Dump interrupt frame info on user fault.
Ben Pfaff [Wed, 1 Sep 2004 01:16:25 +0000 (01:16 +0000)]
Improve comments.
Ben Pfaff [Tue, 31 Aug 2004 23:54:24 +0000 (23:54 +0000)]
Clean up disk layer.
Ben Pfaff [Tue, 31 Aug 2004 22:07:49 +0000 (22:07 +0000)]
Update .cvsignore.
Ben Pfaff [Tue, 31 Aug 2004 22:07:01 +0000 (22:07 +0000)]
Initial version.
Ben Pfaff [Tue, 31 Aug 2004 22:05:24 +0000 (22:05 +0000)]
Add fsutil.c.
Ben Pfaff [Tue, 31 Aug 2004 22:05:16 +0000 (22:05 +0000)]
Clean up threads.
Ben Pfaff [Tue, 31 Aug 2004 22:04:56 +0000 (22:04 +0000)]
Use __attribute__ directly.
Ben Pfaff [Tue, 31 Aug 2004 22:04:45 +0000 (22:04 +0000)]
Add LOADER_CMD_LINE_LEN.
Ben Pfaff [Tue, 31 Aug 2004 22:04:29 +0000 (22:04 +0000)]
Implement command line arguments.
Ben Pfaff [Tue, 31 Aug 2004 22:04:08 +0000 (22:04 +0000)]
Allow user to provide random seed to random_init().
Ben Pfaff [Tue, 31 Aug 2004 22:03:49 +0000 (22:03 +0000)]
Add atoi().
Add a hex_dump() argument that specifies whether to include ASCII.
Mark vsnprintf(), vprintk() with PRINTF_FORMAT.
Ben Pfaff [Tue, 31 Aug 2004 22:01:42 +0000 (22:01 +0000)]
Debug. Add bitmap_dump().
Ben Pfaff [Tue, 31 Aug 2004 22:01:25 +0000 (22:01 +0000)]
Add filesys_list(), filesys_dump().
Ben Pfaff [Tue, 31 Aug 2004 22:01:10 +0000 (22:01 +0000)]
Add dir_list(), dir_dump().
Ben Pfaff [Tue, 31 Aug 2004 22:00:54 +0000 (22:00 +0000)]
Add DEBUG() macro for debugging that can be turned on and off with a
command line option, and associated support.
Rename panic() to PANIC(). Update references.
Rename backtrace() to debug_backtrace().
Ben Pfaff [Tue, 31 Aug 2004 06:39:54 +0000 (06:39 +0000)]
Clean up threads.c.
Ben Pfaff [Tue, 31 Aug 2004 05:57:18 +0000 (05:57 +0000)]
Clean up threads.c.
Ben Pfaff [Tue, 31 Aug 2004 05:34:25 +0000 (05:34 +0000)]
Clean up a little.
Ben Pfaff [Tue, 31 Aug 2004 05:12:57 +0000 (05:12 +0000)]
Update comment.
Ben Pfaff [Tue, 31 Aug 2004 05:12:41 +0000 (05:12 +0000)]
Mark thread_start() NO_RETURN.
Ben Pfaff [Tue, 31 Aug 2004 04:09:44 +0000 (04:09 +0000)]
Small loader cleanups.
Ben Pfaff [Tue, 31 Aug 2004 03:42:27 +0000 (03:42 +0000)]
Check all return values.
Ben Pfaff [Tue, 31 Aug 2004 03:23:39 +0000 (03:23 +0000)]
Use Linux kernel trick of giving an .lds file a .S extension to get it
preprocessed.
Ben Pfaff [Tue, 31 Aug 2004 03:22:39 +0000 (03:22 +0000)]
Don't include malloc.h.
Ben Pfaff [Tue, 31 Aug 2004 02:55:58 +0000 (02:55 +0000)]
Add some missing dependencies.
Ben Pfaff [Tue, 31 Aug 2004 02:55:48 +0000 (02:55 +0000)]
Update comments, put LOADER_PHYS_BASE back at 3 GB.
Ben Pfaff [Tue, 31 Aug 2004 01:04:27 +0000 (01:04 +0000)]
Don't use <string.h>.
Ben Pfaff [Tue, 31 Aug 2004 01:04:15 +0000 (01:04 +0000)]
Get rid of backdoor.
Ben Pfaff [Tue, 31 Aug 2004 01:02:34 +0000 (01:02 +0000)]
No FILESYS_STUB anymore.
Ben Pfaff [Tue, 31 Aug 2004 01:02:24 +0000 (01:02 +0000)]
Use lib.h instead of <string.h>.
Ben Pfaff [Tue, 31 Aug 2004 01:02:00 +0000 (01:02 +0000)]
Base on loader.
Ben Pfaff [Tue, 31 Aug 2004 01:01:51 +0000 (01:01 +0000)]
Make loader use constants.
Ben Pfaff [Tue, 31 Aug 2004 01:00:56 +0000 (01:00 +0000)]
Now kernel.lds.in is preprocessed to get kernel.lds.
Ben Pfaff [Tue, 31 Aug 2004 01:00:37 +0000 (01:00 +0000)]
Declare argc, argv.
Ben Pfaff [Tue, 31 Aug 2004 01:00:19 +0000 (01:00 +0000)]
Split RAM initialization into function.
Ben Pfaff [Tue, 31 Aug 2004 00:59:23 +0000 (00:59 +0000)]
Add strtok_r().
Ben Pfaff [Tue, 31 Aug 2004 00:59:12 +0000 (00:59 +0000)]
Produce kernel.lds from kernel.lds.in.
Ben Pfaff [Tue, 31 Aug 2004 00:59:01 +0000 (00:59 +0000)]
Add vm subdirectory.
Ben Pfaff [Mon, 30 Aug 2004 22:58:46 +0000 (22:58 +0000)]
Filesys stubs no longer wanted.
Ben Pfaff [Mon, 30 Aug 2004 22:57:50 +0000 (22:57 +0000)]
Add new filesys files.
Ben Pfaff [Mon, 30 Aug 2004 22:57:38 +0000 (22:57 +0000)]
Adapt to new file interface.
Ben Pfaff [Mon, 30 Aug 2004 22:56:34 +0000 (22:56 +0000)]
Move filesys_init into main_thread.
Ben Pfaff [Mon, 30 Aug 2004 22:56:22 +0000 (22:56 +0000)]
Add strcmp(), asserts.
Ben Pfaff [Mon, 30 Aug 2004 22:55:58 +0000 (22:55 +0000)]
Add bitmap_read(), bitmap_write().
Ben Pfaff [Mon, 30 Aug 2004 22:55:39 +0000 (22:55 +0000)]
Working filesystem.
Ben Pfaff [Mon, 30 Aug 2004 22:54:56 +0000 (22:54 +0000)]
Fix disk_write(): interrupt fires *after* write complete, not before.
Ben Pfaff [Mon, 30 Aug 2004 18:07:59 +0000 (18:07 +0000)]
Fix bitmap usage.
Ben Pfaff [Mon, 30 Aug 2004 17:48:59 +0000 (17:48 +0000)]
Ignore generated files.
Ben Pfaff [Mon, 30 Aug 2004 17:48:16 +0000 (17:48 +0000)]
Initial version.
Ben Pfaff [Mon, 30 Aug 2004 17:47:38 +0000 (17:47 +0000)]
*** empty log message ***
Ben Pfaff [Mon, 30 Aug 2004 17:46:07 +0000 (17:46 +0000)]
Test disk code slightly more thoroughly.
Ben Pfaff [Mon, 30 Aug 2004 04:50:13 +0000 (04:50 +0000)]
Start work on filesystem code.
Ben Pfaff [Mon, 30 Aug 2004 04:49:44 +0000 (04:49 +0000)]
Make user responsible for allocating `struct bitmap's.
Ben Pfaff [Mon, 30 Aug 2004 04:49:04 +0000 (04:49 +0000)]
Improve error message.
Ben Pfaff [Sun, 29 Aug 2004 22:11:32 +0000 (22:11 +0000)]
Fix grouping (sigh).
Ben Pfaff [Sun, 29 Aug 2004 22:10:52 +0000 (22:10 +0000)]
Better ID message. Add per-channel mutual exclusion.
Ben Pfaff [Sun, 29 Aug 2004 21:54:04 +0000 (21:54 +0000)]
Add idle thread.
Ben Pfaff [Sun, 29 Aug 2004 21:50:07 +0000 (21:50 +0000)]
Basic disk test code.
Ben Pfaff [Sun, 29 Aug 2004 21:36:22 +0000 (21:36 +0000)]
Fix pic_eoi() for slave PIC interrupts.
Ben Pfaff [Sun, 29 Aug 2004 21:35:45 +0000 (21:35 +0000)]
Prototype hex_dump().
Add various is*() functions.
Ben Pfaff [Sun, 29 Aug 2004 21:35:33 +0000 (21:35 +0000)]
Fix snprintf() return value.
Add grouping support to printf.
Add a function for hex dumps.
Ben Pfaff [Sun, 29 Aug 2004 21:34:16 +0000 (21:34 +0000)]
Implement read/write support.
Ben Pfaff [Sun, 29 Aug 2004 21:33:26 +0000 (21:33 +0000)]
Move "include" command to end, so that the first target is "all".
Ben Pfaff [Sun, 29 Aug 2004 19:18:25 +0000 (19:18 +0000)]
Basic disk detection stuff.
Ben Pfaff [Sun, 29 Aug 2004 19:18:10 +0000 (19:18 +0000)]
Make thread_root() enable interrupts, otherwise kernel threads will
run with interrupts off, which is really bad...
Ben Pfaff [Sun, 29 Aug 2004 19:17:21 +0000 (19:17 +0000)]
Formatting.
Ben Pfaff [Sun, 29 Aug 2004 19:17:14 +0000 (19:17 +0000)]
Make yield_on_return only usable in an external interrupt context: (1)
it's a global variable so it must be in use only in one context at
once, which is okay because we don't nest external interrupts and (2)
if we're not in an external interrupt context then we might as well
just call thread_yield() and not screw around with "yield on return".
Also, enforce interrupts being off in external interrupt contexts.
Ben Pfaff [Sun, 29 Aug 2004 19:13:35 +0000 (19:13 +0000)]
Add snprintf(), vsnprintf().
Ben Pfaff [Sun, 29 Aug 2004 19:13:08 +0000 (19:13 +0000)]
Add timer_msleep, timer_usleep, timer_nsleep().
Ben Pfaff [Sun, 29 Aug 2004 07:09:57 +0000 (07:09 +0000)]
Initial un-working code.
Ben Pfaff [Sun, 29 Aug 2004 07:09:30 +0000 (07:09 +0000)]
thread_schedule() now static.
Ben Pfaff [Sun, 29 Aug 2004 07:09:17 +0000 (07:09 +0000)]
Adjust rules for the interrupt level during scheduling.
Ben Pfaff [Sun, 29 Aug 2004 07:08:21 +0000 (07:08 +0000)]
Adjust indentation for .globl directives.
Ben Pfaff [Sun, 29 Aug 2004 07:02:56 +0000 (07:02 +0000)]
Add .data, .text to output.
Pop intr_handler arg inside intr_entry, not intr_exit.
Ben Pfaff [Sun, 29 Aug 2004 06:54:21 +0000 (06:54 +0000)]
Make intr_stubs const.
Ben Pfaff [Sun, 29 Aug 2004 06:54:14 +0000 (06:54 +0000)]
Fix wild bit in interrupt gate addresses. Make some things static.
Ben Pfaff [Sun, 29 Aug 2004 06:53:30 +0000 (06:53 +0000)]
(printf_integer) Fix handling of precision. Improve comments.
Ben Pfaff [Sun, 29 Aug 2004 05:24:57 +0000 (05:24 +0000)]
Improve comments.
Ben Pfaff [Sat, 28 Aug 2004 07:08:54 +0000 (07:08 +0000)]
Work on loader to prepare for passing in a command line.
Ben Pfaff [Fri, 27 Aug 2004 07:18:38 +0000 (07:18 +0000)]
Make userspace actually work.
Ben Pfaff [Fri, 27 Aug 2004 07:17:37 +0000 (07:17 +0000)]
printk() disables interrupts.
Ben Pfaff [Fri, 27 Aug 2004 05:45:02 +0000 (05:45 +0000)]
(printf_integer) Fix handling of # flag. This time for sure!
Ben Pfaff [Fri, 27 Aug 2004 02:27:33 +0000 (02:27 +0000)]
Fix TSS descriptor.
Ben Pfaff [Fri, 27 Aug 2004 00:06:16 +0000 (00:06 +0000)]
Set RPL=3 for user selectors.
Ben Pfaff [Fri, 27 Aug 2004 00:05:55 +0000 (00:05 +0000)]
Userspace almost (?) working.