/* =============================================================================
 *
 *  Description: This VDK Configuration file is automatically generated
 *               by the VisualDSP++ IDDE and should not be modified.
 *
 *  Generated by VDKGen version 5.0.4.0
 * ===========================================================================*/

#ifndef VDK_H_    
#define VDK_H_

#ifdef __ECC__	
#pragma no_implicit_inclusion

#ifndef _ADI_THREADS
#warning "VDK projects should be compiled with -threads option"
#endif

#endif

#ifdef _MISRA_RULES
#pragma diag(push)
#pragma diag(suppress: misra_rule_19_1:"VDK needs the enum type definitions for the particular project before including VDK_Public.h")
#endif

/* Define which optional VDK features are to be used in this build. */

/**
 * Semaphores are used in this project 
 */
 
#define VDK_INCLUDE_SEMAPHORES_ 
#define VDK_BOOT_SEMAPHORES_ 

/**
 * MemoryPools are used in this project 
 */
 
#define VDK_INCLUDE_MEMORYPOOLS_ 
#define VDK_BOOT_MEMORYPOOLS_ 

/**
 * DeviceFlags are used in this project 
 */
 
#define VDK_INCLUDE_DEVICE_FLAGS_ 
/*#define VDK_BOOT_DEVICE_FLAGS_ */

/**
 * IO templates are used in this project
 */
 
#define VDK_INCLUDE_IO_ 
#define VDK_BOOT_OBJECTS_IO_ 

/* 
 * There are heaps specified 
 */

#define VDK_MULTIPLE_HEAPS_ 

/**
 * Messages are used in this project
 */

#define VDK_INCLUDE_MESSAGES_ 

/**
 * Multiprocessor messaging is used in this project
 */

/*#define VDK_MULTIPROCESSOR_MESSAGING_ */

/**
 * RoutingThreads are defined in this project
 */

/*#define VDK_INCLUDE_ROUTING_THREADS_ */

/**
 * Routing Nodes are defined in this project
 */

/*#define VDK_INCLUDE_ROUTING_NODES_ */

/**
 * Marshalled Message Types are defined in this project
 */

/*#define VDK_INCLUDE_MARSHALLED_MESSAGES_ */

/**
 * Events and EventBits are used in this project 
 */
 
/*#define VDK_INCLUDE_EVENTS_ */

/**
 * Enhanced API error checking and runtime Instrumentation is included
 */
 
#define VDK_INSTRUMENTATION_LEVEL_ 2

#ifndef VDK_LDF_

#include <defBF537.h>

/**
 * ALL of the following enums are generated in format suitable for C/C++
 * and a format suitable for assembly inclusion
 */

/*************************************************************************
 * ThreadType
 *
 * These are used in calls to VDK::CreateThread().
 */
 
#ifdef __ECC__	/* for C/C++ access */
enum ThreadType
{
kDynamicThreadType = -1,
	kInput = 0,
	kOutput = 1,
	kRelay = 2,
	kAttenuator = 3,
	kVolRamp = 4
};
#else	/* for asm access */
#define kDynamicThreadType  -1
#define kInput 0	/* enum */
#define kOutput 1	/* enum */
#define kRelay 2	/* enum */
#define kAttenuator 3	/* enum */
#define kVolRamp 4	/* enum */
#endif 	/* __ECC__ */

/*************************************************************************
 * ThreadID
 *
 * These are used in calls to VDK::CreateThread().
 */
 
#ifdef __ECC__	/* for C/C++ access */
enum ThreadID
{
	kIdleThread=0,
	kRead=1,
	kWriter=2,
	kMonitor=3,
	kVolControl=4,
	kRamp=5

};
#else	/* for asm access */
#define kIdleThread 0
#define kRead 1	/* enum */
#define kWriter 2	/* enum */
#define kMonitor 3	/* enum */
#define kVolControl 4	/* enum */
#define kRamp 5	/* enum */

#endif 	/* __ECC__ */


/*************************************************************************
 * SemaphoreID
 *
 * Used in all semaphore APIs
 *
 */

#ifdef __ECC__	/* for C/C++ access */
enum SemaphoreID 
{
	kVolButtonPoll = 0,
	last_semaphore__3VDK=-1
};
#else	/* for asm access */
#define kVolButtonPoll 0	/* enum */
#endif 	/* __ECC__ */


