jehanne: define mkdir, chdir and fchdir
This commit is contained in:
@ -211,10 +211,14 @@ default_error_translator(char* error, uintptr_t caller)
|
|||||||
jehanne_fprint(2, "newlib: %s\n", error);
|
jehanne_fprint(2, "newlib: %s\n", error);
|
||||||
if(caller == ADDRESS(POSIX_open))
|
if(caller == ADDRESS(POSIX_open))
|
||||||
return PosixEIO;
|
return PosixEIO;
|
||||||
|
if(caller == ADDRESS(POSIX_chdir))
|
||||||
|
return PosixEACCES;
|
||||||
if(caller == ADDRESS(POSIX_chmod))
|
if(caller == ADDRESS(POSIX_chmod))
|
||||||
return PosixEPERM;
|
return PosixEPERM;
|
||||||
if(caller == ADDRESS(POSIX_fchmodat))
|
if(caller == ADDRESS(POSIX_fchmodat))
|
||||||
return PosixEPERM;
|
return PosixEPERM;
|
||||||
|
if(caller == ADDRESS(POSIX_fchdir))
|
||||||
|
return PosixEACCES;
|
||||||
return PosixEINVAL;
|
return PosixEINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -394,7 +398,7 @@ initialize_newlib(void)
|
|||||||
libposix_define_errno(PosixETXTBSY, ETXTBSY);
|
libposix_define_errno(PosixETXTBSY, ETXTBSY);
|
||||||
libposix_define_errno(PosixEWOULDBLOCK, EWOULDBLOCK);
|
libposix_define_errno(PosixEWOULDBLOCK, EWOULDBLOCK);
|
||||||
libposix_define_errno(PosixEXDEV, EXDEV);
|
libposix_define_errno(PosixEXDEV, EXDEV);
|
||||||
|
|
||||||
/* let the application override defaults */
|
/* let the application override defaults */
|
||||||
if(__application_newlib_init != 0)
|
if(__application_newlib_init != 0)
|
||||||
__application_newlib_init();
|
__application_newlib_init();
|
||||||
|
@ -250,6 +250,27 @@ getpass(const char *prompt)
|
|||||||
return POSIX_getpass(errnop, 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
|
int
|
||||||
getdents (int fd, void *buf, int buf_size)
|
getdents (int fd, void *buf, int buf_size)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user