Tivoli Header

Tivoli Storage Manager Using the Application Program Interface


Appendix A. API Type Definitions Source File

This appendix contains structure definitions, type definitions, and constants for the application program interface (API). The first header files, dsmapitd.h and tsmapitd.h, illustrate the definitions that are common to all operating systems.

The second header file, dsmapips.h, provides an example of definitions that are specific to a particular operating system; in this example, the Windows platform.

The third header file, release.h, includes the version and release information.




/***********************************************************************
* Tivoli Storage Manager                                               *
* API Client Component                                                 *
*                                                                      *
* (C) Copyright IBM Corporation 1993, 2002                             *
***********************************************************************/
 
/***********************************************************************
* Header File Name: dsmapitd.h
*
* Environment:     ************************************************
*                  ** This is a platform-independent source file **
*                  ************************************************
*
* Design Notes: This file contains basic data types and constants that 
*               all client source files include. The constants
*               within this file should be set properly for the
*               particular machine and operating system on which the
*               client software will be run.
*
*               Platform-specific definitions are included in dsmapips.h
*
* Descriptive name: Definitions for Tivoli Storage Manager API constants 
*----------------------------------------------------------------------*/
 
#ifndef _H_DSMAPITD
#define _H_DSMAPITD
 
 
#include "dsmapips.h"      /* Platform specific definitions*/
#include "release.h"
 
 
/*=== set the structure alignment to pack the structures  ===*/
#if _OPSYS_TYPE == DS_WINNT) && !defined(_WIN64)
#pragma pack(1)
#endif
 
 
#if _OPSYS_TYPE == DS_MACOS
#pragma options align = packed
#pragma align_array_members off
#endif
 
typedef char osChar_t;
 
 
 
/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>*/
/*                     D E F I N E S                                      */
/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>*/
/*-------------------------------------------------------------------------+
|  API Version, Release, and Level to use in dsmApiVersion on dsmInit()    |
+-------------------------------------------------------------------------*/
#define DSM_API_VERSION     COMMON_VERSION
#define DSM_API_RELEASE     COMMON_RELEASE
#define DSM_API_LEVEL       COMMON_LEVEL
#define DSM_API_SUBLEVEL    COMMON_SUBLEVEL
 
/*-----------------------------------------------------------------------+
| Maximum field lengths                                                  |
+-----------------------------------------------------------------------*/
#define DSM_MAX_CG_DEST_LENGTH        30      /* copy group destination */
#define DSM_MAX_CG_NAME_LENGTH        30      /* copy group name        */
#define DSM_MAX_DESCR_LENGTH          255     /* archive description    */
#define DSM_MAX_DOMAIN_LENGTH         30      /* policy domain name     */
#define DSM_MAX_FSINFO_LENGTH         500     /* filespace information  */
#define DSM_MAX_USER_FSINFO_LENGTH    480     /* max user filespace info*/
#define DSM_MAX_FSNAME_LENGTH         1024    /* filespace name         */
#define DSM_MAX_FSTYPE_LENGTH         32      /* filespace type         */
#define DSM_MAX_HL_LENGTH             1024    /* object high level name */
#define DSM_MAX_ID_LENGTH             64      /* session node name      */
#define DSM_MAX_LL_LENGTH             256     /* object low level name  */
#define DSM_MAX_MC_NAME_LENGTH        30      /* management class name  */
#define DSM_MAX_OBJINFO_LENGTH        255     /* object information    */
#define DSM_MAX_OWNER_LENGTH          64      /* object owner name      */
#define DSM_MAX_PLATFORM_LENGTH       16      /* application type       */
#define DSM_MAX_PS_NAME_LENGTH        30      /* policy set name        */
#define DSM_MAX_SERVERTYPE_LENGTH     32      /* server platform type   */
#define DSM_MAX_VERIFIER_LENGTH       64      /* password               */
#define DSM_PATH_MAX                  1024    /* API config file path   */
#define DSM_NAME_MAX                  255     /* API config file name   */
#define DSM_MAX_NODE_LENGTH           64      /* node/machine name      */
#define DSM_MAX_RC_MSG_LENGTH         1024    /* msg parm for dsmRCMsg  */
#define DSM_MAX_SERVER_ADDRESS        1024            /* server address */
 
#define DSM_MAX_MC_DESCR_LENGTH     DSM_MAX_DESCR_LENGTH /* mgmt class  */
#define DSM_MAX_SERVERNAME_LENGTH   DSM_MAX_ID_LENGTH /* server name    */
#define DSM_MAX_GET_OBJ               4080  /* max objects on BeginGetData */
#define DSM_MAX_PARTIAL_GET_OBJ       1300      /* max partial objects on  */
                                                        /*BeginGetData  */
 
/*-----------------------------------------------------------------------+
| Minimum field lengths                                                  |
+-----------------------------------------------------------------------*/
#define DSM_MIN_COMPRESS_SIZE  2048 /* minimum number of bytes an object*/
                                  /* needs before compression is allowed*/
 
/*-----------------------------------------------------------------------+
|  Values for mtFlag in dsmSetup call                                    |
+-----------------------------------------------------------------------*/
#define DSM_MULTITHREAD      bTrue      
#define DSM_SINGLETHREAD     bFalse     
 
/*-----------------------------------------------------------------------+
|  Values for object type in dsmObjName structure  
|  Note: These values must be kept in sync with dsmcomm.h                |
+-----------------------------------------------------------------------*/
#define DSM_OBJ_FILE        0x01                /* object has attribute */
                                               /* information and data */
#define DSM_OBJ_DIRECTORY   0x02  /* object has only attribute information */
#define DSM_OBJ_ALL_VIRTVOLUME        0x04
#define DSM_OBJ_NQR_FILES_AND_DIRS    0x05
#define DSM_OBJ_IMAGE       0x06  /* for future use                     */
#define DSM_OBJ_WILDCARD    0xFE /* Any object type                     */
#define DSM_OBJ_ANY_TYPE    0xFF  /* for future use                     */
 
/*-------------------------------------------------------------------------+
| Type definition for compressedState in QryResp                           |
+-------------------------------------------------------------------------*/
#define DSM_OBJ_COMPRESSED_UNKNOWN    0
#define DSM_OBJ_COMPRESSED_YES        1
#define DSM_OBJ_COMPRESSED_NO         2
 
/*---------------------------------------------------------------------+
| Definitions for "group type" field in tsmGrouphandlerIn_t            |
+---------------------------------------------------------------------*/
 
#define  DSM_GROUPTYPE_NONE         0x00   /* Not a group member            */
#define  DSM_GROUPTYPE_DELTA        0x01   /* Delta/base group              */
#define  DSM_GROUPTYPE_PEER         0x02   /* Peer group                    */
#define  DSM_GROUPTYPE_IMAGE_DELTA  0x03   /* NAS image delta/base group    */
 
/*---------------------------------------------------------------------+
| Definitions for "member type" field in tsmGrouphandlerIn_t           |
+---------------------------------------------------------------------*/
 
#define  DSM_MEMBERTYPE_LEADER      0x01   /* group leader  */
#define  DSM_MEMBERTYPE_MEMBER      0x02   /* group member  */
 
/*---------------------------------------------------------------------+
| Definitions for "operation type" field in tsmGrouphandlerIn_t         |
+---------------------------------------------------------------------*/
#define DSM_GROUP_ACTION_BEGIN         0x01
#define DSM_GROUP_ACTION_OPEN          0x02 /* create new group             */
#define DSM_GROUP_ACTION_CLOSE         0x03 /* commit and save an open group */
#define DSM_GROUP_ACTION_ADD           0x04 /* Append to a group */
#define DSM_GROUP_ACTION_ASSIGNTO      0x05 /* Assign to a another group */
#define DSM_GROUP_ACTION_REMOVE        0x06 /* remove a member from a group */
 
/*-----------------------------------------------------------------------+
| Values for copySer in DetailCG structures for Query Mgmt Class response |
+-----------------------------------------------------------------------*/
#define Copy_Serial_Static          1  /*Copy Serialization Static        */
#define Copy_Serial_Shared_Static   2 /*Copy Serialization Shared Static */
#define Copy_Serial_Shared_Dynamic  3  /*Copy Serialization Shared Dynamic */
#define Copy_Serial_Dynamic         4  /*Copy Serialization Dynamic        */
 
 
/*-------------------------------------------------------------------------+
| Values for copyMode in DetailCG structures for Query Mgmt Class response |
+-------------------------------------------------------------------------*/
#define Copy_Mode_Modified          1   /*Copy Mode Modified              */
#define Copy_Mode_Absolute          2   /*Copy Mode Absolute              */
/*-------------------------------------------------------------------------+
|  Values for objState in qryBackupData structure                          |
+-------------------------------------------------------------------------*/
#define DSM_ACTIVE            0x01      /* query only active objects      */
#define DSM_INACTIVE          0x02      /* query only inactive objects    */
#define DSM_ANY_MATCH         0xFF      /* query all backup objects       */
 
/*-------------------------------------------------------------------------+
| Boundary values for dsmDate.year field in qryArchiveData structure       |
+-------------------------------------------------------------------------*/
#define DATE_MINUS_INFINITE         0x0000      /* lowest boundary        */
#define DATE_PLUS_INFINITE          0xFFFF      /* highest upper boundary */
 
/*-------------------------------------------------------------------------+
| Bits masks for update action parameter on dsmUpdateFS()                  |
+-------------------------------------------------------------------------*/
#define DSM_FSUPD_FSTYPE              ((unsigned) 0x00000002)
#define DSM_FSUPD_FSINFO              ((unsigned) 0x00000004)
#define DSM_FSUPD_BACKSTARTDATE       ((unsigned) 0x00000008)
#define DSM_FSUPD_BACKCOMPLETEDATE    ((unsigned) 0x00000010)
#define DSM_FSUPD_OCCUPANCY           ((unsigned) 0x00000020)
#define DSM_FSUPD_CAPACITY            ((unsigned) 0x00000040)
#define DSM_FSUPD_INCRIMAGEDATE       ((unsigned) 0x00000100)
/*-------------------------------------------------------------------------+
| Bits mask for backup update action parameter on dsmUpdateObj()           |
+-------------------------------------------------------------------------*/
#define DSM_BACKUPD_OWNER              ((unsigned) 0x00000001)
#define DSM_BACKUPD_OBJINFO            ((unsigned) 0x00000002)
#define DSM_BACKUPD_MC                 ((unsigned) 0x00000004)
 
#define DSM_ARCHUPD_OWNER              ((unsigned) 0x00000001)
#define DSM_ARCHUPD_OBJINFO            ((unsigned) 0x00000002)
#define DSM_ARCHUPD_DESCR              ((unsigned) 0x00000004)
 
 
/*-------------------------------------------------------------------------+
|  Values for repository parameter on dsmDeleteFS()                        |
+-------------------------------------------------------------------------*/
#define DSM_ARCHIVE_REP       0x0A      /* archive repository             */
#define DSM_BACKUP_REP        0x0B      /* backup repository              */
#define DSM_REPOS_ALL         0x01      /* all repository types           */
 
/*-------------------------------------------------------------------------+
|  Values for vote parameter on dsmEndTxn()                                |
+-------------------------------------------------------------------------*/
#define DSM_VOTE_COMMIT  1             /* commit current transaction      */
#define DSM_VOTE_ABORT   2             /* roll back current transaction   */
 
/*-------------------------------------------------------------------------+
|  Values for various flags returned in ApiSessInfo structure              |
+-------------------------------------------------------------------------*/
/* Client compression field codes */
#define COMPRESS_YES    1    /* client must compress data             */
#define COMPRESS_NO     2    /* client must NOT compress data         */
#define COMPRESS_CD     3    /* client determined                     */
 
/* Archive delete permission codes. */
#define ARCHDEL_YES     1    /* archive delete allowed                */
#define ARCHDEL_NO      2    /* archive delete NOT allowed            */
 
