19#if defined(__OpenBSD__) && !defined(ENOTSUP)
20#define ENOTSUP EOPNOTSUPP
23#if !defined(HAVE_PSELECT) || defined(__OpenBSD__)
24extern int pselect(
int, fd_set *, fd_set *, fd_set *,
const struct timespec *,
29extern size_t strnlen(
const char *s,
size_t n);
33extern size_t strlcpy(
char *,
const char *,
size_t);
37extern size_t strlcat(
char *,
const char *,
size_t);
43extern int vasprintf(
char **ret,
const char *fmt, va_list ap);
47#if !defined(HAVE_MEMSET_EXPLICIT) && !defined(HAVE_EXPLICIT_BZERO)
50#elif defined(HAVE_MEMSET_EXPLICIT) && !defined(HAVE_EXPLICIT_BZERO)
52#define explicit_bzero(s, n) memset_explicit((s), 0, (n))
58#if defined(HAVE_STRUCT_STAT_ST_MTIM)
60#elif defined(HAVE_STRUCT_STAT_ST_MTIMESPEC)
61 ts = st->st_mtimespec;
63 ts.tv_sec = st->st_mtime;
72#if defined(HAVE_STRUCT_STAT_ST_ATIM)
74#elif defined(HAVE_STRUCT_STAT_ST_ATIMESPEC)
75 ts = st->st_atimespec;
77 ts.tv_sec = st->st_atime;
84 const struct timespec *ts)
86 tv->tv_sec = ts->tv_sec;
87 tv->tv_usec = ts->tv_nsec / 1000;
static struct timespec atalk_stat_atime_timespec(const struct stat *st)
Definition compat.h:69
void explicit_bzero(void *s, size_t n)
Definition explicit_bzero.c:32
int vasprintf(char **ret, const char *fmt, va_list ap)
Definition misc.c:34
size_t strlcat(char *, const char *, size_t)
Definition strlcpy.c:59
size_t strlcpy(char *, const char *, size_t)
Definition strlcpy.c:36
size_t strnlen(const char *s, size_t n)
Definition misc.c:19
static void atalk_timespec_to_timeval(struct timeval *tv, const struct timespec *ts)
Definition compat.h:83
static struct timespec atalk_stat_mtime_timespec(const struct stat *st)
Definition compat.h:55
int pselect(int, fd_set *, fd_set *, fd_set *, const struct timespec *, const sigset_t *)