Commit Graph

33788 Commits

Author SHA1 Message Date
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
Michael Lotz
28e27159b9 Adding a log_overlay filesystem layer. It passes through all calls to the other
layer(s) and logs a timestamp, the thread id, the super volume or super vnode
and interesting bits about call arguments/results to a file (in /var/log). This
can be used for example to debug filesystems without having to manually add
debug output to all the calls, or to analyze access patterns. To add the logging
layer just mount the layer with whatever actual filesystem you have:

  mount -t "bfs:log_overlay" /dev/disk/usb/0/0/0 /mountpoint

This would then create the logfile /var/log/log_overlay_dev_disk_usb_0_0_0.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35194 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-20 05:01:28 +00:00
Philippe Saint-Pierre
94a20a5e74 [Expander]: Fix for Zoom
* When the zip file was really large, it was possible the Height passed to SetZoomLimit exceeded the maximum allowed size. Now, we clip at 32767.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35193 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-20 03:56:36 +00:00
Rene Gollent
e9b3ccb129 Add Japanese Background preflet translation by Jorge G. Mare.
Thanks! Closes ticket #5300.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35192 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-20 02:45:37 +00:00
Michael Lotz
40fa690b51 The vnode->private_node holds our object, not vnode itself.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35191 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-19 23:47:03 +00:00
Karsten Heimrich
fb39cbd38b * Fixes ticket #3068. DataTranslations accept timezone files as valid
translators.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35190 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-19 23:35:25 +00:00
Karsten Heimrich
887d9b8b43 * Cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35189 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-19 23:35:22 +00:00
Philippe Saint-Pierre
03734edfef [Expander] : Window Sizing enhancements
* Now takes the screen size into consideration when enlarging the window (fixing ticket #5280)
 * Enables Zooming capabilities
 * Remembers the last height of the window so that clicking Show contents on and off just returns it to the previous height.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35188 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-19 23:31:58 +00:00
Rene Gollent
c40914bbf5 Fix build with VM_PAGE_FAULT_TRACING enabled.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35187 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-19 23:29:15 +00:00
Karsten Heimrich
73f41f49ec * Introduce a new method to ask the translator if it can handle the image
output size, if not it will not show up in the dynamically generated
  translator list. Folow up on ticket #4874.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35186 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-19 22:52:09 +00:00
Colin Günther
0541219b59 Applying patch by mmadia. This fixes ticket #5299. Thank you!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35185 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-19 22:05:18 +00:00
Stephan Aßmus
908b8aa481 Patch by Matt Madia:
Ignore "NetFS" OptionalPackage in the installoptionalpackage script. It is a
source code only optional package which needs to be compiled from within the
tree.

Thanks a lot! Fixes #5297.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35184 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-19 21:37:41 +00:00
Ingo Weinhold
20ca0c5eaa * object_cache_return_object_wrapper(): Calling object_cache_free() is a bad
idea, since that would potentially add the object back to the object store
  or lead to infinite recursion. When the object cache is destroyed it most
  likely led to infinite loops, because the object would alternately be
  removed from and added back to the object store.
* delete_object_cache(): Lock after destroying the object store, so we don't
  deadlock.
* Use the object store on SMP machines. It seems to work, though I only
  tested with the network stack and that seems to have problems of its own.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35182 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-19 20:45:20 +00:00
Ingo Weinhold
bcf73b3a59 Pulled smp_get_num_cpus() out of loops.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35181 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-19 20:37:39 +00:00