21 #define SM_EDECL \ |
21 #define SM_EDECL \ |
22 }; |
22 }; |
23 |
23 |
24 #define SM_START(x) \ |
24 #define SM_START(x) \ |
25 sm_state=x;\ |
25 sm_state=x;\ |
26 syslog(LOG_NOTICE, "SM (%s): Start => %s", sm_name, sm_sname[sm_state]); \ |
26 if (debug)\ |
|
27 syslog(LOG_NOTICE, "SM (%s): Start => %s", sm_name, sm_sname[sm_state]); \ |
27 while (!sm_success) switch (sm_state)\ |
28 while (!sm_success) switch (sm_state)\ |
28 {\ |
29 {\ |
29 default: syslog(LOG_WARNING, "Statemachine %s error: state=%d",sm_name,sm_state);\ |
30 default: syslog(LOG_WARNING, "Statemachine %s error: state=%d",sm_name,sm_state);\ |
30 sm_success=-1; |
31 sm_success=-1; |
31 |
32 |
39 #define SM_RETURN \ |
40 #define SM_RETURN \ |
40 return (sm_success != 1);\ |
41 return (sm_success != 1);\ |
41 } |
42 } |
42 |
43 |
43 #define SM_PROCEED(x) \ |
44 #define SM_PROCEED(x) \ |
44 if (x != sm_state) {\ |
45 if (x != sm_state && debug) {\ |
45 syslog(LOG_NOTICE, "SM (%s): %s => %s", sm_name, sm_sname[sm_state], sm_sname[x]);\ |
46 syslog(LOG_NOTICE, "SM (%s): %s => %s", sm_name, sm_sname[sm_state], sm_sname[x]);\ |
46 }\ |
47 }\ |
47 sm_state=x; break; |
48 sm_state=x; break; |
48 |
49 |
49 #define SM_SUCCESS \ |
50 #define SM_SUCCESS \ |
50 syslog(LOG_NOTICE, "SM (%s): %s => Success", sm_name, sm_sname[sm_state]);\ |
51 if (debug)\ |
|
52 syslog(LOG_NOTICE, "SM (%s): %s => Success", sm_name, sm_sname[sm_state]);\ |
51 sm_success=1; break; |
53 sm_success=1; break; |
52 |
54 |
53 #define SM_ERROR \ |
55 #define SM_ERROR \ |
54 syslog(LOG_WARNING, "SM (%s): %s => Error", sm_name, sm_sname[sm_state]);\ |
56 syslog(LOG_WARNING, "SM (%s): %s => Error", sm_name, sm_sname[sm_state]);\ |
55 sm_success=-1; break; |
57 sm_success=-1; break; |