Commit Graph

19304 Commits

Author SHA1 Message Date
Marcus Overhagen
533b9a69a7 removed unnecessary use of const_cast
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20291 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 19:14:19 +00:00
Marcus Overhagen
a20cecff60 removed unnecessary use of const_cast<> and (global) do_playback() function
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20290 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 18:37:55 +00:00
Jérôme Duval
506a2d9cc1 fix gcc4 build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20289 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 18:12:01 +00:00
Stefano Ceccherini
649d84071b Removed commented code which implemented reading and writing of old
style BPicture data. If we need to support it, we can always resurrect 
the code from the svn history.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20288 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 15:45:57 +00:00
Stefano Ceccherini
79e78d47e9 Moved some functions around, some minor cleanups...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20287 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 14:57:36 +00:00
Stefano Ceccherini
ece074abe2 Archiving the picture now works
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20286 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 14:53:52 +00:00
Stefano Ceccherini
caae1184ab When creating a picture with data, the app_server was writing beyond the
allocated memory, without telling anyone. That was causing bad things to 
happen. Flattening and unflattening BPictures now works, and 
consequently, printing works too. Bug #1014 is fixed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20285 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 14:47:10 +00:00
Axel Dörfler
ab0ad5e92b Implemented printing the stack trace in vm_page_fault() for PPC as well.
Not tested, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20284 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 14:39:09 +00:00
Axel Dörfler
00be6a4ccb And of course, we shouldn't test newArea->cache_type before it was set...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20283 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 13:58:34 +00:00
Axel Dörfler
528e40c07d Of course, we need to query the address space of the source area, not the one of the target.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20282 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 13:52:58 +00:00
Axel Dörfler
0c12332715 * vm_map_physical_memory() now sets the wiring/locking type of the area created
to B_FULL_LOCK.
* vm_clone_area() now respects the source area's wiring and inherits it. This
  should fix bug #1055.
* vm_cache::type is now duplicated in vm_area::cache_type - this allows looking
  it up without having to lock a vm_cache_ref; this also solves a locking bug
  in vm_unmap_pages() in this regard.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20281 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 13:44:55 +00:00
Stefano Ceccherini
ccfc8a3dcb Archive the 2 pictures to a message, in order to compare the data.
Currently Archiving the Unflattened picture doesn't work, and it hangs 
inside assert_local_copy(), waiting for the app_server reply...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20280 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 13:19:05 +00:00
Axel Dörfler
5eb9da355a * The KDL commands cache/cache_ref will now also print the type of the cache.
* Made the output look a bit more like that of the other commands.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20279 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 13:09:41 +00:00
Axel Dörfler
7ce2eaa1e0 Patch by Euan Kirkhope:
* VIP FIFO functions for Rage Theater200 support


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20278 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 09:43:33 +00:00
Axel Dörfler
0caeca2af7 Patch by Euan Kirkhope:
Sync overlay with x.org


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20277 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 09:41:37 +00:00
Axel Dörfler
df647a5c3d Patch by Euan Kirkhope:
* Laptop LCD Backlight rework + powermanagement


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20276 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 09:38:11 +00:00
Axel Dörfler
b8fb3d1705 Patch by Euan Kirkhope:
Monitor Routing rework
 * mostly to fix my issues with dual monitors VGA + DVI which didn't work! ;)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20275 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 09:35:22 +00:00
Axel Dörfler
19cadc2f7d Patch by Euan Kirkhope:
* Kernel settings configuration added


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20274 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 09:33:08 +00:00
Axel Dörfler
a85694c375 Patch by Euan Kirkhope:
* option for PIO engine instead of DMA (for dodgy X700s)
* misc RAM config changes inline with x.org codebase


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20273 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 09:28:25 +00:00
Axel Dörfler
300bef5821 Patch by Euan Kirkhope:
* New "ATOM" BIOS Support for radeons X-series
* This also removes scanning for the BIOS signature for other cards


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20272 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 09:05:12 +00:00
Axel Dörfler
8841d8bcd1 First of a set of patches by Euan Kirkhope:
* Headers updated
 * PLL errata workarounds
 * Radeon asic type overhaul (consolidated)
 * Device IDs Updated.
 * support for X-series devices with legacy bios type
 * minor tidy ups / compiler warnings (casts)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20271 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 09:00:49 +00:00
