Commit Graph

26300 Commits

Author SHA1 Message Date
Ingo Weinhold 77b93362c2 * Refactored the kernel daemon code into a class.
* Added a second kernel daemon service, resource resizer, which is
  mainly supposed to be used for resizing allocations asynchrounously.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27122 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 01:13:18 +00:00
Ingo Weinhold fc06a3f822 Added methods that allow asynchronous resizing of the hash table.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27121 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 01:10:24 +00:00
Bruno G. Albuquerque 31ee3b53f5 - Export the SCSI TOC in the CD:toc attribute (required by the CDDB protocol).
- Do not save or load attributes in the protected namespace.

Now cddb_server has everything it needs.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27120 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 23:46:00 +00:00
Ingo Weinhold 9445c73970 * Fixed spelling typo.
* Switched from new[]/delete[] to malloc()/free().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27119 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 23:17:27 +00:00
Ingo Weinhold 7ce72b986c * Implement CACHE_DONT_SLEEP partially. At least for small object caches
without object depot it should be complete. For the other stuff
  internal_alloc() would need to pass the flag on to block_alloc(), but
  that isn't possible yet.
* Adjusted the low memory handler to respect the minimum object reserve
  of the object caches.

The swap_test_heap test does seem to pass reliably with 128 MB RAM and
128 MB allocation, now. It's quite slow, though. Particularly while the
allocation is filled, the system is completely unusable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27118 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 23:02:08 +00:00
Ingo Weinhold 1e90630527 * Added a "flags" parameter to vm_create_anonymous_area() and
create_area_etc().
* When the new flag CREATE_AREA_DONT_WAIT is specified, the functions
  don't wait for memory or pages to become available. They fail
  immediately instead.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27117 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 22:50:11 +00:00
Ingo Weinhold 2e8e6c9c6e Introduced vm_page_try_reserve_pages(), which fails when not enough
pages are free ATM.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27116 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 22:43:52 +00:00
Jérôme Duval cc57c65424 updated libpng to 1.2.31: 1.2.30 had at least one serious regression
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27115 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 22:34:27 +00:00
Axel Dörfler 729e189a48 * Cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27114 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 20:31:18 +00:00
Michael Pfeiffer 4523512663 Print jobs whose transport add-on is either "Print To File" or not set at all (in case of "Preview" printer) are not processed sequentially.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27113 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 20:16:24 +00:00
Salvatore Benedetto 812da77b02 * added udf_{open,close,free_cookie,access}.
Still missing something though, as it still panics with an ip 0x0


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27112 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 19:43:42 +00:00
François Revol 3cdf783e2b Start of a PC-style serial port driver. For now it's mostly just copied parts of usb_serial, not yet usable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27111 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 15:03:14 +00:00
Ingo Weinhold d80bf853c6 Added swap support test program. It's currently running into deadlocks.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27110 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 14:37:28 +00:00
Bruno G. Albuquerque b29b6eb84a - Added a version of _RestoreAttributes() that accepts a fd as a parameter.
Usefull when, for some reason, you already have an fd around.
- Changed the non-parameter version to set the fd and call the parametrized
  version.
- CD-Text reasing is expensive (takes up to 4 seconds on my machine) so now it
  is only done if this is the first time the CD is inserted (technically, if it
  errors out when trying to open the attributes file for the CD). With this, the
  first time I mount a CD still takes 4 seconds, but consecutive mounts happen
  almost instantaneously.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27109 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 14:36:25 +00:00
Bruno G. Albuquerque 233871e4d4 - Yet another style fix. This is getting old. :) Thanks Axel (again).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 14:28:20 +00:00
Ingo Weinhold 6cc522252e Patch by Zhao Shuai with some changes by myself: Some optimization of
_SwapBlockBuild() and _SwapBlockFree().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27107 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 13:52:42 +00:00
François Revol e097cf0ba2 warning about to be fixed address collision
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27106 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 13:50:31 +00:00
Bruno G. Albuquerque 5ec5b4f201 - As expected, style fixes. Thanks Axel.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27105 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 12:37:31 +00:00
Salvatore Benedetto e0c8039816 * Removing new_vnode which was commented out in favor of publish_vnode
in order to publish the root node
* fixed _RootVNodeID assignement
* Applying our coding guidelines

