diff --git a/headers/private/file_systems/fs_ops_support.h b/headers/private/file_systems/fs_ops_support.h index f6b9743214..746b9336db 100644 --- a/headers/private/file_systems/fs_ops_support.h +++ b/headers/private/file_systems/fs_ops_support.h @@ -14,6 +14,22 @@ #endif +/*! Converts a given open mode (e.g. O_RDONLY) into access modes (e.g. R_OK). + */ +static inline int +open_mode_to_access(int openMode) +{ + openMode &= O_RWMASK; + if (openMode == O_RDONLY) + return R_OK; + if (openMode == O_WRONLY) + return W_OK; + if (openMode == O_RDWR) + return R_OK | W_OK; + return 0; +} + + /*! Computes and assigns `dirent->d_reclen`, adjusts `bufferRemaining` accordingly, * and either advances to the next buffer, or returns NULL if no space remains. */ @@ -21,7 +37,9 @@ static inline struct dirent* next_dirent(struct dirent* dirent, size_t nameLength, size_t& bufferRemaining) { const size_t reclen = offsetof(struct dirent, d_name) + nameLength + 1; +#ifdef ASSERT ASSERT(reclen <= bufferRemaining); +#endif dirent->d_reclen = reclen; const size_t roundedReclen = ROUNDUP(reclen, alignof(struct dirent)); diff --git a/src/add-ons/kernel/file_systems/bfs/Utility.h b/src/add-ons/kernel/file_systems/bfs/Utility.h index 9a06eed0b5..65ed9eb02b 100644 --- a/src/add-ons/kernel/file_systems/bfs/Utility.h +++ b/src/add-ons/kernel/file_systems/bfs/Utility.h @@ -8,6 +8,8 @@ #include "system_dependencies.h" +#include + #include "bfs.h" @@ -131,20 +133,4 @@ is_directory(int mode) } -/*! Converts the open mode, the open flags given to bfs_open(), into - access modes, e.g. since O_RDONLY requires read access to the - file, it will be converted to R_OK. -*/ -inline int -open_mode_to_access(int openMode) -{ - openMode &= O_RWMASK; - if (openMode == O_RDONLY) - return R_OK; - if (openMode == O_WRONLY) - return W_OK; - - return R_OK | W_OK; -} - #endif // UTILITY_H diff --git a/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp b/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp index fa2cc8e629..86a590e88e 100644 --- a/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp @@ -19,8 +19,6 @@ #include "bfs_control.h" #include "bfs_disk_system.h" -#include - // TODO: temporary solution as long as there is no public I/O requests API #ifndef FS_SHELL # include diff --git a/src/add-ons/kernel/file_systems/ext2/Utility.h b/src/add-ons/kernel/file_systems/ext2/Utility.h index 4d947d4173..7fc335977e 100644 --- a/src/add-ons/kernel/file_systems/ext2/Utility.h +++ b/src/add-ons/kernel/file_systems/ext2/Utility.h @@ -7,6 +7,9 @@ #include "ext2.h" +#include + + enum inode_type { S_DIRECTORY = S_IFDIR, S_FILE = S_IFREG, @@ -20,20 +23,4 @@ enum inode_type { }; -/*! Converts the open mode, the open flags given to bfs_open(), into - access modes, e.g. since O_RDONLY requires read access to the - file, it will be converted to R_OK. -*/ -inline int -open_mode_to_access(int openMode) -{ - openMode &= O_RWMASK; - if (openMode == O_RDONLY) - return R_OK; - if (openMode == O_WRONLY) - return W_OK; - - return R_OK | W_OK; -} - #endif // UTILITY_H diff --git a/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp b/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp index eaa8bd072c..ab868e4600 100644 --- a/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp @@ -12,7 +12,6 @@ #include #include -#include #include #include #include diff --git a/src/add-ons/kernel/file_systems/ntfs/kernel_interface.cpp b/src/add-ons/kernel/file_systems/ntfs/kernel_interface.cpp index 5b7214d0f1..7c911801c9 100644 --- a/src/add-ons/kernel/file_systems/ntfs/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/ntfs/kernel_interface.cpp @@ -713,19 +713,6 @@ fs_write_stat(fs_volume* _volume, fs_vnode* _node, const struct stat* stat, uint } -static inline int -open_mode_to_access(int openMode) -{ - if ((openMode & O_RWMASK) == O_RDONLY) - return R_OK; - if ((openMode & O_RWMASK) == O_WRONLY) - return W_OK; - if ((openMode & O_RWMASK) == O_RDWR) - return R_OK | W_OK; - return 0; -} - - static status_t fs_generic_create(fs_volume* _volume, vnode* directory, const char* name, int mode, ino_t* _inode)