Stefano Ceccherini
3bf72bcb7c Unflattening the picture was obviously failing because we didn't rewind
the stream after Flattening. Now Unflattening works, but the picture 
seems to be empty


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20270 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 08:47:05 +00:00
Travis Geiselbrecht
0098867364 this seems to solve the 'lock up on bootup on core 2' problem.
Basically, there was a pretty subtle race between the cpus in main where if the main cpu released the AP cpus and then before the AP cpus had a chance to run the boot cpu started creating the main thread (which causes smp ici messages to be created) the system would livelock, where the boot cpu waited forever for the AP cpu to acknowledge the ICI (for a TLB flush when creating the kernel stack).
Added smp_cpu_rendezvous(), used to synchronize all the cpus to a particular point, and used it a few times in main().
While i was at it i fixed another race that'll probably never happen, but what the hey. Make sure the kernel args are copied into kernel space by the main cpu before letting any other ones use it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20269 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 08:09:28 +00:00
Travis Geiselbrecht
8d7966617a the last smp change wasn't quite it. This time, make sure it maps the right physical page.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20268 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 07:49:43 +00:00
Stefano Ceccherini
2d940ebc84 Flatten and Unflatten the BPicture before showing it. The picture
doesn't show up, that means something is still broken in Flatten() or 
Unflatten()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20267 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 07:45:50 +00:00
Stefano Ceccherini
3e837bf6d0 Patch by Vasilis Kaoutsis:
* Style issues.
* Renamed CenteredRect to _CenteredRect
since is private and removed the static keyword.
* Corrected copyright dates.
Thank you!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20266 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 07:20:06 +00:00
Travis Geiselbrecht
2df0aaea1d the recent vm change uncovered a long standing latent pseudo-bug where the local and ioapic memory window were mapped into kernel space via create_area(), not map_physical_memory() like it should be. create_area() used to work fine, but now it's a big more picky about mapping memory it can't get a vm_page to (like stuff outside the range of RAM).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20265 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 06:30:16 +00:00
Ingo Weinhold
042eb16896 * More debug output in the kernel module.
* Made publish_vnode() available in userland. For old style FS add-ons
  publish_vnode() is used when they request a new_vnode(). The semantics
  of new_vnode() changed considerably in Haiku, but publish_vnode()
  seems to do pretty much what the old new_vnode() did.
* The UserlandFS hosted RamFS begins to work under Haiku. It runs pretty
  soon out of memory though (under vmware with 256 MB) and node
  monitoring is broken ATM.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20264 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 04:56:08 +00:00
Ingo Weinhold
32164a180c Set reasonable permissions for the root directory. Haiku seems to be a
bit pickier than BeOS.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20263 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 04:46:16 +00:00
Ingo Weinhold
6d3667845f Be nicer to FSs and fill in the known part of the fs_info *after* the FS
had its go. BeOS does the same.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20262 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 02:55:41 +00:00
Ingo Weinhold
d8e8d39b71 Variable are data not text. I wonder why that ever worked under BeOS.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20261 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 02:06:31 +00:00
Ingo Weinhold
0c2f529390 Committed accidentally and forgot to fix it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20260 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 01:43:05 +00:00
Ingo Weinhold
b15ce38615 Fixed debug build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20259 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 01:42:14 +00:00
Ingo Weinhold
617ed3e4a9 Implemented the new attribute open/close/... FS hooks. The mapping to the
old interface is completely done in userland ATM.

It becomes more and more obvious that we probably need to provide
the kernel add-on with a bit more information about what the client FS
interface supports in the first place, so we can save unnecessary trips to
the userland. Opening/closing attributes for a FS using the old style
interface could be handled completely in the kernel add-on, for instance
(even if we lose a bit of accuracy wrt to open modes etc.).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20258 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 01:16:13 +00:00
Ingo Weinhold
9ce869f45f Welcome back, is_vnode_removed(), old friend!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20257 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-28 22:26:44 +00:00
Ingo Weinhold
223bba10f3 Resurrected is_vnode_removed().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20256 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-28 22:24:28 +00:00
Ingo Weinhold
8cda49ebb8 We can apparently build the old style reiserfs and ramfs add-ons using
Haiku's userlandfs. I wouldn't expect them to work very well yet, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20255 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-28 22:12:39 +00:00
Ingo Weinhold
c10705cbda We do now provide the BeOS style FS add-ons with the kernel interface they
need via library libuserlandfs_beos_kernel.so. Fine-tuned the legacy headers
so they can by used by the the kernel interface emulation code as well as by
the add-ons. This is actually a bit hacky, since we build everything in the
Haiku build environment and thus mix these old headers and Haiku's.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20254 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-28 22:07:40 +00:00
Ingo Weinhold
9b54c9d1e3 Removed cache.h, lock.h, and fsproto.h. The copies in the userlandfs public
headers dir are used instead. Added missing <new> inclusion.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20253 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-28 21:50:31 +00:00
Jérôme Duval
52710d6211 fixed the build; I also changed MoveFrom(), untested
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20252 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-28 19:35:57 +00:00
Axel Dörfler
ca954b7816 Another work-in-progress towards having extra structures per mapping per page:
* vm_area and vm_page now have a new field "mappings" where they will store lists
  of vm_page_mapping structures. vm_page::ref_count is gone, as it's no longer
  needed (it was never updated correctly, anyway).
