1
1
extern int debugflag;
2
2
extern int force_restore;
3
3
extern int ignore_nocards;
4
6
extern char *command;
5
7
extern char *statefile;
7
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
8
#define info(...) do {\
9
fprintf(stdout, "%s: %s:%d: ", command, __FUNCTION__, __LINE__); \
10
fprintf(stdout, __VA_ARGS__); \
14
#define info(args...) do {\
15
fprintf(stdout, "%s: %s:%d: ", command, __FUNCTION__, __LINE__); \
16
fprintf(stdout, ##args); \
21
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
22
#define error(...) do {\
23
fprintf(stderr, "%s: %s:%d: ", command, __FUNCTION__, __LINE__); \
24
fprintf(stderr, __VA_ARGS__); \
28
#define error(args...) do {\
29
fprintf(stderr, "%s: %s:%d: ", command, __FUNCTION__, __LINE__); \
30
fprintf(stderr, ##args); \
35
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
36
#define cerror(cond, ...) do {\
37
if (cond || debugflag) { \
38
fprintf(stderr, "%s%s: %s:%d: ", debugflag ? "WARNING: " : "", command, __FUNCTION__, __LINE__); \
39
fprintf(stderr, __VA_ARGS__); \
44
#define cerror(cond, args...) do {\
45
if (cond || debugflag) { \
46
fprintf(stderr, "%s%s: %s:%d: ", debugflag ? "WARNING: " : "", command, __FUNCTION__, __LINE__); \
47
fprintf(stderr, ##args); \
53
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
54
#define dbg(...) do {\
55
if (!debugflag) break; \
56
fprintf(stderr, "%s: %s:%d: ", command, __FUNCTION__, __LINE__); \
57
fprintf(stderr, __VA_ARGS__); \
61
#define dbg(args...) do {\
62
if (!debugflag) break; \
63
fprintf(stderr, "%s: %s:%d: ", command, __FUNCTION__, __LINE__); \
64
fprintf(stderr, ##args); \
9
void info_(const char *fcn, long line, const char *fmt, ...);
10
void error_(const char *fcn, long line, const char *fmt, ...);
11
void cerror_(const char *fcn, long line, int cond, const char *fmt, ...);
12
void dbg_(const char *fcn, long line, const char *fmt, ...);
14
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
15
#define info(...) do { info_(__FUNCTION__, __LINE__, __VA_ARGS__); } while (0)
16
#define error(...) do { error_(__FUNCTION__, __LINE__, __VA_ARGS__); } while (0)
17
#define cerror(cond, ...) do { cerror_(__FUNCTION__, __LINE__, (cond) != 0, __VA_ARGS__); } while (0)
18
#define dbg(...) do { dbg_(__FUNCTION__, __LINE__, __VA_ARGS__); } while (0)
20
#define info(args...) do { info_(__FUNCTION__, __LINE__, ##args); } while (0)
21
#define error(args...) do { error_(__FUNCTION__, __LINE__, ##args); } while (0)
22
#define cerror(cond, ...) do { error_(__FUNCTION__, __LINE__, (cond) != 0, ##args); } while (0)
23
#define dbg(args...) do { dbg_(__FUNCTION__, __LINE__, ##args); } while (0)
69
26
int init(const char *file, const char *cardname);
27
int state_lock(const char *file, int lock, int timeout);
70
28
int save_state(const char *file, const char *cardname);
71
29
int load_state(const char *file, const char *initfile, const char *cardname,
73
31
int power(const char *argv[], int argc);
74
int generate_names(const char *cfgfile);
32
int state_daemon(const char *file, const char *cardname, int period,
34
int state_daemon_kill(const char *pidfile, const char *cmd);