Commit Graph

828 Commits

Author SHA1 Message Date
Jérôme Duval
173acea776 added a boot menu option "Disable ACPI" and code to avoid loading the ACPI module when it's active. untested (because of sudden reboots when boot menu is used).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19777 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-12 20:01:08 +00:00
Axel Dörfler
dc688434ed * Added the possibility to pre-commit pages for areas that can overcommit.
* This is now used for userland stack - they now always pre-commit two pages, enough
  to initialize TLS and copy the user-thread-exit stub to that area.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19776 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-12 18:51:01 +00:00
Axel Dörfler
8fc075ac5c * There was no reason to copy the "userland calls exit_thread()" stub with interrupts
turned off - accessing userland memory. Now, arch_thread_enter_userspace() does that
  job, and as a result, may also fail.
* dump_thread() now directly prints the info of the current thread when used without
  argument (rather than iterating the thread list to look for the current thread).
* If arch_thread_init_tls() fails upon thread creation, the function will now return
  an error.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19775 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-12 18:26:32 +00:00
Marcus Overhagen
f5fa54f798 Improved error reporting when a failure to find/mount the root device occurs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19774 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-12 18:09:15 +00:00
Axel Dörfler
7039ae3f3d Fixed warning.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19773 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-12 18:03:21 +00:00
Axel Dörfler
d1b0be94b0 * Private and temporary vm_caches now maintain their new virtual_base field, which allows
them to commit substantially less memory (we we're committing about 40 MB (!) too much
  after a complete system boot). This means you'll run out of memory less likely now.
* fill_area_info() no longer filters out kernel protection flags - we may want to keep
  filtering them when called from userland, though, dunno.
* Added new debugger command "avail" which shows how much memory has been committed, and
  how much is regarded as free space.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19771 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-12 15:07:18 +00:00
Axel Dörfler
7ed5e61cdb arch_thread_init_tls() now accesses user memory safely, and therefore could now
fail.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19768 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-11 18:21:35 +00:00
Axel Dörfler
cdcb059571 * Renamed get_team_death_entry() to team_get_death_entry() and make it available
to other kernel components.
* wait_for_thread_etc() will now search the team's death entries in case the
  thread is already gone; also resume_thread() is now done later, and its return
  code will no longer matter (as we already have our death entry, no matter if
  the thread is gone now or not).
* The fibo_load_image test now works as expected (only tested with low numbers
  yet, though - the mean testing comes later (first comes functionality) :-))


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19758 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-09 23:58:59 +00:00
Jérôme Duval
9481ed48de updated to tzcode2007a
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19755 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-09 23:16:26 +00:00
Axel Dörfler
32e2879f10 We now ignore all memory beyond the 4 GB barrier in 32-bit mode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19743 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-08 17:44:32 +00:00
Axel Dörfler
3e161fb661 * Instead of its home-brewn solution, mmu_init() now uses the functions declared
in addr_range.h to add ranges to the arrays. This fixes the crashing bug reported
  by Larry Baydak.
* Added some more exported functions to kernel_args.cpp (prototypes are in addr_range.h).
* TODO: let the PPC/OpenFirmware implementation use those as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19739 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-08 12:14:06 +00:00
Marcus Overhagen
aa86f3868f Cleanup naming of PXE stage2. It no longer interferes with zbeos build process.
You can build it using:

TARGET_BOOT_PLATFORM=pxe_ia32 jam pxehaiku-loader

Building the PXE stage1 using:

TARGET_BOOT_PLATFORM=pxe_ia32 jam pxehaiku

is still broken. however, it can be build using:

cd src/system/boot/platform/pxe_ia32/
as -o pxe_stage1.o pxe_stage1.S
ld --oformat binary --Ttext 0x7C00 -o pxe_stage1.bin pxe_stage1.o
cp pxe_stage1.bin /tftpboot/pxehaiku


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19722 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-06 13:46:41 +00:00
Axel Dörfler
ddcd53aaf0 * Instead of choosing the next thread if we skip one, we now choose the first thread
with a lower priority than the current one.
* Further reduced the probability to skip a thread to roughly 4%, that makes around
  13 skips per second, and about 40 msecs spend in lower priority threads per second
  (with a 3 msec quantum). Might still be too much, but we'll see.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19719 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-06 12:50:01 +00:00