/* Backup delete permission codes. */
#define BACKDEL_YES     1    /* backup delete allowed                 */
#define BACKDEL_NO      2    /* backup delete NOT allowed             */
/*-------------------------------------------------------------------------+
| Values for various flags returned in optStruct structure.                |
+--------------------------------------------------------------------------*/
#define DSM_PASSWD_GENERATE  1
#define DSM_PASSWD_PROMPT    0
#define DSM_COMM_TCP        1
#define DSM_COMM_PVM_IUCV   2
#define DSM_COMM_3270       3
#define DSM_COMM_IUCV       4
#define DSM_COMM_PWSCS      5
#define DSM_COMM_SNA_LU6_2  6
#define DSM_COMM_IPXSPX     7     /* For IPX/SPX support */
#define DSM_COMM_NETBIOS    8     /* NETBIOS */
#define DSM_COMM_NAMEDPIPE  9     /* Named pipes */
#define DSM_COMM_400COMM   10
#define DSM_COMM_SHM       11     /* Shared Memory */
#define DSM_COMM_CLIO      12     /* CLIO/S */
 
/*-------------------------------------------------------------------------+
|  Values for userNameAuthorities returned on dsmInitEx for future use     |
+-------------------------------------------------------------------------*/
#define DSM_USERAUTH_NONE     ((dsInt16_t)0x0000)
#define DSM_USERAUTH_ACCESS   ((dsInt16_t)0x0001)
#define DSM_USERAUTH_OWNER    ((dsInt16_t)0x0002)
#define DSM_USERAUTH_POLICY   ((dsInt16_t)0x0004)
#define DSM_USERAUTH_SYSTEM   ((dsInt16_t)0x0008)
 
/*---------------------------------------------------------------------+
| Definitions for mediaClass field.                                    |
+---------------------------------------------------------------------*/
/*
 *  The following constants define a hierarchy of media access classes.
 *  Lower numbers indicate media that can supply faster access to data.
 */
/* Fixed: represents the class of local, on-line, fixed media (such as
          hard disks). Represents minimal delays in retrieval. */
#define  MEDIA_FIXED          0x10
 
 
/* Library: represents the class of local, mountable media accessible
            through a mechanical mounting device, in which there are
            typically small variations in mount time. */
#define  MEDIA_LIBRARY        0x20
 
/* Network: represents storage media accessible via a network server. */
#define  MEDIA_NETWORK        0x30
 
/* Shelf: represents the class of local, mountable media accessible only
          via human intervention. There can be large variations in the
          mount time. */
#define  MEDIA_SHELF          0x40
 
/* Offsite: represents media stored in an off-site location. The
            media are not accessible via local mounting procedures
            or direct attachment through a network. */
#define  MEDIA_OFFSITE        0x50
 
/* Unavailable: represents media that are (for whatever reason)
                inaccessible for retrieval. */
#define  MEDIA_UNAVAILABLE    0xF0
 
/*-------------------------------------------------------------------------+
| Type definition for partial object data for dsmBeginGetData()            |
+-------------------------------------------------------------------------*/
typedef struct
{
    dsUint16_t     stVersion;          /* Structure version                */
    dsStruct64_t   partialObjOffset; /* offset into object to begin reading*/
    dsStruct64_t   partialObjLength;   /* amount of object to read         */
} PartialObjData ;               /* partial object data                    */
 
#define PartialObjDataVersion 1  /*                                        */
 
/*--------------------------------------------------------------------------+
|  Type definition for date structure                                       |
+--------------------------------------------------------------------------*/
typedef struct
{
    dsUint16_t    year;         /* year, 16-bit integer (for example, 2002)*/
    dsUint8_t     month;              /* month, 8-bit integer (1 - 12)     */
    dsUint8_t     day;                /* day, 8-bit integer (1 - 31)       */
    dsUint8_t     hour                /* hour, 8-bit integer (0 - 23)      */
    dsUint8_t     minute;             /* minute, 8-bit integer (0 - 59)    */
    dsUint8_t     second;             /* second, b-bit integer (0 - 59)    */
} dsmDate ;
 
/*-------------------------------------------------------------------------+
|  Type definition for Object ID on dsmGetObj() and in dsmGetList structure|
+-------------------------------------------------------------------------*/
typedef dsStruct64_t  ObjID ;
 
 
/*-------------------------------------------------------------------------+
| Type definition for dsmQueryBuff on dsmBeginQuery()                      |
+-------------------------------------------------------------------------*/
typedef void dsmQueryBuff ;
/*-------------------------------------------------------------------------+
| Type definition for dsmGetType parameter on dsmBeginGetData()            |
+-------------------------------------------------------------------------*/
typedef enum
{
        gtBackup = 0x00,                     /* Backup processing type    */
        gtArchive                            /* Archive processing type   */
} dsmGetType ;
/*-------------------------------------------------------------------------+
|  Type definition for dsmQueryType parameter on dsmBeginQuery()           |
+-------------------------------------------------------------------------*/
typedef enum
{
    qtArchive = 0x00,                               /* Archive query type */
    qtBackup,                                        /* Backup query type */
    qtBackupActive,                 /* Fast query for active backup files */
    qtFilespace,                                  /* Filespace query type */
    qtMC                                   /* Management class query type */
    qtAuthNodes,                       /* future use                         */
    qtRemoteFS,                        /* future use                         */
    qtRemoteProcess,                   /* future use                         */
    qtOption,                          /* future use                         */
    qtBackupGroups,                    /* group leaders in a specific fs     */
    qtOpenGroups                       /* Open groups in a specific fs       */
} dsmQueryType ;
/*-------------------------------------------------------------------------+
|  Type definition for sendType parameter on dsmBindMC() and dsmSendObj()  |
+-------------------------------------------------------------------------*/
typedef enum
{
    stBackup = 0x00,                         /* Backup processing type    */
    stArchive,                               /* Archive processing type   */
    stBackupMountWait,           /* Backup processing with mountwait on   */
    stArchiveMountWait           /* Archive processing with mountwait on  */
} dsmSendType ;
 
/*-------------------------------------------------------------------------+
|  Type definition for delType parameter on dsmDeleteObj()                 |
+-------------------------------------------------------------------------*/
typedef enum
{
    dtArchive = 0x00,                              /* Archive delete type */
    dtBackup                           /* Backup delete (deactivate) type */
    dtBackupID                         /* Backup delete (remove)     type */
} dsmDelType ;
/*-------------------------------------------------------------------------+
|  Type definition sendType parameter on dsmSetAccess ()                   |
+-------------------------------------------------------------------------*/
typedef enum
{
    atBackup = 0x00,                            /* Backup processing type */
    atArchive                                  /* Archive processing type */
} dsmAccessType;
 
 
/*-------------------------------------------------------------------------+
|  Type definition for API Version on dsmInit() and dsmQueryApiVersion()   |
+-------------------------------------------------------------------------*/
typedef struct
{
   dsUint16_t version;       /* API version                      */
   dsUint16_t release;       /* API release                      */
   dsUint16_t level;         /* API level                        */
}dsmApiVersion;
 
/*-------------------------------------------------------------------------+
|  Type definition for API Version on dsmInitEx() and dsmQueryApiVersion()  |
+-------------------------------------------------------------------------*/
typedef struct
{
        dsUint16_t stVersion;     /* Structure version                */
        dsUint16_t version;       /* API version                      */
        dsUint16_t release;       /* API release                      */
        dsUint16_t level;         /* API level                        */
        dsUint16_t subLevel;      /* API sub level                    */
        dsBool_t   unicode;       /* API unicode?                     */
} dsmApiVersionEx;
 
 
#define apiVersionExVer       2
/*-------------------------------------------------------------------------+
|  Type definition for object name used on BindMC, Send, Delete, Query     |
+-------------------------------------------------------------------------*/
typedef struct S_dsmObjName
{
    char       fs[DSM_MAX_FSNAME_LENGTH + 1] ; /* Filespace name */
    char       hl[DSM_MAX_HL_LENGTH + 1] ;  /* High level name */
    char       ll[DSM_MAX_LL_LENGTH + 1] ;   /* Low level name */
    dsUint8_t  objType;        /* for object type values, see defines above */
} dsmObjName;
 
/*-------------------------------------------------------------------------+
|  Type definition for Backup delete information on dsmDeleteObj()        |
+-------------------------------------------------------------------------*/
typedef struct
{
    dsUint16_t       stVersion ;                    /* structure version  */
    dsmObjName       *objNameP ;                    /* object name        */
    dsUint32_t       copyGroup ;                    /* copy group         */
} delBack ;
 
#define  delBackVersion    1
 
/*-------------------------------------------------------------------------+
|  Type definition for Archive delete information on dsmDeleteObj()        |
+-------------------------------------------------------------------------*/
typedef struct
{
    dsUint16_t       stVersion ;                    /* structure version  */
    dsStruct64_t       objId ;                        /* object ID        */
} delArch ;
 
#define  delArchVersion  1
 
/*-------------------------------------------------------------------------+
|  Type definition for Backup ID delete information on dsmDeleteObj()      |
+-------------------------------------------------------------------------*/
typedef struct
{
    dsUint16_t       stVersion ;                    /* structure version  */
    dsStruct64_t       objId ;                        /* object ID        */
} delBackID;
 
#define  delBackIDVersion  1
 
/*-------------------------------------------------------------------------+
|  Type definition for delete information on dsmDeleteObj()                |
+-------------------------------------------------------------------------*/
typedef union
{
    delBack   backInfo ;
    delArch   archInfo ;
    delBackID backIDInfo ;
} dsmDelInfo ;
 
/*-------------------------------------------------------------------------+
|  Type definition for Object Attribute parameter on dsmSendObj()          |
+-------------------------------------------------------------------------*/
typedef struct
{
    dsUint16_t   stVersion;                          /* Structure version */
    char         owner[DSM_MAX_OWNER_LENGTH + 1]; /* object owner */
    dsStruct64_t sizeEstimate;    /* Size estimate in bytes of the object */
 
    dsBool_t     objCompressed;          /* Is object already compressed? */
    dsUint16_t   objInfoLength;   /* length of object-dependent information*/
    char         *objInfo;                 /* object-dependent information*/
    char         *mcNameP;              /* mgmnt class name for override  */
} ObjAttr;
 
#define ObjAttrVersion  2
 
/*-------------------------------------------------------------------------+
| Type definition for mcBindKey returned on dsmBindMC()                    |
+-------------------------------------------------------------------------*/
typedef struct
{
    dsUint16_t  stVersion;                   /* structure version         */
    char        mcName[DSM_MAX_MC_NAME_LENGTH + 1];
                                           /* Name of mc bound to object. */
    dsBool_t    backup_cg_exists;                           /* True/false */
    dsBool_t    archive_cg_exists;                          /* True/false */
    char        backup_copy_dest[DSM_MAX_CG_DEST_LENGTH + 1];
                                                /* Backup copy dest. name */
    char        archive_copy_dest[DSM_MAX_CG_DEST_LENGTH + 1];
                                                   /* Arch copy dest.name */
} mcBindKey;
 
#define mcBindKeyVersion  1
 
/*-------------------------------------------------------------------------+
| Type definition for object list on dsmBeginGetData()                     |
+-------------------------------------------------------------------------*/
typedef struct
{
    dsUint16_t       stVersion ;         /* structure version            */
    dsUint32_t       numObjId ;       /* number of object IDs in the list*/
    ObjID           *objId ;             /* list of object IDs to restore*/
    PartialObjData  *partialObjData;  /*list of partial obj data information*/
 
} dsmGetList ;
 
#define dsmGetListVersion     2  /* default if not using Partial Object data */
#define dsmGetListPORVersion  3  /* version if using Partial Object data     */
 
