Kernel/LibC: Implement symlink{,at}
This commit is contained in:
@@ -39,6 +39,7 @@ namespace Kernel
|
||||
virtual BAN::ErrorOr<void> unlink_impl(BAN::StringView) override;
|
||||
|
||||
virtual BAN::ErrorOr<BAN::String> link_target_impl() override;
|
||||
virtual BAN::ErrorOr<void> set_link_target_impl(BAN::StringView) override;
|
||||
|
||||
virtual BAN::ErrorOr<size_t> read_impl(off_t, BAN::ByteSpan) override;
|
||||
virtual BAN::ErrorOr<size_t> write_impl(off_t, BAN::ConstByteSpan) override;
|
||||
|
||||
@@ -99,6 +99,7 @@ namespace Kernel
|
||||
|
||||
// Link API
|
||||
BAN::ErrorOr<BAN::String> link_target();
|
||||
BAN::ErrorOr<void> set_link_target(BAN::StringView);
|
||||
|
||||
// Socket API
|
||||
BAN::ErrorOr<long> accept(sockaddr* address, socklen_t* address_len, int flags);
|
||||
@@ -134,6 +135,7 @@ namespace Kernel
|
||||
|
||||
// Link API
|
||||
virtual BAN::ErrorOr<BAN::String> link_target_impl() { return BAN::Error::from_errno(ENOTSUP); }
|
||||
virtual BAN::ErrorOr<void> set_link_target_impl(BAN::StringView) { return BAN::Error::from_errno(ENOTSUP); }
|
||||
|
||||
// Socket API
|
||||
virtual BAN::ErrorOr<long> accept_impl(sockaddr*, socklen_t*, int) { return BAN::Error::from_errno(ENOTSUP); }
|
||||
|
||||
@@ -113,6 +113,8 @@ namespace Kernel
|
||||
BAN::ErrorOr<long> sys_unlink(const char*);
|
||||
BAN::ErrorOr<long> sys_readlinkat(int fd, const char* path, char* buffer, size_t bufsize);
|
||||
|
||||
BAN::ErrorOr<long> sys_symlinkat(const char* path1, int fd, const char* path2);
|
||||
|
||||
BAN::ErrorOr<long> sys_pread(int fd, void* buffer, size_t count, off_t offset);
|
||||
|
||||
BAN::ErrorOr<long> sys_fchmodat(int fd, const char* path, mode_t mode, int flag);
|
||||
@@ -221,6 +223,7 @@ namespace Kernel
|
||||
static Process* create_process(const Credentials&, pid_t parent, pid_t sid = 0, pid_t pgrp = 0);
|
||||
|
||||
BAN::ErrorOr<VirtualFileSystem::File> find_file(int fd, const char* path, int flags);
|
||||
BAN::ErrorOr<VirtualFileSystem::File> find_parent(int fd, const char* path);
|
||||
|
||||
BAN::ErrorOr<void> validate_string_access(const char*);
|
||||
BAN::ErrorOr<void> validate_pointer_access_check(const void*, size_t, bool needs_write);
|
||||
|
||||
Reference in New Issue
Block a user