am_defs.h
The following is a partial listing of this file showing you important definitions you need to know:
#ifndef _AM_DEFS_H
#define _AM_DEFS_H
#include <inc_path/ddl.h>
#include <inc_path/rtr_bcst.h>
#include <inc_path/counter.h>
#include <inc_path/ptm_defs.h>
#include <inc_path/am_defs_constants.h>
#include <malloc.h>
TCHAR* amrp_get_longname(const TCHAR* short_name, TCHAR* long_name, int long_name_len);
TCHAR* amrp_get_long_ref_id(const TCHAR* alarm_id, const TCHAR* ref_id, TCHAR* long_name, int long_name_len);
#define ALARM_GET_LONG_NAME(short_name) amrp_get_longname(short_name, (TCHAR*)_alloca((MAX_ALM_ID_LEN+1) * sizeof(TCHAR)), MAX_ALM_ID_LEN+1)
#ifndef ADHOC_DEFS_H
#include <inc_path/adhoc_defs.h>
#endif
/***************************************/
/* Internal format of Datagram Address */
/***************************************/
typedef TCHAR AM_DADDR[DATAGRAM_NODESIZE+1+OBJECT_NAME_LEN+1];
#define AM_BLANK_MSG _T(" ")
/******************************************************************/
/* Interaction between AMRP and process Generating or Updating */
/* Alarm Status */
/******************************************************************/
/* Types of responses a process can request. Full implies, wait */
/* until after processing is complete and sent a response on the */
/* success or failure of the request. */
/******************************************************************/
typedef int AM_RESP_TYPE;
#define AM_FULL_RESP 0
#define AM_CAPTURED_RESP 1
#define AM_NO_RESP 2
/***********************************************************************/
/* Typedef for Key for identifying which segment is being responded to */
/***********************************************************************/
typedef int AM_RESP_KEY;
/*******************************************************************/
/* Alarm States */
/* WARNING - the order here must not be changed. For efficiency */
/* the module AM_TERM_INFO assumes the order as specified. If this */
/* is changed, active terminal alarm information will be incorrect.*/
/* */
/* AM_REPEATED is not an actual state, but is used for auto-repeat */
/* updates. */
/* AM_COMMENT_DEL is not an actual state, used for logging info. */
/* AM_UPDATE is not a state but used to indicate that the alarm might have updated values */
/***********************************************************************/
typedef int AM_STATE_TYPE;
#define AM_GENERATED 0
#define AM_ACKNOWLEDGED 1
#define AM_CLEARED 2
#define AM_DELETED 3
#define AM_NONEXISTENT 4
#define AM_COMMENT_MSG 5
#define AM_NOSTATE 6
#define AM_REPEATED 7
#define AM_COMMENT_DEL 8
#define AM_UPDATE_ALARM 9
#define AM_SHELVED_ONESHOT 10
#define AM_SHELVED_TIMEOUT 11
#define AM_UNSHELVED 12
#define AM_CONFIRMED 13
#define AM_UNCONFIRMED 14
#define AM_BLOCKED_FLTR 15
#define AM_UNBLOCKED_FLTR 16
#define AM_SHELVED_ALL 17
/*****************************************************************/
/* number of permanent states - I.E. state in which in an alarm */
/* can remain */
/*****************************************************************/
#define AM_NUM_PERMANENT_STATES 9 /* gen, ack, clear, shelved, unshelved, confirmed, unconfirmed, blocked, unblocked */
#define AM_STATE_TYPE_NOT_PERMAMENT COR_MAXU1
// see amaru_state_type_to_mask and amaru_bit_index_to_state_type
#define AM_GENERATED_BIT 0
#define AM_ACKNOWLEDGED_BIT 1
#define AM_CLEARED_BIT 2
#define AM_DELETED_BIT AM_STATE_TYPE_NOT_PERMAMENT
#define AM_NONEXISTENT_BIT AM_STATE_TYPE_NOT_PERMAMENT
#define AM_COMMENT_MSG_BIT AM_STATE_TYPE_NOT_PERMAMENT
#define AM_NOSTATE_BIT AM_STATE_TYPE_NOT_PERMAMENT
#define AM_REPEATED_BIT AM_STATE_TYPE_NOT_PERMAMENT
#define AM_COMMENT_DEL_BIT AM_STATE_TYPE_NOT_PERMAMENT
#define AM_UPDATE_ALARM_BIT AM_STATE_TYPE_NOT_PERMAMENT
#define AM_SHELVED_ONESHOT_BIT AM_STATE_TYPE_NOT_PERMAMENT
#define AM_SHELVED_TIMEOUT_BIT AM_STATE_TYPE_NOT_PERMAMENT
#define AM_UNSHELVED_BIT 3
#define AM_CONFIRMED_BIT 4
#define AM_UNCONFIRMED_BIT 5
#define AM_BLOCKED_FLTR_BIT 6
#define AM_UNBLOCKED_FLTR_BIT 7
#define AM_SHELVED_ALL_BIT 8
// see amaru_state_type_to_array_index and amaru_state_array_index_to_type
#define AM_GENERATED_ARRAY_INDEX 0
#define AM_ACKNOWLEDGED_ARRAY_INDEX 2 // for historical reasons, these are swapped
#define AM_CLEARED_ARRAY_INDEX 1 // for historical reasons, these are swapped
#define AM_DELETED_ARRAY_INDEX AM_STATE_TYPE_NOT_PERMAMENT
#define AM_NONEXISTENT_ARRAY_INDEX AM_STATE_TYPE_NOT_PERMAMENT
#define AM_COMMENT_MSG_ARRAY_INDEX AM_STATE_TYPE_NOT_PERMAMENT
#define AM_NOSTATE_ARRAY_INDEX AM_STATE_TYPE_NOT_PERMAMENT
#define AM_REPEATED_ARRAY_INDEX AM_STATE_TYPE_NOT_PERMAMENT
#define AM_COMMENT_DEL_ARRAY_INDEX AM_STATE_TYPE_NOT_PERMAMENT
#define AM_UPDATE_ALARM_ARRAY_INDEX AM_STATE_TYPE_NOT_PERMAMENT
#define AM_SHELVED_ONESHOT_ARRAY_INDEX AM_STATE_TYPE_NOT_PERMAMENT
#define AM_SHELVED_TIMEOUT_ARRAY_INDEX AM_STATE_TYPE_NOT_PERMAMENT
#define AM_UNSHELVED_ARRAY_INDEX 3
#define AM_CONFIRMED_ARRAY_INDEX 4
#define AM_UNCONFIRMED_ARRAY_INDEX 5
#define AM_BLOCKED_FLTR_ARRAY_INDEX 6
#define AM_UNBLOCKED_FLTR_ARRAY_INDEX 7
#define AM_SHELVED_ALL_ARRAY_INDEX 8
/**********************/
/* Legal Filter Types */
/**********************/
typedef int AM_FILTER_TYPE;
#define AM_TIME_FILTER 0
#define AM_STATE_FILTER 1
#define AM_FR_FILTER 2
#define AM_CLASS_FILTER 3
#define AM_FLD_FILTER 4 // this also includes FR and CLASS filters in new setups
/* alarm block state
Alarm can remain in any of the following states.
AM_ALARM
AM_BLOCKED
AM_NO_ALARM
*/
typedef int AM_BLOCK_TYPE;
#define AM_ALARM 0
#define AM_BLOCKED 1
#define AM_NO_ALARM 2
// flags that can modify how an alarm gen is handled
#define AM_GEN_UPDATE_ALARM (1 << 0)
#define AM_GEN_IF_EXISTING (1 << 1)
#define AM_GEN_CREATE (1 << 2)
#define AM_GEN_ACK (1 << 3)
#define AM_GEN_RESET (1 << 4)
#define AM_GEN_MSGCHANGE (1 << 5)
#define AM_GEN_IGNORE_TIME (1 << 6)
/******************************************/
/* Type Definitions for Filter Parameters */
/******************************************/
#define SIZEOF_AM_FILTER COR_MAX(CLASS_ID_LEN+1,FR_ID_LEN+1)
/******************************************/
/* Proficy Process Systems */
/******************************************/
//#define PPS_REF_ID _T("ProficyProcessSystemsAlarm #")
#define PPS_REF_ID _T("PROFICYPROCESSSYSTEMSALARM #")
// Values to indicate which field will be filtered on
typedef unsigned char AM_FIELD_ID;
//Values defined in am_defs_constants.h
// Value to indicate how a field will be matched
typedef unsigned char AM_FIELD_FILTER_TYPE;
//Values defined in am_defs_constants.h
// There can only be one instance of this type of filter in a segment
typedef struct am_time_state_filter
{
COR_STAMP start_time; // 0 if this filter is not applied
COR_U2 alarm_state_mask; // bit mask for alarm states to filter
} AM_TIME_STATE_FILTER;
typedef struct am_setup_field_filter
{
AM_FIELD_ID fieldIndex;
AM_FIELD_FILTER_TYPE matchType;
TCHAR *filterString;
void *regExp;
TCHAR *upperCaseFilterString;
} AM_SETUP_FIELD_FILTER;
// Multiple field filters in a segment are represented by this structure,
// which represents the same data as AM_SETUP_FIELD_FILTER,
// but is used in segment repeat group with variable-length, NULL-terminated string
typedef struct am_field_filter
{
AM_FIELD_ID fieldIndex;
AM_FIELD_FILTER_TYPE matchType;
TCHAR filterString[1];
} AM_FIELD_FILTER;
#define am_field_filter_calc_size(filter_string) (offsetof(AM_FIELD_FILTER, filterString) + (_tcslen(filter_string) + 1) * sizeof(TCHAR))
typedef union am_filter
{
COR_STAMP start_time;
TCHAR class_id[CLASS_ID_LEN+1];
AM_STATE_TYPE alarm_state;
TCHAR fr_id[FR_ID_LEN+1];
COR_I1 _pad[DO_ALIGN(SIZEOF_AM_FILTER,4)]; /* alignment data */
} AM_FILTER;
typedef struct am_filter_parm
{
AM_FILTER_TYPE type;
AM_FILTER filter;
} AM_FILTER_PARM;
typedef struct am_stacked_info
{
COR_STAMP gentime;
AM_STATE_TYPE alarm_state;
TCHAR alarm_msg[ALARM_MSG_LEN+1];
COR_I1 alarmLevel;
COR_I2 severity;
} AM_STACKED_INFO;
//SCR23024. Added to support alarm clear time in AMV's StackView option.
typedef struct am_stacked_info_ex
{
COR_STAMP gentime;
AM_STATE_TYPE alarm_state;
TCHAR alarm_msg[EXPANDED_ALARM_MSG_LEN+1];
COR_I1 alarmLevel;
COR_I2 severity;
COR_STAMP clrtime;
} AM_STACKED_INFO_EX;
typedef struct am_stacked_info_exV1
{
COR_STAMP gentime;
AM_STATE_TYPE alarm_state;
TCHAR alarm_msg[ALARM_MSG_LEN+1];
COR_I1 alarmLevel;
COR_I2 severity;
COR_STAMP clrtime;
} AM_STACKED_INFO_EX_V1;
typedef struct am_stacked_info2
{
COR_STAMP gentime;
AM_STATE_TYPE alarm_state;
COR_U2 alarm_msg_ofs ; //[ALARM_MSG_LEN+1];
// COR_I1 _pad; /* alignment data */
COR_I2 severity;
COR_U1 alarmLevel;
} AM_STACKED_INFO2 ;
typedef LCID AM_LOCALEID;
typedef unsigned short AM_UNICODESIZE;
typedef unsigned short AM_UNICODENUMBER;
struct amUnicodeStringsHeader
{
AM_UNICODESIZE size;
AM_UNICODENUMBER number;
// repeated number of times
// AM_LOCALEID langid;
// WCHAR language[];
// BYTE unicodeMsg[length]
};
/*********************************************************************/
/* Maximum Number of Stacked Alarms (in addition to the most recent) */
/*********************************************************************/
#define AM_MAX_STACKED 19
/*************************************/
/* Max length of Alarm Comment */
/*************************************/
#define old_AM_COMMENT_LEN 72
typedef struct old_am_comment_info
{
COR_STAMP gentime;
TCHAR alarm_comment[old_AM_COMMENT_LEN+1];
COR_I1 _pad[3]; /* alignment data */
} old_AM_COMMENT_INFO;
#define AM_COMMENT2_LINE_LEN 72
#define AM_COMMENT2_LEN (AM_COMMENT2_LINE_LEN*10)
typedef struct am_comment_info2
{
COR_STAMP gentime;
TCHAR alarm_comment[AM_COMMENT2_LEN+1];
COR_I1 _pad[3]; /* alignment data */
} AM_COMMENT2_INFO;
#define AM_COMMENT_ACT_ADD _T('A')
#define AM_COMMENT_ACT_DELETE _T('D')
/*********************************************************************/
/* Maximum Number of Alarm Comments */
/*********************************************************************/
#define AM_MAX_ALARM_COMMENTS 20
/************************************/
/* Maximum size of a string parameter */
/************************************/
#define AM_MAX_STR 73
/********************************************/
/* Log and Delete Option Character Meanings */
/********************************************/
#define AM_ACK_CHAR _T('A')
#define AM_CLR_CHAR _T('R')
#define AM_DEL_CHAR _T('D')
#define AM_GEN_CHAR _T('G')
#define AM_SHELVE_CHAR _T('S')
#define AM_TIMEDSHELVE_CHAR _T('T')
/*******************************************************************/
/* Defines for alarm visibility type */
/* WARNING - the order here must not be changed. For efficiency */
/* the module AM_TERM_INFO assumes the order as specified. If this */
/* is changed, active terminal alarm information will be incorrect.*/
#define AM_ALL_ALARMS 0 /* all alarms visible by this user */
#define AM_UNACK_ONLY 1 /* all unacknowledged alarms visible by this user */
#define AM_UNACK_UNCLR 2 /* all unacknowledged, uncleared alarms visible by */
/* this user */
/**********************************/
/* Defines for Message Formatting */
/**********************************/
#define AM_DG _T('D')
#define AM_NON_DG _T('L')
#define AM_LL _T('L')
/***************************/
/* Resident Process States */
/***************************/
typedef int AMRP_STATE_TYPE;
/*********************/
/* Legal AMRP States */
/*********************/
#define AMRP_ACTIVE 0
#define AMRP_STANDBY 1
/***************************/
/* Legal Alarm Field Types */
/***************************/
typedef int AM_FIELD_TYPE;
#define AM_CHAR 0
#define AM_STR 1
#define AM_INT 2
#define AM_COR_I1 3
#define AM_COR_I2 4
#define AM_COR_I4 5
#define AM_COR_BOOLEAN 6
#define AM_COR_U1 7
#define AM_COR_U2 8
#define AM_COR_U4 9
#define AM_FLOAT 10
#define AM_SEVERITY 11 // this is a special field that holds the alarm severity level
#define AM_LEVEL 12 // this is a special field that holds the alarm state(Alarm - hi, lo: Warning - hi, lo)
#define AM_OPC_CATEGORY 13
#define AM_OPC_CONDITION 14
#define AM_OPC_SUBCONDITION 15
#define AM_STR_CONCAT 16
#define AM_POINT_VALUE 17
#define AM_STR_TRANSLATE 18
#define AM_USER_BITS 20
#define AM_POINT_VALUE1 21
#define AM_POINT_VALUE2 22
#define AM_POINT_VALUE3 23
#define AM_POINT_VALUE4 24
#define AM_POINT_VALUE5 25
#define AM_POINT_VALUE6 26
#define AM_POINT_VALUE7 27
#define AM_POINT_VALUE8 28
#define AM_POINT_VALUE9 29
#define AM_POINT_ID1 31
#define AM_POINT_ID2 32
#define AM_POINT_ID3 33
#define AM_POINT_ID4 34
#define AM_POINT_ID5 35
#define AM_POINT_ID6 36
#define AM_POINT_ID7 37
#define AM_POINT_ID8 38
#define AM_POINT_ID9 39
#define AM_COR_U8 40
#define AM_COR_I8 41
#define AM_STR_SHORT 42
#define AM_EXP_MSG_LEN EXPANDED_ALARM_MSG_LEN //( ALARM_MSG_LEN ) /* from sc_recs.h */
#define AM_MAX_FIELDS 6 /* warning, if this number is changed, so must */
/* the case statement in procedure am_msg_expand */
// optional fields that can be enabled thru configuration now
#define AM_POINT_VALUE_FIELD _T("point_val")
#define AM_USER_BITS_FIELD _T("user_bits")
#define AM_POINT_VALUE1_FIELD _T("point_val_1")
#define AM_POINT_ID1_FIELD _T("point_id_1")
#define AM_POINT_VALUE2_FIELD _T("point_val_2")
#define AM_POINT_ID2_FIELD _T("point_id_2")
#define AM_POINT_VALUE3_FIELD _T("point_val_3")
#define AM_POINT_ID3_FIELD _T("point_id_3")
#define AM_POINT_VALUE4_FIELD _T("point_val_4")
#define AM_POINT_ID4_FIELD _T("point_id_4")
#define AM_POINT_VALUE5_FIELD _T("point_val_5")
#define AM_POINT_ID5_FIELD _T("point_id_5")
#define AM_POINT_VALUE6_FIELD _T("point_val_6")
#define AM_POINT_ID6_FIELD _T("point_id_6")
#define AM_POINT_VALUE7_FIELD _T("point_val_7")
#define AM_POINT_ID7_FIELD _T("point_id_7")
#define AM_POINT_VALUE8_FIELD _T("point_val_8")
#define AM_POINT_ID8_FIELD _T("point_id_8")
#define AM_POINT_VALUE9_FIELD _T("point_val_9")
#define AM_POINT_ID9_FIELD _T("point_id_9")
// Defines for the OPC A&E Server, do not use 0
#define AM_OPC_TYPE_CONDITION 1
#define AM_OPC_TYPE_SIMPLE 2
#define AM_OPC_TYPE_TRAKING 3
#define AM_STATE_LEN 3
#define AM_TIME_LEN 22
/************************************************************/
/* Typedefs neccessary to define unformatted message fields */
/************************************************************/
#define SIZEOF_AM_FIELD (AM_MAX_STR+1)
typedef union am_field
{
COR_I4 cori4_val;
COR_I2 cori2_val;
COR_I1 cori1_val;
COR_I8 cori8_val;
COR_U4 coru4_val;
COR_U2 coru2_val;
COR_U1 coru1_val;
COR_U8 coru8_val;
COR_BOOLEAN corbool_val;
int ival;
float fval;
__int64 val64;
unsigned __int64 valu64;
TCHAR chval;
TCHAR str[AM_MAX_STR+1];
/* This structure must be aligned because it is contained
* in the AM_GEN_SEG message segment, which may be passed
* in a hybrid environment. */
COR_I1 _pad[DO_ALIGN(SIZEOF_AM_FIELD,8)];
} AM_FIELD;
typedef struct am_msg_field
{
AM_FIELD_TYPE ftype;
AM_FIELD field;
} AM_MSG_FIELD;
typedef struct am_field_parms
{
int fld_sz ;
void *pfld_data ;
unsigned char fld_type ;
} AM_FIELD_PARMS ;
typedef struct alarm_ca_alarmoper_req
{
TCHAR performuserid[USER_ID_LEN + 1 ];
TCHAR performpassword[PASSWORD_LEN+1];
TCHAR performcomment[CHANGEAPPROVAL_COMMENT_LEN + 1];
TCHAR verifyuserid[USER_ID_LEN + 1];
TCHAR verifypassword[PASSWORD_LEN+1];
TCHAR verifycomment[CHANGEAPPROVAL_COMMENT_LEN + 1];
TCHAR location[MAX_COMPUTERNAME_LENGTH + 1];
} ALARM_CA_ALARM_OPER_REQ;
/*************************************/
/* Max length of reference id string */
/*************************************/
//REF_ID_LEN - AM_REF_ID_LEN must be at least as large as REF_ID_LEN!!!
#define AM_REF_ID_LEN REF_ID_LEN
#define AM_REF_ID_LEN32 32 //for compat. with older mf items / systems
#define AM_NULL_REF_ID -1
#define AM_NULL_ID -1
/***********************************/
/* Length of buffer in am_log */
/***********************************/
#define AM_LOG_BUF_SIZE 156
// Lower 4 bits in log_file of ALARM_DEF
#define AM_LOG_ALARM_FILE 0
#define AM_LOG_ALTERNATE_FILE 1
#define AM_LOG_BOTH_FILES 2
#define LOBITS(n) (n & 0x0F)
#define HIBITS(n) ((n & 0xF0) >> 4)
/* The character that begins a site-wide setup name. */
#define AM_SITE_WIDE_CHAR _T('$')
/* These help us create aligned messages. */
#define SETUP_ID_MFLEN DO_ALIGN(SETUP_ID_LEN+1,4)
#define USER_ID_MFLEN DO_ALIGN(USER_ID_LEN+1,4)
/* The name that is displayed when the user is using an ad hoc
* setup. (This must be SETUP_ID_LEN characters or less).
* 0123456789ABCDEF
*/
#define AMAP_ADHOC_SETUP _T("<AD HOC SETUP>")
#define AM_HELPTEXT_LEN 72
#define AM_HELPTEXT_NUM_LINES 59
// Flags for the AM_GEN_LIST_EX2 struct alarmRequestFlags field
#define ALM_REQ_DELETED_ALARMS 0x01
#define ALM_REQ_OPC_ALARMS 0x02
/*********************************************************************/
typedef struct
{
int seg_num ;
AM_STATE_TYPE action ;
COR_I4 seq_num ;
TCHAR *alarm_id;
TCHAR *fr_id;
TCHAR *ref_id;
TCHAR *user_or_serv_id;
/* These items only in update_ex_seg, AM_VERS_1 */
COR_STAMP upd_time ;
COR_I4 version ;
char *conc_alarm_id;
TCHAR *perform_user_id;
TCHAR *perform_user_password;
TCHAR *perform_user_comments;
TCHAR *verify_user_id;
TCHAR *verify_user_password;
TCHAR *verify_user_comments;
} AMU_UPDATE_INFO ;
/* segment/feature Versioning information */
/* initiated with creation of am_list_ex, am_upd_inf_ex, am_gen_list_ex */
#define AM_VERS_0 0
#define AM_VERS_1 1
#define AM_VERS_2 2
#define AM_VERS_3 3 /*lengthened, perm., comments */
#define AM_VERS_4 4 /* added alarm severity to the AM_STACKED_INFO structure */
#define AM_VERS_5 5 /* added alarm blinking */
#define AM_VERS_6 6 /* lengthened alarm IDs */
#define AM_VERS_6_1 7 // added support for OPC
#define AM_VERS_6_1_1 8 // added support for unicode messages
#define AM_VERS_6_1_3 9 // added OPC CV
#define AM_VERS_6_1_4 10 // COR_STAMP
#define AM_VERS_6_1_4_1 11 // fix COR_STAMP reset time usage
#define AM_VERS_6_1_5_1 12 //SCR23024
#define AM_VERS_6_3 13 // OPC changes for events
#define AM_VERS_7_0 14 // ackStamp and deletedStamp
#define AM_VERS_8_1 15 // some alarm parameters split to provide individual parameter for each alarm level
#define AM_VERS_8_2 16 //Change approval support for alarms.
#define AM_VERS_9_0 17 //Long name support for alarms
#define AM_VERS_10_0 18 // Shelving support for alarms
#define AM_VERS_10_99 19 // description in alarm data
#define AM_VERS_OFFSET 1000 // AM version 6_0 sends back the client version in AM_LIST_EX2
// so if the version is > AM_VERS_OFFSET subtract the offset and you get the correct version
/* If you add a new version, bump the current version, as all code
** using this should be compatible
** with any earlier versions (provided fields are NOT removed.)
*/
#define AM_VERS_CURRENT AM_VERS_10_99
// Prototypes
void am_alloc_init(void);
void am_alloc_gen_list(TCHAR (*alloc_addr)[30],TCHAR (*cm_addr)[30],TCHAR dyn_disp_mode,int *total_alarms, COR_BOOLEAN comments_wanted, int version, AM_LOCALEID langId, WCHAR *language, COR_BOOLEAN allLanguages, COR_U2 alarmRequestFlags, struct cor_status *ret_stat);
void am_alloc_snd_list(struct datagram_address *sender,struct ipc_time_stamp *stamp,TCHAR rr_flag,TCHAR (*alloc_addr)[30],int max_to_send,struct cor_status *ret_stat);
void am_alloc_creseg(int size,int seg_type,int rep_count,TCHAR need_all,TCHAR **seg_ptr,int *ret_count,struct datagram_address *sender,struct ipc_time_stamp *stamp,TCHAR rr_flag,struct cor_status *ret_stat);
void am_alloc_rem_proc(TCHAR (*alloc_addr)[30],struct cor_status *ret_stat);
void am_alloc_add_proc(TCHAR (*alloc_addr)[30],TCHAR (*cm_addr)[30],struct ipc_time_stamp *stamp,struct cor_status *ret_stat);
void am_alloc_rem_all_ap_alarms(long *alloc_proc_ptr);
void am_alloc_unexp_term(struct datagram_address *sender);
void am_allocq_add(TCHAR *msg_ptr,struct datagram_address *sender,struct ipc_time_stamp *stamp,TCHAR rr_flag, int ipc_version);
void am_allocq_process(void);
void am_allocq_rem_req(long *alloc_req_ptr);
void am_allocq_add_resp(long *alloc_req_ptr,struct cor_status *ret_stat,TCHAR total_valid,int total_alarms);
void am_allocq_rem_all_resp(long *alloc_req_ptr);
void am_allocq_send_resp(long *alloc_req_ptr,int msg_status);
void am_allocq_send_slave(TCHAR *body,int segment);
long *am_ap_add_alarm(long *alloc_proc_ptr,long *alarm_occur_ptr,int insert_location,long *ap_pos_ptr);
void am_ap_rem_alarm(long *ap_alarm_ptr);
void am_auto_init(void);
void am_auto_start_timer(void);
void am_auto(void);
void am_auto_add_clr(long *alarm_def_ptr,long *alarm_occur_ptr, int which_level);
void am_auto_add_ack(long *alarm_def_ptr,long *alarm_occur_ptr, int which_level);
void am_auto_add_repeat(long *alarm_def_ptr,long *alarm_occur_ptr, int which_level);
void am_auto_rem_ack(long *alarm_occur_ptr, int which_level);
void am_auto_rem_clr(long *alarm_occur_ptr, int which_level);
void am_auto_rem_repeat(long *alarm_occur_ptr, int which_level);
void am_auto_gen_explist(void);
void am_auto_process_explist(void);
void am_auto_slave_init(void);
void am_auto_slave_flush(void);
void am_auto_slave_upd_add(TCHAR *alarm_id,TCHAR *fr_id,TCHAR *ref_id,int action,int seq_num);
void am_build_alarm_list(long *alloc_proc_ptr,long *active_term_ptr,struct cor_status *ret_stat);
void am_build_by_fr(long *alloc_proc_ptr,long *active_term_ptr);
void am_build_by_class(long *alloc_proc_ptr,long *active_term_ptr);
void am_build_by_state(long *alloc_proc_ptr,long *active_term_ptr);
void am_build_by_time(long *alloc_proc_ptr,long *active_term_ptr);
COR_BOOLEAN am_check_ff(long *alloc_proc_ptr,long *alarm_occur_ptr,long *active_term_ptr, long *alarm_info);
COR_BOOLEAN am_check_fr(long *alloc_proc_ptr,long *alarm_occur_ptr,long *active_term_ptr, long *alarm_info);
COR_BOOLEAN am_check_class(long *alloc_proc_ptr,long *alarm_def_ptr, long *alarm_info);
COR_BOOLEAN am_check_role(long *role_ptr,long *alarm_def_ptr);
COR_BOOLEAN am_check_state(struct allocated_process * alloc_proc_ptr,
struct alarm_info * alarm_info_ptr, //pointer to DMS alarm info record
struct alarm_occurrence * alarm_occurrence_ptr);
COR_BOOLEAN am_check_time(long * alloc_proc_ptr, long * alarm_info_ptr);
COR_BOOLEAN am_should_severity_override_filter(struct alarm_info *alarm_info_ptr);
long * am_create_alarm_info();
void am_set_alarm_info_severity(long* alarm_info_ptr, COR_I2 severity);
void am_cmd_init(void);
void am_cmd_get(int *cmd,TCHAR **msg_ptr,struct datagram_address *sender,struct ipc_time_stamp **stamp,TCHAR *rr_flag, int *ipc_version);
void am_cmd_get_dg(int *cmd,TCHAR **msg_ptr,struct datagram_address *sender,struct ipc_time_stamp **stamp,TCHAR *rr_flag, int *ipc_version,int curr_state,struct cor_status *ret_stat);
void am_cmd_get_ur(int *cmd,TCHAR **msg_ptr,struct cor_status *ret_stat);
void am_cmd_get_master(int *cmd,TCHAR **msg_ptr,DADDR *psender,struct cor_status *ret_stat);
void am_ipc_link_term(struct cor_status *ret_stat,int link_index);
void am_comm_init(void);
void am_comm_term(void);
void am_comment_alarm(const TCHAR *alarm_id,const TCHAR *fr_id,const TCHAR *ref_id,const TCHAR *user_or_serv_id,int action,const TCHAR *alarm_comment,struct cor_time_stamp *gentime,struct cor_status *ret_stat, COR_BOOLEAN skip_log);
void am_comment_add(long *alarm_occur_ptr,long *fr_ptr,long *alarm_fr_ptr,long *ref_ptr,const TCHAR *alarm_id,const TCHAR *fr_id,const TCHAR *ref_id,const TCHAR *user_or_serv_id,const TCHAR *alarm_comment,struct cor_time_stamp *gentime,struct cor_status *ret_stat, long *alarm_def_ptr);
void am_conc_proc_alarm_gen(struct testContext* pContext, struct AlarmInfo* pAlarmInfo);
void am_conc_proc_alarm_almmoddel(struct testContext *pContext, TCHAR *pAlmInf);
void am_config_terminate(void);
void am_config_init(void);
void am_config_get_type_info(TCHAR *sc_type_ptr,struct cor_status *ret_stat);
void am_config_type_info(void);
void am_config_class(void);
void am_config_role(void);
void am_config_fr_info(void);
COR_BOOLEAN am_config_get_info(TCHAR *sc_def_ptr,struct cor_status *ret_stat, LPCTSTR alarmId, int alarm_num,TCHAR dynamic_cfg, LPCTSTR roleAlarm);
COR_BOOLEAN am_config_get_info_ex(TCHAR *sc_def_ptr,struct cor_status *ret_stat, struct cor_statusV1 *ret_v1stat,LPCTSTR alarmId, int alarm_num,TCHAR dynamic_cfg, LPCTSTR roleAlarm);
void am_config_create_alarm(LPCTSTR alarmId, LPCTSTR modelAlarm);
void am_config_alarm_info(struct cor_status *ret_stat);
void am_config_init_alarm_info(void);
void am_config_global_data(void);
void am_config_link_field(long *alarm_field_ptr,long *alarm_type_ptr);
void am_config_link_class(long *class_ptr);
void am_config_init_ref_info(void);
void am_config_ptm_ack(void);
int am_config_user_setups(void);
void am_daddr_to(TCHAR *dest,struct datagram_address *src);
void am_daddr_from(struct datagram_address *dest,TCHAR *src);
void am_dd_rem_alloc_proc(long *alloc_proc_ptr);
void am_dd_info_upd(long *alarm_def_ptr,long *alarm_occur_ptr,long *alarm_info_ptr,int prev_state,int action);
void am_dd_info_upd_EX(RECORD_PTR alarm_def_ptr,
RECORD_PTR alarm_occur_ptr,
RECORD_PTR alarm_info_ptr,
AM_STATE_TYPE prev_state,
AM_STATE_TYPE action,
BOOL sendDeleted);
void am_dd_info_process(long *alarm_def_ptr,long *alloc_proc_ptr,long *active_term_ptr,long *alarm_occur_ptr,long *alarm_info_ptr,long *fr_ptr,int prev_state,int action);
void am_dd_info_upd_load(long *alloc_proc_ptr,long *alarm_def_ptr,long *alarm_occur_ptr,long *alarm_info_ptr,int prev_state,int action,long *fr_ptr,struct cor_status *ret_stat);
void am_dd_flush(void);
void am_debug_on(void);
void am_debug_off(void);
void am_driver_reset(void);
void am_driver_inc_gen(void);
void am_driver_inc_upd(void);
void am_driver_inc_log(int diff);
void am_driver_auto(void);
void am_dyncfg_proc(TCHAR *body_ptr,struct datagram_address *sender,struct ipc_time_stamp *stamp,TCHAR rr);
void am_dyncfg_delete_proc(TCHAR *body_ptr,struct datagram_address *sender,struct ipc_time_stamp *stamp,TCHAR rr);
void am_filter_mod_parms(long *alloc_proc_ptr,int primary_filter,TCHAR first_filter_msg,struct am_filter_parm *filter_parms,int num_filter_parms,struct cor_status *ret_stat);
void am_filter_mod_parms_ex(long *alloc_proc_ptr, int primary_filter, const AM_TIME_STATE_FILTER* ts_filter, TCHAR first_filter_msg, const unsigned char* field_filters, int num_filters, int total_filter_bytes, struct cor_status *ret_stat);
void am_filter_rem_frs(long *alloc_proc_ptr);
void am_filter_rem_ffs(long *alloc_proc_ptr);
void am_filter_rem_classes(long *alloc_proc_ptr);
void am_filter_set_default(long *alloc_proc_ptr);
void am_filter_default_states(long *alloc_proc_ptr);
void am_filter_default_ff(long *alloc_proc_ptr);
void am_filter_default_fr(long *alloc_proc_ptr);
void am_filter_default_classes(long *alloc_proc_ptr);
void am_find_master(TCHAR *am_ptm_resync);
//fld_fmt identifies:
//1==structured format for alarm msg parameters
//2==linear memory format for alarm msg parameters
void am_gen_alarm(int fld_fmt, const TCHAR *alarm_id,const TCHAR *fr_id,const TCHAR *ref_id,const TCHAR *user_or_serv_id,int seq_num,
void/*struct am_msg_field*/ *alarm_fields,TCHAR reset_follows,int num_fields,
COR_STAMP *gentime, long **palarm_occurrence, COR_U2 alarm_gen_flags, struct cor_status *ret_stat);
void am_gen_new_alarm(int fld_fmt, long *alarm_def_ptr,long *fr_ptr,long *alarm_fr_ptr,long *ref_ptr,
long *service_ptr,void /*struct am_msg_field*/ *alarm_fields,int num_fields,
const TCHAR *alarm_id,const TCHAR *fr_id,const TCHAR *ref_id,const TCHAR *user_or_serv_id,int seq_num,
COR_STAMP *gentime, long **palarm_occurrence, COR_U2 genFlags, struct cor_status *ret_stat);
void am_gen_existing_alarm(int fld_fmt, long *alarm_def_ptr,long *alarm_occur_ptr,long *fr_ptr,long *alarm_fr_ptr,
long *ref_ptr,long *service_ptr,void /*struct am_msg_field*/ *alarm_fields,
TCHAR reset_follows,int num_fields,const TCHAR *alarm_id,const TCHAR *fr_id,const TCHAR *ref_id,
const TCHAR *user_or_serv_id,int seq_num, COR_STAMP *gentime, COR_U2 genFlags,
struct cor_status *ret_stat);
void am_gen_update_alarm(int fld_fmt, long *alarm_def_ptr,long *alarm_occur_ptr,long *fr_ptr,long *alarm_fr_ptr,
long *ref_ptr,long *service_ptr,void /*struct am_msg_field*/ *alarm_fields,
TCHAR reset_follows,int num_fields,const TCHAR *alarm_id,const TCHAR *fr_id,const TCHAR *ref_id,
const TCHAR *user_or_serv_id,int seq_num, COR_STAMP *gentime,
struct cor_status *ret_stat);
void am_get_alarms(struct cor_status *ret_stat,int link_index);
void am_init(void);
void am_intproc_upd(long *fr_ptr,long *alarm_def_ptr,long *alarm_info_ptr,int prev_state,int action,const TCHAR *alarm_id,const TCHAR *fr_id,const TCHAR *ref_id,const TCHAR *service_sought,COR_I4 seq_num,BOOL blocked);
void am_jrnl_init(void);
int am_jrnl_open(int file,struct cor_status *ret_stat);
void am_jrnl_write_delta(TCHAR *msg_ptr,int msglen);
int am_jrnl_timer(int action,struct cor_status *ret_stat);
int am_jrnl_rollover(struct cor_status *ret_stat);
void am_jrnl_check_rollover(void);
int am_jrnl_write_dump(struct cor_status *ret_stat);
int am_jrnl_read_delta(struct cor_status *ret_stat);
int am_jrnl_read_dump(struct cor_status *ret_stat);
int am_jrnl_reset_delta(struct cor_status *ret_stat);
int am_jrnl_rename_dump(struct cor_status *ret_stat);
int am_jrnl_recover(int cond,struct cor_status *ret_stat);
void am_jrnl_error(long code,TCHAR *proc_id,struct cor_status *ret_stat);
void am_jrnl_recov_err(int cond,struct cor_status *ret_stat);
void am_jrnl_terminate(void);
void am_log_upd(long *alarm_def_ptr,long *alarm_info_ptr,int prev_state,int action,const TCHAR *alarm_id,
const TCHAR *fr_id,const TCHAR *ref_id,const TCHAR *log_id, void /*struct am_msg_field*/ *alarm_fields, int num_fields, COR_STAMP *stamp );
void am_log_ca_serv_upd(long *alarm_def_ptr,long *alarm_info_ptr,int action,int actStatus,const TCHAR *alarm_id,const TCHAR *user_or_serv_id,
TCHAR *location);
int am_log_check(long *alarm_def_ptr,int log_on_action, COR_I2 alarm_level);
void am_log_init(void);
void am_log_flush(void);
void am_log_terminate(void);
void am_log_load_data_field(void);
void am_master_init(void);
void am_master_slave_add(TCHAR *msg_ptr,struct datagram_address *sender,struct ipc_time_stamp *stamp,TCHAR rr_flag);
void am_master_slave_rem(long *slave_ptr);
void am_master_upd_slaves(TCHAR *msg_ptr,int msg_len);
void am_master_upd_slaves_wsender(TCHAR *msg_ptr,int msg_len,DADDR *psender, COR_STATUS *pret_stat);
void am_master_transition(TCHAR *msg_ptr,struct datagram_address *sender,struct ipc_time_stamp *stamp,TCHAR rr_flag);
void am_msg_expand(long *alarm_def_ptr,long *alarm_info_ptr,struct am_msg_field *alarm_fields,int num_fields,TCHAR *category,TCHAR *condition,TCHAR *subcondition, TCHAR *opcCv, struct cor_status *ret_stat);
void am_msg_gen2_expand(long *alarm_def_ptr,long *alarm_info_ptr, void /*struct am_msg_field*/ *alarm_fields,int num_fields,TCHAR *category,TCHAR *condition,TCHAR *subcondition, TCHAR *opcCv, struct cor_status *ret_stat);
int am_msg_cvt(TCHAR *msg,int endian,int fp);
void am_new_master(struct ipc_dad_lst *list_proc_ptr,int cnt,struct cor_status *ret_stat);
void am_occur_find(const TCHAR *alarm_id,const TCHAR *fr_id,const TCHAR *ref_id,const TCHAR *user_or_serv_id,long **alarm_occur_ptr,long **alarm_def_ptr,long **fr_ptr,long **alarm_fr_ptr,long **ref_ptr,long **service_ptr,struct cor_status *ret_stat);
void am_occur_rem(long *alarm_def_ptr,long *alarm_occur_ptr,long *fr_ptr,long *alarm_fr_ptr,long *ref_ptr,long *service_ptr);
void am_ptm_inform(TCHAR resync);
void refresh_alarm_info_to_ptm();
void am_ptm_ack_info(const TCHAR *user_or_serv_id,const TCHAR *ref_id,int seq_num);
void am_ptm_ack_info_flush(void);
void am_ptm_alm_info(RECORD_PTR fr_ptr,RECORD_PTR alarm_def_ptr,RECORD_PTR alarm_info_ptr,AM_STATE_TYPE prev_state,AM_STATE_TYPE action,const TCHAR alarm_id[ALARM_ID_LEN+1],const TCHAR fr_id[FR_ID_LEN+1],const TCHAR ref_id[AM_REF_ID_LEN+1],COR_I4 seq_num);
int am_ptm_process_que(struct datagram_address *sender);
void am_purge_init(void);
int am_purge_or_delete_alarms(const TCHAR *user_or_serv_id,int action, struct cor_status *ret_stat);
void am_report_error_init(void);
void am_report_error(const TCHAR proc_name[],COR_STATUS *ret_stat,int severity);
void am_report_error_wparam(const TCHAR proc_name[], COR_STATUS *ret_stat,int severity,const TCHAR param[],const TCHAR param2[]);
void am_report_error_wparam_ex(const TCHAR proc_name[], COR_STATUS *ret_stat,COR_STATUSV1 *ret_v1stat,int severity,const TCHAR param[],const TCHAR param2[]);
void am_sched_init(struct am_sched_data *am_sched_array);
void am_sched_next_action(struct am_sched_data *am_sched_array,int *next_action);
void am_sched_sort_sched(struct am_sched_data *am_sched_array);
int am_seq_set(TCHAR *msg_ptr,struct cor_status *ret_stat);
int am_setup_exists(TCHAR *user_id,TCHAR *setup_id,struct cor_status *ret_stat);
void am_setup_makegroupkey(TCHAR *user_id,TCHAR *setup_id,TCHAR *key_value);
int am_setup_delete(TCHAR *user_id,TCHAR *setup_id,struct cor_status *ret_stat);
int am_setup_delete_FF(TCHAR *user_id,TCHAR *setup_id,struct cor_status *ret_stat);
int am_setup_delete_helper(int record_id,int key_id,TCHAR *key_value,struct cor_status *ret_stat);
int am_setup_do_save(long *alloc_proc_ptr,TCHAR *user_id,TCHAR *setup_id,COR_BOOLEAN deleteFF,struct cor_status *ret_stat);
void am_setup_invalidate_list(void);
int am_setup_set_default(TCHAR *user_id,TCHAR *setup_id,struct cor_status *ret_stat);
void am_setup_clear(TCHAR *alloc_addr,long *alloc_req_ptr,struct cor_status *ret_stat);
int am_setup_count(long *alloc_proc_ptr,TCHAR *user_id);
int am_setup_send_filter(TCHAR *alloc_addr,long *alloc_req_ptr,long *alloc_proc_ptr,TCHAR *setup_id);
int am_setup_send_filter_v10(TCHAR *alloc_addr,long *alloc_req_ptr,long *alloc_proc_ptr,TCHAR *setup_id);
int am_setup_send_filter_current(TCHAR *alloc_addr,long *alloc_req_ptr,long *alloc_proc_ptr,TCHAR *setup_id);
void am_setup_send_filter_add_n_send_v10(struct datagram_address *sender,struct ipc_time_stamp *stamp,long *alloc_proc_ptr,TCHAR **seg_ptr,int *count,int *curr_repeat,int *repeats,struct am_filter_parm *filter_parm,const TCHAR* setup_id,struct cor_status *ret_stat);
void am_setup_send_filter_add_n_send_current(struct datagram_address *sender,struct ipc_time_stamp *stamp, COR_U2 alarm_state_mask, COR_STAMP* alarm_timestamp, long *alloc_proc_ptr,TCHAR **seg_ptr,int *count_repeat_bytes,int *curr_repeat_byte,int *curr_filter_count,int *repeats, AM_FIELD_FILTER* filed_filter,const TCHAR *filter_string, const TCHAR *setup_id,struct cor_status *ret_stat);
int am_setup_list(TCHAR *alloc_addr,long *alloc_req_ptr,TCHAR *user_id,struct cor_status *ret_stat);
int am_setup_load(TCHAR *alloc_addr,long *alloc_req_ptr,TCHAR *user_id,TCHAR *setup_id,struct cor_status *ret_stat);
int am_setup_save(TCHAR *alloc_addr,TCHAR *user_id,TCHAR *setup_id,TCHAR first_filter_msg,TCHAR last_filter_msg,int primary_filter,struct am_filter_parm *filter_parms,int num_filter_parms,struct cor_status *ret_stat);
int am_setup_save_ex(TCHAR *alloc_addr, TCHAR *user_id, TCHAR *setup_id, TCHAR first_filter_msg, TCHAR last_filter_msg, int primary_filter, const AM_TIME_STATE_FILTER* ts_filter, const unsigned char *field_filters, int num_filters, int total_filter_bytes, struct cor_status *ret_stat);
void am_shutdown(void);
void am_slave_snd_not_master(TCHAR *msg_ptr,struct datagram_address *sender,struct ipc_time_stamp *stamp,TCHAR rr_flag);
void am_snd_alarm_info(int link_id,struct cor_status *ret_stat);
void am_snd_alarm_info_creseg(int size,int seg_type,int rep_count,TCHAR need_all,TCHAR **seg_ptr,int *ret_cnt,int link_id,struct cor_status *ret_stat);
void am_snd_segerr_stat(TCHAR *msg_ptr,struct datagram_address *sender,struct ipc_time_stamp *stamp,TCHAR rr_flag);
void am_snd_stat(struct cor_status *stat,struct datagram_address *sender,struct ipc_time_stamp *stamp,TCHAR rr_flag);
void am_snd_stat(struct cor_status *stat,struct datagram_address *sender,struct ipc_time_stamp *stamp,TCHAR rr_flag);
void am_snd_stat_ex(struct cor_status *stat,struct datagram_address *sender,struct ipc_time_stamp *stamp,TCHAR snd_as_rr, TCHAR resp_2_rr);
void am_term_init(void);
void am_term_process_ur(TCHAR *msg_ptr);
void am_term_add(TCHAR *msg_ptr,TCHAR *seg_ptr, int seg_type);
void am_term_rem(struct datagram_address *cm_addr);
void am_term_info_upd(long *alarm_def_ptr,long *alarm_occur_ptr,long *alarm_info_ptr,int prev_state);
void am_term_info_process(long *alarm_def_ptr,long *role_ptr,long *active_term_ptr,long *alarm_info_ptr,int prev_state);
void am_term_info_prc_actions(long *active_term_ptr,long *alarm_info_ptr,long *role_ptr,int *action_set);
void am_term_info_summary(long *active_term_ptr,long *role_ptr,TCHAR need_count);
void am_upd_alarm(const TCHAR *alarm_id,const TCHAR *fr_id,const TCHAR *ref_id,const TCHAR *user_or_serv_id,int action,
int seq_num, COR_STAMP *upd_time, struct cor_status *ret_stat,COR_STAMP *unshelve_time,TCHAR *comment, void *objCaData);
void am_upd_ack(long *alarm_def_ptr,long *alarm_occur_ptr,long *fr_ptr,long *alarm_fr_ptr,long *ref_ptr,
long *service_ptr,const TCHAR *alarm_id,const TCHAR *fr_id,const TCHAR *ref_id,const TCHAR *user_or_serv_id,
COR_STAMP *upd_time, TCHAR *occur_deleted, void *objCaData, struct cor_status *ret_stat);
void am_upd_clr(long *alarm_def_ptr,long *alarm_occur_ptr,long *fr_ptr,long *alarm_fr_ptr,long *ref_ptr,
long *service_ptr,const TCHAR *alarm_id,const TCHAR *fr_id,const TCHAR *ref_id,const TCHAR *user_or_serv_id,
COR_STAMP *upd_time, TCHAR *occur_deleted, void *objCaData, struct cor_status *ret_stat);
void am_upd_repeat(long *alarm_def_ptr,long *alarm_occur_ptr,long *fr_ptr,long *alarm_fr_ptr,
long *ref_ptr,long *service_ptr,const TCHAR *alarm_id,const TCHAR *fr_id,const TCHAR *ref_id,
const TCHAR *user_or_serv_id, COR_STAMP *upd_time, TCHAR *occur_deleted,
struct cor_status *ret_stat);
void am_upd_del(long *alarm_def_ptr, long *alarm_occur_ptr, long *fr_ptr, long *alarm_fr_ptr,
long *ref_ptr, long *service_ptr, const TCHAR *alarm_id, const TCHAR *fr_id, const TCHAR *ref_id,
const TCHAR *user_or_serv_id, COR_STAMP *upd_time, void *objCaData, struct cor_status *ret_stat);
void am_upd_ca_serv_ack(long *alarm_def_ptr,long *alarm_occur_ptr,long *fr_ptr,long *alarm_fr_ptr,long *ref_ptr,
long *service_ptr,const TCHAR *alarm_id,const TCHAR *fr_id,const TCHAR *ref_id,const TCHAR *user_or_serv_id,
COR_STAMP *upd_time, TCHAR *occur_deleted,TCHAR *location,struct cor_status *ret_stat);
void am_upd_ca_serv_clr(long *alarm_def_ptr,long *alarm_occur_ptr,long *fr_ptr,long *alarm_fr_ptr,long *ref_ptr,
long *service_ptr,const TCHAR *alarm_id,const TCHAR *fr_id,const TCHAR *ref_id,const TCHAR *user_or_serv_id,
COR_STAMP *upd_time, TCHAR *occur_deleted,TCHAR *location,struct cor_status *ret_stat);
void am_upd_ca_serv_del(long *alarm_def_ptr, long *alarm_occur_ptr, long *fr_ptr, long *alarm_fr_ptr,
long *ref_ptr, long *service_ptr, const TCHAR *alarm_id, const TCHAR *fr_id, const TCHAR *ref_id,
const TCHAR *user_or_serv_id, COR_STAMP *upd_time,TCHAR *location, struct cor_status *ret_stat);
void am_upd_active_terms(void);
void am_updq_add(TCHAR *msg_ptr,struct datagram_address *sender,struct ipc_time_stamp *stamp,TCHAR rr_flag,TCHAR jrnl_recover);
void am_updq_process(struct cor_time_stamp *gentime);
void am_updq_add_resp(long *upd_req_ptr,int key,struct cor_status *cor_stat,int seq_num);
void am_updq_rem_req(long *upd_req_ptr);
void am_updq_rem_all_resp(long *upd_req_ptr);
void am_updq_send_resp(long *upd_req_ptr);
void am_ur_caradd(struct cor_status *ret_stat);
void am_ur_findnew(void);
int amrp_state(void);
void amrp_setstate(int new_state);
void amrp_remove_master_logical(void);
long *am_find_extmgr(struct datagram_address *pdaddr, TCHAR proc_name[]) ;
COR_I4 am_conc_pass_update_extmgr(DADDR *extmgr_daddr, int seg_type, TCHAR *seg_ptr, COR_I4 seg_len, COR_I4 rpt_len, COR_STATUS *ret_stat) ;
void am_process_ext_asmgr_req(TCHAR *msg_ptr, DADDR *sender, IPC_stamp *stamp, COR_BOOLEAN was_rr_flag) ;
COR_I4 am_init_extmgr() ;
void am_dd_comment_upd ( long *alarm_occur_ptr, long *alarm_comm_ptr, TCHAR comment_action ) ;
void am_dd_reset_term (RECORD_PTR alloc_proc_ptr);
int am_operhlp_load(AM_DADDR alloc_addr, RECORD_PTR alloc_req_ptr, TCHAR *alarmId, COR_STATUS *ret_stat);
COR_BOOLEAN am_proc_dead_asmgr (DADDR * psender);
COR_I4 am_init_updq_mutex(COR_STATUS *ret_stat);
int am_operhlp_filename(const TCHAR alarm_id[ALARM_ID_LEN + 1],
TCHAR helpFile[HELP_FNAME_LEN+1],
COR_STATUS *ret_stat);
int am_operhlp_count_lines(const TCHAR *help_file, int *count, COR_STATUS *retstat);
//scr 23546
BOOL am_remove_operhlp_extension(const TCHAR* i_help_file, TCHAR* o_help_file_no_ext);
BOOL am_gen_set_block_state(RECORD_PTR alarm_def_ptr,const TCHAR* fr_id);
void am_alarm_dump(TCHAR *msg_ptr);
void am_unblock_get_group_ptr(RECORD_PTR alarm_def_ptr,const TCHAR *fr_id,RECORD_PTR* org_blk_alarm_ptr,RECORD_PTR* blk_group_ptr);
void am_config_alarm_blk(void);
COR_I4 am_comment_file_erase(const TCHAR *palarm_id, const TCHAR *pres_id, const TCHAR *pref_id, COR_STATUS *pretstat);
COR_I4 am_comment_file_add(const TCHAR *palarm_id, const TCHAR *palarm_comment, COR_STAMP *pgentime
, const TCHAR *pres_id, const TCHAR *pref_id, COR_STATUS *pretstat);
COR_I4 am_comment_file_fetch(const TCHAR *palarm_id, RECORD_PTR alarm_occur_ptr
, const TCHAR *pres_id, const TCHAR *pref_id, COR_STATUS *pretstat);
void am_remove_all_alarm_comments(RECORD_PTR alarm_occur_ptr) ;
void am_comment_delete (
COR_STATUS *pret_stat,
const TCHAR *alarm_id,
const TCHAR *fr_id,
const TCHAR *ref_id,
const TCHAR *user_or_serv_id,
AM_STATE_TYPE action,
AM_COMMENT2_INFO *pcomment_info,
COR_STAMP *gentime,
RECORD_PTR alarm_occur_ptr,
RECORD_PTR alarm_def_ptr
) ;
void am_inc_alarm_count(RECORD_PTR alarm_def_ptr,int count);
void am_inc_alarm_acked_count(RECORD_PTR alarm_def_ptr,int count);
void am_inc_alarm_reset_count(RECORD_PTR alarm_def_ptr,int count);
void am_process_req_alarm_list(TCHAR* msg_ptr,DADDR* sender,COR_BOOLEAN rr_flag);
void am_process_req_alarm_state(TCHAR* msg_ptr,DADDR* sender,COR_BOOLEAN rr_flag);
int am_proc_alm_setup(TCHAR *setUpId);
int am_proc_alm_user(TCHAR *UserId);
RECORD_PTR am_config_new_user_id(TCHAR *user_id);
int GetAlarmLevelIndex(COR_I2 alarm_level);
void am_alloc_alarm_state(TCHAR (*alloc_addr)[30], TCHAR (*cm_addr)[30], RECORD_PTR alloc_req_ptr, const TCHAR* alarm_id, const TCHAR* fr_id, const TCHAR* ref_id, COR_STATUS* retstat);
void AddFilterItem(RECORD_PTR alloc_proc_ptr, int fieldIndex, int matchFlag, TCHAR *filterString);
#endif // _AM_DEFS_H