aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Braun <marcel.braun@ost.ch>2026-05-25 10:15:21 +0200
committerMarcel Braun <marcel.braun@ost.ch>2026-05-25 10:15:21 +0200
commit2063d3e165a1b92a46c73badf56927228ed4d5e8 (patch)
tree2adb26cb757e5eeb8d2e6f1ce7ed7d631088f55d
parent1279dddbf400828cbadb1b3774fb060d18d8251c (diff)
downloadkernel-2063d3e165a1b92a46c73badf56927228ed4d5e8.tar.xz
kernel-2063d3e165a1b92a46c73badf56927228ed4d5e8.zip
Refactor ssize_t
-rw-r--r--kapi/kapi/filesystem.hpp16
-rw-r--r--kernel/include/kernel/filesystem/ext2/filesystem.hpp6
-rw-r--r--kernel/include/kernel/filesystem/open_file_table.hpp6
-rw-r--r--kernel/kapi/filesystem.cpp15
-rw-r--r--kernel/src/filesystem/ext2/filesystem.cpp4
-rw-r--r--kernel/src/filesystem/open_file_table.cpp6
-rw-r--r--libs/kstd/kstd/unikstd.h12
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