split internal lock API out of libc.h, creating lock.h
authorRich Felker <dalias@aerifal.cx>
Wed, 12 Sep 2018 14:19:54 +0000 (10:19 -0400)
committerRich Felker <dalias@aerifal.cx>
Wed, 12 Sep 2018 22:40:35 +0000 (18:40 -0400)
this further reduces the number of source files which need to include
libc.h and thereby be potentially exposed to libc global state and
internals.

this will also facilitate further improvements like adding an inline
fast-path, if we want to do so later.

25 files changed:
src/dirent/readdir_r.c
src/dirent/rewinddir.c
src/dirent/seekdir.c
src/exit/abort.c
src/exit/at_quick_exit.c
src/exit/atexit.c
src/internal/libc.h
src/internal/lock.h [new file with mode: 0644]
src/locale/dcngettext.c
src/locale/locale_map.c
src/locale/setlocale.c
src/malloc/lite_malloc.c
src/misc/syslog.c
src/prng/random.c
src/signal/sigaction.c
src/stdio/ofl.c
src/thread/pthread_atfork.c
src/thread/pthread_create.c
src/thread/pthread_getschedparam.c
src/thread/pthread_kill.c
src/thread/pthread_setschedparam.c
src/thread/pthread_setschedprio.c
src/thread/sem_open.c
src/thread/synccall.c
src/time/__tz.c

index 6293a51..e2a818f 100644 (file)
@@ -2,7 +2,7 @@
 #include <errno.h>
 #include <string.h>
 #include "__dirent.h"
