clsync
Loading...
Searching...
No Matches
port-hacks.h
Go to the documentation of this file.
1/*
2 clsync - file tree sync utility based on fanotify and inotify
3
4 Copyright (C) 2014 Dmitry Yu Okunev <dyokunev@ut.mephi.ru> 0x8E30679C
5
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#ifndef __PORT_HACKS_H
21#define __PORT_HACKS_H
22
23#ifndef ETIME
24#define ETIME ETIMEDOUT
25#endif
26
27#include <sys/types.h>
28#include <sys/stat.h>
29
30#if __FreeBSD__ || __FreeBSD_kernel__
31# include <sys/syslimits.h>
32
33# define O_PATH 0
34
35# include <pthread.h>
36
37# ifdef THREADING_SUPPORT
38static inline int pthread_tryjoin_np ( pthread_t thread, void **retval )
39{
40 struct timespec abstime;
41 int rc;
42 abstime.tv_sec = 0;
43 abstime.tv_nsec = 0;
44 extern int pthread_timedjoin_np ( pthread_t thread, void **value_ptr, const struct timespec * abstime );
45 rc = pthread_timedjoin_np ( thread, retval, &abstime );
46
47 if ( rc == ETIMEDOUT )
48 rc = EBUSY;
49
50 return rc;
51}
52# endif
53
54# ifndef __USE_LARGEFILE64
55typedef struct stat stat64_t;
56static inline int lstat64 ( const char *pathname, struct stat *buf )
57{
58 return lstat ( pathname, buf );
59}
60# else
61typedef struct stat64 stat64_t;
62# endif
63
64#else
65typedef struct stat64 stat64_t;
66#endif
67
68#ifdef CLSYNC_ITSELF
69# ifndef O_PATH
70# warning O_PATH is not set
71# define O_PATH 0
72# endif
73#endif
74
75#endif // __PORT_HACKS_H
76
struct stat64 stat64_t
Definition port-hacks.h:65