diff options
author | raf <none@none> | 2006-06-20 19:21:46 -0700 |
---|---|---|
committer | raf <none@none> | 2006-06-20 19:21:46 -0700 |
commit | f841f6ad96ea6675d6c6b35c749eaac601799fdf (patch) | |
tree | 698db5d44fc99bd070613c93a497f5e93e803bc5 /usr/src/lib/libc/inc/thr_uberdata.h | |
parent | 545e5dad7996785cfebf226c5ef410c1b154740f (diff) | |
download | illumos-gate-f841f6ad96ea6675d6c6b35c749eaac601799fdf.tar.gz |
6416832 libaio and librt can and should be folded into libc
--HG--
rename : usr/src/cmd/perl/5.8.4/distrib/ext/Time/HiRes/hints/solaris.pl => deleted_files/usr/src/cmd/perl/5.8.4/distrib/ext/Time/HiRes/hints/solaris.pl
rename : usr/src/lib/libaio/common/Makefile => deleted_files/usr/src/lib/libaio/common/Makefile
rename : usr/src/lib/libaio/common/scalls.c => deleted_files/usr/src/lib/libaio/common/scalls.c
rename : usr/src/lib/libaio/common/sig.c => deleted_files/usr/src/lib/libaio/common/sig.c
rename : usr/src/lib/libaio/common/subr.c => deleted_files/usr/src/lib/libaio/common/subr.c
rename : usr/src/lib/libaio/spec/Makefile => deleted_files/usr/src/lib/libaio/spec/Makefile
rename : usr/src/lib/libaio/spec/Makefile.targ => deleted_files/usr/src/lib/libaio/spec/Makefile.targ
rename : usr/src/lib/libaio/spec/amd64/Makefile => deleted_files/usr/src/lib/libaio/spec/amd64/Makefile
rename : usr/src/lib/libaio/spec/i386/Makefile => deleted_files/usr/src/lib/libaio/spec/i386/Makefile
rename : usr/src/lib/libaio/spec/sparc/Makefile => deleted_files/usr/src/lib/libaio/spec/sparc/Makefile
rename : usr/src/lib/libaio/spec/sparcv9/Makefile => deleted_files/usr/src/lib/libaio/spec/sparcv9/Makefile
rename : usr/src/lib/libaio/spec/versions => deleted_files/usr/src/lib/libaio/spec/versions
rename : usr/src/lib/librt/common/Makefile => deleted_files/usr/src/lib/librt/common/Makefile
rename : usr/src/lib/librt/common/aio.c => deleted_files/usr/src/lib/librt/common/aio.c
rename : usr/src/lib/librt/common/fdatasync.c => deleted_files/usr/src/lib/librt/common/fdatasync.c
rename : usr/src/lib/librt/common/mqlib.h => deleted_files/usr/src/lib/librt/common/mqlib.h
rename : usr/src/lib/librt/common/pos4.c => deleted_files/usr/src/lib/librt/common/pos4.c
rename : usr/src/lib/librt/common/pos4.h => deleted_files/usr/src/lib/librt/common/pos4.h
rename : usr/src/lib/librt/common/sigrt.c => deleted_files/usr/src/lib/librt/common/sigrt.c
rename : usr/src/lib/librt/req.flg => deleted_files/usr/src/lib/librt/req.flg
rename : usr/src/lib/librt/spec/Makefile => deleted_files/usr/src/lib/librt/spec/Makefile
rename : usr/src/lib/librt/spec/Makefile.targ => deleted_files/usr/src/lib/librt/spec/Makefile.targ
rename : usr/src/lib/librt/spec/amd64/Makefile => deleted_files/usr/src/lib/librt/spec/amd64/Makefile
rename : usr/src/lib/librt/spec/i386/Makefile => deleted_files/usr/src/lib/librt/spec/i386/Makefile
rename : usr/src/lib/librt/spec/sparc/Makefile => deleted_files/usr/src/lib/librt/spec/sparc/Makefile
rename : usr/src/lib/librt/spec/sparcv9/Makefile => deleted_files/usr/src/lib/librt/spec/sparcv9/Makefile
rename : usr/src/lib/librt/spec/versions => deleted_files/usr/src/lib/librt/spec/versions
rename : usr/src/lib/libaio/common/libaio.h => usr/src/lib/libc/inc/asyncio.h
rename : usr/src/lib/librt/common/thread_pool.h => usr/src/lib/libc/inc/thread_pool.h
rename : usr/src/lib/libaio/common/aio.c => usr/src/lib/libc/port/aio/aio.c
rename : usr/src/lib/libaio/common/ma.c => usr/src/lib/libc/port/aio/aio_alloc.c
rename : usr/src/lib/libaio/common/posix_aio.c => usr/src/lib/libc/port/aio/posix_aio.c
rename : usr/src/lib/librt/common/clock_timer.c => usr/src/lib/libc/port/rt/clock_timer.c
rename : usr/src/lib/librt/common/fallocate.c => usr/src/lib/libc/port/rt/fallocate.c
rename : usr/src/lib/librt/common/mqueue.c => usr/src/lib/libc/port/rt/mqueue.c
rename : usr/src/lib/librt/common/pos4obj.c => usr/src/lib/libc/port/rt/pos4obj.c
rename : usr/src/lib/librt/common/pos4obj.h => usr/src/lib/libc/port/rt/pos4obj.h
rename : usr/src/lib/librt/common/sched.c => usr/src/lib/libc/port/rt/sched.c
rename : usr/src/lib/librt/common/sem.c => usr/src/lib/libc/port/rt/sem.c
rename : usr/src/lib/librt/common/shm.c => usr/src/lib/libc/port/rt/shm.c
rename : usr/src/lib/librt/common/sigev_thread.c => usr/src/lib/libc/port/rt/sigev_thread.c
rename : usr/src/lib/librt/common/sigev_thread.h => usr/src/lib/libc/port/rt/sigev_thread.h
rename : usr/src/lib/librt/common/thread_pool.c => usr/src/lib/libc/port/tpool/thread_pool.c
rename : usr/src/lib/librt/common/thread_pool_impl.h => usr/src/lib/libc/port/tpool/thread_pool_impl.h
rename : usr/src/lib/libaio/spec/aio.spec => usr/src/lib/libc/spec/aio.spec
rename : usr/src/lib/librt/spec/rt.spec => usr/src/lib/libc/spec/rt.spec
rename : usr/src/lib/libaio/asynch.h => usr/src/uts/common/sys/asynch.h
Diffstat (limited to 'usr/src/lib/libc/inc/thr_uberdata.h')
-rw-r--r-- | usr/src/lib/libc/inc/thr_uberdata.h | 69 |
1 files changed, 37 insertions, 32 deletions
diff --git a/usr/src/lib/libc/inc/thr_uberdata.h b/usr/src/lib/libc/inc/thr_uberdata.h index c7b6001926..2671ac0a69 100644 --- a/usr/src/lib/libc/inc/thr_uberdata.h +++ b/usr/src/lib/libc/inc/thr_uberdata.h @@ -53,12 +53,10 @@ #include <schedctl.h> #include <sys/priocntl.h> #include <thread_db.h> +#include <setjmp.h> #include "libc_int.h" #include "tdb_agent.h" - -/* belongs in <pthread.h> */ -#define PTHREAD_CREATE_DAEMON_NP 0x100 /* = THR_DAEMON */ -#define PTHREAD_CREATE_NONDAEMON_NP 0 +#include "thr_debug.h" /* * This is an implementation-specific include file for threading support. @@ -208,14 +206,6 @@ typedef union { #define PRIO_INHERIT 2 #define PRIO_DISINHERIT 3 -struct pcclass { - short pcc_state; - pri_t pcc_primin; - pri_t pcc_primax; - pcinfo_t pcc_info; -}; -extern struct pcclass ts_class, rt_class; - #define MUTEX_TRY 0 #define MUTEX_LOCK 1 @@ -608,7 +598,7 @@ typedef struct ulwp { #define MASKSET0 (FILLSET0 & ~CANTMASK0) #define MASKSET1 (FILLSET1 & ~CANTMASK1) -extern const sigset_t maskset; /* set of all maskable signals */ +extern const sigset_t maskset; /* set of all maskable signals */ extern int thread_adaptive_spin; extern uint_t thread_max_spinners; @@ -1048,7 +1038,7 @@ extern greg_t stkptr(void); /* * Implementation functions. Not visible outside of the library itself. */ -extern int ___nanosleep(const timespec_t *, timespec_t *); +extern int __nanosleep(const timespec_t *, timespec_t *); extern void getgregs(ulwp_t *, gregset_t); extern void setgregs(ulwp_t *, gregset_t); extern void thr_panic(const char *); @@ -1092,18 +1082,6 @@ extern void _flush_windows(void); #endif extern void set_curthread(void *); -#if defined(THREAD_DEBUG) - -extern void __assfail(const char *, const char *, int); -#pragma rarely_called(__assfail) -#define ASSERT(EX) (void)((EX) || (__assfail(#EX, __FILE__, __LINE__), 0)) - -#else /* THREAD_DEBUG */ - -#define ASSERT(EX) ((void)0) - -#endif /* THREAD_DEBUG */ - /* enter a critical section */ #define enter_critical(self) (self->ul_critical++) @@ -1174,21 +1152,35 @@ extern void *_thr_setup(ulwp_t *); extern void _fpinherit(ulwp_t *); extern void _lwp_start(void); extern void _lwp_terminate(void); -extern void lmutex_unlock(mutex_t *); extern void lmutex_lock(mutex_t *); +extern void lmutex_unlock(mutex_t *); +extern void sig_mutex_lock(mutex_t *); +extern void sig_mutex_unlock(mutex_t *); +extern int sig_mutex_trylock(mutex_t *); +extern int sig_cond_wait(cond_t *, mutex_t *); +extern int sig_cond_reltimedwait(cond_t *, mutex_t *, const timespec_t *); extern void _prefork_handler(void); extern void _postfork_parent_handler(void); extern void _postfork_child_handler(void); -extern void _postfork1_child(void); +extern void postfork1_child(void); +extern void postfork1_child_aio(void); +extern void postfork1_child_sigev_aio(void); +extern void postfork1_child_sigev_mq(void); +extern void postfork1_child_sigev_timer(void); +extern void postfork1_child_tpool(void); extern int fork_lock_enter(const char *); extern void fork_lock_exit(void); extern void suspend_fork(void); extern void continue_fork(int); extern void do_sigcancel(void); -extern void init_sigcancel(void); +extern void setup_cancelsig(int); +extern void init_sigev_thread(void); +extern void init_aio(void); extern void _cancelon(void); extern void _canceloff(void); extern void _canceloff_nocancel(void); +extern void _cancel_prologue(void); +extern void _cancel_epilogue(void); extern void no_preempt(ulwp_t *); extern void preempt(ulwp_t *); extern void _thrp_unwind(void *); @@ -1249,8 +1241,18 @@ extern int __lwp_sigmask(int, const sigset_t *, sigset_t *); extern void __sighndlr(int, siginfo_t *, ucontext_t *, void (*)()); extern caddr_t __sighndlrend; #pragma unknown_control_flow(__sighndlr) +extern void _siglongjmp(sigjmp_buf, int); +extern int _pthread_setspecific(pthread_key_t, const void *); +extern void *_pthread_getspecific(pthread_key_t); extern void _pthread_exit(void *); +extern void _private_testcancel(void); + +/* belongs in <pthread.h> */ +#define PTHREAD_CREATE_DAEMON_NP 0x100 /* = THR_DAEMON */ +#define PTHREAD_CREATE_NONDAEMON_NP 0 +extern int _pthread_attr_setdaemonstate_np(pthread_attr_t *, int); +extern int _pthread_attr_getdaemonstate_np(const pthread_attr_t *, int *); /* these are private to the library */ extern int _private_mutex_init(mutex_t *, int, void *); @@ -1293,8 +1295,10 @@ extern int rw_read_is_held(rwlock_t *); extern int rw_write_is_held(rwlock_t *); extern int _thr_continue(thread_t); -extern int _thrp_create(void *, size_t, void *(*func)(void *), void *, - long, thread_t *, pri_t, int, size_t); +extern int _thr_create(void *, size_t, void *(*)(void *), void *, long, + thread_t *); +extern int _thrp_create(void *, size_t, void *(*)(void *), void *, long, + thread_t *, pri_t, int, size_t); extern int _thr_getprio(thread_t, int *); extern int _thr_getspecific(thread_key_t, void **); extern int _thr_join(thread_t, thread_t *, void **); @@ -1320,7 +1324,8 @@ extern int _thread_setschedparam_main(pthread_t, int, const struct sched_param *, int); extern int _validate_rt_prio(int, int); extern int _thrp_setlwpprio(lwpid_t, int, int); -extern pri_t _map_rtpri_to_gp(pri_t); +extern pri_t map_rtpri_to_gp(pri_t); +extern int get_info_by_policy(int); /* * System call wrappers (direct interfaces to the kernel) |