LibCore: Add an ErrorOr wrapper for uname

This commit is contained in:
mjz19910 2022-01-03 19:56:28 -07:00 committed by Brian Gianforcaro
parent 35cd7c9a91
commit 91f5fc796b
2 changed files with 15 additions and 0 deletions

View file

@ -648,6 +648,19 @@ ErrorOr<void> utime(StringView path, Optional<struct utimbuf> maybe_buf)
#endif
}
ErrorOr<struct utsname> uname()
{
utsname uts;
#ifdef __serenity__
int rc = syscall(SC_uname, &uts);
HANDLE_SYSCALL_RETURN_VALUE("uname"sv, rc, uts);
#else
if (::uname(&uts) < 0)
return Error::from_syscall("uname"sv, -errno);
#endif
return uts;
}
ErrorOr<int> socket(int domain, int type, int protocol)
{
auto fd = ::socket(domain, type, protocol);

View file

@ -17,6 +17,7 @@
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/utsname.h>
#include <sys/wait.h>
#include <termios.h>
#include <time.h>
@ -97,6 +98,7 @@ ErrorOr<int> mkstemp(Span<char> pattern);
ErrorOr<void> fchmod(int fd, mode_t mode);
ErrorOr<void> rename(StringView old_path, StringView new_path);
ErrorOr<void> utime(StringView path, Optional<struct utimbuf>);
ErrorOr<struct utsname> uname();
ErrorOr<Array<int, 2>> pipe2(int flags);
ErrorOr<int> socket(int domain, int type, int protocol);