options/posix: Fix overlapping _SC constants, add _SC_JOB_CONTROL and update strerror
sysdeps/managarm: Pass truncate flag in sys_open and sys_openat Signed-off-by: Dennisbonke <admin@dennisbonke.com>
This commit is contained in:
parent
2fe75fec9d
commit
1b6935e7b5
|
@ -332,6 +332,7 @@ char *strerror(int e) {
|
|||
case EPIPE: s = "Broken pipe (EPIPE)"; break;
|
||||
case ESPIPE: s = "Seek not possible (ESPIPE)"; break;
|
||||
case ENXIO: s = "No such device or address (ENXIO)"; break;
|
||||
case ENOEXEC: s = "Exec format error (ENOEXEC)"; break;
|
||||
default:
|
||||
s = "Unknown error code (?)";
|
||||
}
|
||||
|
|
|
@ -602,6 +602,9 @@ unsigned long sysconf(int number) {
|
|||
// TODO: actually return a proper value for _SC_GETGR_R_SIZE_MAX
|
||||
mlibc::infoLogger() << "\e[31mmlibc: sysconf(_SC_GETGR_R_SIZE_MAX) returns arbitrary value 8\e[39m" << frg::endlog;
|
||||
return 8;
|
||||
case _SC_JOB_CONTROL:
|
||||
// If 1, job control is supported
|
||||
return 1;
|
||||
default:
|
||||
mlibc::panicLogger() << "\e[31mmlibc: sysconf() call is not implemented, number: " << number << "\e[39m" << frg::endlog;
|
||||
__builtin_unreachable();
|
||||
|
|
|
@ -99,12 +99,12 @@ extern "C" {
|
|||
#define _SC_NPROCESSORS_ONLN 6
|
||||
#define _SC_GETGR_R_SIZE_MAX 7
|
||||
|
||||
#define _SC_CHILD_MAX 7
|
||||
#define _SC_CLK_TCK 8
|
||||
#define _SC_NGROUPS_MAX 9
|
||||
#define _SC_VERSION 9
|
||||
#define _SC_SAVED_IDS 9
|
||||
#define _SC_JOB_CONTROL 9
|
||||
#define _SC_CHILD_MAX 8
|
||||
#define _SC_CLK_TCK 9
|
||||
#define _SC_NGROUPS_MAX 10
|
||||
#define _SC_VERSION 11
|
||||
#define _SC_SAVED_IDS 12
|
||||
#define _SC_JOB_CONTROL 13
|
||||
|
||||
#define STDERR_FILENO 2
|
||||
#define STDIN_FILENO 0
|
||||
|
|
|
@ -3215,6 +3215,8 @@ int sys_open(const char *path, int flags, int *fd) {
|
|||
proto_flags |= managarm::posix::OpenFlags::OF_EXCLUSIVE;
|
||||
if(flags & __MLIBC_O_NONBLOCK)
|
||||
proto_flags |= managarm::posix::OpenFlags::OF_NONBLOCK;
|
||||
if(flags & __MLIBC_O_TRUNC)
|
||||
proto_flags |= managarm::posix::OpenFlags::OF_TRUNC;
|
||||
|
||||
if(flags & __MLIBC_O_CLOEXEC)
|
||||
proto_flags |= managarm::posix::OpenFlags::OF_CLOEXEC;
|
||||
|
@ -3272,6 +3274,8 @@ int sys_openat(int dirfd, const char *path, int flags, int *fd) {
|
|||
proto_flags |= managarm::posix::OpenFlags::OF_EXCLUSIVE;
|
||||
if(flags & __MLIBC_O_NONBLOCK)
|
||||
proto_flags |= managarm::posix::OpenFlags::OF_NONBLOCK;
|
||||
if(flags & __MLIBC_O_TRUNC)
|
||||
proto_flags |= managarm::posix::OpenFlags::OF_TRUNC;
|
||||
|
||||
if(flags & __MLIBC_O_CLOEXEC)
|
||||
proto_flags |= managarm::posix::OpenFlags::OF_CLOEXEC;
|
||||
|
|
Loading…
Reference in a new issue