Commit Graph

25972 Commits

Author SHA1 Message Date
Axel Dörfler
d125d984a6 * IconMenuItem now falls back to the icon of the super type, if a MIME type
didn't have one.
* Whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27144 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 12:06:50 +00:00
Axel Dörfler
206c62f036 * Got rid of the "count" parameter and maintenance altogether - makes the code
much simpler.
* Simplified code to compute "start", ie. the index of the first MIME type menu
  item.
* Promote MIME types to the top-level if their super type don't add any
  attributes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27143 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 12:01:27 +00:00
Axel Dörfler
090da60b27 * Renamed CreateMimeMenu() to AddMimeMenu(), as it now also adds the menu to
its parent. The item count of the parent is now actually adjusted, so that
  additional entries are found.
* AddMimeMenu() now returns the menu of an already existing MIME type. Hence,
  we don't add the supertype menu twice anymore for each type, or don't add
  the second type at all when called again.
* Cleaned up naming, consistent use of "* " vs. " *".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27142 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 11:46:50 +00:00
Axel Dörfler
15a27c4d5b * Whitespace cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27141 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 11:22:52 +00:00
Axel Dörfler
23f09d5a66 * unload_module_image() was never called with image == NULL, so I just removed
that possibility.
* It now has a "remove" argument instead, that decides whether or not the
  image has to be removed from the hash still.
* Moved locking to put_module_image(), ie. both, {load|unload}_module_image()
  need to be called with the sModulesLock held now.
* module_init_post_boot_device() needs to remove the image from the hash itself,
  or else it messes up its hash iterator.
* check_module_image() could call unload_module_image() under certain
  conditions - but this was completely wrong, and could have caused crashes.
* search_module()/check_module_image() now keep a reference to the module
  image on success, thus a caller doesn't need to call get_module_image()
  again afterwards - this also fixes another round of potential module
  unloading to happen.
* That reference is leaked for built-in modules in get_module(), but it doesn't
  matter for them, anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27140 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 10:19:29 +00:00
Salvatore Benedetto
764ca4773b * fix udf build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27139 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 10:15:35 +00:00
Salvatore Benedetto
e2dc263c43 * Replaced some PRINT with TRACE
* Rename error to status
* Fix assignements in udf_read_stat
* Added udf_{close_dir,free_dir_cookie} hook functions which prevented
udf from mounting the partition

It seems mouting an udf partition works correctly but I'm still unable
to list its content.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27138 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 10:06:44 +00:00
Salvatore Benedetto
89264fe471 * Improve debug output. No functional changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27137 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 09:59:01 +00:00
Axel Dörfler
5a123e3591 * Added a post boot device module init function that unloads all unused modules,
as they aren't unloaded when there is no boot device yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27136 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 09:41:10 +00:00
Stefano Ceccherini
dcd8c085ed The actual implementation of HPET timers (not used yet, as it seems not to work correctly), by Dustin Howett (GSOC)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27135 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 09:34:19 +00:00
Axel Dörfler
2f2ba71fab * The USB bus manager was leaking unused bus modules.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27134 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 09:20:28 +00:00
Axel Dörfler
29336cb02b * Most modules were never unloaded due to a bug in put_module().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27133 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 08:35:22 +00:00
Stefano Ceccherini
0fce483f9c fix the build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27132 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 08:22:13 +00:00
Stefano Ceccherini
17d39c90b1 code for initializing hpet in the bootloader. Moved around some hpet definitions. HPET initialization is commented out, at the moment
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27131 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 08:15:14 +00:00
Axel Dörfler
c3eeae18ec * FAT's fs_read_dir() function filled the dirent::d_reclen member incorrectly,
causing a partial copy of the entry in vfs.cpp fix_dirent(), which then
  returned an error, making FAT directories unreadable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27130 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 08:07:04 +00:00
Stefano Ceccherini
6a8cce077f add hpet locations to the kernel_args. Patch by Dustin Howett (GSOC)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27129 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 08:03:25 +00:00
Axel Dörfler
2fd4fdcf3b * Changed the way fix_dirent() copies the entry: it will now copy the complete
dirent without the name first, and will then check if the d_reclen member
  is valid before copying the name.
* This shows the problem with the FAT file system that was revealed by r26859.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27128 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 08:02:38 +00:00
Stefano Ceccherini
521a945c90 (part of) a patch by Dustin Howett (GSOC) which implements HPET timers. I'm committing this work split in small patches, since HPET timers aren't working correctly yet, and I won't commit the parts which don't work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27127 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 07:57:50 +00:00
Bruno G. Albuquerque
e51479d912 - Creates the supertype menu when only supertype attributes are present.
- *NOW* it works.
 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27126 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 04:10:30 +00:00
Bruno G. Albuquerque
be8c87abf6 - Added a new CreateMimeMenu() method that creates the menu with attributes
for a specific MIME type. 
- Attribute menus now display a hierarchy with type and supertype attributes.

This looks a bit ugly but mostly because not all types and supertypes have icons and descriptions. Anyone up to do a MIME database cleanup? :)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27125 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 03:57:57 +00:00
Ingo Weinhold
d74af3b17f Improved output. Particularly when the allocation is filled, it is nice
to know whether there's still progress.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 01:16:48 +00:00
Ingo Weinhold
5540989032 Squashed a TODO: The global swap hash table is no longer resized
synchronously; we use the resource resizer instead. This avoids another
potential deadlock.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27123 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 01:15:18 +00:00
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