Commit Graph

33541 Commits

Author SHA1 Message Date
Jérôme Duval 72570e2e14 * spawn the thread after an audio group is created to be safe.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35289 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-25 21:19:31 +00:00
Ingo Weinhold c1547182c3 Moved added the debugger commands from slab_init() to slab_init_post_area().
Those use malloc(), which obviously doesn't work before the heap is
initialized.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35288 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-25 19:51:53 +00:00
Stephan Aßmus 1518a682f9 Patch by Andreas Faerber: Adding ucontext.h POSIX header. mcontext_h can be
typedef'd to the existing vregs type. Applies #5324. Thanks a lot!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35287 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-25 18:06:50 +00:00
Ingo Weinhold 30f2c6c859 When we create areas for large raw allocations there's no need to allocate
clear pages.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35286 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-25 15:42:35 +00:00
Ingo Weinhold f1bdb8b92c * HashedObjectCache: Instead of entering the individual objects in the hash
table, we only enter the slab. This also saves us the link object per object.
* Removed the now useless {Prepare,Unprepare}Object() methods.
* SmallObjectCache: Unlock the cache while calling into the MemoryManager. We
  need to do that to avoid an indirect violation of the CACHE_DONT_* policy.
* Simplified lower_boundary().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35285 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-25 15:33:25 +00:00
Stephan Aßmus 5993482bf5 Fixed LowColor() of "background" view. Seems this was always wrong, but now we
are running without offscreen view, and this caused dark slider background,
since LowColor() was unintentionally B_TRANSPARENT_COLOR. Fixes #5323.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35284 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-25 13:53:26 +00:00
Ingo Weinhold b4e5e49823 MemoryManager:
* Added support to do larger raw allocations (up to one large chunk (128 pages))
  in the slab areas. For an even larger allocation an area is created (haven't
  seen that happen yet, though).
* Added kernel tracing (SLAB_MEMORY_MANAGER_TRACING).
* _FreeArea(): Copy and paste bug: The meta chunks of the to be freed area
  would be added to the free lists instead of being removed from them. This
  would corrupt the lists and also lead to all kinds of misuse of meta chunks.

object caches:
* Implemented CACHE_ALIGN_ON_SIZE. It is no longer set for all small object
  caches, but the block allocator sets it on all power of two size caches.
* object_cache_reserve_internal(): Detect recursion and don't wait in such a
  case. The function could deadlock itself, since
  HashedObjectCache::CreateSlab() does allocate memory, thus potentially
  reentering.
* object_cache_low_memory():
  - I missed some returns when reworking that one in r35254, so the function
    might stop early and also leave the cache in maintenance mode, which would
    cause it to be ignored by object cache resizer and low memory handler from
    that point on.
  - Since ReturnSlab() potentially unlocks, the conditions weren't quite correct
    and too many slabs could be freed.
  - Simplified things a bit.
* object_cache_alloc(): Since object_cache_reserve_internal() does potentially
  unlock the cache, the situation might have changed and their might not be an
  empty slab available, but a partial one. The function would crash.
* Renamed the object cache tracing variable to SLAB_OBJECT_CACHE_TRACING.
* Renamed debugger command "cache_info" to "slab_cache" to avoid confusion with
  the VMCache commands.
* ObjectCache::usage was not maintained anymore since I introduced the
  MemoryManager. object_cache_get_usage() would thus always return 0 and the
  block cache would not be considered cached memory. This was only of
  informational relevance, though.

slab allocator misc.:
* Disable the object depots of block allocator caches for object sizes > 2 KB.
  Allocations of those sizes aren't so common that the object depots yield any
  benefit.
* The slab allocator is now fully self-sufficient. It allocates its bootstrap
  memory from the MemoryManager, and the hash tables for HashedObjectCaches use
  the block allocator instead of the heap, now.
* Added option to use the slab allocator for malloc() and friends
  (USE_SLAB_ALLOCATOR_FOR_MALLOC). Currently disabled. Works in principle and
  has virtually no lock contention. Handling for low memory situations is yet
  missing, though.
