Commit Graph

28825 Commits

Author SHA1 Message Date
Ingo Weinhold
08edcdfb61 Added interface constant for FUSE.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29617 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-20 01:15:26 +00:00
Ingo Weinhold
609c5aceee The open() and opendir() hooks are mandatory.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29616 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-20 00:38:34 +00:00
Rene Gollent
591911f345 Update gcc4 package with the aforementioned changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29615 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-19 23:08:35 +00:00
Rene Gollent
9dd3f93aa0 Updated gcc2 Vision package with some UTF-8 bugfixes from Francois, and to pick up some updates made to ControlLook in the Haiku tree.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29614 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-19 22:17:11 +00:00
Ingo Weinhold
1d077f8397 * Added "fuse_api.h" header wrapping the inclusion of <fuse.h>.
* Implemented the fuse_fs_*() functions.
* More work on the initialization procedure for the client file system. We do
  now start a separate thread which calls the main() function. It won't return
  from fuse_main_real() until unmounting the FS. We create a fuse_fs structure
  and call the client FS initialization and cleanup hooks.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29613 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-19 18:28:45 +00:00
Ingo Weinhold
f68892b93e deliver_signal() SIGKILL:
* Use atomic_or() to update sig_pending of the main thread.
* We didn't call update_thread_signals_flag() for the main thread, so its
  handle_signals() wouldn't be called, resulting in an infinite loop, if this
  signal interrupted a restartable syscall. Calling exit() from another thread
  than the main thread was likely to run into this problem. Should fix #3178.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29612 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-19 13:57:10 +00:00
Ingo Weinhold
7e6a04c78e Use the actual file system name.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29611 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-19 13:14:39 +00:00
Ingo Weinhold
69cd702b39 Pass the file system name to the FileSystem base class and store it there.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29610 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-19 13:14:12 +00:00
Stephan Aßmus
432ce3738d * Tracked down the mkdepend tool which Ingo used in his updated makefile-engine
which auto-generates dependencies. It was written by Lars Duening for BeOS
  and uses libglob, which is also part of make. To re-use libglob and since
  make is already part of the Haiku tree, I added mkdepend to the bin tools.
* Added Lars Duening's copyright to AboutSystem.
* Added skeleton makefile and makefile-engine to data/develop.
* Added mkdepend and makefile-engine files to the Development optional package.
  It could be argued to move the make bin command there too, from it's current
  location in the HaikuImage file. However, make could be useful to always
  have available.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29609 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-19 12:19:41 +00:00
Ingo Weinhold
d15b54c97f Removed HAIKU_ADD_ALL_OPTIONAL_PACKAGES build variable. It did more harm than
good lately.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29608 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-19 12:15:13 +00:00
Ingo Weinhold
292e63bf9f * Applied (slighly modified) patch by Matt Madia: When the
--alternative-gcc-output-dir configure option has been specified,
  HAIKU_ADD_ALTERNATIVE_GCC_LIBS is set by default. One has to explicitely
  unset it in UserBuildConfig to avoid building the alternative gcc libs.
* Adjusted documentation accordingly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29607 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-19 12:06:15 +00:00
Stephan Aßmus
c61af1596f Proof-read the installation guide (very cool work!), some small fixes and
improvements. I added mentioning the UserBuildConfig a couple more times
further down, just in case someone skipped these parts. Then the mentioned
commands won't work.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29606 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-19 09:04:21 +00:00
Axel Dörfler
defc7c56fb * One should not rely on the comma operator being evaluated right-to-left as
it was done in SAS/C... (yeah, that was ages ago). This fixes bug #2030.
* Also, we should probably check if the area we're about to shrink/remove
  actually is a reserved area.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29605 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-19 08:55:28 +00:00
