]> git.itanic.dy.fi Git - rrdd/blob - utils.h
onewire_parser: Implement simultaneous reading
[rrdd] / utils.h
1 #ifndef _UTILS_H_
2 #define _UTILS_H_
3
4 #include <pthread.h>
5
6 #define min(a, b) ((a) < (b) ? (a) : (b))
7 #define max(a,b) (a) < (b) ? (b) : (a)
8
9 #define ARRAY_SIZE(a) (sizeof(a) / (sizeof((a)[0])))
10
11 struct mutex {
12         pthread_mutex_t lock;
13         int line;
14         char *file;
15         char owner_name[16];
16         time_t lock_time;
17         char *name;
18 };
19
20 void _mutex_lock_acquired(struct mutex *lock, char *file, int line);
21 int _mutex_lock(struct mutex *lock, char *file, int line);
22 int _mutex_unlock(struct mutex *lock);
23
24 #define mutex_lock(lock) _mutex_lock(lock, __FILE__, __LINE__)
25 #define mutex_unlock(lock) _mutex_unlock(lock)
26 #define mutex_lock_acquired(lock) _mutex_lock_acquired(lock, __FILE__, __LINE__)
27
28 #endif