mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-03 03:02:28 +00:00
Backport main branch improvements (#658)
* Add sys_ prefix to unwrapped system calls * This change also implements getlogin() and getlogin_r(). * Add getgroups and setgroups (#619) * Fix getgroups / setgroups tests across platforms. See #619 * Change accept type to struct sockaddr * (#630) * vista: use old strace path
This commit is contained in:
parent
4381b3d925
commit
f4ff1729d1
831 changed files with 1381 additions and 1822 deletions
|
@ -51,6 +51,8 @@
|
|||
* has been done for five platforms, having a remarkably tiny footprint.
|
||||
*/
|
||||
|
||||
int sys_getdents(unsigned, void *, unsigned, long *);
|
||||
|
||||
/**
|
||||
* Directory stream object.
|
||||
*/
|
||||
|
@ -375,8 +377,8 @@ static struct dirent *readdir_impl(DIR *dir) {
|
|||
} else if (!IsWindows()) {
|
||||
if (dir->buf_pos >= dir->buf_end) {
|
||||
basep = dir->tell; /* TODO(jart): what does xnu do */
|
||||
rc = getdents(dir->fd, dir->buf, sizeof(dir->buf) - 256, &basep);
|
||||
STRACE("getdents(%d) → %d% m", dir->fd, rc);
|
||||
rc = sys_getdents(dir->fd, dir->buf, sizeof(dir->buf) - 256, &basep);
|
||||
STRACE("sys_getdents(%d) → %d% m", dir->fd, rc);
|
||||
if (!rc || rc == -1) return NULL;
|
||||
dir->buf_pos = 0;
|
||||
dir->buf_end = rc;
|
||||
|
|
|
@ -99,7 +99,7 @@ ssize_t getrandom(void *p, size_t n, unsigned f) {
|
|||
cmd[1] = 81; /* KERN_ARND */
|
||||
}
|
||||
m = n;
|
||||
if ((rc = sysctl(cmd, 2, p, &m, 0, 0)) != -1) {
|
||||
if ((rc = sys_sysctl(cmd, 2, p, &m, 0, 0)) != -1) {
|
||||
rc = m;
|
||||
}
|
||||
} else if (have_getrandom) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue