Commit Graph

33501 Commits

Author SHA1 Message Date
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
Ingo Weinhold
f6543e7d55 "&>" is not POSIX. Use "2>&1 >" instead.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35236 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-22 11:39:12 +00:00
Stephan Aßmus
e31addc53d Added German translation from HTA. Thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35235 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-22 07:04:47 +00:00
Joachim Seemer
787d6f11e8 Applied Matt's patch fixing images in the Welcome page. Fixes #5307. Thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35234 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-22 06:08:45 +00:00
Philippe Saint-Pierre
41b65b532e Patch by mmadia, updates Firefox's Optional Package
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35233 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-22 01:17:31 +00:00
Ingo Weinhold
86c794e5c1 slab allocator:
* Implemented a more elaborated raw memory allocation backend (MemoryManager).
  We allocate 8 MB areas whose pages we allocate and map when needed. An area is
  divided into equally-sized chunks which form the basic units of allocation. We
  have areas with three possible chunk sizes (small, medium, large), which is
  basically what the ObjectCache implementations were using anyway.
* Added "uint32 flags" parameter to several of the slab allocator's object
  cache and object depot functions. E.g. object_depot_store() potentially wants
  to allocate memory for a magazine. But also in pure freeing functions it
  might eventually become useful to have those flags, since they could end up
  deleting an area, which might not be allowable in all situations. We should
  introduce specific flags to indicate that.
* Reworked the block allocator. Since the MemoryManager allocates block-aligned
  areas, maintains a hash table for lookup, and maps chunks to object caches,
  we can quickly find out which object cache a to be freed allocation belongs
  to and thus don't need the boundary tags anymore.
* Reworked the slab boot strap process. We allocate from the initial area only
  when really necessary, i.e. when the object cache for the respective
  allocation size has not been created yet. A single page is thus sufficient.

other:
* vm_allocate_early(): Added boolean "blockAlign" parameter. If true, the
  semantics is the same as for B_ANY_KERNEL_BLOCK_ADDRESS.
* Use an object cache for page mappings. This significantly reduces the
  contention on the heap bin locks.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35232 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 23:10:52 +00:00
Ingo Weinhold
5f679d1cd3 Resize(): Added boolean "force" parameter that allows to force setting the
new memory, even if it isn't needed at that time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35231 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 22:16:03 +00:00
Stephan Aßmus
5b45f726d8 German catalog for DriveSetup. Not heavily tested.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35230 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 20:03:44 +00:00
Stephan Aßmus
7d24c6470f Localized DriveSetup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35229 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 20:02:57 +00:00
Stephan Aßmus
e07fca806a * Removed now useless run script.
* Updated TODO, we support creating partitions in empty space now. :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35228 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 18:17:06 +00:00
Stephan Aßmus
ca48b8d068 Removed no longer valid TODOs. Thanks PulkoMandy!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35227 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 15:54:57 +00:00
Stephan Aßmus
9add3a659a Updated German translation.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35226 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 15:53:03 +00:00
Stephan Aßmus
14c09c6029 Improved strings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35225 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 15:26:55 +00:00
Stephan Aßmus
b14896ee8d It Just Works(TM). Replaced the CD boot alert with ReadOnlyBootPrompt.
One just has to love the write overlay. That one really saved a lot
of work.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35224 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 15:14:20 +00:00
Adrien Destugues
141da9c590 Update the dutch translation of virtulmemory.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35223 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 14:55:07 +00:00
Stephan Aßmus
aef296bb5f Sorry, forgot to add German translation for ReadOnlyBootPrompt...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35222 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 14:51:10 +00:00
Stephan Aßmus
fa74162f8a Added application which is supposed to replace the "Do you wish to run the
Installer or continue booting to the Desktop" alert that pops up on CD boots.
It allows to set the language and keymap as the very first thing before a Haiku
installation. (Aside from replacing the alert.) Everything tested and working,
I just need to test integration in the Bootscript.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35221 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 14:41:58 +00:00
Stephan Aßmus
9471043456 Removed no longer needed header.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35220 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 14:39:43 +00:00
Stephan Aßmus
0ee4261ea8 * Don't return positive status_t in Load() instead of B_OK.
* Small coding style corrections.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35219 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 14:39:08 +00:00
Stephan Aßmus
384ed4569c Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35218 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 14:38:04 +00:00
Adrien Destugues
a292eb4af2 Removed useless static qualifier on some variables that made them behave weird.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35215 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 12:04:02 +00:00
Stephan Aßmus
005a5d0bfe Stumbled across some problems while using the Locale Kit and added TODOs
accordingly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35214 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 11:38:16 +00:00
Colin Günther
48e129c9d4 White space cleanup. No functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35213 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 10:07:25 +00:00
Adrien Destugues
62f29d9e0f Added dutch localization of VirtualMemory.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35212 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 09:44:01 +00:00
Ingo Weinhold
ce89123828 Patch partially by Samuel Rodríguez Pérez:
* Added amd64-* as supported host gcc machine.
* Added work-around for AMD64 FreeBSD 8: It only has a static libsupc++,
  which prevents us from building shared libraries, so we use the shared
  libstdc++ instead.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35211 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-21 04:04:51 +00:00
