Commit Graph

488 Commits

Author SHA1 Message Date
Clemens Zeidler
4a5a077ff7 Add a private B_ATTR_CHANGE_NOTIFICATION flag to the open query syscall to tell the query to send notifications when an entry attribute changed and the entry stays in the query. Previously you only get created and removed messages, now you can also get updated messages. Only implement it for bfs.
Fix copy right.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39131 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 20:47:46 +00:00
Bryce Groff
2f3ce2bf7e DriveSetup:
- File system is now only displayed when the partition actually has a filesystem.
- Now checks if the DiskSystem supports initializing.
- Updated the *ParamsPanels, as well as, the Disk System add-ons to use the new storage api changes (see below).

Storage Kit:
- Simplified the parameters editor system. Now all parameter editor requests go through a single function, GetParameterEditor, and pass a B_PARAMETER_EDITOR_TYPE to request a particular parameter editor.
- Moved DiskDeviceAddOnManager.h to the headers directory, as it is now required by InitParamsPanel.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39115 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 03:39:19 +00:00
Clemens Zeidler
bfff9df5eb As suggested by Ingo use a B_WATCH_VOLUME flag to tell the kernel to watch
the whole volume. Kernel part follows.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39106 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 00:49:20 +00:00
Jérôme Duval
01929b0c94 added a mapping for 0x83 to BTRFS
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39069 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-23 15:19:58 +00:00
Clemens Zeidler
d01ea8ec63 Add stat fields to StatChanged hook.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39028 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-20 19:34:31 +00:00
Clemens Zeidler
e464481888 Fix coding style, thanks Axel.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39027 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-20 19:09:25 +00:00
Clemens Zeidler
9a98695072 Update NodeMonitorHandler to use all haiku specific fields.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39022 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-20 13:24:39 +00:00
Clemens Zeidler
4d476e4612 Forgot to commit this, thanks Jérôme!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39021 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-20 12:45:49 +00:00
Clemens Zeidler
588b796bcb Add the possibility to load all add-ons in a directory immediately.
Rename _HandlePulse to _HandlePendingEntries.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38433 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-29 22:05:33 +00:00
Rene Gollent
1f50b439bb Make gcc2 happy.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38284 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-19 22:35:04 +00:00
Stephan Aßmus
2faa1532f8 * Refactored a lot of repetitive code and made
everything more readible.
 * Once I understood better how everthing is supposed
   to work, I've fixed some bugs.
 * The most important problem was that AddDirectory()
   placed the wrong entry (resolved symlinks) into the
   entry list it keeps for each directory. This resulted
   in the mechanisms not working at all when an add-on
   was a symlink.
 * There was a hidden TODO, which would mean that moving
   an add-on from one watched directory into another,
   like from home/config/add-ons/... into common/add-ons/...
   would drop the client application (media_server,
   input_server, ...) into the debugger.
 * The fFormerEntries list did not seem to serve any
   purpose. Basically it would not disable add-ons
   removed from a watched directory unless it changed
   it's name at the same time. I've removed it completely,
   since it didn't seem to be an optimization
   (entry cache) either.
 * Each actual add-on file is now node-monitored for
   stat changes. So if you have a link in the add-on
   folder, and the linked to add-on changes, it triggers
   a reload of the add-on now. This will make it much
   more pleasant to develop add-ons and have them affective
   immediately.