/*-------------------------------------------------------------------------+
|  Type definition for DataBlk used to get or send data                    |
+-------------------------------------------------------------------------*/
typedef struct
{
    dsUint16_t stVersion ;                /* structure version            */
    dsUint32_t bufferLen;                /* Length of buffer passed below */
    dsUint32_t numBytes;                *Actual number of bytes read from */
                                              /* or written to the buffer */
    char       *bufferPtr;                                 /* Data buffer */
    dsUint32_t numBytesCompressed;        /* on send actual bytes compressed */
} DataBlk;
 
 
#define DataBlkVersion  2
 
/*-------------------------------------------------------------------------+
|  Type definition for Mgmt Class queryBuffer on dsmBeginQuery()           |
+-------------------------------------------------------------------------*/
typedef struct S_qryMCData
{
    dsUint16_t   stVersion;                          /* structure version */
    char         *mcName;                              /* Mgmt class name */
                      /* single name to get one or empty string to get all*/
    dsBool_t     mcDetail;                        /* Want details or not? */
} qryMCData;
 
#define qryMCDataVersion  1
 
/*-------------------------------------------------------------------------+
|  Type definition for Archive Copy Group details on Query MC response     |
+-------------------------------------------------------------------------*/
typedef struct S_archDetailCG
{
     char         cgName[DSM_MAX_CG_NAME_LENGTH + 1];   /* Copy group name */
     dsUint16_t   frequency;                   /* Copy (archive) frequency */
     dsUint16_t   retainVers;                            /* Retain version */
     dsUint8_t    copySer;   /* for copy serialization values, see defines */
     dsUint8_t    copyMode;     /* for copy mode values, see defines above */
     char         destName[DSM_MAX_CG_DEST_LENGTH + 1];  /* Copy dest name */
} archDetailCG;
 
/*-------------------------------------------------------------------------+
|  Type definition for Backup Copy Group details on Query MC response      |
+-------------------------------------------------------------------------*/
typedef struct S_backupDetailCG
{
    char         cgName[DSM_MAX_CG_NAME_LENGTH + 1];    /* Copy group name */
    dsUint16_t   frequency;                            /* Backup frequency */
    dsUint16_t   verDataExst;                      /* Versions data exists */
    dsUint16_t   verDataDltd;                     /* Versions data deleted */
    dsUint16_t   retXtraVers;                     /* Retain extra versions */
    dsUint16_t   retOnlyVers;                      /* Retain only versions */
    dsUint8_t    copySer;    /* for copy serialization values, see defines */
    dsUint8_t    copyMode;      /* for copy mode values, see defines above */
    char         destName[DSM_MAX_CG_DEST_LENGTH + 1];   /* Copy dest name */
    dsBool_t     bLanFreeDest;           /* Destination has LAN-free path?    */
    dsBool_t     bSrvFreeDest;           /* Destination has server free path? */
} backupDetailCG;
 
*--------------------------------------------------------------------------+
|  Type definition for Query Mgmt Class detail response on dsmGetNextQObj()|
+-------------------------------------------------------------------------*/
typedef struct S_qryRespMCDetailData
{
    dsUint16_t      stVersion;                       /* structure version */
    char            mcName[DSM_MAX_MC_NAME_LENGTH + 1]; /* mc name */
    char            mcDesc[DSM_MAX_MC_DESCR_LENGTH + 1]; /*mc description */
    archDetailCG    archDet;                 /* Archive copy group detail */
    backupDetailCG  backupDet;                /* Backup copy group detail */
} qryRespMCDetailData;
 
#define qryRespMCDetailDataVersion  2
 
/*-------------------------------------------------------------------------+
| Type definition for Query Mgmt Class summary response on dsmGetNextQObj()|
+-------------------------------------------------------------------------*/
typedef struct S_qryRespMCData
{
    dsUint16_t   stVersion;                          /* structure version */
    char         mcName[DSM_MAX_MC_NAME_LENGTH + 1]            /* mc name */
    char         mcDesc[DSM_MAX_MC_DESCR_LENGTH + 1]    /* mc description */
}qryRespMCData;
 
#define qryRespMCDataVersion  1
 
/*-------------------------------------------------------------------------+
|  Type definition for Archive queryBuffer on dsmBeginQuery()              |
+-------------------------------------------------------------------------*/
typedef struct S_qryArchiveData
{
    dsUint16_t   stVersion;                          /* structure version */
    dsmObjName   *objName;                     /* Full dsm name of object */
    char         *owner;                                    /* owner name */
                        /* for maximum date boundaries, see defines above */
    dsmDate      insDateLowerBound;      /* low bound archive insert date */
    dsmDate      insDateUpperBound;       /* hi bound archive insert date */
    dsmDate      expDateLowerBound;          /* low bound expiration date */
    dsmDate      expDateUpperBound;           /* hi bound expiration date */
    char         *descr;                /* archive description */
} qryArchiveData;
 
#define qryArchiveDataVersion  1
 
/*-------------------------------------------------------------------------+
| Type definition for Query Archive response on dsmGetNextQObj()           |
+-------------------------------------------------------------------------*/
typedef struct S_qryRespArchiveData
{
    dsUint16_t      stVersion;                       /* structure version */
    dsmObjName      objName;                  /* Filespace name qualifier */
    dsUint32_t      copyGroup;                       /* copy group number */
    char            mcName[DSM_MAX_MC_NAME_LENGTH + 1];  /* mc name */
    char            owner[DSM_MAX_OWNER_LENGTH + 1];   /* owner name */
    dsStruct64_t    objId;                              /* Unique copy ID */
    dsStruct64_t    reserved;                   /* backward compatibility */
    dsUint8_t       mediaClass;                     /* media access class */
    dsmDate         insDate;                    /* archive insertion date */
    dsmDate         expDate;                /* expiration date for object */
    char            descr[DSM_MAX_DESCR_LENGTH + 1];/* archive description */
    dsUint16_t      objInfolen;   /* length of object-dependent information*/
    char            objInfo[DSM_MAX_OBJINFO_LENGTH];/*object-dependent information */
    dsUint160_t     restoreOrderExt;                      /* restore order */
    dsStruct64_t    sizeEstimate;           /* size estimate stored by user*/
    dsUint8_t       compressType;
} qryRespArchiveData;
 
#define qryRespArchiveDataVersion  3 
 
/*-------------------------------------------------------------------------+
|  Type definition for Archive sendBuff parameter on dsmSendObj()          |
+-------------------------------------------------------------------------*/
typedef struct S_sndArchiveData
{
    dsUint16_t   stVersion;                   /* structure version */
    char         *descr;                    /* archive description */
} sndArchiveData;
 
#define sndArchiveDataVersion  1
 
/*-------------------------------------------------------------------------+
|  Type definition for Backup queryBuffer on dsmBeginQuery()               |
+-------------------------------------------------------------------------*/
typedef struct S_qryBackupData
{
    dsUint16_t  stVersion;         /* structure version */
    dsmObjName  *objName;          /* full dsm name of object */
    char        *owner;            /* owner name */
    dsUint8_t   objState;          /* object state selector */
    dsmDate     pitDate;           /* Date value for point in time restore */
                                   /* for possible values, see defines above */
} qryBackupData;
 
#define qryBackupDataVersion  2
 
 
/*-------------------------------------------------------------------------+
| Type definition for Query Backup response on dsmGetNextQObj()            |
+-------------------------------------------------------------------------*/
typedef struct S_qryRespBackupData
{
   dsUint16_t      stVersion;                           /* structure version */
   dsmObjName      objName;                       /* full dsm name of object */  
   dsUint32_t      copyGroup;                           /* copy group number */
   char            mcName[DSM_MAX_MC_NAME_LENGTH + 1];            /* mc name */
   char            owner[DSM_MAX_OWNER_LENGTH + 1];            /* owner name */
   dsStruct64_t    objId;                                /* Unique object ID */
   dsStruct64_t    reserved;                       /* backward compatability */
   dsUint8_t       mediaClass;                         /* media access class */
   dsUint8_t       objState;                      /* Obj state, active, etc. */
   dsmDate         insDate;                         /* backup insertion date */
   dsmDate         expDate;                    /* expiration date for object */
   dsUint16_t      objInfolen;             /* length of object-dependent info*/
   char            objInfo[DSM_MAX_OBJINFO_LENGTH]; /*object-dependent information*/
   dsUint160_t     restoreOrderExt;                         /* restore order */
   dsStruct64_t    sizeEstimate;             /* size estimate stored by user */
   dsStruct64_t    baseObjId;
   dsUint16_t      baseObjInfolen;             /* length of base object-dependent info*/
   dsUint8_t       baseObjInfo[DSM_MAX_OBJINFO_LENGTH];  /* base object-dependent info */
   dsUint160_t     baseRestoreOrder;                         /* restore order */
   dsUint32_t      fsID;
   dsUint8_t       compressType;
   dsBool_t        isGroupLeader;
   dsBool_t        isOpenGroup; 
}qryRespBackupData;
 
#define qryRespBackupDataVersion  4
 
/*-------------------------------------------------------------------------+
|  Type definition for Active Backup queryBuffer on dsmBeginQuery()
|
|  Notes:  For the active backup query, only the fs (filespace) and objType
|          fields of objName need be set.  objType can only be set to
|          DSM_OBJ_FILE or DSM_OBJ_DIRECTORY.  DSM_OBJ_ANY_TYPE will not
|          find a match on the query.
+-------------------------------------------------------------------------*/
typedef struct S_qryABackupData
{
    dsUint16_t      stVersion;                       /* structure version */
    dsmObjName      *objName;                 /* Only fs and objtype used */
} qryABackupData;
 
#define qryABackupDataVersion  1
 
 
/*-------------------------------------------------------------------------+
| Type definition for Query Active Backup response on dsmGetNextQObj()     |
+-------------------------------------------------------------------------*/
typedef struct S_qryARespBackupData
{
    dsUint16_t  stVersion;                           /* structure version */
    dsmObjName  objName;                       /* full dsm name of object */
    dsUint32_t  copyGroup;                           /* copy group number */
    char        mcName[DSM_MAX_MC_NAME_LENGTH + 1];/*management class name*/
    char        owner[DSM_MAX_OWNER_LENGTH + 1];            /* owner name */
    dsmDate     insDate;                         /* backup insertion date */
    dsUint16_t  objInfolen;             /* length of object-dependent info*/
    char        objInfo[DSM_MAX_OBJINFO_LENGTH]; 
                                           /*object-dependent information */
} qryARespBackupData;
 
#define qryARespBackupDataVersion  1 
 
/*-------------------------------------------------------------------------+
|  Type definition for Backup queryBuffer on dsmBeginQuery()               |
+-------------------------------------------------------------------------*/
typedef struct qryBackupGroups
{
   dsUint16_t   stVersion;         /* structure version */
   dsUint8_t    groupType;
   char         *fsName;
   char         *owner;
   dsStruct64_t groupLeaderObjId;
   dsUint8_t    objType;
}qryBackupGroups;
 
#define qryBackupGroupsVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for WINNT and OS/2 Filespace attributes                 |
+-------------------------------------------------------------------------*/
typedef struct
{
    char         driveLetter ;          /* drive letter for filespace    */
    dsUint16_t   fsInfoLength;          /* fsInfo length used            */
    char         fsInfo[DSM_MAX_FSINFO_LENGTH];/*caller-determined data */
} dsmDosFSAttrib ;
 
 
/*-------------------------------------------------------------------------+
|  Type definition for UNIX Filespace attributes                           |
+-------------------------------------------------------------------------*/
typedef struct
{
    dsUint16_t   fsInfoLength;          /* fsInfo length used            */
    char         fsInfo[DSM_MAX_FSINFO_LENGTH];/*caller-determined data */
} dsmUnixFSAttrib ;
/*-------------------------------------------------------------------------+
|  Type definition for NetWare Filespace attributes                        |
+-------------------------------------------------------------------------*/
typedef dsmUnixFSAttrib dsmNetwareFSAttrib;
 
