History log of /haiku/src/add-ons/kernel/file_systems/udf/kernel_interface.cpp
Revision Date Author Comments
# 425ac1b6 20-Jun-2023 Alexander von Gluck IV <kallisti5@unixzen.com>

refactor: Swap %Ld for %lld in all format usages

* %Ld is an undocumented alias for %lld in glibc.
* muslc doesn't implement it for this reason.
* While we will likely never drop %Ld support,
lets clean house and set a better example.

Change-Id: Id46dad3104abae483e80cc5c05d1464d3ecd8030
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6636
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 711e2dc0 01-Dec-2021 Augustin Cavalier <waddlesplash@gmail.com>

Adjust all struct dirent creations (again), this time to use offsetof().

The dirent struct is not packed, so offsetof(dirent, d_name) != sizeof(dirent).
Thus in order not to waste the alignment bytes (which are significant,
on x86_64 at least, sizeof(dirent)==32, but offsetof(...)=26.)

This is also the most portable way to handle things, and should
work just fine in cross-platform code that has a non-zero-sized d_name.


# 9d242fb9 18-Nov-2021 Augustin Cavalier <waddlesplash@gmail.com>

file_systems & Tracker: Do not assume sizeof(dirent) contains 1 byte for the name.

At present, it does, but that is an oddity we have preserved from BeOS
that the next commit is going to remove. (This commit thus wastes 1 byte
without the following one.)

Most changes are pretty straightforward: only a +1 is needed,
and a few removed from sizing calculations. Some filesystems like UDF
originally passed back the length with the \0 included, so they have
been adjusted further. UFS2 had some other sizing problems which are also
corrected in this commit.


# 2ca13760 20-Aug-2021 Coldfirex <sakison@gmail.com>

Mass updating of OpenBeOS text to Haiku

No functional code altered.

https://dev.haiku-os.org/ticket/17197

Change-Id: I75cc74f6be0ad968fd77c31fbe5b0f650a6fe9e0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4364
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 3218588c 29-Sep-2020 Murai Takashi <tmurai01@gmail.com>

file_systems/udf: Fix -Wformat=

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


# 1418cade 11-Jul-2019 Augustin Cavalier <waddlesplash@gmail.com>

file_systems: Pass size argument to ioctl in a lot more places.


# 7e5b0f96 09-May-2013 Jérôme Duval <jerome.duval@gmail.com>

udf: fixes 64 bit warnings


# c530d46c 09-Oct-2012 Jérôme Duval <jerome.duval@gmail.com>

UDF: support for metadata partition (feature from 2.50)

* added Icb::FindBlock() to find block in extents.
* MetadataPartition uses extents descriptors found in the metadatafile
to lookup blocks on a physical partition
* uses struct timespec instead of time_t
* added init_entities() to call C++ structures constructors. This is
called at module initialization, C++ constructors are currently not called when
a kernel module is loaded.
* tested with a sample bluray ISO.


# dcea2eba 26-Dec-2010 Michael Lotz <mmlr@mlotz.ch>

CID 2196: The sanity check did check the pointer size instead of the type size.


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


# d63f4274 18-Oct-2010 Jérôme Duval <korli@users.berlios.de>

added a file system call preallocate() as described in #6285, currently unused


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


# d2a6c051 28-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Removed superfluous check, and fixed wrong indentation. This also closes
CID 1510.


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


# 17d87ddf 28-Feb-2010 Michael Lotz <mmlr@mlotz.ch>

* Finish the partition scanning part so that UDF is recognized and mountable.
* Added myself to the copyrights.


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


# 7cadc8af 28-Feb-2010 Michael Lotz <mmlr@mlotz.ch>

* Cleanup the Jamfile, this one doesn't work on BeOS anymore.
* Turn off remaining verbose debug output.
* Add UDF to the default image.


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


# af15ee68 28-Feb-2010 Michael Lotz <mmlr@mlotz.ch>

* Implement udf_io and udf_get_file_map.
* Add file map and cache and do reads through the file_cache for file ICBs.
* Move the private _Read() backend from the header to the implementation file.
* Read() is now only used for directory iteration.
* Turned off the verbose debug output.
* Minor cleanup.

This fixes the abuse of the block_cache, should allow executables on UDF and
won't panic on protected content.


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


# 8d3a8691 27-Feb-2010 Michael Lotz <mmlr@mlotz.ch>

* UDF didn't actually initializing _flags to 0 (same as with fat).
* Set the _type as well, this gets file listings work.
* Some cleanup and debug output moves/fixes/additions.

