提交 efd4d87a 编写于 作者: R Rich Felker

clean up sloppy nested inclusion from pthread_impl.h

this mirrors the stdio_impl.h cleanup. one header which is not
strictly needed, errno.h, is left in pthread_impl.h, because since
pthread functions return their error codes rather than using errno,
nearly every single pthread function needs the errno constants.

in a few places, rather than bringing in string.h to use memset, the
memset was replaced by direct assignment. this seems to generate much
better code anyway, and makes many functions which were previously
non-leaf functions into leaf functions (possibly eliminating a great
deal of bloat on some platforms where non-leaf functions require ugly
prologue and/or epilogue).
上级 835f9f95
#include <aio.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>
#include <limits.h>
#include "pthread_impl.h"
static void dummy(void)
......
#include <aio.h>
#include <errno.h>
#include <limits.h>
#include <unistd.h>
#include <string.h>
#include "pthread_impl.h"
struct lio_state {
......
#include <elf.h>
#include <limits.h>
#include <sys/mman.h>
#include <string.h>
#include "pthread_impl.h"
#include "libc.h"
#include "atomic.h"
......
......@@ -2,17 +2,9 @@
#define _PTHREAD_IMPL_H
#include <pthread.h>
#include <sched.h>
#include <signal.h>
#include <unistd.h>
#include <sys/mman.h>
#include <errno.h>
#include <limits.h>
#include <inttypes.h>
#include <setjmp.h>
#include <string.h>
#include <time.h>
#include <locale.h>
#include "libc.h"
#include "syscall.h"
#include "atomic.h"
......
#include <unistd.h>
#include <string.h>
#include "syscall.h"
#include "libc.h"
#include "pthread_impl.h"
......
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#include <string.h>
#include "syscall.h"
#include "pthread_impl.h"
#include "libc.h"
......
#include "stdio_impl.h"
#include "pthread_impl.h"
#include <limits.h>
int ftrylockfile(FILE *f)
{
......
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include "stdio_impl.h"
#include "pthread_impl.h"
#include "syscall.h"
......
#include "pthread_impl.h"
#include <limits.h>
void __wake(volatile int *addr, int cnt, int priv)
{
......
#include "pthread_impl.h"
#include <string.h>
int pthread_attr_init(pthread_attr_t *a)
{
memset(a, 0, sizeof *a);
*a = (pthread_attr_t){0};
return 0;
}
......@@ -2,6 +2,6 @@
int pthread_barrierattr_init(pthread_barrierattr_t *a)
{
memset(a, 0, sizeof *a);
*a = (pthread_barrierattr_t){0};
return 0;
}
......@@ -2,7 +2,7 @@
int pthread_cond_init(pthread_cond_t *restrict c, const pthread_condattr_t *restrict a)
{
memset(c, 0, sizeof *c);
*c = (pthread_cond_t){0};
if (a) {
c->_c_clock = *a & 0x7fffffff;
if (*a>>31) c->_c_mutex = (void *)-1;
......
......@@ -2,6 +2,6 @@
int pthread_condattr_init(pthread_condattr_t *a)
{
memset(a, 0, sizeof *a);
*a = (pthread_condattr_t){0};
return 0;
}
#include "pthread_impl.h"
#include "stdio_impl.h"
#include <sys/mman.h>
static void dummy_0()
{
......
#include "pthread_impl.h"
#include <sys/mman.h>
static void dummy(void *p)
{
......
......@@ -2,7 +2,7 @@
int pthread_mutex_init(pthread_mutex_t *restrict m, const pthread_mutexattr_t *restrict a)
{
memset(m, 0, sizeof *m);
*m = (pthread_mutex_t){0};
if (a) m->_m_type = *a & 7;
return 0;
}
......@@ -2,6 +2,6 @@
int pthread_mutexattr_init(pthread_mutexattr_t *a)
{
memset(a, 0, sizeof *a);
*a = (pthread_mutexattr_t){0};
return 0;
}
......@@ -2,7 +2,7 @@
int pthread_rwlock_init(pthread_rwlock_t *restrict rw, const pthread_rwlockattr_t *restrict a)
{
memset(rw, 0, sizeof *rw);
*rw = (pthread_rwlock_t){0};
if (a) {
}
return 0;
......
......@@ -2,6 +2,6 @@
int pthread_rwlockattr_init(pthread_rwlockattr_t *a)
{
memset(a, 0, sizeof *a);
*a = (pthread_rwlockattr_t){0};
return 0;
}
#include "pthread_impl.h"
#include <semaphore.h>
#include <string.h>
static struct chain {
struct chain *next;
......
#include <time.h>
#include <setjmp.h>
#include "pthread_impl.h"
struct ksigevent {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册