/*-------------------------------------------------------------------------+
|  Type definition for Filespace attributes on all Filespace calls         |
+-------------------------------------------------------------------------*/
typedef union
{
    dsmNetwareFSAttrib  netwareFSAttr;
    dsmUnixFSAttrib     unixFSAttr ;
    dsmDosFSAttrib      dosFSAttr ;
} dsmFSAttr ;
/*-------------------------------------------------------------------------+
|  Type definition for fsUpd parameter on dsmUpdateFS()
+-------------------------------------------------------------------------*/
typedef struct S_dsmFSUpd
{
    dsUint16_t      stVersion ;         /* structure version              */
    char            *fsType ;           /* filespace type                 */
    dsStruct64_t    occupancy ;         /* occupancy estimate             */
    dsStruct64_t    capacity  ;         /* capacity estimate              */
    dsmFSAttr       fsAttr ;            /* platform-specific attributes   */
} dsmFSUpd ;
#define dsmFSUpdVersion  1
 
/*-------------------------------------------------------------------------+
|  Type definition for Filespace queryBuffer on dsmBeginQuery()            |
+-------------------------------------------------------------------------*/
typedef struct S_qryFSData
{
    dsUint16_t  stVersion;                 /* structure version */
    char        *fsName;                   /* File space name */
} qryFSData;
 
#define qryFSDataVersion  1
 
/*-------------------------------------------------------------------------+
| Type definition for Query Filespace response on dsmGetNextQObj()         |
+-------------------------------------------------------------------------*/
typedef struct S_qryRespFSData
 
{
    dsUint16_t     stVersion;                          /* structure version */
    char           fsName[DSM_MAX_FSNAME_LENGTH + 1];     /* Filespace name */
    char           fsType[DSM_MAX_FSTYPE_LENGTH + 1] ;    /* Filespace type */
    dsStruct64_t   occupancy;                   /* Occupancy est. in bytes. */
    dsStruct64_t   capacity;                     /* Capacity est. in bytes. */
    dsmFSAttr      fsAttr ;                 /* platform-specific attributes */
    dsmDate        backStartDate;                      /* start backup date */
    dsmDate        backCompleteDate;                     /* end backup date */
    dsmDate        incrImageDate;                        /* for future use */
} qryRespFSData;
 
#define qryRespFSDataVersion  3
 
/*-------------------------------------------------------------------------+
|  Type definition for regFilespace parameter on dsmRegisterFS()
+-------------------------------------------------------------------------*/
typedef struct S_regFSData
{
    dsUint16_t      stVersion;                        /* structure version */
    char            *fsName;                             /* Filespace name */
    char            *fsType;                             /* Filespace type */
    dsStruct64_t    occupancy;              /* Occupancy estimate in bytes */
    dsStruct64_t    capacity;               /* Capacity estimate in bytes  */
    dsmFSAttr       fsAttr ;               /* platform-specific attributes */
} regFSData;
 
