Add getumask(2).
This commit is contained in:
parent
9771f29138
commit
2fe3595feb
|
@ -1,6 +1,6 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
|
|
||||||
Copyright(C) Jonas 'Sortie' Termansen 2011, 2012, 2013.
|
Copyright(C) Jonas 'Sortie' Termansen 2011, 2012, 2013, 2014.
|
||||||
|
|
||||||
This file is part of Sortix.
|
This file is part of Sortix.
|
||||||
|
|
||||||
|
@ -147,6 +147,7 @@
|
||||||
#define SYSCALL_SYMLINKAT 123
|
#define SYSCALL_SYMLINKAT 123
|
||||||
#define SYSCALL_TCGETWINCURPOS 124
|
#define SYSCALL_TCGETWINCURPOS 124
|
||||||
#define SYSCALL_PIPE2 125
|
#define SYSCALL_PIPE2 125
|
||||||
#define SYSCALL_MAX_NUM 126 /* index of highest constant + 1 */
|
#define SYSCALL_GETUMASK 126
|
||||||
|
#define SYSCALL_MAX_NUM 127 /* index of highest constant + 1 */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
|
|
||||||
Copyright(C) Jonas 'Sortie' Termansen 2011, 2012, 2013.
|
Copyright(C) Jonas 'Sortie' Termansen 2011, 2012, 2013, 2014.
|
||||||
|
|
||||||
This file is part of Sortix.
|
This file is part of Sortix.
|
||||||
|
|
||||||
|
@ -1208,6 +1208,13 @@ static mode_t sys_umask(mode_t newmask)
|
||||||
return oldmask;
|
return oldmask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static mode_t sys_getumask(void)
|
||||||
|
{
|
||||||
|
Process* process = CurrentProcess();
|
||||||
|
ScopedLock lock(&process->idlock);
|
||||||
|
return process->umask;
|
||||||
|
}
|
||||||
|
|
||||||
void Process::Init()
|
void Process::Init()
|
||||||
{
|
{
|
||||||
Syscall::Register(SYSCALL_EXEC, (void*) sys_execve);
|
Syscall::Register(SYSCALL_EXEC, (void*) sys_execve);
|
||||||
|
@ -1216,6 +1223,7 @@ void Process::Init()
|
||||||
Syscall::Register(SYSCALL_GETPGID, (void*) sys_getpgid);
|
Syscall::Register(SYSCALL_GETPGID, (void*) sys_getpgid);
|
||||||
Syscall::Register(SYSCALL_GETPID, (void*) sys_getpid);
|
Syscall::Register(SYSCALL_GETPID, (void*) sys_getpid);
|
||||||
Syscall::Register(SYSCALL_GETPPID, (void*) sys_getppid);
|
Syscall::Register(SYSCALL_GETPPID, (void*) sys_getppid);
|
||||||
|
Syscall::Register(SYSCALL_GETUMASK, (void*) sys_getumask);
|
||||||
Syscall::Register(SYSCALL_SBRK, (void*) sys_sbrk);
|
Syscall::Register(SYSCALL_SBRK, (void*) sys_sbrk);
|
||||||
Syscall::Register(SYSCALL_SETPGID, (void*) sys_setpgid);
|
Syscall::Register(SYSCALL_SETPGID, (void*) sys_setpgid);
|
||||||
Syscall::Register(SYSCALL_TFORK, (void*) sys_tfork);
|
Syscall::Register(SYSCALL_TFORK, (void*) sys_tfork);
|
||||||
|
|
|
@ -429,6 +429,7 @@ sys/stat/fchmod.o \
|
||||||
sys/stat/fstatat.o \
|
sys/stat/fstatat.o \
|
||||||
sys/stat/fstat.o \
|
sys/stat/fstat.o \
|
||||||
sys/stat/futimens.o \
|
sys/stat/futimens.o \
|
||||||
|
sys/stat/getumask.o \
|
||||||
sys/stat/lstat.o \
|
sys/stat/lstat.o \
|
||||||
sys/stat/mkdirat.o \
|
sys/stat/mkdirat.o \
|
||||||
sys/stat/mkdir.o \
|
sys/stat/mkdir.o \
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
|
|
||||||
Copyright(C) Jonas 'Sortie' Termansen 2011, 2012, 2013.
|
Copyright(C) Jonas 'Sortie' Termansen 2011, 2012, 2013, 2014.
|
||||||
|
|
||||||
This file is part of the Sortix C Library.
|
This file is part of the Sortix C Library.
|
||||||
|
|
||||||
|
@ -105,6 +105,7 @@ int fstat(int fd, struct stat* st);
|
||||||
int fstatat(int dirfd, const char* path, struct stat* buf, int flags);
|
int fstatat(int dirfd, const char* path, struct stat* buf, int flags);
|
||||||
int futimens(int fd, const struct timespec times[2]);
|
int futimens(int fd, const struct timespec times[2]);
|
||||||
int lstat(const char* __restrict path, struct stat* __restrict st);
|
int lstat(const char* __restrict path, struct stat* __restrict st);
|
||||||
|
mode_t getumask(void);
|
||||||
int mkdir(const char* path, mode_t mode);
|
int mkdir(const char* path, mode_t mode);
|
||||||
int mkdirat(int dirfd, const char* path, mode_t mode);
|
int mkdirat(int dirfd, const char* path, mode_t mode);
|
||||||
/* TODO: mkfifo */
|
/* TODO: mkfifo */
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
|
||||||
|
Copyright(C) Jonas 'Sortie' Termansen 2014.
|
||||||
|
|
||||||
|
This file is part of the Sortix C Library.
|
||||||
|
|
||||||
|
The Sortix C Library is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or (at your
|
||||||
|
option) any later version.
|
||||||
|
|
||||||
|
The Sortix C Library is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with the Sortix C Library. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
sys/stat/getumask.cpp
|
||||||
|
Get file mode creation mask.
|
||||||
|
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <sys/syscall.h>
|
||||||
|
|
||||||
|
DEFN_SYSCALL0(mode_t, sys_getumask, SYSCALL_GETUMASK);
|
||||||
|
|
||||||
|
extern "C" mode_t getumask(void)
|
||||||
|
{
|
||||||
|
return sys_getumask();
|
||||||
|
}
|
Loading…
Reference in New Issue