Commit Graph

18794 Commits

Author SHA1 Message Date
Axel Dörfler ab4048488d The IPv4 protocol now stores all domain receiving protocols, and only put them away on uninit.
This should speed up packet retrieval a lot.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19811 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-15 14:22:31 +00:00
Axel Dörfler 235a50037c accept() and bind() now accept NULL address parameters in the R5 compatibility mode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19810 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-15 13:07:09 +00:00
Axel Dörfler 9aed1afa6a "step" could be zero, in which case the loop would never end.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19809 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-15 12:53:11 +00:00
Axel Dörfler 6f19c1db2d There was a race condition between removing the thread from the hash and putting
its death entry into the parent team's queue - we need to do this atomically.
As an effect, wait_for_thread() sometimes failed with B_BAD_THREAD_ID.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19808 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-15 12:41:08 +00:00
Axel Dörfler 7383c05e71 The R5 socket protocol constant conversion routine was broken - now, NetPositive
is starting to work under Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19807 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-15 12:37:08 +00:00
Axel Dörfler e9ffbbf36c Moved locking into map_backing_store() - it now gets a vm_cache_ref instead of a vm_store,
so that this can be done safely.
It was also needed, as it would call vm_cache_release_ref() on failure which requires you
to have no vm_cache_ref locks around (as it might deadlock in this case).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19806 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-15 11:40:13 +00:00
Axel Dörfler d8a7f74053 vm_store::fault() is now called with having the vm_cache_ref locked, so it shouldn't
be locked again here...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19805 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-15 10:24:22 +00:00
Axel Dörfler d60fa6c96f Now checks the return value of wait_for_thread() and print out an error message if it fails.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19804 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-15 10:11:03 +00:00
Axel Dörfler 49b3453720 Applied patch by Eric: this fixes a crash after some time (when the FIFO queue was full
for the first time).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19803 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-15 09:42:08 +00:00
Jérôme Duval 63ac6cdcf4 fix gcc4 build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19802 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-14 23:33:52 +00:00
Axel Dörfler 842d81bf28 vm_cache_remove_consumer() did not only access vm_cache_ref::cache without having
had the cache_ref locked, it also locked two refs in the wrong order (bottom-up);
there was even a TODO item for this...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19801 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-14 23:29:23 +00:00
Axel Dörfler f39acd678c * Made vm_area_lookup() part of the kernel private API.
* "sc"/"where"/"bt" now prints the area where the function of the stack frame
  is located in case there is no other information (using the above function).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19800 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-14 23:26:20 +00:00
Axel Dörfler f4972679f7 * team::args was not correctly initialized in create_team_struct()
* even worse, in case of fork(), it was never initialized.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19799 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-14 23:22:49 +00:00
Philippe Houdoin af1c1a0a03 Renamed the public api to underline the DPC *queue* mechanism handled.
Pending DPCs at queue death time are now called too, to avoid possible leaks.
Meanwhile, queue_dpc() will refuse to add another DPC and returns B_CANCELLED.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19798 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-14 21:58:19 +00:00
Jérôme Duval 6709571e18 fixed build on gcc4
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19797 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-14 21:27:28 +00:00
Axel Dörfler 647b1f70a5 * vm_copy_on_write_area() did not always correctly divide the ref_count of the
two cache_refs - it needs to count the consumers of the lower cache to find
  its actual number of references; the upper cache could still be in use by
  someone else.
* There were several locking bugs in the VM code; since cache_ref::cache can
  change, we must not access it without having the cache_ref locked.
* As a result, map_backing_store() now requires you to have the lock of the
  store's cache_ref held.
* And therefore, some functions in vm_cache.c must no longer lock the cache_ref
  on their own, but require the caller to have it locked already.
* Added the -s option to the cache/cache_ref KDL commands: it will only print
  the requested structure, and not its counterpart (useful if accessing one
  structure results in a page fault, as was possible previously).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19796 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-14 18:41:57 +00:00
Axel Dörfler f445b04baf * Fixed warnings in the VMware accelerant - GCC 2.95.3 cannot compare function signatures
without any argument specifier, and a(void); != a(); in C.
* Added the VMware graphics driver to the image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19795 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-14 14:26:29 +00:00
Axel Dörfler 67d68c7766 Fixed wrong app version constant I introduced earlier.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19794 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-14 14:24:45 +00:00
Axel Dörfler 00d65a521d Added Eric Petit's VMware graphics driver - thanks!
Made the following changes from the version I got from Eric:
* made BppForSpace() in DriverInterface.h inline to remove some warnings
* renamed driver source files to lower case.
* removed Be Inc. copyright from kernel driver as I couldn't see anything coming
  from Be Inc. there - correct me if I was wrong, Eric.
* Minor other changes like added missing header guards.
* The README provided in the main directory is only included in the accelerant
  directory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19793 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-14 14:16:06 +00:00
