Commit Graph

25187 Commits

Author SHA1 Message Date
Michael Lotz
0aad734230 The simple alignment trick used before doesn't work with the new heap classes
(it didn't really work previously anyway). The only alignment really used seems
to be B_PAGE_SIZE, which happened to always work out before, because anything
larger would have been allocated using individual pages anyway. Since larger
bins are now available and with kernel heap leak checking enabled an allocation
of B_PAGE_SIZE with B_PAGE_SIZE alignment is actually a bit bigger than
B_PAGE_SIZE, it got into the 5KB bin, which didn't guarantee the alignment
anymore. This would have caused a tripple fault on boot when kernel heap leak
checking was enabled. The alignment is now taken into account when picking
the bin for the allocation. Added a more detailed TODO as to why this isn't
the best thing (wastes space) and how it could be changed if deemed necessary.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26212 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 00:59:32 +00:00
Stephan Aßmus
396f6e29ee bonefish+stippi:
Implemented the needed fs API hooks to support identifying partitions 
(so ReiserFS partitions appear in the Tracker Mount menu now).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26211 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 23:54:08 +00:00
Michael Lotz
b1f4df4a62 Implement heap classes that each have their own range of allocation sizes they
serve, bin sizes and page size. This minimizes the amount of "large"
allocations made in heaps that don't have a bin for the allocation size
(combining multiple pages). This is desirable as such large allocations
are generally pretty inefficient, and also because it separates larger from
smaller allocations better, making the chance of a heap becoming empty higher.
For now there are three heap classes "small", "large" and "huge", with a
predefined set of bin sizes for each. This might need some finetuning later on.
Reduce the grow size to 4MB though as the allocations should now be spread
across heap classes which each grow on their own.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26210 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 23:19:35 +00:00
Stephan Aßmus
e8679dcdc7 Merge Ingo's reiserfs changes which he accidentally commited to his branch: Adopted reiserfs add-on to the new fs API and added it to the image.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26209 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 22:46:54 +00:00
Marcus Overhagen
d7c321236f Set transfer length when doing ATAPI transfers.
Dump ATAPI command packet on error.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26205 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 22:04:33 +00:00
Jérôme Duval
af206cf2d6 gcc4 build fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26204 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 20:56:23 +00:00
Michael Lotz
8c57aefdf8 Remove the B_PAGE_SIZE page size and replace it by a heap->page_size. This
allows for dynamic (heap)page sizes. It's currently just set to B_PAGE_SIZE
but I'm expermienting with the creation of differently sized heaps that could
use dynamic page sizes with that.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26203 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 20:44:43 +00:00
Oliver Ruiz Dorantes
b42c202a65 Fix typos reported by Mika, and remove whitespaces
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26202 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 20:28:12 +00:00
Oliver Ruiz Dorantes
d0651ae6ac Add entity to handle the available LocalDevices from KL
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 20:25:08 +00:00
Michael Lotz
86a38aedf4 Take a shortcut when freeing in heap_realloc(), we already know the address belongs to our heap.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26200 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 20:18:02 +00:00
Oliver Ruiz Dorantes
291e114333 Fix EOL
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26199 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 19:43:37 +00:00
Oliver Ruiz Dorantes
480cccf67b Fix a serious TODO,
Report the index where the event opcode pair has been found.
Currently server was expecting them to be the first entry of the request 



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26198 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 19:35:10 +00:00
Michael Lotz
5c5b7a5760 While the comment was correct with regards to collecting the semaphore after
the cancel, it wasn't actually done. This could bring a device out of sync in
the case timeouts actually happened (which shouldn't be a commen case).
Fixed that and increased the timeout to 2 seconds in favor of slower devices.
Might need some fine tuning later still.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26197 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 19:21:59 +00:00
Oliver Ruiz Dorantes
18dbcd22a0 Handle the command status sent before the arrival of a remote name request.
Avoid unhandled event in the bluetooth_server
	by Mika Lindqvist
  


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26196 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 19:15:15 +00:00
Oliver Ruiz Dorantes
ab563fc0a5 Fix mail in header
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26195 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 19:00:39 +00:00
Rene Gollent
78163ba34d That should've been eol-style :/
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26194 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 17:31:11 +00:00
Rene Gollent
452d5f989a Set svn:eol property to native to deal with CR/LF problems.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26193 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 17:27:24 +00:00
Stephan Aßmus
f592fcef43 stippi + bonefish:
Fixed race conditions when a ServerApp or ServerWindow is created. The 
reply to the client that the object has been created successfully was 
sent in the thread creating it. Preempted at the wrong time (right after 
writing the message to the port) could lead to the object's thread using 
the link at the same time, which would screw up all subsequent 
communication via that link.
This fixes the problem that mimeset would sometimes fail when building 
Haiku in Haiku (can't find the ticket). It probably also fixes #2331, 
and the bug that sometimes when a window is opened (Terminal, crash 
alert, shutdown window, etc.) it would come up with huge width/height 
and tiny other dimension (can't find the ticket).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26192 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 15:47:56 +00:00
Axel Dörfler
0c48c43777 * Fixed the bfs_write() error code for directories as suggested by Jerome.
* Removed a few superfluous checks.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26191 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 11:42:51 +00:00
Axel Dörfler
25f758586b * Added ext2 file system to the image.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26190 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 11:28:48 +00:00
Axel Dörfler
6450897685 * Fixed a pretty dumb copy&paste error that prevented (/double/triple) indirect
blocks from working.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26189 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 11:24:48 +00:00
Axel Dörfler
0680840ad1 * Added support for files larger than 4GB - not yet tested, though.
* The stat::st_nlink value is now correctly reported.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26188 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 10:39:39 +00:00
Axel Dörfler
63db34c816 * Implemented a read-only ext2 file system.
* It's not yet complete, doesn't support some ext2 stuff (like files over 4 GB),
  and might have some other bugs (I only tested it with a single 20 MB ext2
  image).
* To have a read/write ext2 file system, it would probably make more sense to
  port GNU sources (like ext2fs lib), and use that. But a small read-only ext2
  file sytem doesn't hurt, I think, and I don't know if ext2fs lib would be
  feasible for kernel use (porting the file system from Linux directly would
  also be an alternative, but probably more work).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26187 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 10:12:19 +00:00
Jérôme Duval
fdf3fa9fe1 read() expects B_IS_A_DIRECTORY on directories that can't be read.
This fixes grep misbehavior with directories.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26186 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-30 23:06:41 +00:00
Philippe Houdoin
774e87aac9 Removed mention of Haiku, a generic "system" sounds both better and distro name independent.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26185 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-30 22:35:01 +00:00
Philippe Houdoin
eb0a51d2f2 Applied patch by David Powell: fix missing and existing bootloader options menu items help texts.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26184 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-30 22:25:19 +00:00
Oliver Ruiz Dorantes
5e53139393 Make the BWindows die in a proper way as suggested by mmu & stippi
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26183 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-30 22:16:23 +00:00
Oliver Ruiz Dorantes
51ac4f530a Patch by Mika Lindqvist
FromString Implementation for the bdaddr utils class 



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26182 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-30 21:43:21 +00:00
Jérôme Duval
45e9de08d5 merging acpica-20080609 into trunk, changes some types in os code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26181 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-30 21:06:24 +00:00
Axel Dörfler
d5157b61d2 * Reverted r26128 again; it should not be necessary after r26177 anymore.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26178 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-30 10:41:55 +00:00
Axel Dörfler
8531599a27 * KDiskDeviceManager::RescanDiskSystems() now also rescans all partitions with
the newly found disk systems.
* _ScanPartition() now allows to restrict the disk systems to a predefined set.
* _ScanPartition() now even scans partitions that already have a disk system
  assigned; if a better one is found, the existing one is replaced. It will
  ignore mounted or partitions with children, though.
* KPartition now also stores the priority of the disk system assigned to it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26177 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-30 10:36:47 +00:00
Rene Gollent
781420cc0e Don't include the easter egg decor menu in Haiku builds since it does nothing anyhow.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26176 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-30 02:51:08 +00:00
Ingo Weinhold
9f130719f5 Fixed the layout of the "aspaces" command output and added the number of
areas and the total area size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26172 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 23:17:41 +00:00
François Revol
ff41eb66a3 Fix build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26171 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 21:08:12 +00:00
Michael Lotz
d0b2c3e1b8 Remove locking when drawing the decorator buttons. This is most probably not
correct, but it prevents a deadlock that could sometimes be seen right after
booting when the Terminal was supposed to draw the decorator buttons. It
doesn't seem to cause any problems with locking removed (the original drawing
code didn't lock either). Added a TODO to investigate and eventually fix that
though.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26170 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 21:03:34 +00:00
François Revol
81c9dc3dd5 The file was changed to C++...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26169 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 20:59:46 +00:00
Jérôme Duval
bf48050249 setup register cache after the codec id is known
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26168 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 20:47:01 +00:00
Rene Gollent
fa366cbe40 Accidentally broke CountItemsUnder() for invalid items with previous commit. This fixes
VLC, which for some reason calls CountItemsUnder(NULL) quite a few times on startup.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26167 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 18:54:28 +00:00
François Revol
f41c3a5bcd - Move Atari platform class out to a platform file.
- Use the platform object to determine the platform type in system_info.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26166 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 18:22:34 +00:00
Ingo Weinhold
d9a109d8dc "caches" also prints the total number of pages assigned to caches and
the total amount of committed memory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26165 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 15:16:34 +00:00
Ingo Weinhold
478c7fe7e5 Also print free() info when wall checking is disabled.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26164 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 14:47:08 +00:00
Axel Dörfler
ccdad945c6 * Applied patch by Donn Cave: channel_set() was missing, causing bug #2284.
Thanks!
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26163 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 10:24:40 +00:00
François Revol
931a9e2b88 Fix build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26162 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 09:35:50 +00:00
Ingo Weinhold
9e1ea0e7d4 Don't leak the buffer allocated at the beginning of the function.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26161 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 00:13:03 +00:00
Ingo Weinhold
e1b630c55d * Replaced the global cache pages hash table by an IteratableSplayTree
per cache.
* Changed the strategy vm_cache_acquire_page_cache_ref() uses to ensure
  that the cache isn't deleted while trying to get a reference. Instead
  of the global cache pages hash table lock, it holds the global cache
  list lock now. We acquire + release this lock in delete_cache() after
  removing all pages and just before deleting the object.
* Some small optimizations using the property that the cache's pages are
  ordered, now (vm_cache_resize(), vm_page_write_modified_page_range(),
  vm_page_schedule_write_page_range()).
* Replaced some code counting a cache's pages by simply using
  vm_cache::page_count.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26160 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-28 23:42:41 +00:00
Ingo Weinhold
c84d037f75 Added templatized SplayTree class derived from a Java implementation by
D. Sleater. Also added a IteratableSplayTree class that extends
SplayTree, additionally maintaining a singly-linked list, thus allowing
for efficient forward iteration.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26159 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-28 23:22:43 +00:00
Michael Lotz
ee55190f63 Adding a native subversion 1.4.6 optional package. This is a more or less
straight all-static build, with only OpenSSL as dependency. Be sure to include
OpenSSH (and set a hostname) if you intend to use svn+ssh. Should work with
svn, svn+ssh, http and https. Feel free to replace with a proper dynamically
linked version once available.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26158 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-28 20:51:43 +00:00
Michael Lotz
a5db16fc79 * Implement counting free pages in kernel heaps.
* Suggest growing when there are less than 10% free pages in the last heap.
  Previously it would suggest growing when there were less than three free
  pages, which wasn't really any good measure. In quite a few cases this could
  have lead to too late growing and running out of heap space.
* Only panic when memory allocation fails while growing kernel heaps. Otherwise
  just output a message and return NULL. Even this panic is not really
  necessary and should be continueable, but for now I'd like to see if this
  situation actually happens.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26157 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-28 20:03:23 +00:00
Michael Lotz
0a7531ac0d We don't have a "working strerror_r" as far as grep configuration is concerned.
Grep declares it "working" when strerror_r returns a string, while POSIX says
it should return int (as we do). Don't know where this config define came from,
as we do not have any headers advertizing it wrongly. This fixes bug #2450.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26156 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-28 18:30:16 +00:00
Michael Lotz
f4ccccb1f0 Patch by Monni that fixes a warning caused by a missing # prefix. This fixes
bug #2463, thanks!

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26155 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-28 17:44:42 +00:00