mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-20 09:46:20 +00:00
parent
976833f171
commit
7186c45de6
@ -85,6 +85,7 @@ namespace Noux {
|
||||
SYSCALL_UTIMES,
|
||||
SYSCALL_SYNC,
|
||||
SYSCALL_KILL,
|
||||
SYSCALL_GETDTABLESIZE,
|
||||
SYSCALL_INVALID = -1
|
||||
};
|
||||
|
||||
@ -134,6 +135,7 @@ namespace Noux {
|
||||
NOUX_DECL_SYSCALL_NAME(UTIMES)
|
||||
NOUX_DECL_SYSCALL_NAME(SYNC)
|
||||
NOUX_DECL_SYSCALL_NAME(KILL)
|
||||
NOUX_DECL_SYSCALL_NAME(GETDTABLESIZE)
|
||||
case SYSCALL_INVALID: return 0;
|
||||
}
|
||||
return 0;
|
||||
|
@ -459,6 +459,8 @@ namespace Noux {
|
||||
SYSIO_DECL(sync, { }, { });
|
||||
|
||||
SYSIO_DECL(kill, { int pid; Signal sig; }, { });
|
||||
|
||||
SYSIO_DECL(getdtablesize, { }, { int n; });
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -227,6 +227,21 @@ extern "C" struct passwd *getpwuid(uid_t uid)
|
||||
}
|
||||
|
||||
|
||||
extern "C" int getdtablesize()
|
||||
{
|
||||
if (!noux_syscall(Noux::Session::SYSCALL_GETDTABLESIZE)) {
|
||||
PWRN("getdtablesize syscall failed");
|
||||
errno = ENOSYS;
|
||||
return -1;
|
||||
}
|
||||
|
||||
int n = sysio()->getdtablesize_out.n;
|
||||
if (verbose)
|
||||
PDBG("%d", n);
|
||||
return n;
|
||||
}
|
||||
|
||||
|
||||
extern "C" uid_t getgid()
|
||||
{
|
||||
sysio()->userinfo_in.request = Noux::Sysio::USERINFO_GET_GID;
|
||||
|
@ -864,6 +864,14 @@ bool Noux::Child::syscall(Noux::Session::Syscall sc)
|
||||
break;
|
||||
}
|
||||
|
||||
case SYSCALL_GETDTABLESIZE:
|
||||
{
|
||||
_sysio->getdtablesize_out.n =
|
||||
Noux::File_descriptor_registry::MAX_FILE_DESCRIPTORS;
|
||||
result = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case SYSCALL_SOCKET:
|
||||
case SYSCALL_GETSOCKOPT:
|
||||
case SYSCALL_SETSOCKOPT:
|
||||
|
Loading…
x
Reference in New Issue
Block a user