Figure 80. Sample User Exit Declarations
/*********************************************************************** * Name: userExitSample.h * Description: Declarations for a user-exit * Environment: AIX 4.1.4+ on RS/6000 ***********************************************************************/ #ifndef _H_USEREXITSAMPLE #define _H_USEREXITSAMPLE #include <stdio.h> #include <sys/types.h> /***** Do not modify below this line. *****/ #define BASE_YEAR 1900 typedef short int16; typedef int int32; /* uchar is usually defined in <sys/types.h> */ /* DateTime Structure Definitions - ADSM representation of a timestamp */ typedef struct { uchar year; /* Years since BASE_YEAR (0-255) */ uchar mon; /* Month (1 - 12) */ uchar day; /* Day (1 - 31) */ uchar hour; /* Hour (0 - 23) */ uchar min; /* Minutes (0 - 59) */ uchar sec; /* Seconds (0 - 59) */ } DateTime; /****************************************** * Some field size definitions (in bytes) * ******************************************/ #define MAX_SERVERNAME_LENGTH 64 #define MAX_NODE_LENGTH 64 #define MAX_COMMNAME_LENGTH 16 #define MAX_OWNER_LENGTH 64 #define MAX_HL_ADDRESS 64 #define MAX_LL_ADDRESS 32 #define MAX_SCHED_LENGTH 30 #define MAX_DOMAIN_LENGTH 30 #define MAX_MSGTEXT_LENGTH 1600
/********************************************** * Event Types (in elEventRecvData.eventType) * **********************************************/ #define ADSM_SERVER_EVENT 0x03 /* Server Events */ #define ADSM_CLIENT_EVENT 0x05 /* Client Events */ /*************************************************** * Application Types (in elEventRecvData.applType) * ***************************************************/ #define ADSM_APPL_BACKARCH 1 /* Backup or Archive client */ #define ADSM_APPL_HSM 2 /* Space manage client */ #define ADSM_APPL_API 3 /* API client */ #define ADSM_APPL_SERVER 4 /* Server (ie. server to server ) */ /***************************************************** * Event Severity Codes (in elEventRecvData.sevCode) * *****************************************************/ #define ADSM_SEV_INFO 0x02 /* Informational message. */ #define ADSM_SEV_WARNING 0x03 /* Warning message. */ #define ADSM_SEV_ERROR 0x04 /* Error message. */ #define ADSM_SEV_SEVERE 0x05 /* Severe error message. */ #define ADSM_SEV_DIAGNOSTIC 0x06 /* Diagnostic message. */ #define ADSM_SEV_TEXT 0x07 /* Text message. */ /************************************************************ * Data Structure of Event that is passed to the User-Exit. * * This data structure is the same for a file generated via * * FILEEXIT option on the server. * ************************************************************/ typedef struct evRdata { int32 eventNum; /* the event number. */ int16 sevCode; /* event severity. */ int16 applType; /* application type (hsm, api, etc) */ int32 sessId; /* session number */ int32 version; /* Version number of this structure (1) */ int32 eventType; /* event type * * (ADSM_CLIENT_EVENT, ADSM_SERVER_EVENT) */
DateTime timeStamp; /* timestamp for event data. */ uchar serverName[MAX_SERVERNAME_LENGTH+1]; /* server name */ uchar nodeName[MAX_NODE_LENGTH+1]; /* Node name for session */ uchar commMethod[MAX_COMMNAME_LENGTH+1]; /* communication method */ uchar ownerName[MAX_OWNER_LENGTH+1]; /* owner */ uchar hlAddress[MAX_HL_ADDRESS+1]; /* high-level address */ uchar llAddress[MAX_LL_ADDRESS+1]; /* low-level address */ uchar schedName[MAX_SCHED_LENGTH+1]; /* schedule name if applicable */ uchar domainName[MAX_DOMAIN_LENGTH+1]; /* domain name for node */ uchar event[MAX_MSGTEXT_LENGTH]; /* event text */ } elEventRecvData; /************************************ * Size of the Event data structure * ************************************/ #define ELEVENTRECVDATA_SIZE sizeof(elEventRecvData) /************************************* * User Exit EventNumber for Exiting * *************************************/ #define USEREXIT_END_EVENTNUM 1822 /* Only user-exit receiver to exit */ #define END_ALL_RECEIVER_EVENTNUM 1823 /* All receivers told to exit */ /************************************** *** Do not modify above this line. *** **************************************/ /********************** Additional Declarations **************************/ #endif