#include <pthread_internals.h>
#include <stdio.h>
int
main(void)
{
printf("#ifndef _PTHREAD_IMPL_H_\n");
printf("#define _PTHREAD_IMPL_H_\n");
printf("/*\n");
printf(" * Internal implementation details\n");
printf(" */\n");
printf("\n");
printf("#define __PTHREAD_SIZE__ %ld\n", (long) sizeof(struct _pthread)-sizeof(long));
printf("#define __PTHREAD_ATTR_SIZE__ %ld\n", (long) sizeof(pthread_attr_t)-sizeof(long));
printf("#define __PTHREAD_MUTEXATTR_SIZE__ %ld\n", (long) sizeof(pthread_mutexattr_t)-sizeof(long));
printf("#define __PTHREAD_MUTEX_SIZE__ %ld\n", (long) sizeof(pthread_mutex_t)-sizeof(long));
printf("#define __PTHREAD_CONDATTR_SIZE__ %ld\n", (long) sizeof(pthread_condattr_t)-sizeof(long));
printf("#define __PTHREAD_COND_SIZE__ %ld\n", (long) sizeof(pthread_cond_t)-sizeof(long));
printf("#define __PTHREAD_ONCE_SIZE__ %ld\n", (long) sizeof(pthread_once_t)-sizeof(long));
printf("/*\n");
printf(" * [Internal] data structure signatures\n");
printf(" */\n");
printf("#define _PTHREAD_MUTEX_SIG_init 0x%08X\n", _PTHREAD_MUTEX_SIG_init);
printf("#define _PTHREAD_COND_SIG_init 0x%08X\n", _PTHREAD_COND_SIG_init);
printf("#define _PTHREAD_ONCE_SIG_init 0x%08X\n", _PTHREAD_ONCE_SIG_init);
printf("/*\n");
printf(" * POSIX scheduling policies \n");
printf(" */\n");
printf("#define SCHED_OTHER %d\n", SCHED_OTHER);
printf("#define SCHED_FIFO %d\n", SCHED_FIFO);
printf("#define SCHED_RR %d\n", SCHED_RR);
printf("\n");
printf("#define __SCHED_PARAM_SIZE__ %ld\n", (long) sizeof(struct sched_param)-sizeof(int));
printf("\n");
printf("#endif _PTHREAD_IMPL_H_\n");
exit(0);
}