debloat: use __syscall instead of syscall where possible

don't waste time (and significant code size due to function call
overhead!) setting errno when the result of a syscall does not matter
or when it can't fail.
This commit is contained in:
Rich Felker
2011-04-17 16:32:15 -04:00
parent 09dae2b7b6
commit eb0e8fa0b1
7 changed files with 8 additions and 8 deletions

View File

@ -20,8 +20,8 @@ FILE *__fdopen(int fd, const char *mode)
/* Set append mode on fd if opened for append */ /* Set append mode on fd if opened for append */
if (*mode == 'a') { if (*mode == 'a') {
int flags = syscall(SYS_fcntl, fd, F_GETFL, 0); int flags = __syscall(SYS_fcntl, fd, F_GETFL);
syscall(SYS_fcntl, fd, F_SETFL, flags | O_APPEND); __syscall(SYS_fcntl, fd, F_SETFL, flags | O_APPEND);
} }
f->fd = fd; f->fd = fd;

View File

@ -15,6 +15,6 @@ void __lockfile(FILE *f)
} }
while (a_cas(&f->lock, 0, tid)) while (a_cas(&f->lock, 0, tid))
if (spins) spins--, a_spin(); if (spins) spins--, a_spin();
else syscall(SYS_sched_yield); else __syscall(SYS_sched_yield);
f->lockcount = 1; f->lockcount = 1;
} }

View File

@ -27,7 +27,7 @@ FILE *fopen(const char *filename, const char *mode)
f = __fdopen(fd, mode); f = __fdopen(fd, mode);
if (f) return f; if (f) return f;
syscall(SYS_close, fd); __syscall(SYS_close, fd);
return 0; return 0;
} }

View File

@ -17,7 +17,7 @@ FILE *tmpfile(void)
fd = syscall(SYS_open, s, O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600); fd = syscall(SYS_open, s, O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600);
if (fd >= 0) { if (fd >= 0) {
f = __fdopen(fd, "w+"); f = __fdopen(fd, "w+");
syscall(SYS_unlink, s); __syscall(SYS_unlink, s);
return f; return f;
} }
} }

View File

@ -14,7 +14,7 @@ int pthread_mutex_trylock(pthread_mutex_t *m)
if (m->_m_type >= 4) { if (m->_m_type >= 4) {
if (!self->robust_list.off) if (!self->robust_list.off)
syscall(SYS_set_robust_list, __syscall(SYS_set_robust_list,
&self->robust_list, 3*sizeof(long)); &self->robust_list, 3*sizeof(long));
self->robust_list.off = (char*)&m->_m_lock-(char *)&m->_m_next; self->robust_list.off = (char*)&m->_m_lock-(char *)&m->_m_next;
self->robust_list.pending = &m->_m_next; self->robust_list.pending = &m->_m_next;

View File

@ -22,7 +22,7 @@ static int init_main_thread()
main_thread.errno_ptr = __errno_location(); main_thread.errno_ptr = __errno_location();
libc.errno_location = errno_location; libc.errno_location = errno_location;
main_thread.tid = main_thread.pid = main_thread.tid = main_thread.pid =
syscall(SYS_set_tid_address, &main_thread.tid); __syscall(SYS_set_tid_address, &main_thread.tid);
return 0; return 0;
} }

View File

@ -3,5 +3,5 @@
void sync(void) void sync(void)
{ {
syscall(SYS_sync); __syscall(SYS_sync);
} }