/*
  Configuration.h, Copyright  (c) by George Fankhauser,
  Swiss Federal Institute of Technology,
  Computer Engineering and Networks Laboratory.
 
  TOPSY -- A Teachable Operating System.
         Implementation of a tiny and simple
         micro kernel for teaching purposes.
 
  For further information, please visit http://www.tik.ee.ethz.ch/~topsy
 
  This software is provided under the terms of the GNU General Public Licence.
 
  A full copy of the GNU GPL is provided in the file COPYING found in the 
  development root of Topsy.
*/
/*
	File:                  $Source: /home/ruf/cvs_Topsy/cvs/Topsy/Topsy/Configuration.h,v $
 	Author(s):             George Fankhauser
 	Affiliation:           ETH Zuerich, TIK
 	Version:               $Revision: 3047 $
 	Creation Date:         
 	Last Date of Change:   $Date: 2007-07-13 19:51:13 +0200 (Fre, 13 Jul 2007) $      by: $Author: sryffel $
*/
#ifndef _CONFIGURATION_H_
#define _CONFIGURATION_H_

#include "Endian.h" /* for compatibility */

/* general, messages, prompts, look and feel
 */

/* memory parameters
 */
#define KERNELHEAPSIZE   (2*64*1024)   /* kernel heap size */


/* threads, IPC
 */
#ifndef APIC
#define TIMESLICE         50   /* how long a thread may run, in milliseconds
                                    for ia32: smaller than 54ms when using the Timer of the 82C54 PIC */
#else
#define TIMESLICE         30   /* ia32: when using the local APIC Timer, TIMESLICE chan be larger */
#endif

// make sure that this number is larger than USER_PRIORITY_HIGH (tm-include.h)
#define NBPRIORITYLEVELS  32   /* 0 for highest priority */
#define MAXNBMSGINQUEUE    8   /* message queue length */
#define MAXNAMESIZE       24   /* max thread name size (in characters) */
// TM_DEFAULTTHREADSTACKSIZE really is an architecture dependent parameter
// #define TM_DEFAULTTHREADSTACKSIZE (1024*1024) /* max stack size in bytes, original was 1024 */
#define PREEMPTIVE_MODE   TRUE /* true turns preemptive timeslicing on */

#define MAXNBOFCPUS        1   /* Maximum number of supported CPUs */

/* io features
 */
#define NBCYCLESFORDELAY 10    /* each time a write occurs onto a driver, */
/* at least NULL-operations are performed  */

#endif