#define regFSDataVersion  1
/*-------------------------------------------------------------------------+
|Type definition for session information response on dsmQuerySessionInfo() |
+-------------------------------------------------------------------------*/
typedef struct
{
  dsUint16_t     stVersion;              /* Structure version            */
     /*------------------------------------------------------------------*/
     /*           Server information                                     */
     /*------------------------------------------------------------------*/
  char           serverHost[DSM_MAX_SERVERNAME_LENGTH+1];
                                     /* Network host name of DSM server  */
  dsUint16_t     serverPort;             /* Server comm port on host     */
  dsmDate        serverDate;             /* Server's date/time           */
  char           serverType[DSM_MAX_SERVERTYPE_LENGTH+1];
                                     /* Server's execution platform      */
  dsUint16_t     serverVer;              /* Server's version number      */
  dsUint16_t     serverRel;              /* Server's release number      */
  dsUint16_t     serverLev;              /* Server's level number        */
  dsUint16_t     serverSubLev;           /* Server's sublevel number     */
     /*------------------------------------------------------------------*/
     /*           Client Defaults                                        */
     /*------------------------------------------------------------------*/
  char           nodeType[DSM_MAX_PLATFORM_LENGTH+1];
                                            /*node/application type*/
  char           fsdelim;                /* File space delimiter         */
  char           hldelim;        /* Delimiter betw highlev and lowlev    */
  dsUint8_t      compression;            /* Compression flag             */
  dsUint8_t      archDel;                /* Archive delete permission    */
  dsUint8_t      backDel;                /* Backup delete permission     */
  dsUint32_t     maxBytesPerTxn;         /* for future use               */
  dsUint16_t     maxObjPerTxn;       /* The max objects allowed in a txn */
 
  /*------------------------------------------------------------------*/
  /*           Session Information                                    */
  /*------------------------------------------------------------------*/
  char       id[DSM_MAX_ID_LENGTH+1];  /* Sign-in ID node name*/
  char       owner[DSM_MAX_OWNER_LENGTH+1]; /* Sign-in owner*/
                                     /*   (for multi-user platforms)     */
  char       confFile[DSM_PATH_MAX + DSM_NAME_MAX +1];
                                     /* len is platform dep              */
                                     /* dsInit name of appl config file  */
  dsUint8_t  opNoTrace;              /* dsInit option - NoTrace = 1      */
 
     /*------------------------------------------------------------------*/
     /*           Policy Data                                            */
     /*------------------------------------------------------------------*/
  char           domainName[DSM_MAX_DOMAIN_LENGTH+1]; /* Domain name*/
  char           policySetName[DSM_MAX_PS_NAME_LENGTH+1];
                                     /* Active policy set name             */
  dsmDate        polActDate;             /* Policy set activation date     */
  char           dfltMCName[DSM_MAX_MC_NAME_LENGTH+1];/* Default Mgmt Class*/
  dsUint16_t     gpBackRetn;             /* Grace-period backup retention  */
  dsUint16_t     gpArchRetn;             /* Grace-period archive retention */
  char           adsmServerName[DSM_MAX_SERVERNAME_LENGTH+1]; 
                                                     /* adsm server name /*  
} ApiSessInfo;
 
#define ApiSessInfoVersion  2 
 
/*-------------------------------------------------------------------------+
| Type definition for Query options response on dsmQueryCliOptions()       |
|      and dsmQuerySessOptions()                                           |
+-------------------------------------------------------------------------*/
 
typedef struct
{
  char        dsmiDir[DSM_PATH_MAX + DSM_NAME_MAX +1];
  char        dsmiConfig[DSM_PATH_MAX + DSM_NAME_MAX +1];
  char        serverName[DSM_MAX_SERVERNAME_LENGTH+1];
  dsInt16_t   commMethod;
  char        serverAddress[DSM_MAX_SERVER_ADDRESS];
  char        nodeName[DSM_MAX_NODE_LENGTH+1];
  dsBool_t    compression;
  dsBool_t    compressalways;
  dsBool_t    passwordAccess;
  }optStruct ;
 
/*-------------------------------------------------------------------------+
| Type definition for LogType used in logInfo                              |
+-------------------------------------------------------------------------*/
typedef enum
{
        logServer = 0x00,                   /* log msg only to server    */
        logLocal,                     /* log msg only to local error log */
        logBoth              /* log msg to server and to local error log */
} dsmLogType ;
 
/*-------------------------------------------------------------------------+
| Type definition for logInfo parameter used on dsmLogEvent()              |
+-------------------------------------------------------------------------*/
 
typedef struct
{
  char        *message;   /* text of message to be logged */
  dsmLogType  logType;    /* log type : local, server, both */
}logInfo;
 
 
/*-------------------------------------------------------------------------+
| Type definition for qryRespAccessData parameter used on dsmQueryAccess ()|
+-------------------------------------------------------------------------*/
   
typedef struct
{
  dsUInt16_t       stVersion ;                         /* structure version */ 
  char            node[DSM_MAX_ID_LENGTH+1];   /* node name */
  char            owner[DSM_MAX_OWNER_LENGTH+1];  /* owner */ 
  dsmObjName      objName ;                            /* object name */  
  dsmAccessType   accessType:                           /* archive or backup */ 
  dsUint32_t      ruleNumber :                            /* Access rule ID */  
}qryRespAccessData:
 
#define qryRespAccessDataVersion  1
 
/*-------------------------------------------------------------------------+
| Type definition for envSetUp parameter on dsmSetUp ()                    |
+-------------------------------------------------------------------------*/
typedef struct S_envSetUp
{
     dsUint16_t         stVersion;             /* structure version */
     char               dsmiDir[DSM_PATH_MAX + DSM_NAME_MAX +1] ; 
     char               dsmiConfig[DSM_PATH_MAX + DSM_NAME_MAX +1] ; 
     char               dsmiLog[DSM_PATH_MAX + DSM_NAME_MAX +1] ; 
     char               **argv;  /* for executables name argv[0] */
     char               logName[DSM_NAME_MAX +1];   
     dsBool_t        inclExclCaseSensitive;         /* for future use */
     dsBool_t        multipleInit;                  /* for future use */
}  envSetUp;
 
#define envSetUpVersion  4
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmInitExIn_t                      
+-------------------------------------------------------------------------*/
typedef struct dsmInitExIn_t
{
    dsUint16_t         stVersion;                      /* structure version */
    dsmApiVersionEx    *apiVersionExP;
    char               *clientNodeNameP;
    char               *clientOwnerNameP;
    char               *clientPasswordP;
    char               *userNameP;
    char               *userPasswordP;
    char               *applicationTypeP;
    char               *configfile;
    char               *options;
    char               dirDelimiter;
    dsBool_t           useUnicode;
    dsBool_t           bCrossPlatform;
} dsmInitExIn_t;
 
#define dsmInitExInVersion 2
 
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmInitExOut_t                      
+-------------------------------------------------------------------------*/
typedef struct dsmInitExOut_t
{
    dsUint16_t         stVersion;                    /* structure version */
    dsInt16_t          userNameAuthorities;
    dsInt16_t          infoRC;        /* error return code if encountered */
                                                   
    char               adsmServerName[DSM_MAX_SERVERNAME_LENGTH+1];
    dsUint16_t         serverVer;     /* Server's version number          */
    dsUint16_t         serverRel;     /* Server's release number          */
    dsUint16_t         serverLev;     /* Server's level number            */
    dsUint16_t         serverSubLev;  /* Server's sublevel number         */
} dsmInitExOut_t; 
 
#define dsmInitExOutVersion 2
/*-------------------------------------------------------------------------+
| Type definition for LogType used in logInfo                              |
+-------------------------------------------------------------------------*/
typedef enum
{
        logSevInfo = 0x00,       /* information ANE4991 */
        logSevWarning,           /* warning     ANE4992 */
        logSevError,             /* Error       ANE4993 */
        logSevSevere             /* severe      ANE4994 */
        logSevLicense            /* License     ANE4995 */
        logSevTryBuy             /* try Buy     ANE4996 */
} dsmLogSeverity ;
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmLogExIn_t
+-------------------------------------------------------------------------*/
typedef struct dsmLogExIn_t
{
    dsUint16_t         stVersion;  /* structure version */
    dsmLogSeverity     severity; 
    char               appMsgID[8]; 
    dsmLogType         logType;    /* log type : local, server, both */
    char               *message;   /* text of message to be logged */
    char               appName[DSM_MAX_PLATFORM_LENGTH];
    char               osPlatform[DSM_MAX_PLATFORM_LENGTH];
    char               appVersion[DSM_MAX_PLATFORM_LENGTH];
} dsmLogExIn_t;
 
#define dsmLogExInVersion 2
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmlogExOut_t
+-------------------------------------------------------------------------*/
typedef struct dsmLogExOut_t
{
    dsUint16_t         stVersion;  /* structure version */
} dsmLogExOut_t;
 
#define dsmLogExOutVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmRenameIn_t
+-------------------------------------------------------------------------*/
typedef struct dsmRenameIn_t
{
    dsUint16_t       stVersion;                     /* structure version  */
    dsUint32_t       dsmHandle;                     /* handle for session */
    dsUint8_t        repository;                    /* Backup or Archive  */
    dsmObjName       *objNameP ;                    /* object name */
    char             newHl[DSM_MAX_HL_LENGTH + 1];  /* new High level name */
    char             newLl[DSM_MAX_LL_LENGTH + 1];  /* new Low level name */
    dsBool_t         merge;                        /* merge into existing name*/
    ObjID            objId;                         /* objId for Archive */ 
} dsmRenameIn_t;
 
#define dsmRenameInVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmRenameOut_t
+-------------------------------------------------------------------------*/
typedef struct dsmRenameOut_t
{
    dsUint16_t         stVersion;                      /* structure version */
} dsmRenameOut_t;
 
#define dsmRenameOutVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmEndSendObjExIn_t
+-------------------------------------------------------------------------*/
typedef struct dsmEndSendObjExIn_t
{
   dsUint16_t       stVersion;                     /* structure version  */
   dsUint32_t       dsmHandle;                     /* handle for session */
}dsmEndSendObjExIn_t;
 
#define dsmEndSendObjExInVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmEndSendObjExOut_t
+-------------------------------------------------------------------------*/
typedef struct dsmEndSendObjExOut_t
{
   dsUint16_t         stVersion;           /* structure version */
   dsStruct64_t       totalBytesSent;      /* total bytes read from app */
   dsBool_t           objCompressed;       /* was object compressed */
   dsStruct64_t       totalCompressSize;   /* total size after compress */
   dsStruct64_t       totalLFBytesSent;    /* total bytes sent LAN-Free */
}dsmEndSendObjExOut_t;
 
#define dsmEndSendObjExOutVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmGroupHandlerIn_t
+-------------------------------------------------------------------------*/
typedef struct dsmGroupHandlerIn_t
{
   dsUint16_t      stVersion;        /* structure version  */
   dsUint32_t      dsmHandle;        /* handle for session */
   dsUint8_t       groupType;        /* Type of group                            */
   dsUint8_t       actionType;       /* Type of group operation                  */
   dsUint8_t       memberType;       /* Type of member: Leader or member         */
   dsStruct64_t    leaderObjId;      /* OBJID of the groupleader when manipulating a member */
   char            *uniqueGroupTagP; /* Unique group identifier                  */
   dsmObjName      *objNameP ;       /* group leader object name */
   dsmGetList      memberObjList;    /* list of objects to remove, assign        */
}dsmGroupHandlerIn_t;
 
#define dsmGroupHandlerInVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmGroupHandlerExOut_t
+-------------------------------------------------------------------------*/
typedef struct dsmGroupHandlerOut_t
{
   dsUint16_t         stVersion;                     /* structure version */
}dsmGroupHandlerOut_t;
 
#define dsmGroupHandlerOutVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmEndTxnExIn_t
+-------------------------------------------------------------------------*/
typedef struct dsmEndTxnExIn_t
{
   dsUint16_t       stVersion;                     /* structure version  */
   dsUint32_t       dsmHandle;                     /* handle for session */
   dsUint8_t        vote;
}dsmEndTxnExIn_t;
 
#define dsmEndTxnExInVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmEndTxnExOut_t
+-------------------------------------------------------------------------*/
typedef struct dsmEndTxnExOut_t
{
   dsUint16_t         stVersion;               /* structure version              */
   dsUint16_t         reason;                  /* reason code                    */
   dsStruct64_t       groupLeaderObjId;        /* groupLeader obj id returned on */
                                               /* DSM_ACTION_OPEN                */
   dsUint8_t          deferredVote;            /* future use                     */
   dsUint16_t         deferredAbortReasonCode; /* future use                     */
}dsmEndTxnExOut_t;
 
#define dsmEndTxnExOutVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmEndGetDataExIn_t
+-------------------------------------------------------------------------*/
typedef struct dsmEndGetDataExIn_t
{
   dsUint16_t     stVersion;     /* structure version  */
   dsUint32_t     dsmHandle;     /* handle for session */
}dsmEndGetDataExIn_t;
 
#define dsmEndGetDataExInVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmEndGetDataExOut_t
+-------------------------------------------------------------------------*/
typedef struct dsmEndGetDataExOut_t
{
   dsUint16_t     stVersion;         /* structure version             */
   dsStruct64_t   totalLFBytesRecv;  /* total LAN-free bytes recieved */
}dsmEndGetDataExOut_t;
 
#define dsmEndGetDataExOutVersion 1
 
 
#if (_OPSYS_TYPE == DS_WINNT) && !defined(_WIN64) 
#pragma pack()
#endif
 
 
#if _OPSYS_TYPE == DS_MACOS
#pragma align_array_members reset
#pragma options align = reset
#endif
#endif /* _H_DSMAPITD */
 


/***********************************************************************
* Tivoli Storage Manager                                               *
* API Client Component                                                 *
*                                                                      *
* (C) Copyright IBM Corporation 1993,2002                              *
***********************************************************************/
 
/**************************************************************************
* Header File Name: tsmapitd.h
*
* Environment:     ************************************************
*                  ** This is a platform-independent source file **
*
*                  ************************************************
*
* Design Notes:    This file contains basic data types and constants
*                  includable by all client source files. The constants
*                  within this file should be set properly for the
*                  particular machine and operating system on which the
*                  client software is to be run.
*
*                  Platform specific definitions are included in dsmapips.h
*
* Descriptive-name: Definitions for Tivoli Storage manager API constants
*-------------------------------------------------------------------------*/
 
#ifndef _H_TSMAPITD
#define _H_TSMAPITD
 
 
/*=== set the structure alignment to pack the structures ===*/
#if _OPSYS_TYPE == DS_WINNT
#ifdef _WIN64
#pragma pack(8)
#else
#pragma pack(1)
#endif
#endif
 
#if _OPSYS_TYPE == DS_MACOS
#pragma options align = packed
#pragma align_array_members off
#endif
 
/*==============================================================
   Win32 applications using the tsm interface must use the
   -DUNICODE flag during compilation.
==============================================================*/
#if _OPSYS_TYPE == DS_WINNT && !defined(DSMAPILIB)
#ifndef UNICODE
#error "Win32 applications using the TSM interface MUST be compiled with the -DUNICODE flag"
#endif
#endif
 
/*-------------------------------------------------------------------------+
| Type definition for dsmGetType parameter on tsmBeginGetData()            |
+-------------------------------------------------------------------------*/
typedef enum
{
    gtTsmBackup = 0x00,                     /* Backup processing type    */
    gtTsmArchive                            /* Archive processing type   */
} tsmGetType ;
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmQueryType parameter on tsmBeginQuery()           |
+-------------------------------------------------------------------------*/
typedef enum
{
    qtTsmArchive = 0x00,                     /* Archive query type        */
    qtTsmBackup,                             /* Backup query type         */
    qtTsmBackupActive,                       /* Fast query for active backup files */
    qtTsmFilespace,                          /* Filespace query type      */
    qtTsmMC,                                 /* Mgmt. class query type    */
    qtTsmAuthNodes,                          /* NAS auth nodes query type */
    qtTsmRemoteFS,                           /* NAS RemoteFS query type   */
    qtTsmRemoteProcess,                      /* General Remote process type*/
    qtTsmOption,                             /* Option query Type         */
    qtTsmBackupGroups,                       /* All group leaders in a specific filespace */
    qtTsmOpenGroups                          /* All group members associated with a leader */
} tsmQueryType ;
 
/*-------------------------------------------------------------------------+
|  Type definition sendType parameter on tsmBindMC() and tsmSendObj()      |
+-------------------------------------------------------------------------*/
typedef enum
{
    stTsmBackup = 0x00,                         /* Backup processing type    */
    stTsmArchive,                               /* Archive processing type   */
    stTsmBackupMountWait,           /* Backup processing with mountwait on   */
    stTsmArchiveMountWait           /* Archive processing with mountwait on  */
} tsmSendType ;
 
/*-------------------------------------------------------------------------+
|  Type definition for delType parameter on tsmDeleteObj()                 |
+-------------------------------------------------------------------------*/
typedef enum
{
    dtTsmArchive = 0x00,                              /* Archive delete type */
    dtTsmBackup,                           /* Backup delete (deactivate) type */
    dtTsmBackupID                         /* Backup delete (remove)     type */
} tsmDelType ;
 
 
/*-------------------------------------------------------------------------+
|  Type definition sendType parameter on tsmSetAccess()                    |
+-------------------------------------------------------------------------*/
typedef enum
{
    atTsmBackup = 0x00,                         /* Backup processing type   */
    atTsmArchive                               /* Archive processing type   */
}tsmAccessType;
 
/*-------------------------------------------------------------------------+
|  Type definition for Overwrite  parameter on tsmSendObj()                |
+-------------------------------------------------------------------------*/
typedef enum
{
    owIGNORE = 0x00,
    owYES,
    owNO
}tsmOwType;
 
/*-------------------------------------------------------------------------+
|  Type definition for API Version on tsmInit() and tsmQueryApiVersion()   |
+-------------------------------------------------------------------------*/
typedef struct
{
        dsUint16_t stVersion;     /* Structure version                */
        dsUint16_t version;       /* API version                      */
        dsUint16_t release;       /* API release                      */
        dsUint16_t level;         /* API level                        */
        dsUint16_t subLevel;      /* API sub level                    */
        dsBool_t   unicode;       /* API unicode?                     */
} tsmApiVersionEx;
 
 
#define tsmApiVersionExVer       2
 
/*-------------------------------------------------------------------------+
|  Type definition for object name used on BindMC, Send, Delete, Query     |
+-------------------------------------------------------------------------*/
 
typedef struct tsmObjName
{
    dsChar_t   fs[DSM_MAX_FSNAME_LENGTH + 1] ;              /* Filespace name */
    dsChar_t   hl[DSM_MAX_HL_LENGTH + 1] ;                 /* High level name */
    dsChar_t   ll[DSM_MAX_LL_LENGTH + 1] ;                  /* Low level name */
    dsUint8_t  objType;          /* for object type values, see defines above */
    dsChar_t   dirDelimiter;
} tsmObjName;
 
/*-------------------------------------------------------------------------+
|  Type definition for Backup delete information on dsmDeleteObj()        |
+-------------------------------------------------------------------------*/
typedef struct tsmDelBack
{
    dsUint16_t       stVersion ;                    /* structure version      */
    tsmObjName       *objNameP ;                    /* object name            */
    dsUint32_t       copyGroup ;                    /* copy group             */
} tsmDelBack ;
 
#define  tsmDelBackVersion    1
 
/*-------------------------------------------------------------------------+
|  Type definition for Archive delete information on dsmDeleteObj()       |
+-------------------------------------------------------------------------*/
typedef struct
{
    dsUint16_t       stVersion ;                    /* structure version   */
    dsStruct64_t     objId ;                        /* object ID           */
} tsmDelArch ;
 
#define  tsmDelArchVersion  1
 
/*-------------------------------------------------------------------------+
|  Type definition for Backup ID delete information on dsmDeleteObj()     |
+-------------------------------------------------------------------------*/
typedef struct
{
    dsUint16_t       stVersion ;                    /* structure version   */
    dsStruct64_t       objId ;                        /* object ID         */
} tsmDelBackID;
 
#define  tsmDelBackIDVersion  1
 
 
/*-------------------------------------------------------------------------+
|  Type definition for delete information on dsmDeleteObj()               |
+-------------------------------------------------------------------------*/
typedef union
{
    tsmDelBack   backInfo ;
    tsmDelArch   archInfo ;
    tsmDelBackID backIDInfo;
} tsmDelInfo ;
 
/*-------------------------------------------------------------------------+
|  Type definition for Object Attribute parameter on dsmSendObj()          |
+-------------------------------------------------------------------------*/
typedef struct tsmObjAttr
{
    dsUint16_t   stVersion;                /* Structure version                 */
    dsChar_t     owner[DSM_MAX_OWNER_LENGTH + 1];      /* object owner          */
    dsStruct64_t sizeEstimate;             /* Size estimate in bytes of the object */
    dsBool_t     objCompressed;            /* Is object already compressed?     */
    dsUint16_t   objInfoLength;            /* length of object-dependent info   */
    char         *objInfo;                 /* object-dependent info byte buffer */
    dsChar_t     *mcNameP;                 /* mgmnt class name for override     */
    tsmOwType    compressOw;               /* overwrite compression             */
    tsmOwType    compressAlOw;             /* overwrite compressAlways          */
} tsmObjAttr;
 
#define tsmObjAttrVersion 3 
 
 
/*-------------------------------------------------------------------------+
| Type definition for mcBindKey returned on dsmBindMC()                    |
+-------------------------------------------------------------------------*/
typedef struct tsmMcBindKey
{
    dsUint16_t  stVersion;                   /* structure version          */
    dsChar_t    mcName[DSM_MAX_MC_NAME_LENGTH + 1];
                                            /* Name of mc bound to object. */
    dsBool_t    backup_cg_exists;                            /* True/false */
    dsBool_t    archive_cg_exists;                           /* True/false */
    dsChar_t    backup_copy_dest[DSM_MAX_CG_DEST_LENGTH + 1];
                                                 /* Backup copy dest. name */
    dsChar_t    archive_copy_dest[DSM_MAX_CG_DEST_LENGTH + 1];
                                                     /* Arch copy dest.name */
} tsmMcBindKey;
 
#define tsmMcBindKeyVersion  1
 
 
/*-------------------------------------------------------------------------+
|  Type definition for Mgmt Class queryBuffer on dsmBeginQuery()           |
+-------------------------------------------------------------------------*/
typedef struct tsmQryMCData
{
    dsUint16_t   stVersion;                              /* structure version */
    dsChar_t     *mcName;                       /* Mgmt class name */
                          /* single name to get one or empty string to get all*/
    dsBool_t     mcDetail;                            /* Want details or not? */
} tsmQryMCData;
 
#define tsmQryMCDataVersion  1
 
/*-------------------------------------------------------------------------+
|  Type definition for Archive Copy Group details on Query MC response     |
+-------------------------------------------------------------------------*/
typedef struct tsmArchDetailCG
{
   dsChar_t     cgName[DSM_MAX_CG_NAME_LENGTH + 1];     /* Copy group name */
   dsUint16_t   frequency;                     /* Copy (archive) frequency */
   dsUint16_t   retainVers;                              /* Retain version */
   dsUint8_t    copySer;     /* for copy serialization values, see defines */
   dsUint8_t    copyMode;       /* for copy mode values, see defines above */
   dsChar_t     destName[DSM_MAX_CG_DEST_LENGTH + 1];    /* Copy dest name */
   dsBool_t     bLanFreeDest;         /* Destination has LAN-free path?    */
   dsBool_t     bSrvFreeDest;         /* Destination has server free path? */
}tsmArchDetailCG;
 
 
/*-------------------------------------------------------------------------+
|  Type definition for Backup Copy Group details on Query MC response      |
+-------------------------------------------------------------------------*/
typedef struct tsmBackupDetailCG
{
   dsChar_t     cgName[DSM_MAX_CG_NAME_LENGTH + 1];       /* Copy group name */
   dsUint16_t   frequency;                               /* Backup frequency */
   dsUint16_t   verDataExst;                         /* Versions data exists */
   dsUint16_t   verDataDltd;                        /* Versions data deleted */
   dsUint16_t   retXtraVers;                        /* Retain extra versions */
   dsUint16_t   retOnlyVers;                         /* Retain only versions */
   dsUint8_t    copySer;       /* for copy serialization values, see defines */
   dsUint8_t    copyMode;         /* for copy mode values, see defines above */
   dsChar_t     destName[DSM_MAX_CG_DEST_LENGTH + 1];      /* Copy dest name */
   dsBool_t     bLanFreeDest;           /* Destination has LAN-free path?    */
   dsBool_t     bSrvFreeDest;           /* Destination has server free path? */
}tsmBackupDetailCG;
 
 
/*-------------------------------------------------------------------------+
|  Type definition for Query Mgmt Class detail response on dsmGetNextQObj()|
+-------------------------------------------------------------------------*/
typedef struct tsmQryRespMCDetailData
{
    dsUint16_t      stVersion;                       /* structure version */
    dsChar_t        mcName[DSM_MAX_MC_NAME_LENGTH + 1];        /* mc name */
    dsChar_t        mcDesc[DSM_MAX_MC_DESCR_LENGTH + 1]; /*mc description */
    archDetailCG    archDet;                 /* Archive copy group detail */
    backupDetailCG  backupDet;                /* Backup copy group detail */
} tsmQryRespMCDetailData;
 
#define tsmQryRespMCDetailDataVersion  2
 
/*-------------------------------------------------------------------------+
| Type definition for Query Mgmt Class summary response on dsmGetNextQObj()|
+-------------------------------------------------------------------------*/
typedef struct tsmQryRespMCData
{
    dsUint16_t   stVersion;                              /* structure version */
    dsChar_t     mcName[DSM_MAX_MC_NAME_LENGTH + 1];               /* mc name */
    dsChar_t     mcDesc[DSM_MAX_MC_DESCR_LENGTH + 1];       /* mc description */
}tsmQryRespMCData;
 
#define tsmQryRespMCDataVersion  1
 
 
/*-------------------------------------------------------------------------+
|  Type definition for Archive queryBuffer on tsmBeginQuery()              |
+-------------------------------------------------------------------------*/
typedef struct tsmQryArchiveData
{
    dsUint16_t   stVersion;                          /* structure version */
    tsmObjName   *objName;                     /* Full dsm name of object */
    dsChar_t     *owner;                                    /* owner name */
                        /* for maximum date boundaries, see defines above */
    dsmDate      insDateLowerBound;      /* low bound archive insert date */
    dsmDate      insDateUpperBound;       /* hi bound archive insert date */
    dsmDate      expDateLowerBound;          /* low bound expiration date */
    dsmDate      expDateUpperBound;           /* hi bound expiration date */
    dsChar_t     *descr;                /* archive description */
} tsmQryArchiveData;
 
#define tsmQryArchiveDataVersion  1
 
/*-------------------------------------------------------------------------+
| Type definition for Query Archive response on dsmGetNextQObj()           |
+-------------------------------------------------------------------------*/
typedef struct tsmQryRespArchiveData
{
    dsUint16_t      stVersion;                           /* structure version */
    tsmObjName      objName;                      /* Filespace name qualifier */
    dsUint32_t      copyGroup;                           /* copy group number */
    dsChar_t        mcName[DSM_MAX_MC_NAME_LENGTH + 1];            /* mc name */
    dsChar_t        owner[DSM_MAX_OWNER_LENGTH + 1];            /* owner name */
    dsStruct64_t    objId;                                  /* Unique copy id */
    dsStruct64_t    reserved;                       /* backward compatability */
    dsUint8_t       mediaClass;                         /* media access class */
    dsmDate         insDate;                        /* archive insertion date */
    dsmDate         expDate;                    /* expiration date for object */
    dsChar_t        descr[DSM_MAX_DESCR_LENGTH + 1];   /* archive description */
    dsUint16_t      objInfolen;             /* length of object-dependent info*/
    dsUint8_t       objInfo[DSM_MAX_OBJINFO_LENGTH];  /*object-dependent info */
    dsUint160_t     restoreOrderExt;                         /* restore order */
    dsStruct64_t    sizeEstimate;              /* size estimate stored by user*/
    dsUint8_t       compressType;
} tsmQryRespArchiveData;
 
#define tsmQryRespArchiveDataVersion  3
 
/*-------------------------------------------------------------------------+
|  Type definition for Archive sendBuff parameter on dsmSendObj()          |
+-------------------------------------------------------------------------*/
typedef struct tsmSndArchiveData
{
    dsUint16_t   stVersion;                   /* structure version */
    dsChar_t     *descr;                    /* archive description */
} tsmSndArchiveData;
 
#define tsmSndArchiveDataVersion  1
 
 
/*-------------------------------------------------------------------------+
|  Type definition for Backup queryBuffer on dsmBeginQuery()               |
+-------------------------------------------------------------------------*/
typedef struct tsmQryBackupData
{
    dsUint16_t  stVersion;         /* structure version */
    tsmObjName  *objName;          /* full dsm name of object */
    dsChar_t    *owner;            /* owner name */
    dsUint8_t   objState;          /* object state selector */
    dsmDate     pitDate;           /* Date value for point in time restore */
                                   /* for possible values, see defines above */
} tsmQryBackupData;
 
#define tsmQryBackupDataVersion  2
 
/*-------------------------------------------------------------------------+
| Type definition for Query Backup response on dsmGetNextQObj()            |
+-------------------------------------------------------------------------*/
typedef struct tsmQryRespBackupData
{
    dsUint16_t      stVersion;                           /* structure version */
    tsmObjName      objName;                       /* full dsm name of object */
    dsUint32_t      copyGroup;                           /* copy group number */
    dsChar_t        mcName[DSM_MAX_MC_NAME_LENGTH + 1];            /* mc name */
    dsChar_t        owner[DSM_MAX_OWNER_LENGTH + 1];            /* owner name */
    dsStruct64_t    objId;                                /* Unique object id */
    dsStruct64_t    reserved;                       /* backward compatability */
    dsUint8_t       mediaClass;                         /* media access class */
    dsUint8_t       objState;                      /* Obj state, active, etc. */
    dsmDate         insDate;                         /* backup insertion date */
    dsmDate         expDate;                    /* expiration date for object */
    dsUint16_t      objInfolen;             /* length of object-dependent info*/
    dsUint8_t       objInfo[DSM_MAX_OBJINFO_LENGTH];  /*object-dependent info */
    dsUint160_t     restoreOrderExt;                         /* restore order */
    dsStruct64_t    sizeEstimate;             /* size estimate stored by user */
    dsStruct64_t    baseObjId;
    dsUint16_t      baseObjInfolen;             /* length of base object-dependent info*/
    dsUint8_t       baseObjInfo[DSM_MAX_OBJINFO_LENGTH];  /* base object-dependent info */
    dsUint160_t     baseRestoreOrder;                         /* restore order */
    dsUint32_t      fsID;
    dsUint8_t       compressType;
    dsBool_t        isGroupLeader;
    dsBool_t        isOpenGroup;
} tsmQryRespBackupData;
 
#define tsmQryRespBackupDataVersion  4
 
 
/*-------------------------------------------------------------------------+
|  Type definition for Active Backup queryBuffer on dsmBeginQuery()
|
|  Notes:  For the active backup query, only the fs (filespace) and objType
|          fields of objName need be set.  objType can only be set to
|          DSM_OBJ_FILE or DSM_OBJ_DIRECTORY.  DSM_OBJ_ANY_TYPE will not
|          find a match on the query.
+-------------------------------------------------------------------------*/
typedef struct tsmQryABackupData
{
    dsUint16_t      stVersion;                           /* structure version */
    tsmObjName      *objName;                     /* Only fs and objtype used */
} tsmQryABackupData;
 
#define tsmQryABackupDataVersion  1
 
/*-------------------------------------------------------------------------+
| Type definition for Query Active Backup response on dsmGetNextQObj()     |
+-------------------------------------------------------------------------*/
typedef struct tsmQryARespBackupData
{
    dsUint16_t  stVersion;                           /* structure version */
    tsmObjName  objName;                       /* full dsm name of object */
    dsUint32_t  copyGroup;                           /* copy group number */
    dsChar_t    mcName[DSM_MAX_MC_NAME_LENGTH + 1];/*management class name*/
    dsChar_t    owner[DSM_MAX_OWNER_LENGTH + 1];            /* owner name */
    dsmDate     insDate;                         /* backup insertion date */
    dsUint16_t  objInfolen;             /* length of object-dependent info*/
    dsUint8_t   objInfo[DSM_MAX_OBJINFO_LENGTH];  /*object-dependent info */
} tsmQryARespBackupData;
 
#define tsmQryARespBackupDataVersion  1
 
/*-------------------------------------------------------------------------+
|  Type definition for Backup queryBuffer on dsmBeginQuery()               |
+-------------------------------------------------------------------------*/
typedef struct tsmQryBackupGroups
{
    dsUint16_t   stVersion;         /* structure version */
    dsUint8_t    groupType;
    dsChar_t     *fsName;
    dsChar_t     *owner;
    dsStruct64_t groupLeaderObjId;
    dsUint8_t    objType;
 
} tsmQryBackupGroups;
 
#define tsmQryBackupGroupsVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for WINNT and OS/2 Filespace attributes                 |
+-------------------------------------------------------------------------*/
typedef struct tsmDosFSAttrib
{
    osChar_t     driveLetter ;          /* drive letter for filespace    */
    dsUint16_t   fsInfoLength;          /* fsInfo length used            */
    osChar_t     fsInfo[DSM_MAX_FSINFO_LENGTH];/*caller-determined data  */
} tsmDosFSAttrib ;
 
/*-------------------------------------------------------------------------+
|  Type definition for UNIX Filespace attributes                           |
+-------------------------------------------------------------------------*/
typedef struct tsmUnixFSAttrib
{
    dsUint16_t   fsInfoLength;          /* fsInfo length used            */
    osChar_t     fsInfo[DSM_MAX_FSINFO_LENGTH];/*caller-determined data  */
} tsmUnixFSAttrib ;
 
/*-------------------------------------------------------------------------+
|  Type definition for NetWare Filespace attributes                        |
+-------------------------------------------------------------------------*/
typedef tsmUnixFSAttrib tsmNetwareFSAttrib;
 
/*-------------------------------------------------------------------------+
|  Type definition for Filespace attributes on all Filespace calls         |
+-------------------------------------------------------------------------*/
typedef union
{
    tsmNetwareFSAttrib  netwareFSAttr;
    tsmUnixFSAttrib     unixFSAttr ;
    tsmDosFSAttrib      dosFSAttr ;
} tsmFSAttr ;
 
/*-------------------------------------------------------------------------+
|  Type definition for fsUpd parameter on dsmUpdateFS()
+-------------------------------------------------------------------------*/
typedef struct   tsmFSUpd
{
    dsUint16_t      stVersion ;             /* structure version              */
    dsChar_t        *fsType ;               /* filespace type                 */
    dsStruct64_t    occupancy ;             /* occupancy estimate             */
    dsStruct64_t    capacity  ;             /* capacity estimate              */
    tsmFSAttr       fsAttr ;                /* platform specific attributes   */
} tsmFSUpd ;
 
#define tsmFSUpdVersion  1
 
/*-------------------------------------------------------------------------+
| Type definition for Query Filespace response on dsmGetNextQObj()         |
+-------------------------------------------------------------------------*/
typedef struct tsmQryRespFSData
{
    dsUint16_t     stVersion;                          /* structure version */
    dsChar_t       fsName[DSM_MAX_FSNAME_LENGTH + 1];     /* Filespace name */
    dsChar_t       fsType[DSM_MAX_FSTYPE_LENGTH + 1] ;     /* Filespace type */
    dsStruct64_t   occupancy;                   /* Occupancy est. in bytes. */
    dsStruct64_t   capacity;                     /* Capacity est. in bytes. */
    tsmFSAttr      fsAttr ;                /* platform specific attributes  */
    dsmDate        backStartDate;           /* start backup date             */
    dsmDate        backCompleteDate;        /* end backup Date               */
    dsmDate        incrImageDate;           /* For future use                */
    dsBool_t       bIsUnicode;
    dsUint32_t     fsID;
} tsmQryRespFSData;
 
#define tsmQryRespFSDataVersion 4
 
/*-------------------------------------------------------------------------+
|  Type definition for regFilespace parameter on dsmRegisterFS()
+-------------------------------------------------------------------------*/
typedef struct tsmRegFSData
{
    dsUint16_t      stVersion;                      /* structure version */
    dsChar_t        *fsName;                        /* Filespace name */
    dsChar_t        *fsType;                        /* Filespace type */
    dsStruct64_t    occupancy;                  /* Occupancy est. in bytes. */
    dsStruct64_t    capacity;                    /* Capacity est. in bytes. */
    tsmFSAttr       fsAttr ;                 /* platform specific attributes */
} tsmRegFSData;
 
#define tsmRegFSDataVersion  1
 
/*-------------------------------------------------------------------------+
|  Type definition for Filespace queryBuffer on dsmBeginQuery()            |
+-------------------------------------------------------------------------*/
typedef struct tsmQryFSData
{
    dsUint16_t  stVersion;                 /* structure version */
    dsChar_t    *fsName;                   /* File space name */
} tsmQryFSData;
 
#define tsmQryFSDataVersion  1
 
/*-------------------------------------------------------------------------+
|  Type definition for session information response on dsmQuerySessionInfo()|
+-------------------------------------------------------------------------*/
typedef struct
{
  dsUint16_t     stVersion;           /* Structure version                */
     /*------------------------------------------------------------------*/
     /*           Server information                                     */
     /*------------------------------------------------------------------*/
  dsChar_t       serverHost[DSM_MAX_SERVERNAME_LENGTH+1];
                                     /* Network host name of DSM server  */
  dsUint16_t     serverPort;             /* Server comm port on host         */
  dsmDate        serverDate;             /* Server's date/time               */
  dsChar_t       serverType[DSM_MAX_SERVERTYPE_LENGTH+1];
                                     /* Server's execution platform      */
  dsUint16_t     serverVer;              /* Server's version number          */
  dsUint16_t     serverRel;              /* Server's release number          */
  dsUint16_t     serverLev;              /* Server's level number            */
  dsUint16_t     serverSubLev;           /* Server's sublevel number         */
     /*------------------------------------------------------------------*/
     /*           Client Defaults                                        */
     /*------------------------------------------------------------------*/
  dsChar_t       nodeType[DSM_MAX_PLATFORM_LENGTH+1]; /*node/application type*/
  dsChar_t       fsdelim;                /* File space delimiter             */
  dsChar_t       hldelim;                /* Delimiter betw highlev & lowlev */
  dsUint8_t      compression;            /* Compression flag                 */
  dsUint8_t      archDel;                /* Archive delete permission        */
  dsUint8_t      backDel;                /* Backup  delete permission        */
  dsUint32_t     maxBytesPerTxn;         /* for future use                   */
  dsUint16_t     maxObjPerTxn;           /* The max objects allowed in a txn */
 
     /*------------------------------------------------------------------*/
     /*           Session Information                                    */
     /*------------------------------------------------------------------*/
  dsChar_t       id[DSM_MAX_ID_LENGTH+1];    /* Sign-in id node name         */
  dsChar_t       owner[DSM_MAX_OWNER_LENGTH+1]; /* Sign-in owner             */
                                     /*   (for multi-user platforms)     */
  dsChar_t       confFile[DSM_PATH_MAX + DSM_NAME_MAX +1];
                                     /* len is platform dep              */
                                     /* dsInit name of appl config file  */
  dsUint8_t      opNoTrace;              /* dsInit option - NoTrace = 1      */
     /*------------------------------------------------------------------*/
     /*           Policy Data                                            */
     /*------------------------------------------------------------------*/
  dsChar_t       domainName[DSM_MAX_DOMAIN_LENGTH+1]; /* Domain name         */
  dsChar_t       policySetName[DSM_MAX_PS_NAME_LENGTH+1];
                                     /* Active policy set name           */
  dsmDate        polActDate;             /* Policy set activation date       */
  dsChar_t       dfltMCName[DSM_MAX_MC_NAME_LENGTH+1];/* Default Mgmt Class  */
  dsUint16_t     gpBackRetn;             /* Grace-period backup retention    */
  dsUint16_t     gpArchRetn;             /* Grace-period archive retention   */
  dsChar_t       adsmServerName[DSM_MAX_SERVERNAME_LENGTH+1]; /* adsm server name */
} tsmApiSessInfo;
 
#define tsmApiSessInfoVersion  2
 
/*-------------------------------------------------------------------------+
| Type definition for Query options response on dsmQueryCliOptions()       |
|      and dsmQuerySessOptions()                                           |
+-------------------------------------------------------------------------*/
 
typedef struct
{
  dsUint16_t  stVersion;
  dsChar_t    dsmiDir[DSM_PATH_MAX + DSM_NAME_MAX +1];
  dsChar_t    dsmiConfig[DSM_PATH_MAX + DSM_NAME_MAX +1];
  dsChar_t    serverName[DSM_MAX_SERVERNAME_LENGTH+1];
  dsInt16_t   commMethod;
  dsChar_t    serverAddress[DSM_MAX_SERVER_ADDRESS];
  dsChar_t    nodeName[DSM_MAX_NODE_LENGTH+1];
  dsBool_t    compression;
  dsBool_t    compressalways;
  dsBool_t    passwordAccess;
  }tsmOptStruct ;
 
#define tsmOptStructVersion  1
 
 
/*-------------------------------------------------------------------------+
| Type definition for qryRespAccessData  parameter used on dsmQueryAccess()|
+-------------------------------------------------------------------------*/
 
typedef struct
{
    dsUint16_t        stVersion ;                    /* structure version      */
    dsChar_t          node[DSM_MAX_ID_LENGTH+1];     /* node name              */
    dsChar_t          owner[DSM_MAX_OWNER_LENGTH+1]; /* owner                  */
    tsmObjName        objName ;                      /* object name            */
    dsmAccessType     accessType;                    /* archive or backup     */
    dsUint32_t        ruleNumber ;                   /* Access rule id         */
 
}tsmQryRespAccessData;
 
#define tsmQryRespAccessDataVersion  1
 
/*-------------------------------------------------------------------------+
|  Type definition for envSetUp parameter on dsmSetUp()
+-------------------------------------------------------------------------*/
typedef struct tsmEnvSetUp
{
    dsUint16_t      stVersion;                      /* structure version */
    dsChar_t        dsmiDir[DSM_PATH_MAX + DSM_NAME_MAX +1];
    dsChar_t        dsmiConfig[DSM_PATH_MAX + DSM_NAME_MAX +1];
    dsChar_t        dsmiLog[DSM_PATH_MAX + DSM_NAME_MAX +1];
    char            **argv;  /* for executables name argv[0] */
    dsChar_t        logName[DSM_NAME_MAX +1];
    dsBool_t        inclExclCaseSensitive;         /* for future use */
    dsBool_t        multipleInit;                  /* for future use */
} tsmEnvSetUp;
 
#define tsmEnvSetUpVersion  4
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmInitExIn_t
+-------------------------------------------------------------------------*/
typedef struct tsmInitExIn_t
{
    dsUint16_t         stVersion;                      /* structure version */
    tsmApiVersionEx    *apiVersionExP;
    dsChar_t           *clientNodeNameP;
    dsChar_t           *clientOwnerNameP;
    dsChar_t           *clientPasswordP;
    dsChar_t           *userNameP;
    dsChar_t           *userPasswordP;
    dsChar_t           *applicationTypeP;
    dsChar_t           *configfile;
    dsChar_t           *options;
    dsChar_t           dirDelimiter;
    dsBool_t           useUnicode;
    dsBool_t           bCrossPlatform;
} tsmInitExIn_t;
 
#define tsmInitExInVersion 2
 
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmInitExOut_t
+-------------------------------------------------------------------------*/
typedef struct tsmInitExOut_t
{
    dsUint16_t         stVersion;                      /* structure version */
    dsInt16_t          userNameAuthorities;
    dsInt16_t          infoRC;        /* error return code if encountered */
                                      /* adsm server name                 */
    dsChar_t           adsmServerName[DSM_MAX_SERVERNAME_LENGTH+1];
    dsUint16_t         serverVer;     /* Server's version number          */
    dsUint16_t         serverRel;     /* Server's release number          */
    dsUint16_t         serverLev;     /* Server's level number            */
    dsUint16_t         serverSubLev;  /* Server's sublevel number         */
} tsmInitExOut_t;
 
#define tsmInitExOutVersion 2
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmLogExIn_t
+-------------------------------------------------------------------------*/
typedef struct tsmLogExIn_t
{
    dsUint16_t         stVersion;  /* structure version */
    dsmLogSeverity     severity;
    dsChar_t           appMsgID[8];
    dsmLogType         logType;    /* log type : local, server, both */
    dsChar_t           *message;   /* text of message to be logged */
    dsChar_t           appName[DSM_MAX_PLATFORM_LENGTH];
    dsChar_t           osPlatform[DSM_MAX_PLATFORM_LENGTH];
    dsChar_t           appVersion[DSM_MAX_PLATFORM_LENGTH];
 
} tsmLogExIn_t;
 
#define tsmLogExInVersion 2
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmlogExOut_t
+-------------------------------------------------------------------------*/
typedef struct tsmLogExOut_t
{
    dsUint16_t         stVersion;  /* structure version */
} tsmLogExOut_t;
 
#define tsmLogExOutVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmRenameIn_t
+-------------------------------------------------------------------------*/
typedef struct tsmRenameIn_t
{
    dsUint16_t       stVersion;                     /* structure version  */
    dsUint32_t       tsmHandle;                     /* handle for session */
    dsUint8_t        repository;                    /* Backup or Archive  */
    tsmObjName       *objNameP ;                    /* object name */
    dsChar_t         newHl[DSM_MAX_HL_LENGTH + 1];  /* new High level name */
    dsChar_t         newLl[DSM_MAX_LL_LENGTH + 1];  /* new Low level name */
    dsBool_t         merge;                        /* merge into existing name*/
    ObjID            objId;                         /* objId for Archive */
} tsmRenameIn_t;
 
#define tsmRenameInVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for dsmRenameOut_t
+-------------------------------------------------------------------------*/
typedef struct tsmRenameOut_t
{
    dsUint16_t         stVersion;                      /* structure version */
} tsmRenameOut_t;
 
#define tsmRenameOutVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for tsmEndSendObjExIn_t
+-------------------------------------------------------------------------*/
typedef struct tsmEndSendObjExIn_t
{
    dsUint16_t       stVersion;                     /* structure version  */
    dsUint32_t       tsmHandle;                     /* handle for session */
} tsmEndSendObjExIn_t;
 
#define tsmEndSendObjExInVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for tsmEndSendObjExOut_t
+-------------------------------------------------------------------------*/
typedef struct tsmEndSendObjExOut_t
{
   dsUint16_t         stVersion;           /* structure version */
   dsStruct64_t       totalBytesSent;      /* total bytes read from app */
   dsBool_t           objCompressed;       /* was object compressed */
   dsStruct64_t       totalCompressSize;   /* total size after compress */
   dsStruct64_t       totalLFBytesSent;    /* total bytes sent LAN-free */
} tsmEndSendObjExOut_t;
 
#define tsmEndSendObjExOutVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for tsmGroupHandlerIn_t
+-------------------------------------------------------------------------*/
typedef struct tsmGroupHandlerIn_t
{
    dsUint16_t       stVersion;        /* structure version                   */
    dsUint32_t       tsmHandle;        /* handle for session                  */
    dsUint8_t        groupType;        /* Type of group                       */
    dsUint8_t        actionType;       /* Type of group operation             */
    dsUint8_t        memberType;       /* Type of member: Leader or member    */
    dsStruct64_t     leaderObjId;      /* OBJID of the groupleader            */
    dsChar_t         *uniqueGroupTagP; /* Unique group identifier             */
    tsmObjName       *objNameP ;       /* group leader object name            */
    dsmGetList       memberObjList;    /* list of objects to remove, assign   */
} tsmGroupHandlerIn_t;
 
#define tsmGroupHandlerInVersion 1
 
 
/*-------------------------------------------------------------------------+
|  Type definition for tsmGroupHandlerExOut_t
+-------------------------------------------------------------------------*/
typedef struct tsmGroupHandlerOut_t
{
    dsUint16_t         stVersion;                      /* structure version */
} tsmGroupHandlerOut_t;
 
#define tsmGroupHandlerOutVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for tsmEndTxnExIn_t
+-------------------------------------------------------------------------*/
typedef struct tsmEndTxnExIn_t
{
    dsUint16_t       stVersion;                     /* structure version  */
    dsUint32_t       tsmHandle;                     /* handle for session */
    dsUint8_t        vote;
} tsmEndTxnExIn_t;
 
#define tsmEndTxnExInVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for tsmEndTxnExOut_t
+-------------------------------------------------------------------------*/
typedef struct tsmEndTxnExOut_t
{
    dsUint16_t         stVersion;               /* structure version              */
    dsUint16_t         reason;                  /* reason code                    */
    dsStruct64_t       groupLeaderObjId;        /* groupLeader obj id returned on */
                                                /* DSM_ACTION_OPEN                */
    dsUint8_t          deferredVote;            /* future use                     */
    dsUint16_t         deferredAbortReasonCode; /* future use                     */
} tsmEndTxnExOut_t;
 
#define tsmEndTxnExOutVersion 1
 
/*-------------------------------------------------------------------------+
|  Type definition for tsmEndGetDataExIn_t
+-------------------------------------------------------------------------*/
typedef struct tsmEndGetDataExIn_t
{
   dsUint16_t     stVersion;   /* structure version  */
   dsUint32_t     tsmHandle;   /* handle for session */
}tsmEndGetDataExIn_t;
 
#define tsmEndGetDataExInVersion 1
 
 
/*-------------------------------------------------------------------------+
|  Type definition for tsmEndGetDataExOut_t
+-------------------------------------------------------------------------*/
typedef struct tsmEndGetDataExOut_t
{
   dsUint16_t     stVersion;         /* structure version             */
   dsStruct64_t   totalLFBytesRecv;  /* total LAN-free bytes recieved */
}tsmEndGetDataExOut_t;
 
#define tsmEndGetDataExOutVersion 1
 
#if _OPSYS_TYPE == DS_WINNT
#pragma pack()
#endif
 
 
#if _OPSYS_TYPE == DS_MACOS
#pragma align_array_members reset
#pragma options align = reset
#endif
#endif /* _H_TSMAPITD */
 
 


/***********************************************************************
* Tivoli Storage Manager                                               *
* API Client Component                                                 *
*                                                                      *
* (C) Copyright IBM Corporation 1993, 2002                             *
***********************************************************************/
 
/***********************************************************************
* Header File Name: dsmapips.h
*
* Environment:      *********************************************
*                   ** This is a platform-specific source file **
*                   ** versioned for Windows NT                **
*                   *********************************************
*
* Design Notes:     This file includes platform-dependent definitions
*
* Descriptive-name: Definitions for TSM typedefs and LINKAGE
*----------------------------------------------------------------------*/
 
#ifndef _H_DSMAPIPS
#define _H_DSMAPIPS
 
 #ifndef _WIN64
#pragma pack(1)
#endif
 
/*=================================================*/
/*                     T Y P E D E F S             */
/*=================================================*/
 
/* new typedef file for Version 3   */
 
#if !defined(DSMAPILIB) || defined(XOPEN_BUILD)
 
/* support for linkage */
 
#include <windows.h>
#define DSMLINKAGE WINAPI
 
#define DS_WINNT    22 
#define _OPSYS_TYPE DS_WINNT  
 
   typedef signed   char  dsInt8_t;
   typedef unsigned char  dsUint8_t;
   typedef signed   short dsInt16_t;
   typedef unsigned short dsUint16_t;
   typedef signed   long  dsInt32_t;
   typedef unsigned long  dsUint32_t;
 
/*=== Character and string types ===*/
#ifdef UNICODE
  typedef wchar_t dsChar_t;
  #define dsTEXT(x)       L##x
#else
  typedef char dsChar_t;
  #define dsTEXT(x)       x
#endif  /* !UNICODE */
/*=== Common typedefs and defines derived from dsChar_t ===*/
typedef dsChar_t            *dsString_t;
 
  /* added for the extended restore order */
   typedef struct
   {
     dsUint32_t top;
     dsUint32_t hi_hi;
     dsUint32_t hi_lo;
     dsUint32_t lo_hi;
     dsUint32_t lo_lo;
   } dsUint160_t ;
 
#if defined(_LONG_LONG)
   typedef __int64              dsInt64_t;
   typedef unsigned __int64     dsUint64_t;
   /*=== A "true" unsigned 64-bit integer ===*/
   typedef __int64              dsLongLong_t;
#else
typedef struct tagUINT64_t
   {
      dsUint32_t hi;        /* Most significant 32 bits. */
      dsUint32_t lo;        /* Least significant 32 bits. */
   } dsUint64_t;
#endif
 
/*-------------------------------------------------------------------------+
| Type definition for bool_t                                               |
+-------------------------------------------------------------------------*/
/*
 *  Had to create a Boolean type that didn't clash with any other predefined
 *  version in any operating system or windowing system.
 */
typedef enum
{
        bFalse = 0x00,
        bTrue  = 0x01
} dsBool_t ;
 
/*===  for backward compatability  ===*/
#define uint8  dsUint8_t
#define int8   dsInt8_t
#define uint16 dsUint16_t
#define int16  dsInt16_t
#define uint32 dsUint32_t
#define int32  dsInt32_t
#define uint64 dsStruct64_t
#define bool_t dsBool_t
 
typedef struct
   {
      dsUint32_t hi;        /* Most significant 32 bits. */
      dsUint32_t lo;        /* Least significant 32 bits. */
   }dsStruct64_t ;
 
#endif /* DSMAPILIB */
 
#ifndef _WIN64
#pragma pack()
#endif
#endif  /* _H_DSMAPIPS */
 
/**************************************************************************
* Header File Name: release.h
*
* Environment:     ************************************************
*                  ** This is a platform-independent source file **
*                  ************************************************
*
* Design Notes:    This file contains the common information about
*                  the actual version.release.level.sublevel
*
* Descriptive-name: Definitions for Tivoli Storage manager version
*
* Note: This file should not contain any LOG or CMVC information. It is
*       shipped with the API code.
*
*----------------------------------------------------------------------*/
 
#ifndef _H_RELEASE
#define _H_RELEASE
 
#define COMMON_VERSION    5
#define COMMON_RELEASE    1
#define COMMON_LEVEL      0
#define COMMON_SUBLEVEL   0
#define COMMON_DRIVER  dsTEXT(" ")
 
#define COMMON_VERSIONTXT "5.1.0.0"
 
/*=====================================================================
 * The following string definitions are used for VERSION information
 * and should not be converted to dsTEXT or osTEXT.  They are used 
 * only at link time.
 *====================================================================*/
#define COMMON_VERSION_STR    "5"
#define COMMON_RELEASE_STR    "1"
#define COMMON_LEVEL_STR      "0"
#define COMMON_SUBLEVEL_STR   "0"
#define COMMON_DRIVER_STR     " "
 
 
/*=== product names definitions ===*/
#define COMMON_NAME_DFDSM      1
#define COMMON_NAME_ADSM       2
#define COMMON_NAME_TSM        3
#define COMMON_NAME            COMMON_NAME_TSM
 
 
#endif /* _H_RELEASE */
 


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]