Ingo Weinhold
c93232896f Added FileSystem and Volume subclasses for the FUSE interface. ATM they are
mostly skeletons, doing a bit of initialization.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29604 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-19 01:36:40 +00:00
Jérôme Duval
7305309909 * proposition to fix a deadlock between kernel daemon and package installer install thread (bug #3447)
to manage this, avoid locking the main sLock in notification handling methods. Instead fill up two lists which will be emptied later by the kernel daemon thread.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29603 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 22:59:50 +00:00
Ingo Weinhold
98092e9867 gcc 4 fixes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29602 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 22:43:47 +00:00
Stephan Aßmus
5ef44d9bfc * Do not draw the BMenuItem content twice. (Fixes bad anti-aliasing of labels
when applications are expanded in the Deskbar.)
* Simplified setting B_OP_COPY drawing mode.
* PopState() at the end of drawing, not before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29601 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 17:24:08 +00:00
Stephan Aßmus
1cf94bf91f Cleaned up the include list. It's probably safest to include <Debug.h> before
anything else.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29600 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 17:21:48 +00:00
Stephan Aßmus
1162fe1c93 Removed DeskBar from the libbe_test target.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29599 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 17:20:07 +00:00
Stephan Aßmus
36759a6b6c Always use B_OP_OVER for rendering the text in BMenuItem, not just when using
BControlLook.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29598 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 17:19:05 +00:00
Stephan Aßmus
1a72cb4139 Make BMenuBar background drawing more flexible and also support an "activated"
state.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29597 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 17:18:06 +00:00
Ingo Weinhold
4bbbead0bd UserlandFS package: Added the FUSE library and goodies needed for development.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29596 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 16:44:10 +00:00
Ingo Weinhold
6ea1d00edb Added library for FUSE support. Contains only a few empty stubs ATM. It is
sufficient to build sshfs-fuse, though. Obviously it doesn't actually work yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29595 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 16:42:51 +00:00
Ingo Weinhold
270ef7be8c Don't go for pre 2.5 compatibility.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29594 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 16:39:46 +00:00
Axel Dörfler
3e9b338ea7 * Applied cleaned patch by Adrian: the gDevices[] can now have empty entries,
the gDeviceNameList[] entries are no longer in the same order.
* This fixes bug #3124.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29593 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 16:36:51 +00:00
Ingo Weinhold
e72a9b541a Imported FUSE 2.7.4 includes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29592 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 16:24:08 +00:00
Axel Dörfler
b93ed02c5a * Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29591 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 16:16:05 +00:00
Axel Dörfler
7ce5cc5505 * Applied patch by Adrian that let the buffer size allocated vary with what
is needed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29590 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 16:15:49 +00:00
Axel Dörfler
941b2f41ec * Cleanup, added TODO.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29589 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 14:36:19 +00:00
Ingo Weinhold
d87fd57ea7 Added UserlandFS optional package.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29588 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 14:03:42 +00:00
Ingo Weinhold
12539c39d3 Remove and delete the VNode in _WriteVNode()/RemoveVNode() after the client FS
is done with it, since we still need to serve file cache requests.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29587 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 13:25:47 +00:00
Ingo Weinhold
557f6a25da PutVNode(): Switch order of put_vnode() and _DecrementVNodeCount(). After the
put_vnode() might be removed from our map, if that was the last reference to
the node, so _DecrementVNodeCount() would emit an error message -- harmless
but annoying. :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29586 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 13:12:34 +00:00
Axel Dörfler
81824f60e5 * Auto mounting now works correctly for CDs and USB sticks, thus fixing bug
#2629.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29585 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 10:17:43 +00:00
Axel Dörfler
8f464bc9ad * Added support for automatic mount on media change. Not yet tested, though,
and probably only works for CDs as is (ie. not for USB sticks).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29584 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 08:57:46 +00:00
Axel Dörfler
a7ea0713b4 * Now listens to disk device notifications, and rescans its device list when
something comes in -- this could be greatly improved, though.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29583 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 08:56:49 +00:00
Axel Dörfler
3f78b216ad * Implemented a basic notification mechanism. Right now, only media changes and
device additions/removals can be monitored.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29582 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 08:55:49 +00:00
Ingo Weinhold
d95f6cac87 Call file_map_init(). Otherwise the static lock isn't initialized.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29581 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 02:06:07 +00:00
Ingo Weinhold
c481d02017 BFS happily calls file_cache_{set_size,sync}() with NULL pointers, which the
kernel implementation ignores, so we should allow that in userland, too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29580 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 02:04:56 +00:00
Ingo Weinhold
5c20c5a552 Replaced the mutex and read-write lock implementations by the kernel code,
too. It's slightly adjusted to use the thread blocking syscalls and a benaphore
style threads spinlock replacement. This solves the following problems:
* The static mutex/rwlock initializers are safe now.
* The rwlock implementation is compatible with the kernel implementation. E.g.
  a write lock owner can acquire a read lock, which would dead-lock before.
* We don't use semaphores anymore. With a userland BFS one could quite easily
  hit the global semaphore limit before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29579 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 02:03:41 +00:00
Ingo Weinhold
4c35c6b5e1 * _user_unblock_thread[s]() also set the user thread's wait_status, now. This
makes them more convenient to use, since the caller doesn't need to know the
  target threads' user thread structure.
* Adjusted the pthread rwlock implementation accordingly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29578 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 01:53:06 +00:00
Ingo Weinhold
9e83cc1768 team_free_user_thread(): Unset the thread's user thread before putting it in
the free list. Do that with the threads lock held. This allows other threads
to freely access a thread's user thread structure while holding the threads
lock.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29577 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 01:46:29 +00:00
Ingo Weinhold
e3820a0e5e Fixed several problems related to vnode reference count tracking:
* Increment the vnode reference count in NewVNode().
* Introduced a VNode::published flag that allows PublishVNode() (a) to discard
  the node on error and (b) not to increment the node's reference count in case
  the node had been created by NewVNode() before.
* Added missing fVNodeCountingEnabled check in _RemoveInvalidVNode().
* _PutAllPendingVNodes():
  - nodeFound was never reset, so it would loop forever, if there was at
    least one node that needed to be put.
  - VNode::useCount needs to be set to 0 explicitely. Since vnode reference
    count tracking is already disabled PutVNode() doesn't decrement it and
    thus we would loop forever, respectively cause the VFS to panic() first.
  - If the node has not been published, we need to publish it before putting
    it, since otherwise the VFS would complain that the node is busy.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29576 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-17 23:46:56 +00:00
Ingo Weinhold
a3bf7dca79 Forgot to add new files. Should have been part of r29572.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29575 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-17 21:51:25 +00:00
Axel Dörfler
9142662b19 * Fixed bug #3574 - this is only a temporary fix, though, as the BControlLook
class must take care of these things.
* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29574 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-17 19:01:18 +00:00
Axel Dörfler
77e9b77525 * Cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29573 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-17 18:56:35 +00:00
Ingo Weinhold
4649fe05ef * Haiku kernel interface emulation: Retrieve the capabilities for each vnode.
We do some caching using a hash table indexed by the operations vector.
* Pass the vnode capabilities to the kernel module.
* In the kernel tailor the operation vectors for volumes and vnodes passed to
  the VFS according to the respective capabilities. This way those vectors look
  pretty much like those from the client FS. This saves unnecessary calls when
  hooks are not implemented and should also fix compatibility problems in cases
  where not implementing a hook and returning an error don't mean the same to
  the VFS.
* Inlined some of the kernel module Volume class getters.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29572 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-17 18:51:43 +00:00
Ingo Weinhold
fabcaf1c0a Added GetHashCode() method and == operator.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29571 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-17 18:30:33 +00:00
Axel Dörfler
96e1ce6604 * Added Expander back to the list of applications. See #3565.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29570 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-17 18:00:10 +00:00
Rene Gollent
440ef69c6b Small oversight: clicking outside of the slider should also dismiss it. Thanks Stephan!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29569 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-17 12:52:32 +00:00
Rene Gollent
12c0fc92e1 Somewhat adjusted the behavior of the volume slider. It now stays up when initially clicked and requires a second mouseclick to begin tracking it. This prevents abrupt volume changes as would be seen if you had previously turned down the volume and then invoked the volume control again (it would immediately jump to whatever level the mouse cursor happened to be at when the slider popped up). This fixes ticket #3570.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29568 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-17 01:34:50 +00:00