* Improved the output of some debugger commands.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35283 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-25 13:46:58 +00:00
Adrien Destugues a1db5b96bb Fix build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35282 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-25 12:55:14 +00:00
Ingo Weinhold 71f65beeb3 Marked CACHE_UNLOCKED_PAGES as unsupported.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35281 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-25 12:22:36 +00:00
Ingo Weinhold d0e43cc7cb "vnode" does now also print the node type.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35280 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-25 12:21:48 +00:00
Ingo Weinhold ad6ad0f124 VMCache::Init(): Initialize the debug_* members before allocating the
VMCacheRef object, since that can fail, in which case the subsequently called
Delete() would use uninitialized pointers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35279 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-25 12:21:12 +00:00
Ingo Weinhold b20de45ebd * Added optional allocator template parameter.
* Added optional parameter "void** oldTable" to Resize(). If given the old
  allocation for the table is returned instead of freeing it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35278 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-25 12:18:20 +00:00
Adrien Destugues dc6a27e9b5 Import a set of french translations from Haiku Translation Assistant.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35277 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-25 10:49:21 +00:00
Stephan Aßmus 26353e2bd7 When the Quit button is invoked after an installation, do not prompt the user
for confirmation to restart the computer. Untested, but with good chances of
working as intended.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35276 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-25 10:00:13 +00:00
Ingo Weinhold d2e874ddff Patch by Matt Madia: Replaced non-POSIX "&>" by "2>&1 >".
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35275 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-25 04:10:32 +00:00
Axel Dörfler 2069f565e8 * After stippi's request, I was urged to update the decorators as well.
* Applied a minor style update to them. There are many many more violations in
  there, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35274 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-24 13:46:49 +00:00
Axel Dörfler 3c50a64697 * Inode::Create() should also better check if creating the file cache succeeded.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35273 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-24 13:05:19 +00:00
Axel Dörfler c709a396cf * Added a method NeedsFileCache() that determines whether or not a file cache
should be allocated.
* Inode::InitCheck() now fails if a file cache couldn't be allocated.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35272 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-24 13:02:18 +00:00
Axel Dörfler 4e32bf0954 * Simplified code a bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35271 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-24 12:15:31 +00:00
Michael Lotz c30aac4e5e Add the "Delivery-Date" to the default headers. This provides a fallback in case
the "Date" header is missing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35270 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 20:37:48 +00:00
Stephan Aßmus 1d30bdadcd Updated German for the new quit prompt in Installer when it is running alone.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35269 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 18:21:38 +00:00
Michael Lotz ff6fe8b3ad Automatic whitespace cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35268 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 17:45:16 +00:00
Clemens Zeidler ef0f557c65 As suggested by Axel use addr_t and size_t.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35267 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 16:40:36 +00:00
Ingo Weinhold c3f84a1df5 _FreeChunk(): When freeing a chunk from a formerly full meta chunk, we have
to add it back to its partial list or it would be leaked.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35266 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 16:06:19 +00:00
Clemens Zeidler 707e415d47 Allow a tap click when the right touchpad button is pressed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35265 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 15:23:58 +00:00
Ingo Weinhold 5726fbda3c MemoryManager:
* Does now keep one or two empty areas around, so that even in case of
  CACHE_DONT_LOCK_KERNEL_SPACE memory can be provided as long as pages are
  available. The object cache maintainer thread is used to asynchronously
  allocate/delete the free areas.
* Added new debugger commands "slab_meta_chunk[s]" and improved the existing
  ones.
* Moved Area::chunks to MetaChunk.
* Removed unused _AllocationArea() "chunkSize" parameter.
* Fixed serious bug in _FreeChunk(): Empty meta chunks were not removed from
  the partial chunk lists and could thus be used twice.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35264 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 14:46:04 +00:00
Stephan Aßmus e1453a3e5d When running as the only application, ask the user before quitting for
confirmation before restarting the computer. (Remember that new users may not
even know what the decorator close box does.)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35263 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 14:14:17 +00:00
Stephan Aßmus 5266a73520 Applied patch by romain. Through refactoring, the volume name is already
retrieved before a volume is actually mounted and this fixes #4602. I have
applied the patch as is, although it contains some minor coding style violations,
since these have been there before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35262 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 14:01:04 +00:00
Stephan Aßmus 4cdd68e739 * Don't draw/clear the background if the parent view draws on children.
* Make use of the BControlLook method to draw labels.

Both fix ticket #4875.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35261 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 12:50:13 +00:00
Stephan Aßmus c4e211feb6 * Refactored a method to draw a label when the location is already known.
(This one takes care of setting up the correct color.)
 * Added TODO about using either B_CONTROL_TEXT_COLOR, or elliminating that
   constant (which I am in favor of...).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35260 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 12:48:18 +00:00