Axel Dörfler
97ad772ada * Moved PXE page directory and page tables below the 1 MB limit.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19718 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-06 11:51:21 +00:00
Marcus Overhagen
6c3245f6a7 fixed error return in _Scan() function. now only returns B_OK when a device was found.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19716 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-06 01:04:09 +00:00
Axel Dörfler
9640130c40 Removed the R5 icon from the kernel resources - it can only be compiled for Haiku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19714 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-05 20:16:48 +00:00
Axel Dörfler
92870c3b39 We always handled signals as if their SA_RESTART flag was set - but that's not
the default case.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19711 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-05 19:27:48 +00:00
Axel Dörfler
4621a82e74 Our scheduler skipped over threads in about 30% of all cases - that's a bit much; it's
not a penalty to be the first thread in the run queue...
I've reduced it to about 12.5%, but that might still be too much.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19710 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-05 19:01:09 +00:00
Marcus Overhagen
dceaa55687 updated comment to account for PXE memory ranges
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19690 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-03 20:39:33 +00:00
Marcus Overhagen
ec9d1637b5 fixed copy & paste bugs
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19639 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-26 20:15:27 +00:00
Marcus Overhagen
db5b50665b Fixed gcc4 "error: cast from 'foobar *' to 'uint16' loses precision" problem by doubly casting.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19638 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-26 19:57:21 +00:00
Marcus Overhagen
203cf32414 Disabled debug output, but show errors with dprintf.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-26 19:30:33 +00:00
Marcus Overhagen
99784f5666 reduce debug output and add an additional test
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19636 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-26 19:21:31 +00:00
Marcus Overhagen
6d92b426ae Use only the immediate buffer to send data.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19635 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-26 19:18:30 +00:00
Marcus Overhagen
c4a05ef079 Determine client IP address and make it known to the ethernet interface.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19634 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-26 19:17:28 +00:00
Marcus Overhagen
6378dd7cf4 Fixed endian errors in UDP source and destination port handling.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19633 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-26 19:12:35 +00:00
Marcus Overhagen
569f4174e1 Fixed setting of the "don't fragment" bit, it was placed into the wrong byte.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19631 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-26 18:00:27 +00:00
Marcus Overhagen
03c2b46cdf fix build when TRACE is enabled
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19630 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-26 17:50:34 +00:00
Marcus Overhagen
c828668959 Return -1 when no data is available in receive hook, and 0 to indicate a retry, to make the net stack happy.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19629 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-26 16:23:37 +00:00
Marcus Overhagen
57a88e1c79 Implemented UNDI ethernet interface, receiving frames already appears to work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19628 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-26 16:00:35 +00:00
Marcus Overhagen
5fd605e278 prettify formatting
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19623 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-25 03:05:00 +00:00
Marcus Overhagen
8456183dfd implemented the first pxe bios call
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19622 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-25 02:48:50 +00:00
Marcus Overhagen
578e3c2607 fixed the bugs, calling the pxe bios now works
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19621 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-25 02:48:08 +00:00
Marcus Overhagen
f7110a4231 first attempt to call the pxe bios, still untested
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19620 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-25 00:47:41 +00:00
Marcus Overhagen
84a31142ed Added some code to call real mode pxe bios functions, based on Axel's bios_ia32/bios.S
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19619 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-24 01:21:17 +00:00
Marcus Overhagen
0ecd75e986 Made the idt_descriptor symbol global to share it with pxe_ia32.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19618 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-24 01:18:52 +00:00
Marcus Overhagen
fd992230f6 Fixed pxe zbeos build, got broken by recent edid changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19617 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-24 01:02:24 +00:00
Axel Dörfler
d2de13bdd4 The boot loader (BIOS IA32 only) now chooses the default video mode by looking at the
EDID info from the monitor if available through VESA/DDC.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19588 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-21 14:20:17 +00:00
Axel Dörfler
9a4b4c617b * Fixed warning.
* Now using the new %f flag to print the level of support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19584 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-21 12:12:50 +00:00
Axel Dörfler
dedf1bccfe Since we're using floating point values at several places in the kernel, I added
a very simplistic floating point output routine to snprintf() and friends, for
your convenience.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19583 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-21 12:05:16 +00:00
Axel Dörfler
d6edf65b05 Fixed error checks for EDID retrieval.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19582 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-20 22:49:53 +00:00
Axel Dörfler
5d7d960fac Added EDID version 1 retrieval from VESA; doesn't do anything yet besides dumping the
info to the serial line - not tested yet (as Qemu doesn't support DDC/EDID).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19580 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-20 21:44:03 +00:00
Axel Dörfler
b5428267c7 This should fix the most often found kernel crash (on bootup):
* vm_soft_fault() did not take into account that a cache's source can change while
  traversing a cache chain.
* Now, we grab a reference to every cache we get before locking it, and
* no longer get the cache's source without having the cache locked.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19571 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-20 12:34:21 +00:00
Axel Dörfler
eb445177f9 * When a vm_cache is merged with another one, we now remove the consumer; that allows
for an extra check in vm_cache_release_ref() as the cache shouldn't have any areas
  or consumers at this point.
* Fixed a locking problem in vm_cache_remove_consumer(): the cache was acquired after
  its lock was gone, so someone else might have released in the mean time.
* if the cache's source is to be replaced, we now no longer release its lock after
  having merged it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19570 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-20 12:30:07 +00:00
Travis Geiselbrecht
02c92f8256 change the 'iospace' debug to use a more reasonable number of columns
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19563 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-19 03:27:50 +00:00
Axel Dörfler
6b507ddd46 Made set[e]gid() and set[e]uid() succeed in case they don't have anything to do.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19553 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-18 18:00:21 +00:00
Axel Dörfler
da758f9fce * team::args is now correctly filled in.
* the member will now also be shown when dumping a team.
* minor cleanup: moved fill_team_info() into the private functions part of the file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19551 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-18 12:56:27 +00:00
Travis Geiselbrecht
c4546ea038 A fix for the double-fault on bootup:
-Turns out the area removal routine had a massive race condition inside
vm_put_area(). Basically the area was removed from the address space's
area list before the pages were unmapped, so the vm could (and would)
recycle the space before the pages were finally unmapped.

It was completely reproducable on my machine during initialization of a bunch
of storage drivers that were bringing the locked_pool module into and out of
existence, which caused a thread to be spawned and stopped in rapid sucession.
On a dual processor machine, it was possible for the new thread to be started
up while the old one was still shutting down, and the kernel stack of the new
one would get wiped out.

Note, there still is a page ref counting problem with this area removal code.
It doesn't decrement the ref count of the page as it unmaps it. Will have to 
figure that out.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19549 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-18 09:38:00 +00:00
Travis Geiselbrecht
9bc7a58b1d Fixes a nit:
put a spinlock around the serial debug routines to keep multiple
cpus from interleaving their output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19548 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-18 07:23:39 +00:00
Travis Geiselbrecht
c3a89b90d3 fix the 'cache_ref' and 'cache' kdl commands
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19546 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-18 04:29:39 +00:00