* vm_caches now have a type field, ie. CACHE_TYPE_RAM for anonymous areas - this
  makes the stores a bit less independent, but is quite handy in several places.
* Added new vm_map_page() and vm_unmap_pages() functions to be used whenever you
  map in or unmap pages into/from an area. They don't do much more than handling
  vm_page::wired_count correctly right now, though (ie. B_LAZY_LOCK is now working
  as expected as well).
* Moved the device fault handler to vm_map_physical_memory(); it was not really
  used as a fault handler, anyway.
* Didn't notice Ingo's changes to the I/O space region broke lock_memory(). It
  now checks the type of the area that contains the memory, and doesn't lock
  anymore if not needed which solves the problem in a platform independent way.
* Implemented lock_memory() and unlock_memory() for real: they now change the
  vm_page::wired_count member to identify pages that shouldn't be paged out.
* vm_area_for() now uses vm_area_lookup() internally.
* Fixed various potential overflow conditions with areas that reach 0xffffffff.
* Creating anonymous areas with B_FULL_LOCK no longer causes vm_soft_fault()
  to be called, instead, the pages are allocated and mapped (via vm_map_page())
  directly.
* Removed the _vm_ prefix for create_area_struct() and create_reserved_area_struct().
* Fixed a bug in vm_page_write_modified() that would not have enqueued pages that
  failed to be written to the modified queue again when needed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20251 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-28 13:24:53 +00:00
Axel Dörfler
91f1fe44d2 It really should only have an fFirst member :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20250 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-28 11:31:19 +00:00
Axel Dörfler
5cd229a5a1 I accidently broke the build with some work-in-progress changes, this should fix it for now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20249 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-28 11:04:55 +00:00
Axel Dörfler
c210cfeb9a Added a doubly linked queue that is similar to the list, but only has a pointer
to its header. Not yet used or tested.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20248 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-28 08:21:02 +00:00
Ingo Weinhold
ca6faf4958 * Adjusted BeOSKernelFileSystem and BeOSKernelVolume to Haiku's FS interface.
* Moved stuff need for the BeOS interface only into the beos_* namespace.
* Shuffled a few things around to reduce the block cache implementation
  dependencies. compat.h and sysdep.c are gone accordingly.
* The whole UserlandFSServer builds now and could (at least theorectically)
  drive a FS add-on implementing the old interface. The required emulation of
  the BeOS kernel is not yet provided, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20247 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-28 04:54:13 +00:00
Ingo Weinhold
8474904ee0 Adjusted the FileSystem, Volume, and UserlandRequestHandler to the new FS
interface. The classes actually interfacing with the client FS add-on still
need to be adjusted.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20246 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-27 23:27:27 +00:00
Axel Dörfler
583ed1c698 * Applied codestyle patch by Vasilis Kaoutsis (missing space between if/for and the
opening bracket) - thanks!
* Shuffled functions a bit around to separate static and exported functions.
* Some other cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20245 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-27 22:33:58 +00:00
Axel Dörfler
3eca858515 * Moved the early startup VM allocation functions from vm_page.c to vm.cpp.
* Renamed them, made everything static besides vm_allocate_early() (previous
  vm_alloc_from_kernel_args()) which now allows you to specify a different
  virtual than physical size, and therefore makes vm_alloc_virtual_from_kernel_args()
  superfluous (which isn't exported anymore, and is now called allocate_early_virtual()).
* Enabled printing a stack trace on serial output on team crash - it doesn't hurt
  for now, anyway.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20244 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-27 19:26:40 +00:00
Jérôme Duval
bb377cd514 fixing indenting style issues
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20243 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-27 00:31:31 +00:00
François Revol
641591259c typo
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20242 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-27 00:27:23 +00:00