History log of /haiku/src/tools/fs_shell/Jamfile
Revision Date Author Comments
# fae0689a 27-Jan-2023 Augustin Cavalier <waddlesplash@gmail.com>

kernel/fs: Use open_mode_to_access in rootfs_open.

Addresses a comment by korli.


# 0b5d4856 09-May-2020 Augustin Cavalier <waddlesplash@gmail.com>

fs_shell: Prevent inclusion of BSD headers; fix DeviceOpener.


# b357daa5 30-Mar-2019 Augustin Cavalier <waddlesplash@gmail.com>

build: Deprecate SetSubDirSupportedPlatformsBeOSCompatible.

By default, all targets support the "haiku" platform, and we no longer
support building for BeOS, Dan0, Zeta, or other BeOS-compatible targets,
so this is no longer needed.

Also remove all references to the non-Haiku compatible platforms, and
change all BEOS_COMPATIBLE checks to HAIKU_COMPATIBLE. Removal of
all SetSubDirSupportedPlatformsBeOSCompatible invocations
will be in the next commit.


# 846b2f90 06-Jul-2012 Axel Dörfler <axeld@ibm.kiwi>

Changed the kernel's file_map.cpp to be usable from the fs_shell as well.

* This should reduce our maintenance burden a tiny bit :-)
* It also fixes a bug in the fs_shell, see hrev43395.


# 360a6446 29-Feb-2012 Axel Dörfler <axeld@pinc-software.de>

Implemented support for file system specific commands.

* File system specific shell implementations can now register any additional
commands by implementing the register_additional_commands() function.


# 17ebe2b0 03-Jan-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Reimplemented the communication with the FS shell for Unixish systems (now
including also Haiku) using FIFOs instead of Unix sockets. Advantages:
* Multiple FS shells can run concurrently, since they no longer need a unique
address.
* Killing/aborting the build_haiku_image script will automatically tear down
the FS shell as well, so there shouldn't be any stray FS shell processes
anymore. Hopefully also fixes #5498.

So far only tested under Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40097 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0bab2e8a 26-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Don't include HaikuBuildCompatibility.h in the [b]fs_shell build. It's not
needed -- the code has its own complete platform abstraction layer -- and
only causes problems.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34270 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf844822 24-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added B_PRIdTIME and B_PRIiTIME macros (for time_t).
* Added FSSH_[S]SIZE_MAX to headers/private/fs_shell/fssh_types.h.
* Fixed various 64 bit compiler warnings. Nothing too serious, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34241 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 18128d58 05-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Patch by Raghuram Nagireddy:
Re-use the kernel emulation of the FS shell to implement a FUSE module
for BFS. In theory, it could use any Haiku file system implementation
just like the FS shell itself, but currently only the BFS code supports
being compiled as an FS shell module. The build target is <build>bfs_fuse
On Ubuntu, you would do this:

sudo apt-get install libfuse-dev
jam \<build\>bfs_fuse
mkdir path/to/moundPoint
path/to/bfs_fuse /dev/sdaX path/to/mountPoint

And that will mount your BFS volume at /dev/sdaX
read/write. As this is new code, you should be careful with your
data and expect potential data loss. Not that I don't trust Raghu's
code, but a warning is always better with such things. So far, my
tests have been successful and it is great to finally have write
support for BFS in Linux! Thanks a lot, Raghu, for your great work!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31409 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4d121ec0 09-Aug-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Andreas Faerber with changes by myself: Work towards Solaris
build platform support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26899 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 42d3fc04 29-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added implementations for the __fssh_swap_int*() functions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25713 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3e617040 17-Feb-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

axeld + bonefish:
Added parameters --start-offset and --end-offset to restrict the
access of the file system to only that part of the given file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23970 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3d268eda 10-Nov-2007 Axel Dörfler <axeld@pinc-software.de>

