This header file shows structure and symbol definitions required to interface with the Teradata PT DataConnector operator or an Access Module.
/* % TITLE pmddamt.h ... Device Dependent Access Module structs/types */
/***********************************************************************/
/* */
/* Copyright 1997-2012 Teradata Corporation. */
/* ALL RIGHTS RESERVED. */
/* Teradata Corporation CONFIDENTIAL AND TRADE SECRET */
/* */
/* This copyrighted material is the Confidential, Unpublished */
/* Property of the Teradata Corporation. This copyright notice */
/* and any other copyright notices included in machine readable */
/* copies must be reproduced on all authorized copies. */
/* */
/* CRITICAL USAGE NOTE: */
/* This header file is to be the EXACT same file for both SA & TPT. */
/* The cooresponding versions in /vob/tdcli & /vob/paralx must match */
/* The identiy will insure that the same Access Module will work with */
/* the standalone utilities AND the TPT DC operator */
/* */
/**********************************************************************/
#ifndef PMDDAMT_H
#define PMDDAMT_H
/#if defined(HPUX) && defined(PIOM64) && !defined(HPUX_IA64)
#ifdef __cplusplus
#define pmddamt_packing "pack 8"
#pragma pack 8
#else
#define pmddamt_packing "HP_ALIGN NATURAL PUSH"
#pragma HP_ALIGN NATURAL PUSH
#endif
#elif defined(HPUX_IA64) && defined(PIOM64)
#define pmddamt_packing "pack(8)"
#pragma pack(8)
#elif defined(SOLARIS) && defined(PIOM64)
#define pmddamt_packing "pack(8)"
#pragma pack(8)
#elif defined (AIX)
#define pmdcomt_packing "options align=packed"
#pragma options align=packed
#elif !defined(HPUX) && !defined(SOLARIS) && !defined(__MVS__) \
&& !defined(_WIN64)
#define pmddamt_packing "pack (push, 1)"
#pragma pack (push, 1)
#endif
#if !defined (pmddamt_packing)
#define pmddamt_packing "none"
#endif
#define pmddamt_HeaderVersion "Common 13.10.00.02" /* SRC_ID */
#define pmddamt_ID "pmddamt header version '" pmddamt_HeaderVersion \
"', packing '" pmddamt_packing "'"
#ifdef PIOM64
#define pmiInterfaceVersion 2001
#else
#define pmiInterfaceVersion 2000
#endif
#define pmiMAX_EC_LEN 30
/* EyeCatcher strings for each structure type */
#define pmiEC_CmdBlock_t "AXSMOD block:CmdBlock_t"
#define pmiEC_Init_t "AXSMOD block:Init_t"
#define pmiEC_Open_t "AXSMOD block:Open_t"
#define pmiEC_Close_t "AXSMOD block:Close_t"
#define pmiEC_RW_t "AXSMOD block:RW_t"
#define pmiEC_Pos_t "AXSMOD block:Pos_t"
#define pmiEC_Shut_t "AXSMOD block:Shut_t"
#define pmiEC_ID_t "AXSMOD block:ID_t"
#define pmiEC_Attr_t "AXSMOD block:Attr_t"
#define pmiMAX_INIT_STR_LEN 512
#define pmiMAX_FNAME_LEN 255
#define pmiMAX_ETEXT_LEN 32000
/* the following defines are required only for */
/* communications between the DIAM and the DDAM */
#define pmiPIDMOptInit 1
#define pmiPIDMOptOpen 2
#define pmiPIDMOptClose 3
#define pmiPIDMOptCloseR 10
#define pmiPIDMOptRead 4
#define pmiPIDMOptWrite 5
#define pmiPIDMOptGetPos 6
#define pmiPIDMOptSetPos 7
#define pmiPIDMOptShut 8
#define pmiPIDMOptID 9
#define pmiPIDMOptGetA_A 11
#define pmiPIDMOptGetF_A 12
#define pmiPIDMOptPutA_A 13
#define pmiPIDMOptPutF_A 14
typedef struct _pmiInit
{
char EyeCatcher[pmiMAX_EC_LEN]; /* Struct eyecatcher string */
pmUInt32 StructLength; /* Length of this structure */
void *PIData; /* Access Module Internal Data Pointer */
pmUInt16 InterfaceVerNo; /* pmdcomt.h version identifier */
pmUInt16 InterfaceVerNoD; /* pmddamt.h version identifier */
pmUInt32 ClientIDL; /* Length of ClientID field */
pmUInt32 InitStrL; /* Length of InitStr field */
char ClientID[pmMAX_CLIENT_ID+1]; /* Client identifier */
char InitStr[pmiMAX_INIT_STR_LEN+1]; /* Initialization field */
} pmiInit_t;
typedef struct _pmiOpen
{
char EyeCatcher[pmiMAX_EC_LEN]; /* Struct eyecatcher string */
pmUInt32 StructLength; /* Length of this structure */
void *PIData; /* Access Module Internal Data Pointer */
pmOpenMode_t OpenMode; /* provided to PIDM */
pmUInt16 BlkHeaderLen; /* defined by PIDM */
pmUInt32 BlkSize; /* defined by PIDM */
void *FIData; /* File Internal Data (returned/used by PIDM) */
pmUInt16 FileNameL; /* provided to PIDM */
char FileName[pmiMAX_FNAME_LEN+1]; /* provided to PIDM */
} pmiOpen_t;
typedef struct _pmiClose
{
char EyeCatcher[pmiMAX_EC_LEN]; /* Struct eyecatcher string */
pmUInt32 StructLength; /* Length of this structure */
void *FIData;
} pmiClose_t;
typedef struct _pmiRW
{
char EyeCatcher[pmiMAX_EC_LEN]; /* Struct eyecatcher string */
pmUInt32 StructLength; /* Length of this structure */
void *FIData;
pmUInt32 BufferLen;
char *Buffer;
} pmiRW_t;
typedef struct _pmiPos
{
char EyeCatcher[pmiMAX_EC_LEN]; /* Struct eyecatcher string */
pmUInt32 StructLength; /* Length of this structure */
void *FIData;
pmPos_t Position;
} pmiPos_t;
typedef struct _pmiShut
{
char EyeCatcher[pmiMAX_EC_LEN]; /* Struct eyecatcher string */
pmUInt32 StructLength; /* Length of this structure */
void *PIData;
pmUInt16 Mode;
} pmiShut_t;
typedef struct _pmiID
{
char EyeCatcher[pmiMAX_EC_LEN]; /* Struct eyecatcher string */
pmUInt32 StructLength; /* Length of this structure */
pmVerLst_t VerIDList;
} pmiID_t;
typedef struct _pmiAttribute
{
char EyeCatcher[pmiMAX_EC_LEN]; /* Struct eyecatcher string */
pmUInt32 StructLength; /* Length of this structure */
void *ObjData; /* Object pointer (PIData or FIData) */
pmUInt32 AttrNameLen; /* Length of attribute name */
char AttrName[pmMAX_ATR_NAME_LEN]; /* Attrribute name */
pmUInt32 AttrValueLen; /* Length of attribute value */
char AttrValue[pmMAX_ATR_VAL_LEN]; /* Attribute value */
} pmiAttr_t;
typedef struct _pmiCmdBlock
{
char EyeCatcher[pmiMAX_EC_LEN]; /* Struct eyecatcher string */
pmUInt32 StructLength; /* Length of this structure */
pmUInt32 Reqtype;
pmReturnType Retcode; /* set by DDAM */
pmTrceLvl_t TraceLvl;
pmNameBuf_t ErrMsg; /* Set by DDAM if retcode is pmrcFailure */
} pmiCmdBlock_t;
#ifdef WIN32
#ifdef CPP
extern "C"
{
__declspec(dllexport) void PIDMMain ( pmiCmdBlock_t *, void * );
}
#else
__declspec(dllexport) void PIDMMain ( pmiCmdBlock_t *, void * );
#endif
#else
void PIDMMain ( pmiCmdBlock_t *, void * );
#endif
#if defined(HPUX) && defined(PIOM64) && !defined(HPUX_IA64)
#ifdef __cplusplus
#pragma pack
#else
#pragma HP_ALIGN POP
#endif
#elif defined(HPUX_IA64) && defined(PIOM64)
#pragma pack()
#elif defined(SOLARIS) && defined(PIOM64)
#pragma pack()
#elif defined (AIX)
#pragma options align=reset
#elif !defined(HPUX) && !defined(SOLARIS) && !defined(__MVS__) \
&& !defined(_WIN64)
#pragma pack (pop)
#endif
#endif /* PMDDAMT_H */