Mounting now goes as far as lookup, then I get a panic from w>Desktop
thread in CreateVolume -> GetRootDirectory. ;-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27104 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 11:56:25 +00:00
Salvatore Benedetto c9334140f6 * Some coding style clean up
* Replaced some PRINT call with TRACE



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27103 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 11:48:17 +00:00
Salvatore Benedetto 67a6ba1c21 * Fix some identation. No functional changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27102 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 11:46:15 +00:00
Ingo Weinhold 4f2d40ec1b * The callback object created in WriteAsync() was never deleted. Thus
eventually the VIP heap would be exhausted.
* WriteAsync() didn't call the provided callback when an error occurred
  before invoking vfs_asynchronous_write_pages(). The page writer would
  get stuck in those cases.
* The object cache used for the swap blocks does now use the
  asynchronous resizing feature to avoid deadlocks.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27101 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 03:28:35 +00:00
Ingo Weinhold 1cda5944ad Added object_cache_set_minimum_reserve() which sets the minimal number
of free objects an object cache should try to have ready. If the number
of free objects drops below the threshold, a new urgent priority thread
is asked to asynchronously resize the object cache (pretty similar to
the heap grower thread). Such a mechanism is necessary for code paths
that are supposed to free pages, but may need memory themselves (like
the swap support).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27100 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 03:21:37 +00:00
Ingo Weinhold 17331a1768 * IOBuffer::Delete(): Check for NULL pointer. The IORequest destructor
calls the method unchecked, and the buffer can actually be NULL, if
  Init() failed.
* panic() when running out of VIP memory, at least when KDEBUG is
  set.
* Use heap_set_get_caller() for the VIP heap, so the heap leak checking
  produces useful caller addresses.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 03:11:47 +00:00
Ingo Weinhold 4a40451dd9 The "symbol" command does now set its return value to the symbol
address, so it can be used in expressions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27098 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 03:05:26 +00:00
Ingo Weinhold 9e637a6a84 * Added heap_set_get_caller() which can be used when heap leak checking
is enabled to set a per-heap get_caller() function.
* Added "-h <heap>" option to the "allocations_per_caller" command. If
  given only the allocation for the specified heap are considered.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27097 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 03:04:12 +00:00
Bruno G. Albuquerque 82427071c1 - Added skeleton for new cddb_server.
- Includes all relevant handling of CDDA exported attributes so you guys can
  see where I am going with this.
 
CDDB handling (including server connection, request and response parsing)
will come up next. In the future we will also have a configuration panel
and a Deskbar replicant for controlling it.

Do we really have to edit the Jamfile in the parent dir to get something
building with our build system?



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27096 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 02:33:19 +00:00
Alexandre Deckner 009aa366c6 - Changed Alt/Ctrl mode handling in Menu prefs, BMenu and Appearance
prefs as discussed in #2139 comments. This allow using Alt-Gr in either 
Ctrl or Alt mode. Appearance needs a serious style cleanup, comming next 
:)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27095 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 00:59:30 +00:00
Jérôme Duval 996be6dbb5 should have been part of previous commit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27094 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 23:28:06 +00:00
Jérôme Duval 5e29d55ee6 updating less with version 418, based on a checked patch from Scott.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27093 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 23:24:01 +00:00
Jérôme Duval 3658735727 fDeviceAddons wasn't maintained correctly. this fixes #2610
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27092 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 23:07:08 +00:00
Axel Dörfler 2a1a5a296f * Turned off debug output of the FileMapDisk stuff.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27091 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 20:44:29 +00:00
Axel Dörfler 8b7a165ad3 * We still lose information, so I enlarged this buffer a bit more.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27090 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 20:43:03 +00:00
Axel Dörfler 27ba18f412 * Turned off debugging output (intel.cpp still puts out some stuff, but only
when compiled for the kernel).
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27089 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 20:42:24 +00:00
Axel Dörfler 7a253cf5fe * Since the file cache can access any kind of data (and not just file data),
we must use {read|write}_pages() instead of {read|write}().
* This should fix accessing other file systems than BFS (ie. those that doesn't
  have an io() function) like ext3 and FAT.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27088 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 20:22:06 +00:00
