pmddamt.h - Access Module

Teradata Tools and Utilities Access Modules Programmer Guide

Product
Access Module
Release Number
15.10
Language
English (United States)
Last Update
2018-10-07
dita:id
B035-2424
lifecycle
previous
Product Category
Teradata Tools and Utilities

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 */