/*************************************************************************
 * MemoryPoolID
 *
 * Used in all Memory Pool APIs
 *
 */

#ifdef __ECC__        /* for C/C++ access */
enum PoolID
{
	kReservedPool = 0 ,

      last_mempool__3VDK=-1
};
#else /* for asm access */
#define kReservedPool 0	/* enum */

#endif        /* __ECC__ */


/*************************************************************************
 * EventID
 *
 * Used in Event(...) APIs.
 *
 * There cannot be more than NATURAL_WORD_SIZE
 * EventIDs.
 */
 
#ifdef __ECC__	/* for C/C++ access */
enum EventID
{

	last_event__3VDK=-1
};
#else	/* for asm access */

#endif 	/* __ECC__ */


/*************************************************************************
 * EventBitID
 *
 * Used in EventBit(...) APIs
 *
 * There cannot be more than NATURAL_WORD_SIZE
 * EventBitIDs.
 */
 
#ifdef __ECC__	/* for C/C++ access */
enum EventBitID
{

	last_eventbit__3VDK=-1
};
#else	/* for asm access */

#endif 	/* __ECC__ */

/*************************************************************************
 * DeviceID
 *
 * Used in Device Drivers
 *
 */
 
#ifdef __ECC__	/* for C/C++ access */
enum IOID
{
	kDAC0 = 0,
	kADC0 = 1,
	last_bootdevice__3VDK=-1
};
#else	/* for asm access */
#define kDAC0 0	/* enum */
#define kADC0 1	/* enum */
#endif 	/* __ECC__ */


/*************************************************************************
 * IO template IDs
 *
 * Used in Device Drivers
 *
 */
 
#ifdef __ECC__	/* for C/C++ access */
enum IOTemplateID
{
	kAD1854 = 0,
	kAD1871 = 1,
	last_iotemplate__3VDK=-1
};
#else	/* for asm access */
#define kAD1854 0	/* enum */
#define kAD1871 1	/* enum */
#endif 	/* __ECC__ */

/*************************************************************************
 * DeviceFlagID
 *
 * Used in Device Drivers
 *
 */
 
#ifdef __ECC__	/* for C/C++ access */
enum DeviceFlagID
{

	last_deviceflag__3VDK=-1
};
#else	/* for asm access */

#endif 	/* __ECC__ */


/************************************************************************** 
* Messages are dynamic entities but we create a type to be able to do type
* checking in APIs 
*
*/

#ifdef __ECC__  /* for C/C++ access */
enum MessageID
{
        last_message__3VDK=-1
};
#endif  /* __ECC__ */


/************************************************************************** 
* Mutexes are dynamic entities but we create a type to be able to do type
* checking in APIs 
*
*/
#ifdef __ECC__  /* for C/C++ access */
enum MutexID
{
        last_mutex__3VDK=-1
};
#endif  /* __ECC__ */

/************************************************************************** 
* Fifos are currently dynamic entities but we create a type to be able to 
* do type checking in APIs 
*
*/
#ifdef __ECC__  /* for C/C++ access */
enum FifoID
{
        last_fifo__3VDK=-1
};
#endif  /* __ECC__ */

#ifdef VDK_MULTIPLE_HEAPS_
#ifdef __ECC__  /* for C/C++ access */
enum HeapID {
	ksystem_heap = 0
};
#else /* for asm access */
#define ksystem_heap 0	/* enum */
#endif /* __ECC__ */
#endif

#ifdef __ECC__  /* for C/C++ access */
enum RoutingNodeID {
		kNoRoutingNodes

};
#else /* for asm access */

#endif /* __ECC__ */

#ifdef __ECC__  /* for C/C++ access */
enum MarshalledTypeID {
		kNoMarshalledMessages

};
#else /* for asm access */

#endif /* __ECC__ */

/* include the VisualDSP Kernel API and library */
#include <VDK_Public.h>

#define VDK_kMaxNumThreads 10
#define VDK_kMaxNumActiveSemaphores 1
#define VDK_kMaxNumActiveMemoryPools 3
#define VDK_kMaxNumIOObjects 4
#define VDK_kMaxNumActiveMessages 32
#define VDK_kMaxNumActiveDevFlags 8

#ifdef _MISRA_RULES
#pragma diag(pop)
#endif

#endif /* VDK_LDF_ */
#endif /* VDK_H_ */

/* ========================================================================== */