* Extracted file_map API out of the file cache - it's now an optional service
that can be used by file systems.
* Changed the way the file cache works: instead of reading/writing to the
underlying device directly, it can now be used for any data source, ie.
also network file systems.
* As a result, the former pages_io() moved to the VFS layer, and can now be
called by a file system via {read|write}_file_io_vec_pages() (naming
suggestions are always welcomed :-)). It now gets an FD, and uses that to
communicate with the device (via its fs_{read|write}_pages() hooks).
* The file_cache_{read|write}() functions must now be called without holding
an I/O relevant file system lock. That allows the file cache to prepare the
pages without colliding with the page writer, IOW the "mayBlock" flag can
go into the attic again (yay!).
* This also results in a much better performance when the system does I/O and
is low on memory, as the page writer can now finally write back some pages,
and that even without maxing out the CPU :)
* The API changes put slightly more burden on the fs_{read|write}_pages()
hooks, but in combination with the file_map it's still pretty straight
forward. It just will have to dispatch the call to the underlying device
directly, usually it will just call its fs_{read|write}_pages() hooks
via the above mentioned calls.
* Ported BFS and FAT to the new API, the latter has not been tested, though.
* Also ported the API changes to the fs_shell. I also completely removed its
file cache level page handling - the downside is that device access is no
longer cached (ie. depends on the host OS now), the upside is that the code
is greatly simplified.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22886 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8c8f8c84 04-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added scan_partition() function which can be used by disk systems (e.g.
in *_initialize()) to save some work.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22441 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f057874 04-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* rootfs.c -> rootfs.cpp
* Made the kernel rootfs reusable by the FS Shell and removed the
copy in the FS Shell sources.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22436 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eedc1553 24-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added driver settings support to the FS shell.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21233 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 53a79a4c 19-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Morgan Howe: Support for building on Mac OS X. It should now be
possible to build a complete Haiku image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21171 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca6586d9 02-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Changed grist.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20969 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 655195fe 30-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Don't use headers/build headers under BeOS.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20935 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f6233d23 28-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Quieted down success output.
* Added non-interactive (external commands) support. The BeOS
implementation needs some more work; well, the whole FS shell will
probably have build issues on BeOS ATM.
* Added reasonably complete argument processing in main(). Options are
similar to the old FS shell.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20894 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fd62d01f 28-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Add cp command source file too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20886 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4f7504e3 28-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* The command functions return actual error codes now.
* Added commands ln, mkdir, mkindex, rm.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20882 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 90c08768 27-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

FS shell changes:
* Added basic built-in module support.
* Added rootfs.
* Added "kernel" initialization.
* Exposed the FS syscalls.
* Mounting/unmounting the FS works now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20873 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a38a92c9 26-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Beginnings of a new, better portable FS shell with Haiku FS interface.
Doesn't do anything ATM, but already provides the required system
interface (VFS, caches, POSIX functions).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20859 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 846b2f90f670827f5ddc6b22772ffb0038c70745 06-Jul-2012 Axel Dörfler <axeld@ibm.kiwi>

Changed the kernel's file_map.cpp to be usable from the fs_shell as well.

* This should reduce our maintenance burden a tiny bit :-)
* It also fixes a bug in the fs_shell, see hrev43395.


# 360a6446506d9316265df77c0f89804e3de11412 29-Feb-2012 Axel Dörfler <axeld@pinc-software.de>

Implemented support for file system specific commands.

* File system specific shell implementations can now register any additional
commands by implementing the register_additional_commands() function.


# 17ebe2b021619ed7cd95bef6f9f6a48265753a92 03-Jan-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Reimplemented the communication with the FS shell for Unixish systems (now
including also Haiku) using FIFOs instead of Unix sockets. Advantages:
* Multiple FS shells can run concurrently, since they no longer need a unique
address.
* Killing/aborting the build_haiku_image script will automatically tear down
the FS shell as well, so there shouldn't be any stray FS shell processes
anymore. Hopefully also fixes #5498.

So far only tested under Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40097 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0bab2e8af473755eabe8e994a7b7b88d32fca7fa 26-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Don't include HaikuBuildCompatibility.h in the [b]fs_shell build. It's not
needed -- the code has its own complete platform abstraction layer -- and
only causes problems.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34270 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf844822db58eed3db11f93243e38503eb1a4b91 24-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added B_PRIdTIME and B_PRIiTIME macros (for time_t).
* Added FSSH_[S]SIZE_MAX to headers/private/fs_shell/fssh_types.h.
* Fixed various 64 bit compiler warnings. Nothing too serious, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34241 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 18128d58dca3e03fb850fc52d1b5f7992d6dd02d 05-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Patch by Raghuram Nagireddy:
Re-use the kernel emulation of the FS shell to implement a FUSE module
for BFS. In theory, it could use any Haiku file system implementation
just like the FS shell itself, but currently only the BFS code supports
being compiled as an FS shell module. The build target is <build>bfs_fuse
On Ubuntu, you would do this:

sudo apt-get install libfuse-dev
jam \<build\>bfs_fuse
mkdir path/to/moundPoint
path/to/bfs_fuse /dev/sdaX path/to/mountPoint

