#ifndef _PARAM_TARGET_H_
#define _PARAM_TARGET_H_

/* 

 (c) Copyright, Real-Time Innovations, Inc. 2001.  All rights reserved.
 No duplications, whole or partial, manual or electronic, may be made
 without prior written permission.  Any such copies, or
 revisions thereof, must display this notice unaltered.
 This code contains trade secrets of Real-Time Innovations, Inc.

 modification history
 ------------ -------
 0.0a,14jan02,pac  created

 DESCRIPTION:
   Contains the target architecture specific code for the param tools.
--------------------------------------------------------------------------*/
/* $Id: arch_h_example.txt,v 1.2 2004/10/21 23:59:04 marki Exp $ */

/* 
 * Architecture specific header files 
 */

/*
 *  Param flags - define arch specific param package flags here
 */
#define RTI_PARAM_MAX_PARAMETERS (10)  /* max params for this arch */
#define RTI_PARAM_MAX_REGISTERS  (10)  /* max registers/stack entries */ 
#define RTI_PARAM_FLOAT_REGS     (0)   /* Uses float registers */
#define RTI_PARAM_VECTOR_SUPPORT (0)

#define RTI_PARAM_TEST_CHAR      (0)   /* test chars in full test */
#define RTI_PARAM_TEST_INT       (0)   /* test ints in full test */
#define RTI_PARAM_TEST_STRING    (0)   /* test strings in full test */
#define RTI_PARAM_TEST_FLOAT     (0)   /* test floats in full test */
#define RTI_PARAM_TEST_DOUBLE    (0)   /* test doubles in full test */
#define RTI_PARAM_TEST_LONGLONG  (0)   /* test long long in full test */
#define RTI_PARAM_TEST_MIX       (0)   /* test mixed parameters */
#define RTI_PARAM_TEST_VECTOR    (0)   /* test vector parameters */

/*
 *  Types - define width and stack types here 
 */
typedef unsigned int RTI_PARAM_TYPE;           /* Same as the register type */
typedef unsigned int RTI_PARAM_TYPE_REGISTER; 

typedef char        RTI_PARAM_TYPE_CHAR;
typedef int         RTI_PARAM_TYPE_INT;
typedef long        RTI_PARAM_TYPE_LONG;
typedef float       RTI_PARAM_TYPE_FLOAT;
typedef double      RTI_PARAM_TYPE_DOUBLE;
typedef void *      RTI_PARAM_TYPE_POINTER;
typedef long long   RTI_PARAM_TYPE_LONGLONG;
typedef long double RTI_PARAM_TYPE_LONGDOUBLE;
typedef long double RTI_PARAM_TYPE_VECTOR;

/*
 * Signature structure - contains any information that ParamCreate will
 * need to grab variables out of the registers / stack.
 */
typedef struct
{
  int paramCount;                            /* How many parameters? */
} RTI_ParamSignature;

#endif
