Remove RETAIN qualifier for F_TRIG and R_TRIG 'M' variable. This is not following standard, and implicitely consumes a lot of RETAIN memory. User can explicitely qualify R_TRIG of F_TRIG instance as RETAIN if needed.
/*
* (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 <stdio.h> /* 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 */