I tested with a fresh image, but there are no immediate
regressions I am aware of. I could imagine that messing
with certain add-ons can have a bad effect now, like
removing the keyboard input_server add-on may trigger the
keyboard to stop working immediately without an input_server
restart, but Tracker should warn before it happens.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38280 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-19 19:52:19 +00:00
Stephan Aßmus
3c3dac1aa0 Fixed the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38238 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-18 15:44:56 +00:00
Stephan Aßmus
3f918dc3fa Fixed a race condition that could corrupt memory: Usually, clients of this
API will call AddDirectory() in whatever random thread, not in the AddOnMonitor
looper thread however. The looper thread will try to process pending node
monitor events every second which may happen concurrently to the thread
adding to the fPendingEntries list for initial processing of new directories.
Could have affected any of the AddOnMonitor clients, like media_server and
input_server.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38235 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-18 13:55:36 +00:00
Stephan Aßmus
c6077ae7ec Cleanup: No need to check the BMessenger status twice. No need to
keep the BMessageRunner message around.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38234 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-18 13:50:50 +00:00
Stephan Aßmus
c411bbc095 Resolved TODO about recursively removing watched files and folders when a
directory is moved outside the watched hierarchy or deleted entirely. It
involves another TODO, because the generated notifications are B_ENTRY_REMOVED,
while B_ENTRY_MOVED is probably more correct.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37049 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-07 17:37:33 +00:00
Ingo Weinhold
89dc7e4875 Added private BPositionIO derived classes BFileIO and BFileDescriptorIO which
wrap a FILE* respectively a file descriptor.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36324 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-15 22:19:27 +00:00
Adrien Destugues
8f2d34d9e0 Fix test_app_server again due to Coding Sprint changes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36195 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-12 20:02:43 +00:00
Stephan Aßmus
8bc3360be8 Hopefully fixed the GCC2 build without changing the workings of the code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36151 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-11 13:55:18 +00:00
Rene Gollent
a9fb9013e4 Slight simplification and fix gcc2 build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36150 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-11 13:42:45 +00:00
Stephan Aßmus
8cf2d646ba Fixed GCC 4 error about breaking strict aliasing rules. Hope this fix is correct,
but perhaps I am overlooking something, so please review.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36146 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-11 13:14:27 +00:00
Rene Gollent
9546aa512f Style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35555 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-21 16:31:50 +00:00
Rene Gollent
cf139460f6 Initialize members for all constructors. Otherwise using those constructors can potentially crash in Unset().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35552 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-21 15:48:09 +00:00
Artur Wyszynski
cee04e8074 Fixed various errors/warnings reported by cppcheck:
* memory leaks
* resource leaks
* added const's to getters
* removed a few reundant conditions


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35433 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-08 22:50:38 +00:00
Axel Dörfler
133da790ea * Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35102 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-16 16:45:27 +00:00
Stephan Aßmus
3e6fa229d8 Patch by Humdinger:
Switched strings to sentence case in servers and kits. This is the
case-servers+kits.diff applied from #5169. Couldn't spot any possibly
problematic changes.
Thanks a lot!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35044 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-13 10:58:34 +00:00
Axel Dörfler
861f2ade03 * Rewrote header.
* Cleaned up private method names as much as possible (it's probably not a good
  idea to rename BStatable::set_stat() for compatibility reasons).
* Cleaned up sources.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34690 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-18 15:05:37 +00:00
Axel Dörfler
125a95f1ef * Reduced default stable time.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34509 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-05 15:03:33 +00:00
Ingo Weinhold
81eee41edf Don't read() the individual program and section headers, but rather read()
the respective tables at once.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34405 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-01 09:55:33 +00:00
Ingo Weinhold
bc0693b219 * Construct the MIME data base directories lazily.
* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34399 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-01 08:52:13 +00:00
Ingo Weinhold
b429df54d2 Use pthread_once() to guard the singleton initialization.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34384 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-30 16:33:41 +00:00
Ingo Weinhold
4b9cf09f14 * Got rid of is_running_on_haiku(). It was used for the test environment,
but wouldn't work when running it on Haiku anyway. At any rate, it was
  relatively expensive (uname()) and used already in the libbe
  initialization.
* Got rid of the non-Haiku support of main_thread_for().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34371 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-30 12:14:02 +00:00
Ingo Weinhold
d3ed58a7c9 Added ELF64 support to BResources.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34250 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-25 17:14:29 +00:00
Ingo Weinhold
ff4d0f1c92 * Style cleanup.
* Removed AutoDeleter class and use the shared one instead.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34244 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-25 15:00:40 +00:00
Stephan Aßmus
d0f1a68746 Added method BlockSize() to get the block size of the underlying file system.
Untested but with good chances to actually work.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34106 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-18 09:47:42 +00:00
Ingo Weinhold
d6778355ee * <DiskDeviceTypes.h>: Removed kPartitionTypeIntel{Primary,Logical} constants.
* Added new header headers/private/system/disk_device_types.h, which defines
  the <DiskDeviceTypes.h> constants as macros and which can be used where the
  constants cannot be used. The constants are defined using the macros, so now
  there's only one place where the string literals should be specified.
* Use the macros in the partitioning systems. I was too lazy to also adjust the
  file systems -- most of them seem to hard-code the string literal yet.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33386 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-10-01 03:07:42 +00:00
Stephan Aßmus
23f83f8ccb BEntry and BDirectory also needed stat related symbols defined when compiling
the test environment for GCC4.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33251 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-09-23 10:32:49 +00:00
Stephan Aßmus
32bf3ca5f8 Added GetStat() symbol when compiling the test environment on GCC4.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33249 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-09-23 10:19:11 +00:00
Stephan Aßmus
0d44df455b The code didn't follow the comment above it. For the /boot partition, a link
in / is created with the partition content name, pointing to /boot, where the
volume is actually mounted for real. The code is supposed to rename the link
in this case, not the actual folder. Added a note about the special case when
the boot volume is actually named "boot", in which case there will not be a
separate link. Then renaming /boot is prevented in the kernel now.