Axel Dörfler 90b5a0b261 * Renamed all DEC_* constants to CLICK_*.
* Renamed DEC_MOVETOBACK to CLICK_MOVE_TO_BACK, and DEC_SLIDETAB to
  CLICK_SLIDE_TAB.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35259 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 12:43:48 +00:00
Axel Dörfler ba1d39e48f * Right clicking the resize area now always moves the window behind. This
obviously differentiates from BeOS behaviour, but I think it makes much more
  sense this way.
* Simplified DefaultDecorator::Clicked() by eliminating the "clicked" variable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35258 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 12:27:17 +00:00
Stephan Aßmus 10ddee8d8e Tweaked the alpha values to be more in line with the look when not blending.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35257 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 12:27:11 +00:00
Stephan Aßmus 61ac1a850f * Set the BLEND_FRAME flag when detecting that the parent view of the control
renders over children.
 * Support the BLEND_FRAME flag also when drawing BSliders.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35256 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 12:13:49 +00:00
Ingo Weinhold 34bfbec297 low resource handler: Clear the maintenance_in_progress flag also when
adding the cache to the maintenance queue. Not so important but more correct.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35255 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 11:13:49 +00:00
Ingo Weinhold c2d63cfa66 Reworked the object cache resizer (renamed to object cache maintainer) and
low resource handler functions. Particularly fixed the race conditions
between those and delete_object_cache().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35254 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 11:08:49 +00:00
Stephan Aßmus 312ca935ab * Refactored storing the playlist archive in the quit message.
* Added looping all windows on quit and store the current playlist if
   applicable.

Fixes #5061.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35253 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 10:52:36 +00:00
Stephan Aßmus fa8101b56e Remember the mouse snapping mode across sessions... fixes #4740.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35252 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 10:34:30 +00:00
Stephan Aßmus b2e4df131a Removed now useless run script.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35251 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 10:21:35 +00:00
Ingo Weinhold 10189b502d Changed the memory management algorithm: Instead of designating the area for
a certain chunk size, the areas are split into meta chunks (which are as
large as a large chunk) each of which can be a used independently for chunks
of a certain size. This reduces the vulnerablity to fragmentation, so that we
need fewer areas overall.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35250 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 09:14:01 +00:00
Michael Pfeiffer 100dd0cf5c Fixed number with exponent scanner (and simplified that code).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35249 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 08:31:15 +00:00
Stephan Aßmus abc26ba8ad Patch by "stimut": Fixed BMenu to return only enabled BMenuItems when invoking
them via mouse. This will make the mechanism that BSeparatorItems are always
disabled actually work and the behavior correct for other items as well. It also
fixes #4147 (Magnify crashing because it assume all its items have a BMessage).

Thanks a lot!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35248 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 07:50:45 +00:00
Ingo Weinhold 148637e9d0 Use large slabs for the page mappings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35247 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-22 21:51:26 +00:00
Ingo Weinhold 8d1316fd23 Replaced CACHE_DONT_SLEEP by two new flags CACHE_DONT_WAIT_FOR_MEMORY and
CACHE_DONT_LOCK_KERNEL_SPACE. If the former is given, the slab memory manager
does not wait when reserving memory or pages. The latter prevents area
operations. The new flags add a bit of flexibility. E.g. when allocating page
mapping objects for userland areas CACHE_DONT_WAIT_FOR_MEMORY is sufficient,
i.e. the allocation will succeed as long as pages are available.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35246 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-22 21:19:23 +00:00
Stephan Aßmus 86a0da42a5 Fixed spelling mistake.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35245 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-22 21:05:23 +00:00
Stephan Aßmus f88faf25fb Fix parsing scientific notation in the form of 1E+6 or 1E-6.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35244 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-22 21:02:04 +00:00
Ingo Weinhold e54d40e826 There's no reason for allocating with CACHE_DONT_SLEEP. The only thing that
would get us is that the allocations could fail when they wouldn't need to.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35242 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-22 20:01:26 +00:00
Ingo Weinhold 8a65066a11 vm_soft_fault(): map_page() can fail for B_NO_LOCK areas, since it needs to
allocate a page mapping. In that case we do at least have to mark the page
not busy again. Furthermore we enforce the minimum page mappings object cache
reserve, so we'll have more luck on the next fault.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35241 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-22 19:58:04 +00:00
Stephan Aßmus 789d560bc6 Automatic whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35238 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-22 11:48:16 +00:00
François Revol a8a6d0f150 Patch by mmadia: update NetSurf package, fix dependancies. Fixes #5311.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35237 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-22 11:41:59 +00:00