]> arthur.barton.de Git - netatalk.git/blob - libatalk/adouble/ad_private.h
replace remaining %m printf glibc extension with %s strerror(errno)
[netatalk.git] / libatalk / adouble / ad_private.h
1 /*
2  * $Id: ad_private.h,v 1.5 2003-01-31 11:26:36 didg Exp $
3  */
4
5 #ifndef LIBATALK_ADOUBLE_AD_PRIVATE_H
6 #define LIBATALK_ADOUBLE_AD_PRIVATE_H 1
7
8 #include <atalk/adouble.h>
9
10 #ifndef MAP_FAILED
11 #define MAP_FAILED ((void *) -1)
12 #endif /* ! MAP_FAILED */
13
14 #ifndef __inline__
15 #define __inline__
16 #endif /* ! __inline__ */
17
18 /* this is so that we can keep lists of fds referencing the same file
19  * around. that way, we can honor locks created by the same process
20  * with the same file. */
21
22 #define adf_lock_init(a) do { \
23         (a)->adf_lockmax = (a)->adf_lockcount = 0; \
24         (a)->adf_excl = 0;(a)->adf_lock = NULL; \
25 } while (0)
26
27 #define adf_lock_free(a) do { \
28     int i;\
29         if (!(a)->adf_lock) \
30                 break; \
31         for (i = 0; i < (a)->adf_lockcount; i++) {\
32             adf_lock_t *lock = (a)->adf_lock + i;\
33             if (--(*lock->refcount) < 1)free(lock->refcount); \
34         }\
35         free((a)->adf_lock); \
36         adf_lock_init(a); \
37 } while (0)
38
39 #endif /* libatalk/adouble/ad_private.h */