And that will mount your BFS volume at /dev/sdaX
read/write. As this is new code, you should be careful with your
data and expect potential data loss. Not that I don't trust Raghu's
code, but a warning is always better with such things. So far, my
tests have been successful and it is great to finally have write
support for BFS in Linux! Thanks a lot, Raghu, for your great work!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31409 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4d121ec0678890dc6c2b19bdf11a7b9e02785462 09-Aug-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Andreas Faerber with changes by myself: Work towards Solaris
build platform support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26899 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 42d3fc045e33f6d8bbf61eb0fb3ce2a04713505e 29-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added implementations for the __fssh_swap_int*() functions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25713 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3e617040425cd87f7af90804151ee8cb1f0ab8e9 17-Feb-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

axeld + bonefish:
Added parameters --start-offset and --end-offset to restrict the
access of the file system to only that part of the given file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23970 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3d268eda3d0ca504c865533347decf27b54025b6 10-Nov-2007 Axel Dörfler <axeld@pinc-software.de>

* Extracted file_map API out of the file cache - it's now an optional service
that can be used by file systems.
* Changed the way the file cache works: instead of reading/writing to the
underlying device directly, it can now be used for any data source, ie.
also network file systems.
* As a result, the former pages_io() moved to the VFS layer, and can now be
called by a file system via {read|write}_file_io_vec_pages() (naming
suggestions are always welcomed :-)). It now gets an FD, and uses that to
communicate with the device (via its fs_{read|write}_pages() hooks).
* The file_cache_{read|write}() functions must now be called without holding
an I/O relevant file system lock. That allows the file cache to prepare the
pages without colliding with the page writer, IOW the "mayBlock" flag can
go into the attic again (yay!).
* This also results in a much better performance when the system does I/O and
is low on memory, as the page writer can now finally write back some pages,
and that even without maxing out the CPU :)
* The API changes put slightly more burden on the fs_{read|write}_pages()
hooks, but in combination with the file_map it's still pretty straight
forward. It just will have to dispatch the call to the underlying device
directly, usually it will just call its fs_{read|write}_pages() hooks
via the above mentioned calls.
* Ported BFS and FAT to the new API, the latter has not been tested, though.
* Also ported the API changes to the fs_shell. I also completely removed its
file cache level page handling - the downside is that device access is no
longer cached (ie. depends on the host OS now), the upside is that the code
is greatly simplified.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22886 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8c8f8c84209c539c801ce0df111d8ee50e39362c 04-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added scan_partition() function which can be used by disk systems (e.g.
in *_initialize()) to save some work.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22441 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f05787478e2ffc3f19cafa89a3eadee8e08b691 04-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* rootfs.c -> rootfs.cpp
* Made the kernel rootfs reusable by the FS Shell and removed the
copy in the FS Shell sources.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22436 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eedc15536c2809a21bdebbbdfb0d0030c5a76d68 24-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added driver settings support to the FS shell.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21233 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 53a79a4cde1643d209fbbb157e270242e074da08 19-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Morgan Howe: Support for building on Mac OS X. It should now be
possible to build a complete Haiku image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21171 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca6586d9a31f6f91deffb5fadb91b36876694cfa 02-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Changed grist.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20969 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 655195fec9e2bba5a13e3b0954a30191e10b9c0d 30-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Don't use headers/build headers under BeOS.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20935 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f6233d233036e20933610105f6db9410aef4ffdd 28-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Quieted down success output.
* Added non-interactive (external commands) support. The BeOS
implementation needs some more work; well, the whole FS shell will
probably have build issues on BeOS ATM.
* Added reasonably complete argument processing in main(). Options are
similar to the old FS shell.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20894 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fd62d01f2774ce0b8da9340ad6633fabecb3d24e 28-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Add cp command source file too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20886 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4f7504e31ea44741047a016908be3756e8a7acbb 28-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* The command functions return actual error codes now.
* Added commands ln, mkdir, mkindex, rm.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20882 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 90c0876839198399555aa95d15f8dbd0ffc3cbf1 27-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

FS shell changes:
* Added basic built-in module support.
* Added rootfs.
* Added "kernel" initialization.
* Exposed the FS syscalls.
* Mounting/unmounting the FS works now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20873 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a38a92c955f46ea3dbd3929ad1398c2b418e80cb 26-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Beginnings of a new, better portable FS shell with Haiku FS interface.
Doesn't do anything ATM, but already provides the required system
interface (VFS, caches, POSIX functions).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20859 a95241bf-73f2-0310-859d-f6bbb57e9c96