////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2002 Xilinx, Inc.  All rights reserved.
//
// Xilinx, Inc.
// XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A 
// COURTESY TO YOU.  BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS
// ONE POSSIBLE   IMPLEMENTATION OF THIS FEATURE, APPLICATION OR 
// STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION
// IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE 
// FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION.  
// XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO 
// THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO 
// ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE 
// FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY 
// AND FITNESS FOR A PARTICULAR PURPOSE.
// 
// Date   : 2002, November.
// Author : Raj Nagarajan (rajn@xilinx.com)
// Company: Xilinx
// Group  : Emerging Software Technologies
//
// $Id :$
//
//////////////////////////////////////////////////////////////////////////////

/***************************************************************************/
/**
 * @file init.h
 *
 * This files contains structures, that are used for configuring the system. 
 * The values are specified in sys/init.c
 ***************************************************************************/
#ifndef _INIT_H
#define _INIT_H


/***************************************************************************/
/**
 * Processes to be initialised at the start of the system are defined here.
 ***************************************************************************/
struct _process_init {
	unsigned int p_start_addr ;	/**< Start address of the process */
	int priority ;			/**< Priority of the process */
} ;

/***************************************************************************/
/**
 * The Message Queue in the system are defined here.
 * There is a entry for each Message Queue.
 ***************************************************************************/
struct _msgq_init {
	unsigned int msg_size ;		/**< Message size of the Mesg Q */
	char msgq_len ;			/**< Length of the Mesg Q */
} ;

/***************************************************************************/
/**
 * The shared memory in the system are defined here.
 * There is a entry for each Shared Memory
 ***************************************************************************/
struct _shm_init {
	unsigned int shm_size ;		/**< Size of the Shared Memory */
} ;

/***************************************************************************/
/**
 * The dynamic memory (buffer) management module is configured here.
 * The system can have memory blocks of different sizes. Memory blocks of 
 * different size and the number of memory blocks is specified here.
 ***************************************************************************/
struct _malloc_init {
	unsigned int mem_bsize ;	/**< Memory Block size */
	char n_blocks ;			/**< Number of blocks of the size */
} ;

#endif
