/************************************************************************** * File name : Const.java * * This file is part a SCJ Level 0 and Level 1 implementation, * based on SCJ Draft, Version 0.94 25 June 2013. * * It is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This SCJ Level 0 and Level 1 implementation is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this SCJ Level 0 and Level 1 implementation. * If not, see <http://www.gnu.org/licenses/>. * * Copyright 2012 * @authors Anders P. Ravn, Aalborg University, DK * Stephan E. Korsholm and Hans Søndergaard, * VIA University College, DK *************************************************************************/ package javax.scj.util; import javax.realtime.Clock; import javax.realtime.RelativeTime; /** * Utility class with constants. * * @version 1.2; - December 2013 * * @author Anders P. Ravn, Aalborg University, <A * HREF="mailto:apr@cs.aau.dk">apr@cs.aau.dk</A>, <br> * Hans Søndergaard, VIA University College, Denmark, <A * HREF="mailto:hso@viauc.dk">hso@via.dk</A> */ public final class Const { private Const() { } public static final int SECS_TO_MILLIS = 1000; public static final int MICRO_TO_NANOS = 1000; public static final int MILLI_TO_NANOS = 1000 * MICRO_TO_NANOS; public static final int SECS_TO_NANOS = 1000 * MILLI_TO_NANOS; public static final int NAN0S_PER_MICRO = 1000; public static final int NANOS_PER_MILLI = 1000 * NAN0S_PER_MICRO; /* Memories */ // New public static final int OVERALL_BACKING_STORE_DEFAULT = 802*1000; public static final int IDLE_BACKING_STORE_DEFAULT = 2*1000; public static final int IMMORTAL_MEM_DEFAULT = 100*1000; public static final int OUTERMOST_SEQ_BACKING_STORE_DEFAULT = OVERALL_BACKING_STORE_DEFAULT - IMMORTAL_MEM_DEFAULT - IDLE_BACKING_STORE_DEFAULT; public static final int MISSION_MEM_DEFAULT = 200*1000; public static final int PRIVATE_BACKING_STORE_DEFAULT = 40*1000; public static final int PRIVATE_MEM_DEFAULT = 20*1000; public static int OVERALL_BACKING_STORE = OVERALL_BACKING_STORE_DEFAULT; public static int IDLE_BACKING_STORE = IDLE_BACKING_STORE_DEFAULT; public static int IMMORTAL_MEM = IMMORTAL_MEM_DEFAULT; public static int OUTERMOST_SEQ_BACKING_STORE = OUTERMOST_SEQ_BACKING_STORE_DEFAULT; public static int MISSION_MEM = MISSION_MEM_DEFAULT; public static int PRIVATE_BACKING_STORE = PRIVATE_BACKING_STORE_DEFAULT; public static int PRIVATE_MEM = PRIVATE_MEM_DEFAULT; // Old // public static final int BACKING_STORE_SIZE_DEFAULT = 800 * 1000; // public static final int IMMORTAL_MEM_SIZE_DEFAULT = 100 * 1000; // public static final int MISSION_MEM_SIZE_DEFAULT = 200 * 1000; // public static final int PRIVATE_MEM_SIZE_DEFAULT = 40 * 1000; // // public static int BACKING_STORE_SIZE = BACKING_STORE_SIZE_DEFAULT; // public static int IMMORTAL_MEM_SIZE = IMMORTAL_MEM_SIZE_DEFAULT; // public static int MISSION_MEM_SIZE = MISSION_MEM_SIZE_DEFAULT; // public static int PRIVATE_MEM_SIZE = PRIVATE_MEM_SIZE_DEFAULT; /* Stacks */ public static final int STACK_UNIT = 1024; // 256 public static final int PRIORITY_SCHEDULER_STACK_SIZE_DEFAULT = 1 * STACK_UNIT; // 2*1024 public static final int IDLE_PROCESS_STACK_SIZE_DEFAULT = STACK_UNIT; // 1*256; public static final int HANDLER_STACK_SIZE_DEFAULT = 2 * STACK_UNIT; // 2*1024 public static int PRIORITY_SCHEDULER_STACK_SIZE = PRIORITY_SCHEDULER_STACK_SIZE_DEFAULT; // 2*1024 public static int IDLE_PROCESS_STACK_SIZE = IDLE_PROCESS_STACK_SIZE_DEFAULT; public static int HANDLER_STACK_SIZE = HANDLER_STACK_SIZE_DEFAULT; // 2*1024 /* Queues */ public static final int DEFAULT_QUEUE_SIZE_DEFAULT = 20; public static final int DEFAULT_HANDLER_NUMBER_DEFAULT = 20; public static final int DEFAULT_PRIORITY_QUEUE_SIZE_DEFAULT = 20; public static int DEFAULT_QUEUE_SIZE = DEFAULT_QUEUE_SIZE_DEFAULT; public static int DEFAULT_HANDLER_NUMBER = DEFAULT_HANDLER_NUMBER_DEFAULT; public static int DEFAULT_PRIORITY_QUEUE_SIZE = DEFAULT_PRIORITY_QUEUE_SIZE_DEFAULT; public static int DEFAULT_SLEEPING_QUEUE_SIZE = DEFAULT_PRIORITY_QUEUE_SIZE_DEFAULT; public static SCJErrorReporter reporter; static { reporter = new SilentSCJErrorReporter(); } public static void setDefaultErrorReporter() { reporter = new DefaultSCJErrorReporter(); } public static final RelativeTime DEFAULT_TIME_INTERVAL = new RelativeTime( 1, 0, null); // one millis public static final RelativeTime INFINITE_TIME = new RelativeTime( 365 * 24 * 60 * 1000, 0, Clock.getRealtimeClock()); // 365*24*60 // secs = 1 year public static final RelativeTime SUSPEND_TIME = new RelativeTime(0, 100 * 1000, null); // 100 micro_secs public static final boolean TESTING = true; public static final int OUTSIDE_MEM_AREAS = -1; public static final int IMMORTAL_MEM_LEVEL = 0; public static final int SEQUENCER_PRIVATE_MEM_LEVEL = 1; public static final int MISSION_MEM_LEVEL = 2; public static final int PRIVATE_MEM_LEVEL = 4; public static final int PRIORITY_SCHEDULING = 1; public static int MEMORY_TRACKER_AREA_SIZE = 15000; }