History log of /haiku/src/add-ons/kernel/file_systems/fat/dosfs.h
Revision Date Author Comments
# 690671b0 01-Dec-2021 Augustin Cavalier <waddlesplash@gmail.com>

FAT: More miscellaneous cleanup.

* Remove __RO__ hack inherited from BeOS sample code.
* Remove and excise unneeded macros.
* Remove readlink, VFS will return EINVAL in its absence anyway.


# 8896f5d7 15-Nov-2021 Augustin Cavalier <waddlesplash@gmail.com>

FAT: Make more use of C++ features and utility classes.

This driver was fully C until relatively recently, when it was
switched to C++ so that it could be used with fs_shell. However,
it still is mostly using C paradigms; so this commit begins the
refactor away from that.

If I did this correctly, there should not be any functional change.

Change-Id: Id87d17b2e019ccdd1c7f07156cfe2a2124496675
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4725
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 9f3ba01b 28-Dec-2020 Alexander von Gluck IV <kallisti5@unixzen.com>

file_system/fat: Rework driver for fs_shell support

* Introduce fat_shell for build system fat manipulation
* Will theoretically let us do away with mtools when we
have another internal tool for partition manipulation

Change-Id: I661be556e79009842f157a9402c8f85da85d6336
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3556
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# de376384 12-May-2015 Michael Lotz <mmlr@mlotz.ch>

fat: Whitespace cleanup only.


# ad5d4c99 30-Jun-2015 Axel Dörfler <axeld@pinc-software.de>

fat: Cleared the confusion between ctime, and crtime...

... the previous commit introduced.

* Minor cleanup, disabled the useless fs_ioctl() function.
* This closes #11120.


# b5612040 30-Aug-2014 Matej Horvat <matej.horvat@guest.arnes.si>

Add support for creation times

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>


# 110eea45 02-May-2015 Michael Lotz <mmlr@mlotz.ch>

fat: Print format, whitespace and style cleanup only.

I took the liberty to convert most of the debug output from hex to
decimal as unprefixed hex values are rather confusing.


# 3f1684d9 29-Jul-2009 Axel Dörfler <axeld@pinc-software.de>

* Removed the superfluous "magic" stuff - if structures are broken, then please
let it crash!
* Made some headers self-contained.
* Always lock, regardless of "reenter" (we're using a recursive lock, so this
doesn't matter at all).
* Some cleanup.


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


# 639f60b9 28-Jul-2009 Axel Dörfler <axeld@pinc-software.de>

* vcache is now using an rw_lock instead of a semaphore.
* Got rid of the lock typedef.
* Minor cleanup.


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


# b8c45ca1 17-Apr-2008 Michael Lotz <mmlr@mlotz.ch>

Just a bit of cleanup, remove trailing whitespace mostly. No functional changes.

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


# 72010d42 16-Apr-2008 Michael Lotz <mmlr@mlotz.ch>

* Ported the FAT filesystem to the recent filesystem interface changes which
was, thanks to the detailed instructions from Ingo, quite doable.
* Ported the (deprecated and now publically removed) notify_listener() calls
to the respective new notify_* calls.
* Fixed debug build.
* Added the FAT filesystem back to the image.

I only tested the filesystem briefly and everything seemed to work as expected
(mounted the FAT part of my bootable Haiku memory stick, opened a few files
and copied something to it). At least it should not be any more broken than
before the interface changes ;-).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24987 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


# 42cd7306 26-Sep-2007 Axel Dörfler <axeld@pinc-software.de>

Renamed "dos" file system to "fat".


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


# de3763846d639e1ce6ec5a4dffc2984424d949d6 12-May-2015 Michael Lotz <mmlr@mlotz.ch>

fat: Whitespace cleanup only.


# ad5d4c9944c8f700674ddea85deb759b998d03bc 30-Jun-2015 Axel Dörfler <axeld@pinc-software.de>

fat: Cleared the confusion between ctime, and crtime...

... the previous commit introduced.

* Minor cleanup, disabled the useless fs_ioctl() function.
* This closes #11120.


# b56120409d4e12a7bbb3e2c2fd0dd51d56ce7286 30-Aug-2014 Matej Horvat <matej.horvat@guest.arnes.si>

Add support for creation times

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>


# 110eea4517ade1a0d69a82271d1106cfd68fa5c6 02-May-2015 Michael Lotz <mmlr@mlotz.ch>

fat: Print format, whitespace and style cleanup only.

I took the liberty to convert most of the debug output from hex to
decimal as unprefixed hex values are rather confusing.


# 3f1684d92cbcc9b678a06b88fba1743d3094efea 29-Jul-2009 Axel Dörfler <axeld@pinc-software.de>

* Removed the superfluous "magic" stuff - if structures are broken, then please
let it crash!
* Made some headers self-contained.
* Always lock, regardless of "reenter" (we're using a recursive lock, so this
doesn't matter at all).
* Some cleanup.


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


# 639f60b9b22549f2889239559e44a5a4aa530128 28-Jul-2009 Axel Dörfler <axeld@pinc-software.de>

* vcache is now using an rw_lock instead of a semaphore.
* Got rid of the lock typedef.
* Minor cleanup.


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


# b8c45ca140b174e2dc3053a7d0ed7f40e3281824 17-Apr-2008 Michael Lotz <mmlr@mlotz.ch>

Just a bit of cleanup, remove trailing whitespace mostly. No functional changes.

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


# 72010d4247cca17efe8bc5a231569f5a1d8299d7 16-Apr-2008 Michael Lotz <mmlr@mlotz.ch>

* Ported the FAT filesystem to the recent filesystem interface changes which
was, thanks to the detailed instructions from Ingo, quite doable.
* Ported the (deprecated and now publically removed) notify_listener() calls
to the respective new notify_* calls.
* Fixed debug build.
* Added the FAT filesystem back to the image.

I only tested the filesystem briefly and everything seemed to work as expected
(mounted the FAT part of my bootable Haiku memory stick, opened a few files
and copied something to it). At least it should not be any more broken than
before the interface changes ;-).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24987 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


# 42cd7306a81f02f0b2d7d3ac7761a55156d0188f 26-Sep-2007 Axel Dörfler <axeld@pinc-software.de>

Renamed "dos" file system to "fat".


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