diff -r fb772792efd1 -r 5d893a68be6e stage4/generate_cc/plc.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stage4/generate_cc/plc.h Wed Jan 31 16:00:18 2007 +0100 @@ -0,0 +1,85 @@ +/* + * (c) 2000 Jiri Baum + * Mario de Sousa + * + * Offered to the public under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General + * Public License for more details. + * + * This code is made available on the understanding that it will not be + * used in safety-critical situations without a full and competent review. + */ + + +#ifndef __PLC_H +#define __PLC_H + +#include /* required for declaration of FILE */ + +#ifdef __cplusplus +extern "C" { +#endif + + +#include "types.h" +#include "log/log.h" +#include "conffile/conffile.h" +#include "cmm/cmm.h" +#include "gmm/gmm.h" +#include "synch/synch.h" +#include "period/period.h" +#include "state/state.h" +#include "rt/rt.h" + + +#define PLC_PT_NAME_MAX_LEN CMM_NAME_MAX_LEN + +/*** GENERAL ***/ +int plc_init(char const *module_name, int argc, char **argv); +int plc_done(void); + +/*** SYNCHING ***/ +int plc_scan_beg(void); +int plc_scan_end(void); + +/* memory must be de-allocated with free() */ +const char *plc_module_name(void); + +/* + * UTIL functions; + */ +int plc_print_usage(FILE *output); +/* prints the command line arguments the plc_init() function accepts */ + +/* not to be used by general plc modules. This function is used by the + * plc_shutdown() function. + */ +int plc_init_try(char const *module_name, int argc, char **argv); + + +/* plc command line options leader */ +#define CLO_LEADER "--PLC" + +/* plc command line options */ +#define CLO_plc_id CLO_LEADER "plc_id=" +#define CLO_loc_local CLO_LEADER "local" +#define CLO_loc_isolate CLO_LEADER "isolate" +#define CLO_loc_shared CLO_LEADER "shared" +#define CLO_privmap_key CLO_LEADER "local_map_key=" +#define CLO_log_level CLO_LEADER "debug=" +#define CLO_log_file CLO_LEADER "logfile=" +#define CLO_config_file CLO_LEADER "conf=" +#define CLO_module_name CLO_LEADER "module=" +#define CLO_force_init CLO_LEADER "force-init" + + +#ifdef __cplusplus +} +#endif + +#endif /* __PLC_H */