debloat: use __syscall instead of syscall where possible
authorRich Felker <dalias@aerifal.cx>
Sun, 17 Apr 2011 20:32:15 +0000 (16:32 -0400)
committerRich Felker <dalias@aerifal.cx>
Sun, 17 Apr 2011 20:32:15 +0000 (16:32 -0400)
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.

src/stdio/__fdopen.c
src/stdio/__lockfile.c
src/stdio/fopen.c
src/stdio/tmpfile.c
src/thread/pthread_mutex_trylock.c
src/thread/pthread_self.c
src/unistd/sync.c

index a01026741bb93d2b864a081210b30a50fe784580..b13318e57a8798172f11411a997058ffd6909096 100644 (file)
@@ -20,8 +20,8 @@ FILE *__fdopen(int fd, const char *mode)
 
        /* Set append mode on fd if opened for append */
        if (*mode == 'a') {
-               int flags = syscall(SYS_fcntl, fd, F_GETFL, 0);
-               syscall(SYS_fcntl, fd, F_SETFL, flags | O_APPEND);
+               int flags = __syscall(SYS_fcntl, fd, F_GETFL);
+               __syscall(SYS_fcntl, fd, F_SETFL, flags | O_APPEND);
        }
 
        f->fd = fd;
index c0948255fc176c6305e222f8209b027f44bead8a..4e0239e7e96399761effc4f60b8a151887454a07 100644 (file)
@@ -15,6 +15,6 @@ void __lockfile(FILE *f)
        }
        while (a_cas(&f->lock, 0, tid))
                if (spins) spins--, a_spin();
-               else syscall(SYS_sched_yield);
+               else __syscall(SYS_sched_yield);
        f->lockcount = 1;
 }
index c2a350d119bf258fba48e5a88efaaa8ae33ee248..469de6f0b62a6bf9d494859f186797a8103aa74e 100644 (file)
@@ -27,7 +27,7 @@ FILE *fopen(const char *filename, const char *mode)
        f = __fdopen(fd, mode);
        if (f) return f;
 
-       syscall(SYS_close, fd);
+       __syscall(SYS_close, fd);
        return 0;
 }
 
index 18c232f7615d5e31463d367df29f01f40590fc93..926d6601d67e067d83bc07149ecd7dd8d4c00939 100644 (file)
@@ -17,7 +17,7 @@ FILE *tmpfile(void)
                fd = syscall(SYS_open, s, O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600);
                if (fd >= 0) {
                        f = __fdopen(fd, "w+");
-                       syscall(SYS_unlink, s);
+                       __syscall(SYS_unlink, s);
                        return f;
                }
        }
index ea1fa80527698d9a20cad0c616f0971d50bdbb1c..1fb6d0f276a5b0ff3c721f6c478061d50b29d6bc 100644 (file)
@@ -14,7 +14,7 @@ int pthread_mutex_trylock(pthread_mutex_t *m)
 
        if (m->_m_type >= 4) {
                if (!self->robust_list.off)
-                       syscall(SYS_set_robust_list,
+                       __syscall(SYS_set_robust_list,
                                &self->robust_list, 3*sizeof(long));
                self->robust_list.off = (char*)&m->_m_lock-(char *)&m->_m_next;
                self->robust_list.pending = &m->_m_next;
index e26476cedffd37ae171e9945f856607a239cda71..e8bb9181502afc87388d27b8ddbdc6658bad24d4 100644 (file)
@@ -22,7 +22,7 @@ static int init_main_thread()
        main_thread.errno_ptr = __errno_location();
        libc.errno_location = errno_location;
        main_thread.tid = main_thread.pid = 
-               syscall(SYS_set_tid_address, &main_thread.tid);
+               __syscall(SYS_set_tid_address, &main_thread.tid);
        return 0;
 }
 
index 20fafb4a93c6b28270ddeaa6c24d8aa6bb3756ef..f18765aa85063b6052ae6d6ffd625cfac617e705 100644 (file)
@@ -3,5 +3,5 @@
 
 void sync(void)
 {
-       syscall(SYS_sync);
+       __syscall(SYS_sync);
 }