jehanne: define mkdir, chdir and fchdir

This commit is contained in:
Giacomo Tesio 2017-08-23 04:59:30 +02:00
parent 58696ccd34
commit 779da685df
2 changed files with 26 additions and 1 deletions

View File

@ -211,10 +211,14 @@ default_error_translator(char* error, uintptr_t caller)
jehanne_fprint(2, "newlib: %s\n", error);
if(caller == ADDRESS(POSIX_open))
return PosixEIO;
if(caller == ADDRESS(POSIX_chdir))
return PosixEACCES;
if(caller == ADDRESS(POSIX_chmod))
return PosixEPERM;
if(caller == ADDRESS(POSIX_fchmodat))
return PosixEPERM;
if(caller == ADDRESS(POSIX_fchdir))
return PosixEACCES;
return PosixEINVAL;
}
@ -394,7 +398,7 @@ initialize_newlib(void)
libposix_define_errno(PosixETXTBSY, ETXTBSY);
libposix_define_errno(PosixEWOULDBLOCK, EWOULDBLOCK);
libposix_define_errno(PosixEXDEV, EXDEV);
/* let the application override defaults */
if(__application_newlib_init != 0)
__application_newlib_init();

View File

@ -250,6 +250,27 @@ getpass(const char *prompt)
return POSIX_getpass(errnop, prompt);
}
int
mkdir(const char *path, int mode)
{
int *errnop = &_REENT->_errno;
return POSIX_mkdir(errnop, path, mode);
}
int
chdir(const char *path)
{
int *errnop = &_REENT->_errno;
return POSIX_chdir(errnop, path);
}
int
fchdir(int fd)
{
int *errnop = &_REENT->_errno;
return POSIX_fchdir(errnop, fd);
}
int
getdents (int fd, void *buf, int buf_size)
{