#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) |
|
#define | SI_EINTR_SAVE_SCANF(return_type, func, decl, args) |
|
#define | SI_GET_FIFTH(_4, _3, _2, _1, N, ...) |
|
#define | si_open(...) |
|
#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
#define SI_EINTR_SAVE_FUNC |
( |
| return_type, |
|
|
| func, |
|
|
| decl, |
|
|
| args ) |
Value:
#define SI_EINTR_SAVE_FUNC_TEMPLATE(return_type, newfunc, func, decl, args, err_domain)
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
#define SI_EINTR_SAVE_FUNC_TEMPLATE |
( |
| return_type, |
|
|
| newfunc, |
|
|
| func, |
|
|
| decl, |
|
|
| args, |
|
|
| err_domain ) |
Value:static inline return_type newfunc decl \
{ \
do \
{ \
}
while((
res err_domain) && (errno == EINTR));\
}
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
#define SI_EINTR_SAVE_SCANF |
( |
| return_type, |
|
|
| func, |
|
|
| decl, |
|
|
| args ) |
Value:
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
#define SI_GET_FIFTH |
( |
| _4, |
|
|
| _3, |
|
|
| _2, |
|
|
| _1, |
|
|
| N, |
|
|
| ... ) |
Value:
const CanonicalForm CFMap CFMap & N
◆ si_open
Value:
int status int void size_t count si_open1
#define SI_GET_FIFTH(_4, _3, _2, _1, N,...)
◆ si_siginterrupt
#define si_siginterrupt |
( |
| arg1, |
|
|
| arg2 ) |
◆ SINGULAR_SI_SIGNALS_H
#define 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]
int status SI_EINTR_SAVE_FUNC |
( |
pid_t | , |
|
|
waitpid | , |
|
|
(pid_t pid, int *status, int options) | , |
|
|
(pid, status, options) | ) |
◆ SI_EINTR_SAVE_FUNC() [3/3]
◆ buf
int status int void size_t buf |
◆ count
int status int void size_t count |
◆ fd
◆ flags
◆ open
◆ pathname
◆ read
◆ si_open1
◆ status
◆ wait