Adrien Destugues
5570fd11c0 - Locale kit : made the language class live. It now uses ICU as a backend as expected
- Some changes in the locale roster to allow instanciating a language
- Locale preflet : use this new API instead of directly calling ICU
Side effect : all languages in Locale window are now displayed in the current locale. It makes more sense as otherwise the list would be unsortable. However it can get annoying if you mistakenly set a strange language as default.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35210 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-20 22:44:34 +00:00
Stephan Aßmus
4a2da42550 * Applied localization to the Installer.
* Some coding style fixes along the way.
 * Added German translation.

NOTE: The Installer will have to offer a way to change the current locale! So
any translations which are done at this point will have to receive one more
update after I added this feature.

NOTE2: There is something wrong with generating catalogs and the update-all
jam target. If you don't do a clean build, the build won't run through, but it
is enough to build for example an image and then run update-all on your actual
partition profile.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35209 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-20 20:06:30 +00:00
Adrien Destugues
33e5fc1cb2 Add dutch translation for midiplayer, done by Meanwhile. Thanks !
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35208 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-20 19:34:45 +00:00
Adrien Destugues
2f1ed33261 Internationalization and esperanto localization for midiplayer, done by dancxjo.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35207 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-20 19:00:46 +00:00
Ingo Weinhold
08d66c1288 Always unlock the object cache while allocating memory. This is necessary for
the CACHE_DONT_SLEEP flag to work for real, since otherwise the thread could
block on the mutex held by a thread allocating memory. We use two condition
variables to prevent multiple threads from allocating slabs at the same time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35206 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-20 18:40:16 +00:00
Adrien Destugues
7bca271d9e Update of ja.catkeys done by koki. Thanks !
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35205 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-20 18:26:24 +00:00
Ingo Weinhold
8766b8b4b9 * Reverted r35203, i.e. ObjectCache::object_per_slab is gone again.
* Changed the semantics of object_cache_reserve_internal(). Now it makes sure
  the given number of objects are free. As a side effect this also changes
  the semantics of object_cache_reserve() similarly, though I have trouble
  seeing the purpose of the function in the first place.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35204 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-20 18:05:00 +00:00
Ingo Weinhold
4ebe37ab69 Added ObjectCache::objects_per_slab, which allowed to squash the TODO in
object_cache_reserve_internal().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35203 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-20 17:46:06 +00:00
Ingo Weinhold
bb439b871e * Consequently propagate the CACHE_DONT_SLEEP flag.
* block_alloc(): Create B_FULL_LOCK area.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35202 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-20 17:07:42 +00:00
Ingo Weinhold
547999af44 HashedObjectCache::ReturnSlab(): Also free the slab object itself.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-20 14:05:59 +00:00
Ingo Weinhold
453a2bdd18 Replaced the locking strategy (formerly a recursive lock for the depot and
one for each per CPU store):
* The depot is now protected by a R/W lock combined with a spinlock. It is
  required to either hold read lock + spinlock or just the write lock.
* When accessing the per CPU stores we only need to acquire the read lock
  and disable interrupts. When switching magazines with the depot we
  additionally get the spinlock.
* When allocating a new magazine we do completely unlock.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35200 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-20 13:00:57 +00:00
Ingo Weinhold
030a4ea6c9 Reordered functions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35199 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-20 12:12:54 +00:00
Ingo Weinhold
d66916e33b Shuffled functions a bit, so that they are in a reasonable order.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35198 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-20 10:56:34 +00:00
Ingo Weinhold
53a87b035b Removed debug left-over.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35197 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-20 10:28:18 +00:00
Ingo Weinhold
5662ae4585 Changed the team shutdown process a bit:
* The threads beside the main thread are killed earlier now (in the new
  team_shutdown_team()), before removing the team from the team hash and from
  its process group. This fixes #5296.
* Use a condition variable instead of a semaphore to wait for the non-main
  threads to die. We notify the condition right after a thread has left the
  team. The semaphore was released by the undertaker.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35196 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-20 09:34:53 +00:00
Ingo Weinhold
15779f70b9 vm_get_page_mapping(): The translation map wasn't locked. For x86 the
function is used only in one place and the missing locking would be harmless
if it weren't for the per translation map physical page mapper. It is used to
map the page table for the lookup. Concurrent access could corrupt its data
structures, or, just as bad, the unlocked Query() could remap the page table
used by a concurrent Map() or Unmap(), which would then manipulate the
wrong page table.
Potentially messing up kernel memory, this bug could obviously cause all
kinds of kernel crashes and weird behavior. E.g. ticket #5138 is a likely
candidate, as are triple faults.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35195 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-20 09:00:38 +00:00