Alexandre Deckner 1a8eb15993 - reverted last commit until the remaining issues are fixed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27087 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 18:50:14 +00:00
Alexandre Deckner 70e1a438fd -Fix keymaps where RCommand and ROption were inverted, menus shortcuts
and Menu preflet now show correctly wich mode you're on.

 Unless we implement a more flexible solution, we can't really customize 
these 
keys in the keymap anyway (for ex: Menu preflet will wrongly detect 
the mode, and if you change it, it will overwrite your keymap with the 
default hardcoded values anyway)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27086 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 17:24:49 +00:00
Salvatore Benedetto e1d037ce88 * Fixed some coding style violation introduced in my previous commit. Thanks Axel!
The recognition code is actually working, I was just using the wrong dvd. I'm now
using an iso file created with mkisofs.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27085 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 17:04:01 +00:00
Salvatore Benedetto feea37380d * Replaced PRINT call with TRACE
* Improved debug output



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27084 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 17:00:53 +00:00
Salvatore Benedetto 0c3428791d * Renamed error to status
* Replaced some PRINT with TRACE 
* uncommented udf_recognized function call in Mount method
* minor clean up



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 16:59:07 +00:00
Bruno G. Albuquerque df8aa69a76 - Created a static version of Attribute::IsProtectedNamespace() that takes an
attribute name as input. Handy for whyen we do not have an Attribute object
  around.
- Made the non-static version fall back to the static version.
- Also check for the protected namespace when creating attributes. For
  consistency, we should also not be able to create attributes in this
  namespace.
- Added some new style violations. ;)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27082 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 15:48:37 +00:00
Bruno G. Albuquerque bb6b4c5076 - More style updates. Thanks Axel.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27081 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 14:37:43 +00:00
Bruno G. Albuquerque b2807ad696 - Added the concept of a restricted attribute namespace. The attribute class
now has a IsProtectedNamespace() member.
- All CD:* attributes can not be directly edited by the user as they are
  internally maintened by the add-on itself.
- Style updates (thanks Stefano!)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27080 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 13:41:31 +00:00
Bruno G. Albuquerque 84719cae24 - Add a new CD:do_lookup attribute. It will be used by userland programs (like
cddblinkd) to know if they should lookup the CD or not. It will be true
  unless:

  1 - The CD has CD-Text information.
  2 - The user (or a userland program) changed the Volume name.
  3 - The user (or a userland program) changed any track names.

- Moved (again) attribute creation to before the stored attributes are read. As
  attribute operations happen in memory in cdda, we don't need to care about
  the IO cost and this way it is more in line with all the other attributes
  created.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27079 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 13:10:18 +00:00
Salvatore Benedetto 6960a91cd7 * Improve debug output
* Better formatting code

No functional changes.

Right now the code fails on recognizing the descriptor sequence.
I have to figure out if I pass the wrong values to the function.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27078 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 12:28:16 +00:00
Ingo Weinhold aab58d8730 Implemented (a simple) WriteAsync(), i.e. swap pages are now written
asynchronously, too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27077 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 11:44:23 +00:00
Axel Dörfler 743b3f1527 * Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 08:32:44 +00:00
Stefano Ceccherini 8c3921d063 fix gcc4 warning
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27075 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 08:21:25 +00:00
Axel Dörfler 4bfeb6f37a * Changed the way how a cache is destructed: now, it is removed from the
global cache list before locking it. This allows to get rid of the
  block_cache::deleting field, as well as simplifies some code.
* This also fixes a possible deadlock I recently introduced (on destruction,
  the locking order was wrong).
* Now uses an anonymous condition variable instead.
* Moved the block_cache initialization code into a dedicated method that will
  now also fail in case the low resource handler couldn't be registered (as
  pointed out by Salvatore).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27074 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 08:09:18 +00:00
Bruno G. Albuquerque d4969c919a - Moved creation of the CD:cddbid attribute to after the saved attributes are restored.
- Only adds it if it does not exist yet.

This does not change anything but makes more sense anyway.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27073 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 01:51:23 +00:00