-#include "libc.h"
+#include "lock.h"
 
 int readdir_r(DIR *restrict dir, struct dirent *restrict buf, struct dirent **restrict result)
 {
index f205300..7ddda43 100644 (file)
@@ -1,7 +1,7 @@
 #include <dirent.h>
 #include <unistd.h>
 #include "__dirent.h"
-#include "libc.h"
+#include "lock.h"
 
 void rewinddir(DIR *dir)
 {
index 5be47d4..bf6cc6e 100644 (file)
@@ -1,7 +1,7 @@
 #include <dirent.h>
 #include <unistd.h>
 #include "__dirent.h"
-#include "libc.h"
+#include "lock.h"
 
 void seekdir(DIR *dir, long off)
 {
index 7c323d2..e1980f1 100644 (file)
@@ -3,7 +3,7 @@
 #include "syscall.h"
 #include "pthread_impl.h"
 #include "atomic.h"
-#include "libc.h"
+#include "lock.h"
 #include "ksigaction.h"
 
 hidden volatile int __abort_lock[1];
index 4079b24..d3ce652 100644 (file)
@@ -1,5 +1,6 @@
 #include <stdlib.h>
 #include "libc.h"
+#include "lock.h"
 
 #define COUNT 32
 
index cd3b0a6..160d277 100644 (file)
@@ -1,6 +1,7 @@
 #include <stdlib.h>
 #include <stdint.h>
 #include "libc.h"
+#include "lock.h"
 
 /* Ensure that at least 32 atexit handlers can be registered without malloc */
 #define COUNT 32
index 0a27918..10bd66b 100644 (file)
@@ -51,12 +51,6 @@ extern char *__progname, *__progname_full;
 
 extern hidden const char __libc_version[];
 
-/* Designed to avoid any overhead in non-threaded processes */
-hidden void __lock(volatile int *);
-hidden void __unlock(volatile int *);
-#define LOCK(x) __lock(x)
-#define UNLOCK(x) __unlock(x)
-
 hidden void __synccall(void (*)(void *), void *);
 hidden int __setxid(int, int, int, int);
 
diff --git a/src/internal/lock.h b/src/internal/lock.h
new file mode 100644 (file)
index 0000000..c77db6f
--- /dev/null
@@ -0,0 +1,9 @@
+#ifndef LOCK_H
+#define LOCK_H
+
+hidden void __lock(volatile int *);
+hidden void __unlock(volatile int *);
+#define LOCK(x) __lock(x)
+#define UNLOCK(x) __unlock(x)
+
+#endif
index eefa31a..7fbe719 100644 (file)
@@ -9,6 +9,7 @@
 #include "locale_impl.h"
 #include "atomic.h"
 #include "pleval.h"
+#include "lock.h"
 
 struct binding {
        struct binding *next;
index e7b518a..2321bac 100644 (file)
@@ -3,7 +3,7 @@
 #include <sys/mman.h>
 #include "locale_impl.h"
 #include "libc.h"
-#include "atomic.h"
+#include "lock.h"
 
 const char *__lctrans_impl(const char *msg, const struct __locale_map *lm)
 {
index 60e3353..11d823c 100644 (file)
@@ -3,7 +3,7 @@
 #include <string.h>
 #include "locale_impl.h"
 #include "libc.h"
-#include "atomic.h"
+#include "lock.h"
 
 static char buf[LC_ALL*(LOCALE_NAME_MAX+1)];
 
index 49157d3..050d84f 100644 (file)
@@ -2,7 +2,7 @@
 #include <stdint.h>
 #include <limits.h>
 #include <errno.h>
-#include "libc.h"
+#include "lock.h"
 #include "malloc_impl.h"
 
 #define ALIGN 16
index 410709d..13d4b0a 100644 (file)
@@ -9,7 +9,7 @@
 #include <pthread.h>
 #include <errno.h>
 #include <fcntl.h>
-#include "libc.h"
+#include "lock.h"
 
 static volatile int lock[1];
 static char log_ident[32];
index 13a5e6d..633a17f 100644 (file)
@@ -1,6 +1,6 @@
 #include <stdlib.h>
 #include <stdint.h>
-#include "libc.h"
+#include "lock.h"
 
 /*
 this code uses the same lagged fibonacci generator as the
index 2adedaa..af47195 100644 (file)
@@ -4,6 +4,7 @@
 #include "syscall.h"
 #include "pthread_impl.h"
 #include "libc.h"
+#include "lock.h"
 #include "ksigaction.h"
 
 volatile int dummy_lock[1] = { 0 };
index 0e3602a..f2d3215 100644 (file)
@@ -1,5 +1,5 @@
 #include "stdio_impl.h"
-#include "libc.h"
+#include "lock.h"
 
 static FILE *ofl_head;
 static volatile int ofl_lock[1];
index c6f77b3..7649740 100644 (file)
@@ -1,5 +1,6 @@
 #include <pthread.h>
 #include "libc.h"
+#include "lock.h"
 
 static struct atfork_funcs {
        void (*prepare)(void);
index 23dfe0a..3293dcd 100644 (file)
@@ -2,6 +2,7 @@
 #include "pthread_impl.h"
 #include "stdio_impl.h"
 #include "libc.h"
+#include "lock.h"
 #include <sys/mman.h>
 #include <string.h>
 #include <stddef.h>
index 05be424..1cba073 100644 (file)
@@ -1,4 +1,5 @@
 #include "pthread_impl.h"
+#include "lock.h"
 
 int pthread_getschedparam(pthread_t t, int *restrict policy, struct sched_param *restrict param)
 {
index 6d70e62..3d9395c 100644 (file)
@@ -1,4 +1,5 @@
 #include "pthread_impl.h"
+#include "lock.h"
 
 int pthread_kill(pthread_t t, int sig)
 {
index ab45f2f..038d13d 100644 (file)
@@ -1,4 +1,5 @@
 #include "pthread_impl.h"
+#include "lock.h"
 
 int pthread_setschedparam(pthread_t t, int policy, const struct sched_param *param)
 {
index c353f6b..5bf4a01 100644 (file)
@@ -1,4 +1,5 @@
 #include "pthread_impl.h"
+#include "lock.h"
 
 int pthread_setschedprio(pthread_t t, int prio)
 {
index 1bd8020..de8555c 100644 (file)
@@ -11,7 +11,7 @@
 #include <sys/stat.h>
 #include <stdlib.h>
 #include <pthread.h>
-#include "libc.h"
+#include "lock.h"
 
 static struct {
        ino_t ino;
index ba2f258..cc66bd2 100644 (file)
@@ -7,6 +7,7 @@
 #include "futex.h"
 #include "atomic.h"
 #include "../dirent/__dirent.h"
+#include "lock.h"
 
 static struct chain {
        struct chain *next;
index 6f5257f..51e6651 100644 (file)
@@ -5,6 +5,7 @@
 #include <string.h>
 #include <sys/mman.h>
 #include "libc.h"
+#include "lock.h"
 
 long  __timezone = 0;
 int   __daylight = 0;