Axel Dörfler e57d2e1b09 * Applied patch by Vasilis Kaoutsis: added rdef file for all Haiku utilities.
* Updated coreutils.rdef to follow the same style as all other rdef files (or at least
  most of them).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19792 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-14 13:01:21 +00:00
Jérôme Duval 5efe9479fe ACPI boot menu item is for bios_ia32
added a kernel settings option to disable ACPI



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19791 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-13 19:55:14 +00:00
Axel Dörfler 8edddbc0cf wait_for_thread_etc() didn't care when it could no longer find the thread it was
waiting for in case it was interrupted; but that could easily lead the thread_exit()
function to access invalid memory (and thus, crash the kernel): since we could not
remove our death entry from the thread, we have to make sure the thread (which might
still run even if not in the thread hash anymore) will access our death entry as
long as it is valid. IOW we must wait for the thread to delete its exit semaphore,
even if we were interrupted before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19790 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-13 18:37:50 +00:00
Axel Dörfler ff718cafed * Maintain the vm_cache::virtual_size field in all cases.
* Fixed dumping the area list of a cache I broke with the previous commit.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19789 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-13 18:33:13 +00:00
DarkWyrm 3e8cd549ec Initialized a couple of wild pointers -- fixes a startup crash
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19788 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-13 17:25:42 +00:00
Axel Dörfler 81d5ce45a8 * Merged "cache"/"cache_ref" commands, as you usually want to have all the info, anyway
(you can still use both commands, but you'll see always the same output).
* The cache_ref's area list now also prints the owner of the area.
* Added "-p" option to "cache"/"cache_ref" that will show the pages of the cache; if you
  omit it, it will now only present you a page counter.
* Nicer output for the commands above.
* Added "dl" to display memory in 64 bit values.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19787 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-13 17:24:40 +00:00
Axel Dörfler dc237c7990 ref_count should be vint32, as we're accessing it at least once directly.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19786 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-13 17:21:47 +00:00
Axel Dörfler dcadebae62 The "thread" debugger command now also prints out the thread exit waiters.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19785 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-13 17:13:50 +00:00
Michael Pfeiffer 64806385f6 Updated display mode line for resolution 1920x1200. See revision 19753.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19784 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-13 15:38:55 +00:00
Axel Dörfler ce51da52b6 Added a kernel socket API module which exports the usual BSD socket API to kernel modules.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19783 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-13 13:18:54 +00:00
Jérôme Duval 1f2d4a5e2d fix build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19782 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-13 12:49:12 +00:00
Axel Dörfler b129e4cee1 Another kernel bug less:
* send_signal_etc() (among others) used team::main_thread in an unsafe way; it is
  possible for a team to be part of the team list and a group without having
  a main thread very early in its creation process.
* Replaced most occurences of team->main_thread->id with team->id since the team
  always inherits the ID of its main thread in Haiku for quite some time now.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19781 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-12 22:54:21 +00:00
Marcus Overhagen 43792b9eed propagate required settings for the remote disk from boot loader to kernel (client-ip, server-ip, server-port)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19780 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-12 22:27:48 +00:00
Marcus Overhagen 93b2b9ce66 made a copy
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19779 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-12 21:05:47 +00:00
Axel Dörfler fa4858af26 Didn't notice that x86_enter_userspace() also copied the thread entry's arguments to
the userland stack in an unsafe way - moved that stuff to arch_thread_enter_userspace(), too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19778 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-12 20:40:39 +00:00
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
Marcus Overhagen d359899a21 removed strange "warning: converting negative value 'B_ERROR' to 'long unsigned int'" that seemed to be generated by the ? operator converting B_ERROR's type.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19772 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-12 16:05:43 +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
Jérôme Duval 7d90af85d3 added lbracket to the build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19770 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-11 20:27:22 +00:00
Jérôme Duval 2c30336c03 fixed build on dano, commented again a warning
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19769 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-11 20:13:49 +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 23bd6929dc Added the last of the companion fibo test apps (based on fork/exec - this is just
another test that doesn't work on BeOS, dunno why, but who cares...).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19767 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-11 17:00:30 +00:00
Jérôme Duval 73801d2f00 added expr and test as suggested by Kaoutsis, thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19766 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-10 22:54:16 +00:00
Philippe Houdoin a5347f68f8 Moved public interface into its own header file.
Fixed most obvious issues, as reported by Marcus and Axel.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19765 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-10 20:28:45 +00:00
Axel Dörfler f9e49fed71 * Fixed fibo_load_image: it actually did not produce the fibonacci numbers.
* Implemented a fibo_fork which uses fork() instead.
* Both tests can pretty easily let the kernel crash!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19764 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-10 10:33:01 +00:00
Axel Dörfler e90cdf4e48 fibo_load_image now notices if spawn_thread() fails, and puts a warning to stderr.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19763 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-10 10:02:46 +00:00
Philippe Houdoin daf593cf9c Late cleanup a bit before actually going to bed. Good night world.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19762 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-10 01:26:49 +00:00