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.

420 lines
14 KiB
C

1 year ago
/************************************************************************/
/* SISCO SOFTWARE MODULE HEADER *****************************************/
/************************************************************************/
/* (c) Copyright Systems Integration Specialists Company, Inc., */
/* 1986 - 1997, All Rights Reserved. */
/* */
/* MODULE NAME : mms_pdom.h */
/* PRODUCT(S) : MMSEASE, MMSEASE-LITE */
/* */
/* MODULE DESCRIPTION : */
/* This file has the data structures and function definitions */
/* required to interface with MMS domain management services */
/* at the primitive level. */
/* */
/* Parameters : In general, the first parameter is the channel */
/* that the request or response is to be sent over. */
/* For Responses, the second parameter is the Invoke */
/* ID to be used. The last parameter is used to pass */
/* operation specific information by pointer. */
/* */
/* Return */
/* Values : Request functions return a pointer to the pending */
/* request tracking structure, of type MMSREQ_PEND. */
/* In case of error, the pointer is returned == 0 */
/* and mms_op_err is written with the err code. */
/* Response functions return 0 if OK, else an error */
/* code. */
/* */
/* MODIFICATION LOG : */
/* Date Who Rev Comments */
/* -------- --- ------ ------------------------------------------- */
/* 08/13/97 RKR 01 Format changes */
/* 04/02/97 DTL 7.00 MMSEASE 7.0 release. See MODL70.DOC for */
/* history. */
/************************************************************************/
#ifndef MMS_PDOM_INCLUDED
#define MMS_PDOM_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif
#include "mms_err.h" /* need for service error definition */
#include "mms_mp.h"
/************************************************************************/
/************************************************************************/
/* DOMAIN MANAGEMENT SERVICES */
/************************************************************************/
/* The structures below are used to pass DOMAIN MANAGEMENT information */
/* to/from the MMS primitives. */
/************************************************************************/
/* use these defines to determine whether load data is coded or not */
/* If coded, the data pointer points to a complete ASN.1 EXTERNAL */
#define LOAD_DATA_NON_CODED 0
#define LOAD_DATA_CODED 1
/************************************************************************/
/* INITIATE DOWNLOAD SEQUENCE */
/************************************************************************/
/* REQUEST : */
struct initdown_req_info
{
ST_CHAR dname [MAX_IDENT_LEN +1]; /* domain name */
ST_BOOLEAN sharable; /* boolean, no default */
ST_INT num_of_capab; /* number of capabilities */
/* list of capabilities */
/* ST_CHAR * capab_list [num_of_capab]; */
SD_END_STRUCT
};
typedef struct initdown_req_info INITDOWN_REQ_INFO;
/* RESPONSE : NULL */
#ifndef MMS_LITE
MMSREQ_PEND *mp_initdown (ST_INT chan, INITDOWN_REQ_INFO *info);
ST_RET mp_initdown_resp (MMSREQ_IND *ind);
#else
ST_RET mpl_initdown (INITDOWN_REQ_INFO *info);
ST_RET mpl_initdown_resp (ST_UINT32 invoke);
#endif
/************************************************************************/
/* DOWNLOAD SEGMENT */
/************************************************************************/
/* REQUEST : */
struct download_req_info
{
ST_CHAR dname [MAX_IDENT_LEN +1]; /* domain name */
};
typedef struct download_req_info DOWNLOAD_REQ_INFO;
/* RESPONSE : */
struct download_resp_info
{
ST_INT load_data_type; /* coded/non-coded */
ST_INT load_data_len; /* number of load data octets */
ST_UCHAR *load_data; /* pointer to load data octets */
ST_BOOLEAN more_follows; /* boolean, default to true */
};
typedef struct download_resp_info DOWNLOAD_RESP_INFO;
#ifndef MMS_LITE
MMSREQ_PEND *mp_download (ST_INT chan, DOWNLOAD_REQ_INFO *info);
ST_RET mp_download_resp (MMSREQ_IND *ind, DOWNLOAD_RESP_INFO *info);
#else
ST_RET mpl_download (DOWNLOAD_REQ_INFO *info);
ST_RET mpl_download_resp (ST_UINT32 invoke, DOWNLOAD_RESP_INFO *info);
#endif
/************************************************************************/
/* TERMINATE DOWNLOAD SEQUENCE */
/************************************************************************/
/* REQUEST : */
struct termdown_req_info
{
ST_CHAR dname [MAX_IDENT_LEN +1]; /* domain name */
ST_BOOLEAN discarded; /* boolean, default to false */
ERR_INFO *err; /* points to service error */
}; /* (IS only, for discarded != 0 */
typedef struct termdown_req_info TERMDOWN_REQ_INFO;
/* RESPONSE : NULL */
#ifndef MMS_LITE
MMSREQ_PEND *mp_termdown (ST_INT chan, TERMDOWN_REQ_INFO *info);
ST_RET mp_termdown_resp (MMSREQ_IND *ind);
#else
ST_RET mpl_termdown (TERMDOWN_REQ_INFO *info);
ST_RET mpl_termdown_resp (ST_UINT32 invoke);
#endif
/************************************************************************/
/* INITIATE UPLOAD SEQUENCE */
/************************************************************************/
/* REQUEST : */
struct initupl_req_info
{
ST_CHAR dname [MAX_IDENT_LEN +1]; /* domain name */
};
typedef struct initupl_req_info INITUPL_REQ_INFO;
/* RESPONSE : */
struct initupl_resp_info
{
ST_INT32 ulsmid; /* upload state machine id */
ST_INT num_of_capab; /* number of capabilities */
/* list of capabilities */
/* ST_CHAR *capab_list [num_of_capab]; */
SD_END_STRUCT
};
typedef struct initupl_resp_info INITUPL_RESP_INFO;
#ifndef MMS_LITE
MMSREQ_PEND *mp_initupl (ST_INT chan, INITUPL_REQ_INFO *info);
ST_RET mp_initupl_resp (MMSREQ_IND *ind, INITUPL_RESP_INFO *info);
#else
ST_RET mpl_initupl (INITUPL_REQ_INFO *info);
ST_RET mpl_initupl_resp (ST_UINT32 invoke, INITUPL_RESP_INFO *info);
#endif
/************************************************************************/
/* UPLOAD SEGMENT */
/************************************************************************/
/* REQUEST : */
struct upload_req_info
{
ST_INT32 ulsmid; /* upload state machine id */
};
typedef struct upload_req_info UPLOAD_REQ_INFO;
/* RESPONSE : */
struct upload_resp_info
{
ST_INT load_data_type; /* coded/non-coded */
ST_INT load_data_len; /* number of load data octets */
ST_UCHAR *load_data; /* pointer to load data octets */
ST_BOOLEAN more_follows; /* boolean, default to true */
};
typedef struct upload_resp_info UPLOAD_RESP_INFO;
#ifndef MMS_LITE
MMSREQ_PEND *mp_upload (ST_INT chan, UPLOAD_REQ_INFO *info);
ST_RET mp_upload_resp (MMSREQ_IND *ind, UPLOAD_RESP_INFO *info);
#else
ST_RET mpl_upload (UPLOAD_REQ_INFO *info);
ST_RET mpl_upload_resp (ST_UINT32 invoke, UPLOAD_RESP_INFO *info);
#endif
/************************************************************************/
/* TERMINATE UPLOAD SEQUENCE */
/************************************************************************/
/* REQUEST : */
struct termupl_req_info
{
ST_INT32 ulsmid; /* upload state machine id */
};
typedef struct termupl_req_info TERMUPL_REQ_INFO;
/* RESPONSE : NULL */
#ifndef MMS_LITE
MMSREQ_PEND *mp_termupl (ST_INT chan, TERMUPL_REQ_INFO *info);
ST_RET mp_termupl_resp (MMSREQ_IND *ind);
#else
ST_RET mpl_termupl (TERMUPL_REQ_INFO *info);
ST_RET mpl_termupl_resp (ST_UINT32 invoke);
#endif
/************************************************************************/
/* REQUEST DOMAIN DOWNLOAD */
/************************************************************************/
/* REQUEST : */
struct rddwn_req_info
{
ST_CHAR dname [MAX_IDENT_LEN +1]; /* domain name */
ST_BOOLEAN sharable; /* boolean, no default */
ST_INT num_of_capab; /* number of capabilities */
ST_INT num_of_fname; /* num of fname elements */
/* list of capabilities */
/* ST_CHAR * capab_list [num_of_capab]; */
/* list of file names */
/* FILE_NAME fname_list[ num_of_fname ]; */
SD_END_STRUCT
};
typedef struct rddwn_req_info RDDWN_REQ_INFO;
/* RESPONSE : NULL */
#ifndef MMS_LITE
MMSREQ_PEND *mp_rddwn (ST_INT chan, RDDWN_REQ_INFO *info);
ST_RET mp_rddwn_resp (MMSREQ_IND *ind);
#else
ST_RET mpl_rddwn (RDDWN_REQ_INFO *info);
ST_RET mpl_rddwn_resp (ST_UINT32 invoke);
#endif
/************************************************************************/
/* REQUEST DOMAIN UPLOAD */
/************************************************************************/
/* REQUEST : */
struct rdupl_req_info
{
ST_CHAR dname [MAX_IDENT_LEN +1]; /* domain name */
ST_INT num_of_fname; /* num of fname elements */
/* list of file names */
/* FILE_NAME fname_list[ num_of_fname ]; */
SD_END_STRUCT
};
typedef struct rdupl_req_info RDUPL_REQ_INFO;
/* RESPONSE : NULL */
#ifndef MMS_LITE
MMSREQ_PEND *mp_rdupl (ST_INT chan, RDUPL_REQ_INFO *info);
ST_RET mp_rdupl_resp (MMSREQ_IND *ind);
#else
ST_RET mpl_rdupl (RDUPL_REQ_INFO *info);
ST_RET mpl_rdupl_resp (ST_UINT32 invoke);
#endif
/************************************************************************/
/* LOAD DOMAIN CONTENT */
/************************************************************************/
/* REQUEST : */
struct loaddom_req_info
{
ST_CHAR dname [MAX_IDENT_LEN +1]; /* domain name */
ST_BOOLEAN sharable; /* boolean, no default */
ST_BOOLEAN third_pty_pres; /* third party used */
ST_INT third_pty_len; /* the length of third party */
ST_UCHAR *third_pty; /* ptr to third party ASN.1 */
ST_INT num_of_capab; /* number of capabilities */
ST_INT num_of_fname; /* num of fname elements */
/* list of capabilities */
/* ST_CHAR *capab_list [num_of_capab]; */
/* list of file names */
/* FILE_NAME fname_list[ num_of_fname ]; */
SD_END_STRUCT
};
typedef struct loaddom_req_info LOADDOM_REQ_INFO;
/* RESPONSE : NULL */
#ifndef MMS_LITE
MMSREQ_PEND *mp_loaddom (ST_INT chan, LOADDOM_REQ_INFO *info);
ST_RET mp_loaddom_resp (MMSREQ_IND *ind);
#else
ST_RET mpl_loaddom (LOADDOM_REQ_INFO *info);
ST_RET mpl_loaddom_resp (ST_UINT32 invoke);
#endif
/************************************************************************/
/* STORE DOMAIN CONTENT */
/************************************************************************/
/* REQUEST : */
struct storedom_req_info
{
ST_CHAR dname [MAX_IDENT_LEN +1]; /* domain name */
ST_INT num_of_fname; /* num of fname elements */
ST_BOOLEAN third_pty_pres; /* third party used */
ST_INT third_pty_len; /* the length of third party */
ST_UCHAR *third_pty; /* ptr to third party ASN.1 */
/* list of file names */
/* FILE_NAME fname_list[ num_of_fname ]; */
SD_END_STRUCT
};
typedef struct storedom_req_info STOREDOM_REQ_INFO;
/* RESPONSE : NULL */
#ifndef MMS_LITE
MMSREQ_PEND *mp_storedom (ST_INT chan, STOREDOM_REQ_INFO *info);
ST_RET mp_storedom_resp (MMSREQ_IND *ind);
#else
ST_RET mpl_storedom (STOREDOM_REQ_INFO *info);
ST_RET mpl_storedom_resp (ST_UINT32 invoke);
#endif
/************************************************************************/
/* DELETE DOMAIN */
/************************************************************************/
/* REQUEST : */
struct deldom_req_info
{
ST_CHAR dname [MAX_IDENT_LEN +1]; /* domain name */
};
typedef struct deldom_req_info DELDOM_REQ_INFO;
/* RESPONSE : NULL */
#ifndef MMS_LITE
MMSREQ_PEND *mp_deldom (ST_INT chan, DELDOM_REQ_INFO *info);
ST_RET mp_deldom_resp (MMSREQ_IND *ind);
#else
ST_RET mpl_deldom (DELDOM_REQ_INFO *info);
ST_RET mpl_deldom_resp (ST_UINT32 invoke);
#endif
/************************************************************************/
/* GET DOMAIN ATTRIBUTE */
/************************************************************************/
/* REQUEST : */
struct getdom_req_info
{
ST_CHAR dname [MAX_IDENT_LEN +1]; /* domain name */
};
typedef struct getdom_req_info GETDOM_REQ_INFO;
/* RESPONSE : */
struct getdom_resp_info
{
ST_INT num_of_capab; /* number of capabilities */
ST_BOOLEAN mms_deletable; /* MMS deletable, no default */
ST_BOOLEAN sharable; /* boolean, no default */
ST_INT num_of_pinames; /* number of pi names */
ST_INT16 state; /* 0 : non-existent */
/* 1 : loaded */
/* 2 : ready */
/* 3 : in use */
/* 4 : complete */
/* 5 : incomplete */
/* 6-15 : d1-d8 (IS) */
ST_INT8 upload_in_progress; /* upload in progress */
/* list of pointers to capabilities */
/* ST_CHAR *capab_list [num_of_capab]; */
/* list of pointers to program invocation names */
/* ST_CHAR *pinames_list [num_of_pinames]; */
SD_END_STRUCT
};
typedef struct getdom_resp_info GETDOM_RESP_INFO;
#ifndef MMS_LITE
MMSREQ_PEND *mp_getdom (ST_INT chan, GETDOM_REQ_INFO *info);
ST_RET mp_getdom_resp (MMSREQ_IND *ind, GETDOM_RESP_INFO *info);
#else
ST_RET mpl_getdom (GETDOM_REQ_INFO *info);
ST_RET mpl_getdom_resp (ST_UINT32 invoke, GETDOM_RESP_INFO *info);
#endif
#ifdef __cplusplus
}
#endif
#endif /* #define MMS_PDOM_INCLUDED */