Kernel, libc: Use mode in mkdir()
This commit is contained in:
parent
0115cce750
commit
26b20938de
@ -54,7 +54,7 @@ void sys_execv(Context* context, const char* pathname, char** argv);
|
||||
void sys_fcntl(Context* context, int fd, int command, uintptr_t arg);
|
||||
void sys_mprotect(Context* context, void* address, size_t size, int prot);
|
||||
void sys_clock(Context* context);
|
||||
void sys_mkdir(Context* context, const char* filename);
|
||||
void sys_mkdir(Context* context, const char* filename, mode_t mode);
|
||||
void sys_fork(Context* context);
|
||||
void sys_waitpid(Context* context, long pid, int* wstatus, int options);
|
||||
void sys_access(Context* context, const char* path, int amode);
|
||||
|
@ -195,7 +195,7 @@ VFS::Node* initrd_read_dir(VFS::Node* node, long offset)
|
||||
return dir.files[offset];
|
||||
}
|
||||
|
||||
int initrd_mkdir(VFS::Node* node, const char* name) // FIXME: Return proper error numbers.
|
||||
int initrd_mkdir(VFS::Node* node, const char* name, mode_t mode) // FIXME: Return proper error numbers.
|
||||
{
|
||||
if (total_dirs >= 32)
|
||||
{
|
||||
@ -225,6 +225,7 @@ int initrd_mkdir(VFS::Node* node, const char* name) // FIXME: Return proper erro
|
||||
new_node.mkdir_func = initrd_mkdir;
|
||||
new_node.length = 0;
|
||||
new_node.type = VFS_DIRECTORY;
|
||||
new_node.mode = mode;
|
||||
new_node.uid = new_node.gid = 0;
|
||||
strncpy(new_node.name, name, sizeof(new_node.name));
|
||||
InitRD::Directory dir;
|
||||
|
@ -27,7 +27,7 @@ void Syscall::entry(Context* context)
|
||||
case SYS_fcntl: sys_fcntl(context, (int)context->rdi, (int)context->rsi, context->rdx); break;
|
||||
case SYS_mprotect: sys_mprotect(context, (void*)context->rdi, context->rsi, (int)context->rdx); break;
|
||||
case SYS_clock: sys_clock(context); break;
|
||||
case SYS_mkdir: sys_mkdir(context, (const char*)context->rdi); break;
|
||||
case SYS_mkdir: sys_mkdir(context, (const char*)context->rdi, (mode_t)context->rsi); break;
|
||||
case SYS_fork: sys_fork(context); break;
|
||||
case SYS_waitpid: sys_waitpid(context, (long)context->rdi, (int*)context->rsi, (int)context->rdx); break;
|
||||
case SYS_access: sys_access(context, (const char*)context->rdi, (int)context->rsi); break;
|
||||
|
@ -4,9 +4,9 @@
|
||||
|
||||
extern "C"
|
||||
{
|
||||
int mkdir(const char* pathname, mode_t)
|
||||
int mkdir(const char* pathname, mode_t mode)
|
||||
{
|
||||
return (int)__lc_fast_syscall1(SYS_mkdir, pathname);
|
||||
return (int)__lc_fast_syscall2(SYS_mkdir, pathname, mode);
|
||||
}
|
||||
|
||||
int fstat(int fd, struct stat* buf)
|
||||
|
Loading…
Reference in New Issue
Block a user