#include <signal.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/select.h>
#include <unistd.h>
#include <sys/uio.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/socket.h>
#include <time.h>
#include <stdio.h>
#include <semaphore.h>
#include <stdarg.h>
Go to the source code of this file.
|
#define | SINGULAR_SI_SIGNALS_H |
|
#define | SI_EINTR_SAVE_FUNC_TEMPLATE(return_type, newfunc, func, decl, args, err_domain) |
|
#define | SI_EINTR_SAVE_FUNC(return_type, func, decl, args) SI_EINTR_SAVE_FUNC_TEMPLATE(return_type, si_##func, func, decl, args, < 0) |
|
#define | SI_EINTR_SAVE_SCANF(return_type, func, decl, args) SI_EINTR_SAVE_FUNC_TEMPLATE(return_type, si_##func, func, decl, args, == EOF) |
|
#define | SI_GET_FIFTH(_4, _3, _2, _1, N, ...) N |
|
#define | si_open(...) SI_GET_FIFTH(X,##__VA_ARGS__, si_open2, si_open1)(__VA_ARGS__) |
|
#define | si_siginterrupt(arg1, arg2) |
|
|
| SI_EINTR_SAVE_FUNC (int, select,(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout),(nfds, readfds, writefds, exceptfds, timeout)) SI_EINTR_SAVE_FUNC(pid_t |
|
int status | SI_EINTR_SAVE_FUNC (pid_t, waitpid,(pid_t pid, int *status, int options),(pid, status, options)) SI_EINTR_SAVE_FUNC(ssize_t |
|
int status int void size_t count | SI_EINTR_SAVE_FUNC (ssize_t, write,(int fd, const void *buf, size_t count),(fd, buf, count)) SI_EINTR_SAVE_FUNC_TEMPLATE(int |
|
◆ SI_EINTR_SAVE_FUNC
Definition at line 42 of file si_signals.h.
42#define SI_EINTR_SAVE_FUNC(return_type, func, decl, args) \
43 SI_EINTR_SAVE_FUNC_TEMPLATE(return_type, si_##func, func, decl, args, < 0)
◆ SI_EINTR_SAVE_FUNC_TEMPLATE
Value:
Definition at line 31 of file si_signals.h.
31#define SI_EINTR_SAVE_FUNC_TEMPLATE(return_type, newfunc, func, decl, args, err_domain) \
32static inline return_type newfunc decl \
33{ \
34 int res = -1; \
35 do \
36 { \
37 res = func args; \
38 } while((res err_domain) && (errno == EINTR));\
39 return res; \
40}
◆ SI_EINTR_SAVE_SCANF
Definition at line 45 of file si_signals.h.
45#define SI_EINTR_SAVE_SCANF(return_type, func, decl, args) \
46 SI_EINTR_SAVE_FUNC_TEMPLATE(return_type, si_##func, func, decl, args, == EOF)
◆ SI_GET_FIFTH
◆ si_open
◆ si_siginterrupt
#define si_siginterrupt |
( |
| arg1, |
|
|
| arg2 ) |
◆ SINGULAR_SI_SIGNALS_H
◆ SI_EINTR_SAVE_FUNC() [1/3]
SI_EINTR_SAVE_FUNC |
( |
int | , |
|
|
select | , |
|
|
(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout) | , |
|
|
(nfds, readfds, writefds, exceptfds, timeout) | ) |
◆ SI_EINTR_SAVE_FUNC() [2/3]
◆ SI_EINTR_SAVE_FUNC() [3/3]
◆ buf
◆ count
◆ fd
◆ flags
◆ open
◆ pathname
◆ read
◆ si_open1
◆ status
◆ wait