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

📄 pth.h.in

📁 Linux下的中文输入法
💻 IN
📖 第 1 页 / 共 2 页
字号:
    /* the read-write lock structure */typedef struct pth_rwlock_st pth_rwlock_t;struct pth_rwlock_st { /* not hidden to avoid destructor */    int            rw_state;    unsigned int   rw_mode;    unsigned long  rw_readers;    pth_mutex_t    rw_mutex_rd;    pth_mutex_t    rw_mutex_rw;};    /* the condition variable structure */typedef struct pth_cond_st pth_cond_t;struct pth_cond_st { /* not hidden to avoid destructor */    unsigned long cn_state;    unsigned int  cn_waiters;};    /* the barrier variable structure */typedef struct pth_barrier_st pth_barrier_t;struct pth_barrier_st { /* not hidden to avoid destructor */    unsigned long br_state;    int           br_threshold;    int           br_count;    int           br_cycle;    pth_cond_t    br_cond;    pth_mutex_t   br_mutex;};    /* the user-space context structure */typedef struct pth_uctx_st *pth_uctx_t;struct pth_uctx_st;    /* filedescriptor blocking modes */enum {    PTH_FDMODE_ERROR = -1,    PTH_FDMODE_POLL  =  0,    PTH_FDMODE_BLOCK,    PTH_FDMODE_NONBLOCK};    /* optionally fake poll(2) data structure and options */#ifndef _PTHREAD_PRIVATE#define PTH_FAKE_POLL @PTH_FAKE_POLL@#if !(PTH_FAKE_POLL)/* use vendor poll(2) environment */#ifndef _XOPEN_SOURCE#define _XOPEN_SOURCE#define _XOPEN_SOURCE_set#endif#include <poll.h>#ifdef _XOPEN_SOURCE_set#undef _XOPEN_SOURCE_set#undef _XOPEN_SOURCE#endif#ifndef POLLRDNORM#define POLLRDNORM POLLIN#endif#ifndef POLLRDBAND#define POLLRDBAND POLLIN#endif#ifndef POLLWRNORM#define POLLWRNORM POLLOUT#endif#ifndef POLLWRBAND#define POLLWRBAND POLLOUT#endif#ifndef INFTIM#define INFTIM (-1)#endif#else/* fake a poll(2) environment */#define POLLIN      0x0001      /* any readable data available   */#define POLLPRI     0x0002      /* OOB/Urgent readable data      */#define POLLOUT     0x0004      /* file descriptor is writeable  */#define POLLERR     0x0008      /* some poll error occurred      */#define POLLHUP     0x0010      /* file descriptor was "hung up" */#define POLLNVAL    0x0020      /* requested events "invalid"    */#define POLLRDNORM  POLLIN#define POLLRDBAND  POLLIN#define POLLWRNORM  POLLOUT#define POLLWRBAND  POLLOUT#ifndef INFTIM#define INFTIM      (-1)        /* poll infinite */#endifstruct pollfd {    int fd;                     /* which file descriptor to poll */    short events;               /* events we are interested in   */    short revents;              /* events found on return        */};#endif#endif /* !_PTHREAD_PRIVATE */    /* optionally fake readv(2)/writev(2) data structure and options */#ifndef _PTHREAD_PRIVATE#define PTH_FAKE_RWV @PTH_FAKE_RWV@#if !(PTH_FAKE_RWV)/* use vendor readv(2)/writev(2) environment */#include <sys/uio.h>#ifndef UIO_MAXIOV#define UIO_MAXIOV 1024#endif#else/* fake a readv(2)/writev(2) environment */struct iovec {    void  *iov_base;  /* memory base address */    size_t iov_len;   /* memory chunk length */};#ifndef UIO_MAXIOV#define UIO_MAXIOV 1024#endif#endif#endif /* !_PTHREAD_PRIVATE */    /* extension support */#define PTH_EXT_SFIO @PTH_EXT_SFIO@    /* Sfio extension support */#if @PTH_EXT_SFIO@#include <sfio.h>#elsetypedef void *Sfdisc_t;#endif    /* global functions */extern int            pth_init(void);extern int            pth_kill(void);extern long           pth_ctrl(unsigned long, ...);extern long           pth_version(void);    /* thread attribute functions */extern pth_attr_t     pth_attr_of(pth_t);extern pth_attr_t     pth_attr_new(void);extern int            pth_attr_init(pth_attr_t);extern int            pth_attr_set(pth_attr_t, int, ...);extern int            pth_attr_get(pth_attr_t, int, ...);extern int            pth_attr_destroy(pth_attr_t);    /* thread functions */extern pth_t          pth_spawn(pth_attr_t, void *(*)(void *), void *);extern int            pth_once(pth_once_t *, void (*)(void *), void *);extern pth_t          pth_self(void);extern int            pth_suspend(pth_t);extern int            pth_resume(pth_t);extern int            pth_yield(pth_t);extern int            pth_nap(pth_time_t);extern int            pth_wait(pth_event_t);extern int            pth_cancel(pth_t);extern int            pth_abort(pth_t);extern int            pth_raise(pth_t, int);extern int            pth_join(pth_t, void **);extern void           pth_exit(void *);    /* utility functions */extern int            pth_fdmode(int, int);extern pth_time_t     pth_time(long, long);extern pth_time_t     pth_timeout(long, long);    /* cancellation functions */extern void           pth_cancel_state(int, int *);extern void           pth_cancel_point(void);    /* event functions */extern pth_event_t    pth_event(unsigned long, ...);extern unsigned long  pth_event_typeof(pth_event_t);extern int            pth_event_extract(pth_event_t ev, ...);extern pth_event_t    pth_event_concat(pth_event_t, ...);extern pth_event_t    pth_event_isolate(pth_event_t);extern pth_event_t    pth_event_walk(pth_event_t, unsigned int);extern pth_status_t   pth_event_status(pth_event_t);extern int            pth_event_free(pth_event_t, int);    /* key-based storage functions */extern int            pth_key_create(pth_key_t *, void (*)(void *));extern int            pth_key_delete(pth_key_t);extern int            pth_key_setdata(pth_key_t, const void *);extern void          *pth_key_getdata(pth_key_t);    /* message port functions */extern pth_msgport_t  pth_msgport_create(const char *);extern void           pth_msgport_destroy(pth_msgport_t);extern pth_msgport_t  pth_msgport_find(const char *);extern int            pth_msgport_pending(pth_msgport_t);extern int            pth_msgport_put(pth_msgport_t, pth_message_t *);extern pth_message_t *pth_msgport_get(pth_msgport_t);extern int            pth_msgport_reply(pth_message_t *);    /* cleanup handler functions */extern int            pth_cleanup_push(void (*)(void *), void *);extern int            pth_cleanup_pop(int);    /* process forking functions */extern int            pth_atfork_push(void (*)(void *), void (*)(void *), void (*)(void *), void *);extern int            pth_atfork_pop(void);extern pid_t          pth_fork(void);    /* synchronization functions */extern int            pth_mutex_init(pth_mutex_t *);extern int            pth_mutex_acquire(pth_mutex_t *, int, pth_event_t);extern int            pth_mutex_release(pth_mutex_t *);extern int            pth_rwlock_init(pth_rwlock_t *);extern int            pth_rwlock_acquire(pth_rwlock_t *, int, int, pth_event_t);extern int            pth_rwlock_release(pth_rwlock_t *);extern int            pth_cond_init(pth_cond_t *);extern int            pth_cond_await(pth_cond_t *, pth_mutex_t *, pth_event_t);extern int            pth_cond_notify(pth_cond_t *, int);extern int            pth_barrier_init(pth_barrier_t *, int);extern int            pth_barrier_reach(pth_barrier_t *);    /* user-space context functions */extern int            pth_uctx_create(pth_uctx_t *);extern int            pth_uctx_make(pth_uctx_t, char *, size_t, const sigset_t *, void (*)(void *), void *, pth_uctx_t);extern int            pth_uctx_switch(pth_uctx_t, pth_uctx_t);extern int            pth_uctx_destroy(pth_uctx_t);    /* extension functions */extern Sfdisc_t      *pth_sfiodisc(void);    /* generalized variants of replacement functions */extern int            pth_sigwait_ev(const sigset_t *, int *, pth_event_t);extern int            pth_connect_ev(int, const struct sockaddr *, socklen_t, pth_event_t);extern int            pth_accept_ev(int, struct sockaddr *, socklen_t *, pth_event_t);extern int            pth_select_ev(int, fd_set *, fd_set *, fd_set *, struct timeval *, pth_event_t);extern int            pth_poll_ev(struct pollfd *, nfds_t, int, pth_event_t);extern ssize_t        pth_read_ev(int, void *, size_t, pth_event_t);extern ssize_t        pth_write_ev(int, const void *, size_t, pth_event_t);extern ssize_t        pth_readv_ev(int, const struct iovec *, int, pth_event_t);extern ssize_t        pth_writev_ev(int, const struct iovec *, int, pth_event_t);extern ssize_t        pth_recv_ev(int, void *, size_t, int, pth_event_t);extern ssize_t        pth_send_ev(int, const void *, size_t, int, pth_event_t);extern ssize_t        pth_recvfrom_ev(int, void *, size_t, int, struct sockaddr *, socklen_t *, pth_event_t);extern ssize_t        pth_sendto_ev(int, const void *, size_t, int, const struct sockaddr *, socklen_t, pth_event_t);    /* standard replacement functions */extern int            pth_nanosleep(const struct timespec *, struct timespec *);extern int            pth_usleep(unsigned int);extern unsigned int   pth_sleep(unsigned int);extern pid_t          pth_waitpid(pid_t, int *, int);extern int            pth_system(const char *);extern int            pth_sigmask(int, const sigset_t *, sigset_t *);extern int            pth_sigwait(const sigset_t *, int *);extern int            pth_connect(int, const struct sockaddr *, socklen_t);extern int            pth_accept(int, struct sockaddr *, socklen_t *);extern int            pth_select(int, fd_set *, fd_set *, fd_set *, struct timeval *);extern int            pth_pselect(int, fd_set *, fd_set *, fd_set *, const struct timespec *, const sigset_t *);extern int            pth_poll(struct pollfd *, nfds_t, int);extern ssize_t        pth_read(int, void *, size_t);extern ssize_t        pth_write(int, const void *, size_t);extern ssize_t        pth_readv(int, const struct iovec *, int);extern ssize_t        pth_writev(int, const struct iovec *, int);extern ssize_t        pth_recv(int, void *, size_t, int);extern ssize_t        pth_send(int, const void *, size_t, int);extern ssize_t        pth_recvfrom(int, void *, size_t, int, struct sockaddr *, socklen_t *);extern ssize_t        pth_sendto(int, const void *, size_t, int, const struct sockaddr *, socklen_t);extern ssize_t        pth_pread(int, void *, size_t, off_t);extern ssize_t        pth_pwrite(int, const void *, size_t, off_t);END_DECLARATION    /* soft system call mapping support */#if PTH_SYSCALL_SOFT && !defined(_PTH_PRIVATE)#define fork          pth_fork#define waitpid       pth_waitpid#define system        pth_system#define nanosleep     pth_nanosleep#define usleep        pth_usleep#define sleep         pth_sleep#define sigprocmask   pth_sigmask#define sigwait       pth_sigwait#define select        pth_select#define pselect       pth_pselect#define poll          pth_poll#define connect       pth_connect#define accept        pth_accept#define read          pth_read#define write         pth_write#define readv         pth_readv#define writev        pth_writev#define recv          pth_recv#define send          pth_send#define recvfrom      pth_recvfrom#define sendto        pth_sendto#define pread         pth_pread#define pwrite        pth_pwrite#endif    /* backward compatibility (Pth < 1.5.0) */#define pth_event_occurred(ev) \    (   pth_event_status(ev) == PTH_STATUS_OCCURRED \     || pth_event_status(ev) == PTH_STATUS_FAILED   )#endif /* _PTH_H_ */

⌨️ 快捷键说明

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