Yet crashes when accessing files though.


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


# 20d84995 20-Sep-2009 Rene Gollent <anevilyak@gmail.com>

Various changes to get this mostly compiling, with the exception of a template issue I don't yet completely understand.


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


# 425cb3d7 09-Sep-2009 Oliver Tappe <zooey@hirschkaefer.de>

* revert r32999 and adjusted each filesystem to return B_NOT_A_DIRECTORY in
its open_dir() implementation instead (as suggested by Ingo).
-alphabranch (it's only a cleanup)


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


# 2c348abb 30-Sep-2008 Axel Dörfler <axeld@pinc-software.de>

* Most of the other file systems now maintain the st_blocks value. It might not
always be correct, but should be at least close.


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


# 43a5ec83 22-Aug-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Added some more TRACE, eventually they will be removed
* replace sizeof(dirent) with sizeof(struct dirent) as the pointer passed was called dirent!
that would cause d_reclen to be set to the wrong value, making panic. Thanks Stefano!

I finally managed to mount and list its content.



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


# 764ca477 22-Aug-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* fix udf build


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


# e2dc263c 22-Aug-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Replaced some PRINT with TRACE
* Rename error to status
* Fix assignements in udf_read_stat
* Added udf_{close_dir,free_dir_cookie} hook functions which prevented
udf from mounting the partition

It seems mouting an udf partition works correctly but I'm still unable
to list its content.


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


# 812da77b 21-Aug-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* added udf_{open,close,free_cookie,access}.

Still missing something though, as it still panics with an ip 0x0


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


# e0c80398 21-Aug-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Removing new_vnode which was commented out in favor of publish_vnode
in order to publish the root node
* fixed _RootVNodeID assignement
* Applying our coding guidelines

Mounting now goes as far as lookup, then I get a panic from w>Desktop
thread in CreateVolume -> GetRootDirectory. ;-)


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


# feea3738 20-Aug-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Replaced PRINT call with TRACE
* Improved debug output



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


# cef3610a 18-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Fixed typo that prevented udf from being picked up: it's "modules", not
"module" - hope that helps, Salvatore :-)
* Fixed warnings.
* Fixed udf_identify_partition() not to crash the system when a UDF partition
is available, and also fixed it to actually not claim non-UDF partitions.
* Moved partition naming (that shouldn't be done in identify!) to
udf_scan_partition(), and corrected it (ie. use strdup(), don't copy into
a NULL pointer...), but also disabled it for now, as it needs some more
work to pass a cookie from identify now.
* Whitespace cleanup.


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


# a4124725 18-Aug-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Removed DirectoryIterator.{h,cpp} and included them in Icp.{h,cpp}
* Porting Icb to new file cache system


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


# 51933b55 16-Aug-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Renamed udf.cpp to kernel_interface.cpp and ported it to the new FS API.



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


# 7e5b0f964988b2b184d0bee6741d362a268c76d0 09-May-2013 Jérôme Duval <jerome.duval@gmail.com>

udf: fixes 64 bit warnings


# c530d46cca3cb9bde36e243e634796eb2e17a23a 09-Oct-2012 Jérôme Duval <jerome.duval@gmail.com>

UDF: support for metadata partition (feature from 2.50)

* added Icb::FindBlock() to find block in extents.
* MetadataPartition uses extents descriptors found in the metadatafile
to lookup blocks on a physical partition
* uses struct timespec instead of time_t
* added init_entities() to call C++ structures constructors. This is
called at module initialization, C++ constructors are currently not called when
a kernel module is loaded.
* tested with a sample bluray ISO.


# dcea2eba12b084218a04dd4d8287ea6e5fe07a3b 26-Dec-2010 Michael Lotz <mmlr@mlotz.ch>

CID 2196: The sanity check did check the pointer size instead of the type size.


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


# d63f4274b665d32065f24a7a01a025578c8a43c9 18-Oct-2010 Jérôme Duval <korli@users.berlios.de>

added a file system call preallocate() as described in #6285, currently unused


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


# d2a6c0514540895f9459c33ef43022d7ac83efc6 28-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Removed superfluous check, and fixed wrong indentation. This also closes
CID 1510.


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


# 17d87ddf36f84df7f990af426944ae72da4a8cab 28-Feb-2010 Michael Lotz <mmlr@mlotz.ch>

* Finish the partition scanning part so that UDF is recognized and mountable.
* Added myself to the copyrights.


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


# 7cadc8aff2fd2c7fdf2b48c7b8dc4f83324c5594 28-Feb-2010 Michael Lotz <mmlr@mlotz.ch>

* Cleanup the Jamfile, this one doesn't work on BeOS anymore.
* Turn off remaining verbose debug output.
* Add UDF to the default image.


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


# af15ee68f1946a47cad0c4de56dfd9b3de213d77 28-Feb-2010 Michael Lotz <mmlr@mlotz.ch>

* Implement udf_io and udf_get_file_map.
* Add file map and cache and do reads through the file_cache for file ICBs.
* Move the private _Read() backend from the header to the implementation file.
* Read() is now only used for directory iteration.
* Turned off the verbose debug output.
* Minor cleanup.

This fixes the abuse of the block_cache, should allow executables on UDF and
won't panic on protected content.


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


# 8d3a8691d4a47bd8de146d044f820557ce28c13b 27-Feb-2010 Michael Lotz <mmlr@mlotz.ch>

* UDF didn't actually initializing _flags to 0 (same as with fat).
* Set the _type as well, this gets file listings work.
* Some cleanup and debug output moves/fixes/additions.

Yet crashes when accessing files though.


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


# 20d84995300bd9c3c5fd62bf8ba599aa7c7e0de9 20-Sep-2009 Rene Gollent <anevilyak@gmail.com>

Various changes to get this mostly compiling, with the exception of a template issue I don't yet completely understand.


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


# 425cb3d71644c19d925f97846964a32475b09b95 09-Sep-2009 Oliver Tappe <zooey@hirschkaefer.de>

* revert r32999 and adjusted each filesystem to return B_NOT_A_DIRECTORY in
its open_dir() implementation instead (as suggested by Ingo).
-alphabranch (it's only a cleanup)


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


# 2c348abbf7aca35c66b88e159bdafa41f2a9743f 30-Sep-2008 Axel Dörfler <axeld@pinc-software.de>

* Most of the other file systems now maintain the st_blocks value. It might not
always be correct, but should be at least close.


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


# 43a5ec83efb303e1937d0a0af48159efbb4b3358 22-Aug-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Added some more TRACE, eventually they will be removed
* replace sizeof(dirent) with sizeof(struct dirent) as the pointer passed was called dirent!
that would cause d_reclen to be set to the wrong value, making panic. Thanks Stefano!

I finally managed to mount and list its content.



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


# 764ca4773be36149604e9a992206639aef016e8e 22-Aug-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* fix udf build


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


# e2dc263c431e22a72cc42ed5c7b86ba8b813ec2d 22-Aug-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Replaced some PRINT with TRACE
* Rename error to status
* Fix assignements in udf_read_stat
* Added udf_{close_dir,free_dir_cookie} hook functions which prevented
udf from mounting the partition

It seems mouting an udf partition works correctly but I'm still unable
to list its content.


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


# 812da77b028a284efece1e982cc3658824d41c8d 21-Aug-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* added udf_{open,close,free_cookie,access}.

Still missing something though, as it still panics with an ip 0x0


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


# e0c80398165f2838001154ad4c1ab580f65f48a3 21-Aug-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Removing new_vnode which was commented out in favor of publish_vnode
in order to publish the root node
* fixed _RootVNodeID assignement
* Applying our coding guidelines

Mounting now goes as far as lookup, then I get a panic from w>Desktop
thread in CreateVolume -> GetRootDirectory. ;-)


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


# feea37380d164710fe55ad7a3526d62b0ccf6c20 20-Aug-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Replaced PRINT call with TRACE
* Improved debug output



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


# cef3610a76394f4d5e5fb3f882a6e210f307edf6 18-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Fixed typo that prevented udf from being picked up: it's "modules", not
"module" - hope that helps, Salvatore :-)
* Fixed warnings.
* Fixed udf_identify_partition() not to crash the system when a UDF partition
is available, and also fixed it to actually not claim non-UDF partitions.
* Moved partition naming (that shouldn't be done in identify!) to
udf_scan_partition(), and corrected it (ie. use strdup(), don't copy into
a NULL pointer...), but also disabled it for now, as it needs some more
work to pass a cookie from identify now.
* Whitespace cleanup.


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


# a41247254616ec78e3c67297653b4b5f4475abb4 18-Aug-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Removed DirectoryIterator.{h,cpp} and included them in Icp.{h,cpp}
* Porting Icb to new file cache system


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


# 51933b55338ae30c8618617d6f7aa64b9faa878c 16-Aug-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Renamed udf.cpp to kernel_interface.cpp and ported it to the new FS API.



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