master
panic() is now a noreturn, so change this code that was using the panic() return code
more x86_64 stuff: -most of the mmu code is implemented -fix up the bad swap_stacks_and_call -fix up the tss stuff -fix the interrupt glue (needs iretq)
pretty big refactor of the build system to solve a old standing problem that didn't allow different CFLAGS in any given target directory. As a result, the make files are now source file based, not object file based, (ie, MYSRC := foo.c bar.c, instead of foo.o bar.o). This means I had to touch more or less every make file in the system.
some vm to accomodate needing to have a region search spot be different from the larger address space, specifically the 64bit kernel address space.
Bug fix fixes.
added support to cache up kprintf output until the console is ready
get rid of the info. union in the cpu_ent structure
add new bits to the compiler.h file add NO_RETURN attribute to panic, which fixes something in the x86_64 stuff point sys/cdefs.h to newos/compiler.h
extract dir fs calls from the regular calls, this creates opendir/closedir/readdir/rewinddir. modified all of the fs's to match this, added syscalls.
Fixed a bug in the kernel ELF loader that I had been attributing to the lack of a region lock function. Now it actually attempts to create subsequent elf regions next to the first one. Not perfect by any means, but much better than before.
Remove all traces of 'nulibc' from everything
Knock out all warnings except for a few in libm.
fix 64bit issues with the heap code
Remap all of the io interrupt handlers to base 0 instead of base 0x20 on x86. This lets some drivers be more portable across architectures, since they dont have to add 0x20 to the int_set_io_interrupt_handler() call.
change the kernel build such that it exports a dynamic section and this has symbols ready to be linked against. I used a hack found in the freebsd make system to make it work.
-added cpuid support to determine x86 cpu capabilities -enabled page global bit if the cpu supports it -use fxsave on context switch if it's supported
left in a couple of extra nonexistant files in the kernel makefile
Moved the per-cpu timer queues into the per-cpu cpu structure. This should help a bit with inter-cpu cache invalidations.
a couple of minor bugfixes that are floating around on my machine. check em in.
add new generic list implementation and move the thread queue over to using it
fixed a typo in the last checkin
big change to incorporate process groups and sessions:
Read the RTC clock on PCs at bootup so we can tell what time it really is.
Add real vfs support for create. Since no fs had really actually supported it, it was a bit undefined if the fs is supposed to bring the new node into existence of not. For now it should, though the vfs layer will just immediately decrement the ref to zero.