diff options
| author | Lukas Oesch <lukas.oesch@ost.ch> | 2026-05-25 10:20:06 +0200 |
|---|---|---|
| committer | Lukas Oesch <lukas.oesch@ost.ch> | 2026-05-25 10:20:06 +0200 |
| commit | 093074d5209f2d0062be79059f5881ee051c07d0 (patch) | |
| tree | 2adb26cb757e5eeb8d2e6f1ce7ed7d631088f55d | |
| parent | 1279dddbf400828cbadb1b3774fb060d18d8251c (diff) | |
| parent | 2063d3e165a1b92a46c73badf56927228ed4d5e8 (diff) | |
| download | kernel-093074d5209f2d0062be79059f5881ee051c07d0.tar.xz kernel-093074d5209f2d0062be79059f5881ee051c07d0.zip | |
Merge branch 'ssize_t-refactoring' into 'develop-BA-FS26'
Refactor ssize_t
See merge request teachos/kernel!41
| -rw-r--r-- | kapi/kapi/filesystem.hpp | 16 | ||||
| -rw-r--r-- | kernel/include/kernel/filesystem/ext2/filesystem.hpp | 6 | ||||
| -rw-r--r-- | kernel/include/kernel/filesystem/open_file_table.hpp | 6 | ||||
| -rw-r--r-- | kernel/kapi/filesystem.cpp | 15 | ||||
| -rw-r--r-- | kernel/src/filesystem/ext2/filesystem.cpp | 4 | ||||
| -rw-r--r-- | kernel/src/filesystem/open_file_table.cpp | 6 | ||||
| -rw-r--r-- | libs/kstd/kstd/unikstd.h | 12 |
7 files changed, 37 insertions, 28 deletions
diff --git a/kapi/kapi/filesystem.hpp b/kapi/kapi/filesystem.hpp index fdaed73..3bd9aaf 100644 --- a/kapi/kapi/filesystem.hpp +++ b/kapi/kapi/filesystem.hpp @@ -1,11 +1,11 @@ #ifndef TEACHOS_KAPI_FILESYSTEM_HPP #define TEACHOS_KAPI_FILESYSTEM_HPP +#include <kstd/unikstd.h> + #include <cstddef> #include <string_view> -#include <sys/types.h> - namespace kapi::filesystem { /** @@ -23,7 +23,7 @@ namespace kapi::filesystem @return 0 on success, -1 on failure. @qualifier kernel-defined */ - auto mount(std::string_view source, std::string_view target) -> ssize_t; + auto mount(std::string_view source, std::string_view target) -> kstd::ssize_t; /** @brief Unmounts a filesystem from the specified @p target path. @@ -31,7 +31,7 @@ namespace kapi::filesystem @return 0 on success, -1 on failure. @qualifier kernel-defined */ - auto umount(std::string_view target) -> ssize_t; + auto umount(std::string_view target) -> kstd::ssize_t; /** @brief Opens a file at the specified @p path. @@ -39,7 +39,7 @@ namespace kapi::filesystem @return A file descriptor on success, -1 on failure. @qualifier kernel-defined */ - auto open(std::string_view path) -> ssize_t; + auto open(std::string_view path) -> kstd::ssize_t; /** @brief Closes a @p file_descriptor. @@ -47,7 +47,7 @@ namespace kapi::filesystem @return 0 on success, -1 on failure. @qualifier kernel-defined */ - auto close(size_t file_descriptor) -> ssize_t; + auto close(size_t file_descriptor) -> kstd::ssize_t; /** @brief Reads @p size bytes into @p buffer from a @p file_descriptor. @@ -57,7 +57,7 @@ namespace kapi::filesystem @return The number of bytes read on success, -1 on failure. @qualifier kernel-defined */ - auto read(size_t file_descriptor, void * buffer, size_t size) -> ssize_t; + auto read(size_t file_descriptor, void * buffer, size_t size) -> kstd::ssize_t; /** @brief Writes @p size bytes from @p buffer to a @p file_descriptor. @@ -67,7 +67,7 @@ namespace kapi::filesystem @return The number of bytes written on success, -1 on failure. @qualifier kernel-defined */ - auto write(size_t file_descriptor, void const * buffer, size_t size) -> ssize_t; + auto write(size_t file_descriptor, void const * buffer, size_t size) -> kstd::ssize_t; } // namespace kapi::filesystem #endif // TEACHOS_KAPI_FILESYSTEM_HPP
\ No newline at end of file diff --git a/kernel/include/kernel/filesystem/ext2/filesystem.hpp b/kernel/include/kernel/filesystem/ext2/filesystem.hpp index 45cd6a1..d5e5b8b 100644 --- a/kernel/include/kernel/filesystem/ext2/filesystem.hpp +++ b/kernel/include/kernel/filesystem/ext2/filesystem.hpp @@ -8,14 +8,12 @@ #include <kernel/filesystem/inode.hpp> #include <kstd/memory> +#include <kstd/unikstd.h> #include <kstd/vector> #include <cstddef> #include <cstdint> #include <string_view> -#include <unistd.h> - -#include <sys/types.h> namespace kernel::filesystem::ext2 { @@ -85,7 +83,7 @@ namespace kernel::filesystem::ext2 @return The global block number. */ [[nodiscard]] auto map_inode_block_index_to_global_block_number(size_t inode_block_index, inode_data data) const - -> ssize_t; + -> kstd::ssize_t; private: [[nodiscard]] auto read_inode(uint32_t inode_number) const -> kstd::shared_ptr<kernel::filesystem::ext2::inode>; diff --git a/kernel/include/kernel/filesystem/open_file_table.hpp b/kernel/include/kernel/filesystem/open_file_table.hpp index 5794e4c..7e754ac 100644 --- a/kernel/include/kernel/filesystem/open_file_table.hpp +++ b/kernel/include/kernel/filesystem/open_file_table.hpp @@ -4,10 +4,10 @@ #include <kernel/filesystem/open_file_descriptor.hpp> #include <kstd/memory> +#include <kstd/unikstd.h> #include <kstd/vector> #include <cstddef> -#include <unistd.h> namespace kernel::filesystem { @@ -40,7 +40,7 @@ namespace kernel::filesystem @param fd The file descriptor to add. @return The file descriptor index assigned to the file, or -1 on failure. */ - auto add_file(kstd::shared_ptr<open_file_descriptor> const & fd) -> ssize_t; + auto add_file(kstd::shared_ptr<open_file_descriptor> const & fd) -> kstd::ssize_t; /** @brief Get a file from the open file table. @@ -54,7 +54,7 @@ namespace kernel::filesystem @param fd The file descriptor index to remove. @return 0 on success, or -1 on failure. */ - auto remove_file(size_t fd) -> ssize_t; + auto remove_file(size_t fd) -> kstd::ssize_t; private: open_file_table() = default; diff --git a/kernel/kapi/filesystem.cpp b/kernel/kapi/filesystem.cpp index db61c34..838d2cb 100644 --- a/kernel/kapi/filesystem.cpp +++ b/kernel/kapi/filesystem.cpp @@ -5,15 +5,14 @@ #include <kernel/filesystem/vfs.hpp> #include <kstd/memory> +#include <kstd/unikstd.h> #include <cstddef> #include <string_view> -#include <sys/types.h> - namespace kapi::filesystem { - auto mount(std::string_view source, std::string_view target) -> ssize_t + auto mount(std::string_view source, std::string_view target) -> kstd::ssize_t { if (kernel::filesystem::vfs::get().do_mount(source, target) == kernel::filesystem::vfs::operation_result::success) { @@ -22,7 +21,7 @@ namespace kapi::filesystem return -1; } - auto umount(std::string_view target) -> ssize_t + auto umount(std::string_view target) -> kstd::ssize_t { if (kernel::filesystem::vfs::get().unmount(target) == kernel::filesystem::vfs::operation_result::success) { @@ -31,7 +30,7 @@ namespace kapi::filesystem return -1; } - auto open(std::string_view path) -> ssize_t + auto open(std::string_view path) -> kstd::ssize_t { if (auto dentry = kernel::filesystem::vfs::get().open(path)) { @@ -42,7 +41,7 @@ namespace kapi::filesystem return -1; } - auto close(size_t file_descriptor) -> ssize_t + auto close(size_t file_descriptor) -> kstd::ssize_t { if (auto open_file_descriptor = kernel::filesystem::open_file_table::get().file(file_descriptor)) { @@ -55,7 +54,7 @@ namespace kapi::filesystem return -1; } - auto read(size_t file_descriptor, void * buffer, size_t size) -> ssize_t + auto read(size_t file_descriptor, void * buffer, size_t size) -> kstd::ssize_t { if (auto open_file_descriptor = kernel::filesystem::open_file_table::get().file(file_descriptor)) { @@ -65,7 +64,7 @@ namespace kapi::filesystem return -1; } - auto write(size_t file_descriptor, void const * buffer, size_t size) -> ssize_t + auto write(size_t file_descriptor, void const * buffer, size_t size) -> kstd::ssize_t { if (auto open_file_descriptor = kernel::filesystem::open_file_table::get().file(file_descriptor)) { diff --git a/kernel/src/filesystem/ext2/filesystem.cpp b/kernel/src/filesystem/ext2/filesystem.cpp index df5b4c4..a30149e 100644 --- a/kernel/src/filesystem/ext2/filesystem.cpp +++ b/kernel/src/filesystem/ext2/filesystem.cpp @@ -8,12 +8,12 @@ #include <kernel/filesystem/inode.hpp> #include <kstd/memory> +#include <kstd/unikstd.h> #include <kstd/vector> #include <cstddef> #include <cstdint> #include <string_view> -#include <unistd.h> namespace kernel::filesystem::ext2 { @@ -110,7 +110,7 @@ namespace kernel::filesystem::ext2 } auto filesystem::map_inode_block_index_to_global_block_number(size_t inode_block_index, inode_data data) const - -> ssize_t + -> kstd::ssize_t { if (inode_block_index < constants::direct_block_count) { diff --git a/kernel/src/filesystem/open_file_table.cpp b/kernel/src/filesystem/open_file_table.cpp index 4d52d36..2afe3aa 100644 --- a/kernel/src/filesystem/open_file_table.cpp +++ b/kernel/src/filesystem/open_file_table.cpp @@ -5,11 +5,11 @@ #include <kapi/system.hpp> #include <kstd/memory> +#include <kstd/unikstd.h> #include <algorithm> #include <cstddef> #include <optional> -#include <unistd.h> namespace { @@ -38,7 +38,7 @@ namespace kernel::filesystem return *global_open_file_table; } - auto open_file_table::add_file(kstd::shared_ptr<open_file_descriptor> const & file_descriptor) -> ssize_t + auto open_file_table::add_file(kstd::shared_ptr<open_file_descriptor> const & file_descriptor) -> kstd::ssize_t { if (!file_descriptor) { @@ -66,7 +66,7 @@ namespace kernel::filesystem return m_open_files.at(fd); } - auto open_file_table::remove_file(size_t fd) -> ssize_t + auto open_file_table::remove_file(size_t fd) -> kstd::ssize_t { if (fd >= m_open_files.size()) { diff --git a/libs/kstd/kstd/unikstd.h b/libs/kstd/kstd/unikstd.h new file mode 100644 index 0000000..aa60be6 --- /dev/null +++ b/libs/kstd/kstd/unikstd.h @@ -0,0 +1,12 @@ +#ifndef KSTD_UNIKSTD_HPP +#define KSTD_UNIKSTD_HPP + +#include <cstddef> +#include <type_traits> + +namespace kstd +{ + using ssize_t = std::make_signed_t<std::size_t>; +} // namespace kstd + +#endif
\ No newline at end of file |
