Following is a C structure that describes the parameters passed to a notify exit routine. The pointer is a 32bit value, and all long definitions are 32bit unsigned.
typedef enum {
NXEventInitialize = 0,
NXEventFileInmodOpen = 1,
NXEventDBSRestart = 9,
NXEventCLIError = 10,
NXEventDBSError = 11,
NXEventExit = 12,
NXEventExportBegin = 31,
NXEventReqSubmitBegin = 32,
NXEventReqSubmitEnd = 33,
NXEventReqFetchBegin = 34,
NXEventFileOutmodOpen = 35,
NXEventStmtFetchBegin = 36,
NXEventStmtFetchEnd = 37,
NXEventReqFetchEnd = 38,
NXEventExportEnd = 39,
NXEventBlockCount = 40,
NXEventExportEnd64 = 41,
NXEventInitializeEON = 42,
NXEventReqSubmitBeginEON = 43,
NXEventExportBeginEON = 44
} NfyExpEvent;
typedef struct _FXNotifyExitParm {
UInt32 Event;
union {
struct {
UInt32 VersionLen;
char VersionId[MAXVERSIONIDLEN];
UInt32 UtilityId;
UInt32 UtilityNameLen;
char UtilityName[MAXUTILITYNAMELEN];
UInt32 UserNameLen;
char UserName[MAXUSERNAMELEN];
UInt32 UserStringLen;
char UserString[MAXUSERSTRLEN];
}Initialize;
struct {
UInt32 VersionLen;
char VersionId[MAXVERSIONIDLEN];
UInt32 UtilityId;
UInt32 UtilityNameLen;
char UtilityName[MAXUTILITYNAMELEN];
UInt32 UserNameLen;
char *UserName;
UInt32 UserStringLen;
char UserString[MAXUSERSTRLEN];
}InitializeEON;
struct {
UInt32 FileNameLen;
char FileOrInmodName[MAXFILENAMELEN];
UInt32 dummy;
} FileInmodOpen ;
struct {
UInt32 dummy;
} DBSRestart;
struct {
UInt32 ErrorCode;
} CLIError;
struct {
UInt32 ErrorCode;
} DBSError;
struct {
UInt32 ReturnCode;
} Exit;
struct {
UInt32 dummy;
char DatabaseName[MAXDBNAMELEN];
} ExportBegin;
struct {
UInt32 dummy;
char *DatabaseName;
} ExportBeginEON;
struct {
UInt32 RequestLen;
char Request[MAXREQUESTLEN];
} ReqSubmitBegin;
struct {
UInt32 RequestLen;
char *Request;
} ReqSubmitBeginEON;
struct {
UInt32 StatementCnt;
UInt32 BlockCnt;
} ReqSubmitEnd;
struct {
UInt32 dummy;
} ReqFetchBegin;
struct {
UInt32 FileNameLen;
char FileOrOutmodName[MAXFILENAMELEN];
} FileOutmodOpen;
struct {
UInt32 StatementNo;
UInt32 BlockCnt;
} StmtFetchBegin;
struct {
UInt32 Records;
} StmtFetchEnd;
struct {
UInt32 RecsExported;
UInt32 RecsRejected;
} ReqFetchEnd;
struct {
UInt32 RecsExported;
UInt32 RecsRejected;
} ExportEnd;
struct {
char RecsExported[MAXUINT64];
UInt32 RecsRejected;
}ExportEnd64;
struct {
UInt32 BlockCount;
} BlockCount;
} Vals;
} FXNotifyExitParm;
#ifdef I370
extern long FXNotifyExit(
#else
extern Int32 FXNotifyExit(
#endif
#ifdef __STDC__
FXNotifyExitParm *Parms
#endif
);