Commit Graph

33669 Commits

Author SHA1 Message Date
Oliver Tappe
291785f88f * added support for library (API-)versioning and private system libraries to
build system
* declared ICU-libs as private system libraries, which causes them to no longer
  be available for building software (they no longer are linked from the 
  development lib folder, so the linker won't find them)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35323 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-27 23:13:49 +00:00
Ingo Weinhold
d18eaf4c53 * Improved the clarity of some loops in the page reservation functions. No
functional change (other than avoiding no-ops like subtracting 0).
* vm_page_try_reserve_pages(): Moved the kernel tracing calls from the top of
  the function to the points where the reservation already succeeded.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35322 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-27 20:55:02 +00:00
Ingo Weinhold
b6620ccc71 Make the {memalign,free}_etc() available in the kernel emulation.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35321 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-27 19:04:46 +00:00
Oliver Tappe
9d63a92ad0 * automatic whitespace cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35320 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-27 18:38:03 +00:00
Adrien Destugues
ffb916a4cb Apparently the .catkeys export of hta is not perfect yet...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35319 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-27 18:23:35 +00:00
Adrien Destugues
ecfb367cb5 Add dutch transaltion for drivesetup and readonlybootprompt.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35318 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-27 17:31:34 +00:00
Stefano Ceccherini
7a2cbc6c30 Moved terminal preferences to its own directory.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35317 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-27 12:46:21 +00:00
Ingo Weinhold
deee8524b7 * Introduced {malloc,memalign,free}_etc() which take an additional "flags"
argument. They replace the previous special-purpose allocation functions
  (malloc_nogrow(), vip_io_request_malloc()).
* Moved the I/O VIP heap to heap.cpp accordingly.
* Added quite a bit of passing around of allocation flags in the VM,
  particularly in the VM*AddressSpace classes.
* Fixed IOBuffer::GetNextVirtualVec(): It was ignoring the VIP flag and always
  allocated on the normal heap.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35316 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-27 12:45:53 +00:00
Ingo Weinhold
94a877f0e5 Lock the kernel address space last.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35315 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-27 07:19:58 +00:00
Jérôme Duval
2a22d2f0e6 forgot these files
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35313 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-27 02:00:32 +00:00
Jérôme Duval
7fd580914a * updated libjpeg to version 8, as the previous version on trunk didn't look like version 7, the merge wasn't usable. I modified jpeglib.h to have the JPEGTranslator built.
* added libjpeg to AboutSystem
* JPEGTranslator now uses the shared library libjpeg.so


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35312 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-27 01:57:51 +00:00
Michael Lotz
c14db1b2a1 Also accept buttons from the "button page" as long as they are using arrays.
That usually indicates keyboard-like usage and one of my keyboards uses this
type for multimedia keys.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35311 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-27 00:44:39 +00:00
Jérôme Duval
9af4e61b28 update to tzdata2010b
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35308 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-27 00:24:02 +00:00
Jérôme Duval
96cddcb711 * avoids crashing when fPlayList is already gone on quitting.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35307 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-27 00:22:48 +00:00
Michael Lotz
384eec9bc3 Add "hid_decode" which uses the usb_hid HID parser to decode a report descriptor
(which is conveniently stored by usb_hid to /tmp for each device you plug in).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35306 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-26 23:34:23 +00:00
Michael Lotz
fd97180e27 Make the HID parser usable standalone in userland.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35305 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-26 23:27:56 +00:00
Ingo Weinhold
64a9bd15c8 Optimized writing of zeroes to files. Instead of allocating a small buffer
on the fly, clearing and writing it each time, we now use an iovec with 32
identical entries pointing to a clear page that we prepare once at
initialization. This speeds up clear_image in low memory situations
dramatically.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35304 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-26 21:30:50 +00:00
Michael Lotz
cef3da793a Remove leftover from lazy copy&paste action.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35303 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-26 21:27:42 +00:00
Michael Lotz
63bcd0d0c3 Add "URI" property that returns the URI of the currently playing item.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35302 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-26 21:23:33 +00:00
Oliver Tappe
959abd1c51 * added optional package ICU-devel, which (hopefully) contains all the headers
required to build applications that require ICU


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35301 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-26 20:27:16 +00:00
Oliver Tappe
5337f612fe * added license for ICU
* added missing ICU copyright credit to AboutSystem

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35300 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-26 20:20:34 +00:00
Ingo Weinhold
7fa3e4e68a cache_io(): Reevaluate the memory situation periodically. Deciding at the
beginning whether to pass the cache by really doesn't help when
reading/writing a huge amount of data, since a low memory situation is likely
to occur at some point during the operation. This should fix the main issue
of #3768.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35299 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-26 17:22:46 +00:00
Ingo Weinhold
cff6e9e406 * The system now holds back a small reserve of committable memory and pages. The
memory and page reservation functions have a new "priority" parameter that
  indicates how deep the function may tap into that reserve. The currently
  existing priority levels are "user", "system", and "VIP". The idea is that
  user programs should never be able to cause a state that gets the kernel into
  trouble due to heavy battling for memory. The "VIP" level (not really used
  yet) is intended for allocations that are required to free memory eventually
  (in the page writer). More levels are thinkable in the future, like "user real
  time" or "user system server".
* Added "priority" parameters to several VMCache methods.
* Replaced the map_backing_store() "unmapAddressRange" parameter by a "flags"
  parameter.
* Added area creation flag CREATE_AREA_PRIORITY_VIP and slab allocator flag
  CACHE_PRIORITY_VIP indicating the importance of the request.
* Changed most code to pass the right priorities/flags.

These changes already significantly improve the behavior in low memory
situations. I've tested a bit with 64 MB (virtual) RAM and, while not
particularly fast and responsive, the system remains at least usable under high
memory pressure.
As a side effect the slab allocator can now be used as general memory allocator.
Not done by default yet, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35295 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-26 14:44:58 +00:00
Michael Lotz
c5d6e9b06e Add some scripting to the MediaPlayer so it can be remote controlled.
Example usage to skip one track forward: hey MediaPlayer Do Next of Window 0


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35294 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-26 04:41:54 +00:00
Michael Lotz
a387e84423 Also accept B_MIME_DATA dropped messages. Allows the Terminal to be used with
Keymap as an on-screen keyboard by dropping the sample clipboard content and the
actual keys onto it (including control ones).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35293 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-26 02:34:07 +00:00
Michael Lotz
96d719ae74 Automatic whitespace cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35292 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-26 02:30:21 +00:00
Stephan Aßmus
7f2f2fa041 Remove the ucontext.h header again, until the whole SA_SIGINFO backend is
implemented fully in order not to fool ported software into believing this
API can be used.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35291 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-25 23:16:06 +00:00
David McPaul
50ff266ef2 Add SSE versions of YUV2RGB converters for earlier x86 cpus
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35290 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-25 21:53:56 +00:00
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