This commit completes the fix for ticket #4365.

+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32807 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-29 10:50:04 +00:00
Axel Dörfler
2c69b5b6c0 * Made the libbe_test environment basically working under Haiku - to actually
make it work, one would need to use versioning for all libbe symbols. This is
  worth an 8k price per file that links against libbe.so, so I didn't want to
  commit this as is. An alternative to this solution would be to write a
  separate application that is responsible for the app_server's window. Comments
  welcome.
* Removed BeOS compatbility of the libbe_test stuff.
* Renamed the libbe_test targets from *haiku* to *test*, ie. libbe_haiku.so is
  now called libbe_test.so, haiku_registrar is now test_registrar, etc.
* This also removes BeOS compatibility from tracker/FSUtils.cpp (all BeOS
  compatibility should be removed, but I don't want to make Alexandre more work
  in his branch, and it's not urgent at all).
* Replaced the former "run" scripts for the test environment with a single
  run script (see updated NOTES file).
* Removed the libbe_test target from some applications - this was only to help
  developing them under BeOS, and is thus no longer necessary.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32521 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-19 14:17:13 +00:00
Axel Dörfler
de863b2cde * Removed superfluous .notes file - if it had contained useful information, it
should have been a comment in Node.cpp anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31882 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 00:35:59 +00:00
Axel Dörfler
f75b8de3fc * Discarded the "parametersSize" parameter from various disk device manager
functions.
* Since we now use UserStringParameter, this fixes the missing null termination
  of the parameter string, and thus bug #4045.
* Removed UserMemoryParameter, as it's no longer in use.
* Adjusted syscalls accordingly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31779 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-26 17:27:27 +00:00
Axel Dörfler
b8e5a675e5 * Implemented missing date parsing; queries like "last_modified > %-5 minutes%"
are now working as they should.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31711 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-23 10:05:20 +00:00
Axel Dörfler
8315ac2417 * Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31710 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-23 09:45:54 +00:00
Ingo Weinhold
7f96148cac Patch by Bryce Groff with changes by myself:
* Added missing name parameter to the partitioning system module child creation
  and child creation validation hooks. Pass the name to them.
* Added BPartitionParameterEditor interface, which is/will be used for editing
  disk system specific parameters.
* Implemented partition parameter editors for BFS initialization and Intel
  partition map child creation.
* Fixed the incorrect supported child partition type iteration in the Intel
  partition map add-on. It does now return actual types.
* Handle the "active" flag parameter in the Intel partitioning system module.
* DriveSetup:
  - Replaced the "Create" submenu by a simple menu item. The type can now by
    chosen in the dialog.
  - Make use of initialization and child creation parameter editors. Some
    non-generic code has been moved to the respective editor implementations
    (BFS, intel partitioning system).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31658 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-20 20:29:16 +00:00
Stephan Aßmus
10b5c1016e Reverted r31604.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31606 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-16 13:02:17 +00:00
Stephan Aßmus
52464b8f9a Couldn't get this to compile with current GCC4 on Haiku without this change,
please someone review.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31604 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-16 12:34:54 +00:00
Ingo Weinhold
6eb9c264e7 Patch by Bryce Groff with changes by myself:
CreateChild():
* Added missing creation and initialization of the child's fData.
* Name and parameters were set on the parent, not the child.
* Fixed leak on error.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31236 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-25 15:41:11 +00:00
Axel Dörfler
160f2d1081 * Added private header defining __gUmask which is now used everywhere where
needed.
* Some cleanup in Directory.cpp, and File.cpp.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31086 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-17 14:09:40 +00:00
Axel Dörfler
0bb8521b68 * create_directory() did not take the umask into account.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31085 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-17 14:07:24 +00:00
Rene Gollent
6a004bd33c When we dynamically create a mount point directory, add a special marker subdirectory in it so the disk system knows the directory was not created by the user. When unmounting, look for the marker and remove the mountpoint directory if found. This fixes the issue where mount / unmount / mounting a volume via Tracker would result in extra empty dirs in the rootfs. Ideally I'd rather solve this by being able to tag the mount points with attributes, but this isn't currently possible since the attribute overlay is a module and thus not available when mounting the rootfs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30934 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-31 05:55:54 +00:00