⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fsu_pthread.h

📁 这是leon3处理器的交叉编译链
💻 H
📖 第 1 页 / 共 2 页
字号:
        any_t arg;            /* argument list to above function             */        any_t result;         /* return value of above function              */        any_t key[_POSIX_DATAKEYS_MAX];    /* thread specific data           */        pthread_cleanup_t cleanup_top;     /* stack of cleanup handlers      */        pthread_attr_t attr;               /* attributes                     */        int base_prio;                     /* Base priority of thread        */        int max_ceiling_prio; /* Max of ceiling prio among locked mutexes    */        int new_prio;         /* New Priority                                */	pthread_suspend_t suspend;         /* save area for thread suspend   */#if defined(IO_NP) && !defined(__FreeBSD__) && !defined(__dos__)#if !defined(__linux__) && !defined(_M_UNIX)        volatile struct aio_result_t resultp;/*result of asynchronous I/O ops*/#endif /* !__linux__ && !_M_UNIX */#ifdef USE_POLL_NP        int wait_on_select;                /* more information in fds        */        int nfds;                          /* pertinent file desc. set width */        int how_many;                      /* how many amoung  0 .. width -1 */        struct pollfd* fds;                /* poll events */#else /* !USE_POLL_NP */        int wait_on_select;                /* more information in fds        */        int width;                         /* pertinent file desc. set width */        int how_many;                      /* how many amoung  0 .. width -1 */        fd_set readfds;                    /* read file descriptor set       */        fd_set writefds;                   /* write file descriptor set      */        fd_set exceptfds;                  /* except. file descriptor set    */#endif /* !USE_POLL_NP */#endif /* IO_NP && !__FreeBSD__ && !__dos__ */#ifdef STAND_ALONE_NP        pthread_func_t timer_func;        /* function to be called on timeout*/        any_t timer_arg;                  /* arg of above function           */        struct timespec tp;               /* wake-up time                    */        int dummy;                        /* filler for stack alignment      */#else /* !STAND_ALONE_NP */        struct timeval tp;                /* wake-up time                    */#endif /* !STAND_ALONE_NP */} *pthread_t __attribute__((aligned(8)));#ifdef __FreeBSD__#define IO_SIZE_T size_t#elif defined (__dos__)#define IO_SIZE_T size_t#define SIGSUSPEND_CONST const#define SIGACTION_CONST const#define SIGPROCMASK_CONST const#define SIGWAIT_CONST const#define LONGJMP_CONST#define SIGLONGJMP_CONST#elif defined (__linux__)#define IO_SIZE_T size_t#elif defined (_M_UNIX)#define IO_SIZE_T size_t#else#if defined(__GNUC__) && defined(_PARAMS)#define IO_SIZE_T __SIZE_TYPE__/* * for gcc 2.5.8 or before use: * #define IO_SIZE_T unsigned int */#define SIGSUSPEND_CONST#define SIGACTION_CONST const#define SIGPROCMASK_CONST const#define SIGWAIT_CONST const#define LONGJMP_CONST#define SIGLONGJMP_CONST#else/* * for older gcc, remove "const" for "SIGPROCMASK_CONST" */#define IO_SIZE_T size_t#define SIGSUSPEND_CONST const#define SIGACTION_CONST const#define SIGPROCMASK_CONST const#define SIGWAIT_CONST const#define LONGJMP_CONST#define SIGLONGJMP_CONST#endif#endif/******************************//*      Thread Functions      *//* Thread Attribute Functions *//******************************/#ifdef __cplusplusextern "C" {#endif extern pthread_t pthread_self           _C_PROTOTYPE ((void));extern void pthread_init                _C_PROTOTYPE ((void));extern void pthread_init_attr           _C_PROTOTYPE ((pthread_attr_t *__attr));extern int pthread_create               _C_PROTOTYPE((pthread_t *thread,                                                      pthread_attr_t *__attr,                                                      pthread_func_t __func,                                                      any_t __arg));extern int pthread_equal                _C_PROTOTYPE((pthread_t __t1,                                                      pthread_t __t2));extern int pthread_detach               _C_PROTOTYPE((pthread_t thread));extern int pthread_join                 _C_PROTOTYPE((pthread_t thread,                                                      any_t *__status));extern int sched_yield                  _C_PROTOTYPE((void));extern void pthread_exit                _C_PROTOTYPE((any_t __status));extern int pthread_attr_init            _C_PROTOTYPE((pthread_attr_t *__attr));extern int pthread_attr_destroy         _C_PROTOTYPE((pthread_attr_t *__attr));extern int pthread_getschedparam        _C_PROTOTYPE((pthread_t thread,						      int *__policy,                                                      struct sched_param *__param));extern int pthread_setschedparam        _C_PROTOTYPE((pthread_t thread,						      int __policy,                                                      struct sched_param *__param));extern int pthread_attr_setstacksize    _C_PROTOTYPE((pthread_attr_t *__attr,                                                      size_t __stacksize));extern int pthread_attr_getstacksize    _C_PROTOTYPE((pthread_attr_t *__attr,                                                      size_t *__stacksize));extern int pthread_attr_setscope        _C_PROTOTYPE((pthread_attr_t *__attr,                                                      int __contentionscope));extern int pthread_attr_setinheritsched _C_PROTOTYPE((pthread_attr_t *__attr,                                                      int __inheritsched));extern int pthread_attr_setschedpolicy  _C_PROTOTYPE((pthread_attr_t *__attr,                                                      int __policy));extern int pthread_attr_setschedparam   _C_PROTOTYPE((pthread_attr_t *__attr,                                                      struct sched_param *__param));extern int pthread_attr_getscope        _C_PROTOTYPE((pthread_attr_t *__attr,						      int *__contentionscope));extern int pthread_attr_getinheritsched _C_PROTOTYPE((pthread_attr_t *__attr,						      int *__inheritsched));extern int pthread_attr_getschedpolicy  _C_PROTOTYPE((pthread_attr_t *__attr,						      int *__policy));extern int pthread_attr_getschedparam   _C_PROTOTYPE((pthread_attr_t *__attr,						      struct sched_param *__param));extern int pthread_attr_getstarttime_np _C_PROTOTYPE((pthread_attr_t *__attr,                                                      struct timespec *__tp));extern int pthread_attr_setstarttime_np _C_PROTOTYPE((pthread_attr_t *__attr,                                                      struct timespec *__tp));extern int pthread_attr_getdeadline_np  _C_PROTOTYPE((pthread_attr_t *__attr,                                                      struct timespec *__tp));extern int pthread_attr_setdeadline_np  _C_PROTOTYPE((pthread_attr_t *__attr,                                                      struct timespec *__tp,                                                      pthread_func_t func));extern int pthread_attr_getperiod_np    _C_PROTOTYPE((pthread_attr_t *__attr,                                                      struct timespec *__tp));extern int pthread_attr_setperiod_np    _C_PROTOTYPE((pthread_attr_t *__attr,                                                      struct timespec *__tp,                                                      pthread_func_t func));extern int pthread_key_create           _C_PROTOTYPE((pthread_key_t *__key,                                                      void (*__func)                                                      (any_t __value)));extern int pthread_key_delete           _C_PROTOTYPE((pthread_key_t __key));extern int pthread_setspecific          _C_PROTOTYPE((pthread_key_t __key,                                                      any_t __value));extern any_t pthread_getspecific        _C_PROTOTYPE((pthread_key_t __key));extern void pthread_cleanup_push        _C_PROTOTYPE((void (*__func)                                                      (any_t __value),                                                      any_t __arg));extern void pthread_cleanup_pop         _C_PROTOTYPE((int __execute));extern int sched_get_priority_max       _C_PROTOTYPE((int __policy));extern int sched_get_priority_min       _C_PROTOTYPE((int __policy));extern int pthread_attr_setdetachstate  _C_PROTOTYPE((pthread_attr_t *__attr,                                                      int __detachstate));extern int pthread_attr_getdetachstate  _C_PROTOTYPE((pthread_attr_t *__attr,						      int *__detachstate));extern int pthread_once                 _C_PROTOTYPE((pthread_once_t *__once_c,                                                      void (*__func) (void)));/* * implementation-defined extensions */extern void pthread_setsigcontext_np    _C_PROTOTYPE((struct context_t *__scp,                                                      jmp_buf __env,                                                      int __val));extern int pthread_lock_stack_np        _C_PROTOTYPE((pthread_t __p));extern int pthread_suspend_np           _C_PROTOTYPE((pthread_t __t));extern int pthread_resume_np            _C_PROTOTYPE((pthread_t __t));extern void pthread_mutex_dbgstart_np   _C_PROTOTYPE((pthread_mutex_t *__mutex));extern void pthread_mutex_dbgstop_np   _C_PROTOTYPE((pthread_mutex_t *__mutex));extern void pthread_cond_dbgstart_np    _C_PROTOTYPE((pthread_cond_t *__mutex));extern void pthread_cond_dbgstop_np    _C_PROTOTYPE((pthread_cond_t *__mutex));  /******************************//*      Signal Functions      *//******************************/extern int sigwait             _C_PROTOTYPE((SIGWAIT_CONST sigset_t *__set,					     int *__sig));extern int sigtimedwait        _C_PROTOTYPE((SIGWAIT_CONST sigset_t *__set,					     siginfo_t              *info,					     const struct timespec  *timeout));extern int sigprocmask         _C_PROTOTYPE((int __how,                                             SIGPROCMASK_CONST sigset_t *__set,                                             sigset_t *__oset));extern int pthread_sigmask     _C_PROTOTYPE((int __how,                                             SIGPROCMASK_CONST sigset_t *__set,                                             sigset_t *__oset));extern int sigpending          _C_PROTOTYPE((sigset_t *__set));extern int sigsuspend          _C_PROTOTYPE((SIGSUSPEND_CONST sigset_t *__set));extern int pause               _C_PROTOTYPE((void));#ifdef __dos__/* we use a macro to rename these so we can still call the system   functions, since we don't have system-call hooks under DJGPP. */#define raise(sig)                   pthread_dummy_raise(sig)#define sigprocmask(sig, set1, set2) pthread_dummy_sigprocmask(sig, set1, set2)#define sigsuspend(set)              pthread_dummy_sigsuspend(set)#endif#if defined(M_UNIX)#undef raise#endifextern int raise               _C_PROTOTYPE((int __sig));extern int pthread_kill        _C_PROTOTYPE((pthread_t thread,                                             int __sig));extern int sigqueue            _C_PROTOTYPE((pid_t id,                                             int __sig,					     const union p_sigval value));extern int pthread_cancel      _C_PROTOTYPE((pthread_t thread));extern int pthread_setcancelstate _C_PROTOTYPE((int __state, int *__oldstate));extern int pthread_setcanceltype  _C_PROTOTYPE((int __type, int *__oldtype));extern void pthread_testcancel _C_PROTOTYPE((void));extern int sigaction           _C_PROTOTYPE((int __sig,                                             SIGACTION_CONST struct sigaction *__act,                                             struct sigaction *__oact));#if defined(__FreeBSD__) || defined(_M_UNIX) || defined(__linux__) || defined(__dos__)extern pthread_sighandler_t signal			        _C_PROTOTYPE((int __sig,                                             pthread_sighandler_t handler));#else#if defined(SOLARIS_NP) && defined(__cplusplus)extern void (*signal(int, void (*)(int)))(int);#elseextern void (*signal())();#endif#endif/* yet to come...extern unsigned int alarm      _C_PROTOTYPE((unsigned int __seconds));*/extern int nanosleep           _C_PROTOTYPE((const struct timespec *__rqtp,                                             struct timespec *__rmtp));extern unsigned int sleep      _C_PROTOTYPE((unsigned int __seconds));extern int clock_gettime       _C_PROTOTYPE((int __clock_id,                                             struct timespec *__tp));extern int clock_settime       _C_PROTOTYPE((int __clock_id,                                             struct timespec *__tp));extern int clock_getres       _C_PROTOTYPE((int __clock_id,                                             struct timespec *__tp));/******************************//*    Low-Level Functions     *//******************************/#ifndef __dos__#ifdef setjmp#undef setjmp#endif#ifdef longjmp#undef longjmp#endif#ifdef sigsetjmp#undef sigsetjmp#endif#ifdef siglongjmp#undef siglongjmp#endif#endifextern int setjmp         _C_PROTOTYPE((jmp_buf __env));extern void longjmp       _C_PROTOTYPE((LONGJMP_CONST jmp_buf __env,                                        int __val));extern int sigsetjmp      _C_PROTOTYPE((sigjmp_buf __env,                                        int __savemask));extern void siglongjmp    _C_PROTOTYPE((SIGLONGJMP_CONST sigjmp_buf __env,                                        int __val));/******************************//*       leon lowlevel        *//******************************/extern void pthreadleon_init_ticks                _C_PROTOTYPE ((void));  /******************************//*       I/O Functions        *//******************************/extern int read  _C_PROTOTYPE((int __fd,                               void *__buf,                               IO_SIZE_T __nbytes));extern int write _C_PROTOTYPE((int __fd,                               const void *__buf,                               IO_SIZE_T __nbytes));#ifdef __cplusplus} /* extern "C" */#endif#define PTHREAD_CANCELED (void *)-1#endif /* !_pthread_pthread_h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -