#ifndef XM_AOP_H_
/*
 ************
                   +--------------------------------+
                   | THIS FILE MUST MATCH aop.inc   |
                   +--------------------------------+

   Description:	Definitions used by the M$AOP array operator facilities

   Author:	JGS 8/95
   Author:      Copy of aop.inc
   Version:     $Id: aop.h,v 1.1 2009/08/11 13:50:52 ntn Exp $
 ************
*/

typedef struct {
  M_PTR func;
  int_1 precedence;
#ifndef __cplusplus
  int_1 class;
#else
  int_1 class_;
#endif
  int_1 inplace;
  int_1 outmap;
  char mode;
  char type;
  int_2 inputs;
  int_2 outputs;
  int_2 index;
  int_4 fill;
} AOPSTRUCT;
/*
  Be sure to update L_aopstruct if /AOPSTRUCT/ changes!!
*/
#define L_aopstruct L_M_Ptr+16

typedef struct {
#ifndef __cplusplus
  int_1 class;
#else
  int_1 class_;
#endif
  int_1 offset;
  char mode;
  char type;
  int_4 id;
  int_4 nelem;
  int_4 stride;
  M_PTR buf;
} AOPSTACK;

/*
  Be sure to update L_aopstack if /AOPSTACK/ changes!!
*/
#define L_aopstack 16+L_M_Ptr
#define P_AOP_VALID 1
#define P_AOP_INVALID 2
#define P_AOP_BADSTK 3
#define P_AOP_BADMODE 4
#define P_AOP_BADTYPE 5
#define P_OP 1
#define P_FILE 2
#define P_RSLT 3

#define XM_AOP_H_
#endif /* XM_AOP_H_ */
