You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
235 lines
7.5 KiB
C
235 lines
7.5 KiB
C
1 year ago
|
/************************************************************************/
|
||
|
/* SISCO SOFTWARE MODULE HEADER *****************************************/
|
||
|
/************************************************************************/
|
||
|
/* (c) Copyright Systems Integration Specialists Company, Inc., */
|
||
|
/* 1986 - 2001, All Rights Reserved. */
|
||
|
/* */
|
||
|
/* MODULE NAME : mms_mp.h */
|
||
|
/* PRODUCT(S) : MMSEASE, MMSEASE-LITE */
|
||
|
/* */
|
||
|
/* MODULE DESCRIPTION : */
|
||
|
/* This file has the common data structures and general function */
|
||
|
/* declarations required to interface with MMS at the primitive */
|
||
|
/* level. */
|
||
|
/* */
|
||
|
/* MODIFICATION LOG : */
|
||
|
/* Date Who Rev Comments */
|
||
|
/* -------- --- ------ ------------------------------------------- */
|
||
|
/* 12/20/01 JRB 05 Convert to use ASN1R. */
|
||
|
/* 08/15/97 MDE 04 BTOD handling changes */
|
||
|
/* 08/14/97 RKR 03 Format changes */
|
||
|
/* 06/11/97 RKR 02 Added constants for EXTERNAL encoding tag */
|
||
|
/* 06/09/97 MDE 01 MMS-LITE define changes */
|
||
|
/* 04/02/97 DTL 7.00 MMSEASE 7.0 release. See MODL70.DOC for */
|
||
|
/* history. */
|
||
|
/************************************************************************/
|
||
|
|
||
|
#ifndef MMS_MP_INCLUDED
|
||
|
#define MMS_MP_INCLUDED
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
#include "asn1defs.h"
|
||
|
#ifndef MMS_LITE
|
||
|
#include "mms_defs.h"
|
||
|
#endif
|
||
|
|
||
|
/************************************************************************/
|
||
|
/* MMS-LITE specific defines */
|
||
|
|
||
|
#if defined(MMS_LITE)
|
||
|
/* For MMS-LITE, we will use 'lite' versions of some data structures */
|
||
|
#define USE_COMPACT_MMS_STRUCTS
|
||
|
|
||
|
/* For MMS-LITE, we will supply a single static decode info buffer */
|
||
|
#define M_USR_DEC_BUF
|
||
|
#endif
|
||
|
|
||
|
/************************************************************************/
|
||
|
/* Common default values for priority and severity */
|
||
|
/************************************************************************/
|
||
|
|
||
|
#define MMS_NORM_PRIORITY 64
|
||
|
#define MMS_NORM_SEVERITY 64
|
||
|
|
||
|
/************************************************************************/
|
||
|
/* Object Name - This structure is used to reference MMS objects */
|
||
|
/************************************************************************/
|
||
|
|
||
|
/* These defines may be used for the object_tag element selector */
|
||
|
#define VMD_SPEC 0
|
||
|
#define DOM_SPEC 1
|
||
|
#define AA_SPEC 2
|
||
|
|
||
|
#if !defined (USE_COMPACT_MMS_STRUCTS)
|
||
|
|
||
|
/* Standard form of object name */
|
||
|
struct object_name
|
||
|
{
|
||
|
ST_INT object_tag; /* See above for legal values */
|
||
|
union
|
||
|
{
|
||
|
ST_CHAR vmd_spec [MAX_IDENT_LEN+1]; /* vmd specific identifier */
|
||
|
ST_CHAR item_id [MAX_IDENT_LEN+1]; /* item identifier */
|
||
|
ST_CHAR aa_spec [MAX_IDENT_LEN+1]; /* aa specific identifier */
|
||
|
} obj_name;
|
||
|
ST_CHAR domain_id [MAX_IDENT_LEN+1]; /* domain identifier */
|
||
|
SD_END_STRUCT
|
||
|
};
|
||
|
|
||
|
#else /* Use compact form */
|
||
|
|
||
|
/* Compact form of object name */
|
||
|
struct object_name
|
||
|
{
|
||
|
ST_INT object_tag; /* See above for legal values */
|
||
|
union
|
||
|
{
|
||
|
ST_CHAR *vmd_spec; /* vmd specific identifier */
|
||
|
ST_CHAR *item_id; /* item identifier */
|
||
|
ST_CHAR *aa_spec; /* aa specific identifier */
|
||
|
} obj_name;
|
||
|
ST_CHAR *domain_id; /* domain identifier */
|
||
|
SD_END_STRUCT
|
||
|
};
|
||
|
#endif
|
||
|
|
||
|
typedef struct object_name OBJECT_NAME;
|
||
|
|
||
|
|
||
|
/************************************************************************/
|
||
|
/* timeofday, event_time, attach_to_evcon, attach_to_semaphore and */
|
||
|
/* modifier structure definitions. */
|
||
|
/************************************************************************/
|
||
|
|
||
|
struct event_time
|
||
|
{
|
||
|
ST_INT16 evtime_tag; /* event time tag */
|
||
|
/* 0: time of day */
|
||
|
/* 1: time sequence identifier */
|
||
|
/* 2: undefined */
|
||
|
union
|
||
|
{
|
||
|
MMS_BTOD time_of_day; /* time of day */
|
||
|
ST_UINT32 time_seq_id; /* time sequence identifier */
|
||
|
} evtime;
|
||
|
};
|
||
|
typedef struct event_time EVENT_TIME;
|
||
|
|
||
|
struct attach_to_evcon
|
||
|
{
|
||
|
OBJECT_NAME evenroll_name; /* event enrollment name */
|
||
|
OBJECT_NAME evcon_name; /* event condition name */
|
||
|
ST_UCHAR causing_transitions; /* causing transitions: */
|
||
|
/* bitstring */
|
||
|
/* 0 : idle to disabled */
|
||
|
/* 1 : active to disabled */
|
||
|
/* 2 : disabled to idle */
|
||
|
/* 3 : active to idle */
|
||
|
/* 4 : disabled to active */
|
||
|
/* 5 : idle to active */
|
||
|
/* 6 : any to deleted */
|
||
|
ST_BOOLEAN acc_delay_pres; /* acceptable delay present */
|
||
|
ST_UINT32 acc_delay; /* acceptable delay */
|
||
|
SD_END_STRUCT
|
||
|
};
|
||
|
typedef struct attach_to_evcon ATTACH_TO_EVCON;
|
||
|
|
||
|
struct attach_to_semaphore
|
||
|
{
|
||
|
OBJECT_NAME sem_name; /* semaphore name */
|
||
|
ST_BOOLEAN named_token_pres; /* named token present ind */
|
||
|
ST_CHAR named_token[MAX_IDENT_LEN+1];/* named token */
|
||
|
ST_UCHAR priority; /* priority */
|
||
|
/* 0 - highest */
|
||
|
/* 64 - normal (default) */
|
||
|
/* 127 - lowest */
|
||
|
ST_BOOLEAN acc_delay_pres; /* acceptable delay present */
|
||
|
ST_UINT32 acc_delay; /* acceptable delay */
|
||
|
ST_BOOLEAN ctrl_timeout_pres; /* control timeout present */
|
||
|
ST_UINT32 ctrl_timeout; /* control timeout */
|
||
|
ST_BOOLEAN abrt_on_timeout_pres; /* Abort On Timeout present */
|
||
|
ST_BOOLEAN abrt_on_timeout; /* Abort On Timeout */
|
||
|
ST_BOOLEAN rel_conn_lost; /* relinquish if connection */
|
||
|
SD_END_STRUCT
|
||
|
}; /* lost (default = true) */
|
||
|
typedef struct attach_to_semaphore ATTACH_TO_SEMAPHORE;
|
||
|
|
||
|
struct modifier
|
||
|
{
|
||
|
ST_INT modifier_tag; /* modifier tag */
|
||
|
/* 0:attach to event condition */
|
||
|
/* 1:attach to semaphore */
|
||
|
union
|
||
|
{
|
||
|
ATTACH_TO_EVCON atec; /* attach to event condition */
|
||
|
ATTACH_TO_SEMAPHORE atsem; /* attach to semaphore */
|
||
|
} mod;
|
||
|
SD_END_STRUCT
|
||
|
};
|
||
|
typedef struct modifier MODIFIER;
|
||
|
|
||
|
/************************************************************************/
|
||
|
/* File Name */
|
||
|
/************************************************************************/
|
||
|
|
||
|
struct file_name
|
||
|
{
|
||
|
ST_INT fn_len; /* The length of the string */
|
||
|
ST_CHAR *fname; /* pointer to actual filename string */
|
||
|
SD_END_STRUCT
|
||
|
};
|
||
|
typedef struct file_name FILE_NAME;
|
||
|
|
||
|
/************************************************************************/
|
||
|
/* Values for the encoding_tag of an EXTERN_INFO */
|
||
|
/************************************************************************/
|
||
|
|
||
|
#define M_EXT_TAG_ANY 0
|
||
|
#define M_EXT_TAG_OCT_ALIGNED 1
|
||
|
#define M_EXT_TAG_ARB 2
|
||
|
|
||
|
/************************************************************************/
|
||
|
/* EXTERNAL */
|
||
|
/* The structure below is used to store ASN.1 type EXTERNAL in "C" */
|
||
|
/* format. */
|
||
|
/************************************************************************/
|
||
|
|
||
|
struct extern_info
|
||
|
{
|
||
|
ST_BOOLEAN dir_ref_pres; /* direct reference present */
|
||
|
MMS_OBJ_ID dir_ref;
|
||
|
|
||
|
ST_BOOLEAN indir_ref_pres; /* indirect reference present */
|
||
|
ST_INT32 indir_ref; /* indirect reference value */
|
||
|
|
||
|
ST_BOOLEAN dv_descr_pres; /* data value descript pres */
|
||
|
ST_INT dv_descr_len; /* data value descr. len */
|
||
|
ST_UCHAR *dv_descr; /* data value descr. ptr */
|
||
|
|
||
|
ST_CHAR encoding_tag; /* type of encoding */
|
||
|
ST_INT num_bits; /* for arbitrary only */
|
||
|
ST_INT data_len; /* # bytes of data */
|
||
|
ST_UCHAR *data_ptr; /* data pointer */
|
||
|
SD_END_STRUCT
|
||
|
};
|
||
|
typedef struct extern_info EXTERN_INFO;
|
||
|
|
||
|
|
||
|
ST_RET ms_encode_extern (EXTERN_INFO *src,
|
||
|
ST_UCHAR *asn1dest, ST_INT destlen,
|
||
|
ST_INT *len_out, ST_UCHAR **asn1_start_out);
|
||
|
|
||
|
ST_RET ms_decode_extern (ST_UCHAR *asn1, ST_INT asn1len, EXTERN_INFO *dest);
|
||
|
|
||
|
ST_VOID wr_external (ASN1_ENC_CTXT *aCtx, EXTERN_INFO *ext);
|
||
|
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif /* MMS_MP_INCLUDED */
|