chiark / gitweb /
[PATCH] libsysfs changes for sysfsutils 0.3.0
[elogind.git] / libsysfs / sysfs.h
1 /*
2  * sysfs.h
3  *
4  * Internal Header Definitions for libsysfs
5  *
6  * Copyright (C) IBM Corp. 2003
7  *
8  *  This library is free software; you can redistribute it and/or
9  *  modify it under the terms of the GNU Lesser General Public
10  *  License as published by the Free Software Foundation; either
11  *  version 2.1 of the License, or (at your option) any later version.
12  *
13  *  This library is distributed in the hope that it will be useful,
14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  *  Lesser General Public License for more details.
17  *
18  *  You should have received a copy of the GNU Lesser General Public
19  *  License along with this library; if not, write to the Free Software
20  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21  *
22  */
23 #ifndef _SYSFS_H_
24 #define _SYSFS_H_
25
26 #include <stdio.h>
27 #include <stdlib.h>
28 #include <unistd.h>
29 #include <string.h>
30 #include <dirent.h>
31 #include <sys/stat.h>
32 #include <fcntl.h>
33 #include <errno.h>
34
35 /* external library functions */
36 extern int lstat(const char *file_name, struct stat *buf);
37 extern int readlink(const char *path, char *buf, size_t bufsize);
38 extern int getpagesize(void);
39 extern int isascii(int c);
40
41 /* Debugging */
42 #ifdef DEBUG
43 #include <syslog.h>
44 #define dprintf(format, arg...)                                                         \
45         do {                                                                            \
46                 log_message (LOG_DEBUG , "%s: " format , __FUNCTION__ , ## arg);        \
47         } while (0)
48 #else
49 #define dprintf(format, arg...) do { } while (0)
50 #endif
51
52 extern int log_message (int level, const char *format, ...)
53         __attribute__ ((format (printf, 2, 3)));
54
55
56 #endif /* _SYSFS_H_ */