00001 00006 /* 00007 * The contents of this file are subject to the Mozilla Public License 00008 * Version 1.0 (the "License"); you may not use this file except in 00009 * compliance with the License. You may obtain a copy of the License at 00010 * http://www.mozilla.org/MPL/ 00011 * 00012 * Software distributed under the License is distributed on an "AS IS" 00013 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the 00014 * License for the specific language governing rights and limitations 00015 * under the License. 00016 * 00017 * The Original Code is legOS code, released October 17, 1999. 00018 * 00019 * The Initial Developer of the Original Code is Markus L. Noga. 00020 * Portions created by Markus L. Noga are Copyright (C) 1999 00021 * Markus L. Noga. All Rights Reserved. 00022 * 00023 * Contributor(s): Markus L. Noga <markus@noga.de> 00024 */ 00025 00026 #ifndef __config_h__ 00027 #define __config_h__ 00028 00029 // compilation environment 00030 // 00031 // #define CONF_RCX_COMPILER //!< a special RCX compiler is used. 00032 00033 // core system services 00034 // 00035 #define CONF_TIME 00036 #define CONF_MM 00037 #define CONF_TM 00038 #define CONF_AUTOSHUTOFF 00039 //#define CONF_TM_DEBUG 00040 #define CONF_SETJMP 00041 #define CONF_ATOMIC 00042 #define CONF_SEMAPHORES 00043 #define CONF_CRITICAL_SECTIONS 00044 #define CONF_PROGRAM 00045 #define CONF_VIS 00046 //#define CONF_ROM_MEMCPY 00047 00048 // networking services 00049 // 00050 #define CONF_LNP 00051 // #define CONF_LNP_FAST 00052 // Can override with compile-time option 00053 #if !defined(CONF_LNP_HOSTADDR) 00054 #define CONF_LNP_HOSTADDR 0 00055 #endif 00056 00057 // 16 nodes x 16 ports (affects size of lnp_addressing_handler[] table) 00058 #define CONF_LNP_HOSTMASK 0xf0 00059 00060 // remote control services 00061 // 00062 #define CONF_RCX_PROTOCOL 00063 #define CONF_LR_HANDLER 00064 #define CONF_RCX_MESSAGE 00065 00066 // drivers 00067 // 00068 #define CONF_DKEY 00069 #define CONF_BATTERY_INDICATOR 00070 #define CONF_LCD_REFRESH 00071 #define CONF_CONIO 00072 #define CONF_ASCII 00073 #define CONF_DSOUND 00074 #define CONF_ON_OFF_SOUND 00075 #define CONF_DMOTOR 00076 // #define CONF_DMOTOR_HOLD 00077 #define CONF_DSENSOR 00078 #define CONF_DSENSOR_ROTATION 00079 //#define CONF_DSENSOR_VELOCITY 00080 //#define CONF_DSENSOR_MUX 00081 //#define CONF_DSENSOR_SWMUX 00082 00083 // dependencies 00084 // 00085 #if defined(CONF_ASCII) && !defined(CONF_CONIO) 00086 #error "Ascii needs console IO" 00087 #endif 00088 00089 #if defined(CONF_DKEY) && !defined(CONF_TIME) 00090 #error "Key debouncing needs system time." 00091 #endif 00092 00093 #if defined(CONF_TM) && !defined(CONF_TIME) 00094 #error "Task management needs system time." 00095 #endif 00096 00097 #if defined(CONF_TM) && !defined(CONF_MM) 00098 #error "Task management needs memory management." 00099 #endif 00100 00101 #if defined(CONF_TM) && !defined(CONF_ATOMIC) 00102 #error "Task management needs atomic counters for kernel lock" 00103 #endif 00104 00105 #if defined(CONF_LNP) && defined(CONF_TM) && !defined(CONF_SEMAPHORES) 00106 #error "Tasksafe networking needs semaphores." 00107 #endif 00108 00109 #if defined(CONF_SEMAPHORES) && !defined(CONF_ATOMIC) 00110 #error "Semphores need atomic counters" 00111 #endif 00112 00113 #if defined(CONF_CRITICAL_SECTIONS) && !defined(CONF_ATOMIC) 00114 #error "Critical sections need atomic counters" 00115 #endif 00116 00117 #if defined(CONF_RCX_PROTOCOL) && !defined(CONF_LNP) 00118 #error "RCX protocol needs networking." 00119 #endif 00120 00121 #if defined(CONF_LR_HANDLER) && !defined(CONF_RCX_PROTOCOL) 00122 #error "Remote control handler needs remote control protocol." 00123 #endif 00124 00125 #if defined(CONF_RCX_MESSAGE) && !defined(CONF_LNP) 00126 #error "Standard firmware message needs networking." 00127 #endif 00128 00129 #if defined(CONF_LR_HANDLER) && !defined(CONF_TM) 00130 #error "Remote support needs task managment" 00131 #endif 00132 00133 #if defined(CONF_PROGRAM) && (!defined(CONF_TM) || !defined(CONF_LNP) || !defined(CONF_DKEY) || !defined(CONF_ASCII)) 00134 #error "Program support needs task management, networking, key debouncing, and ASCII." 00135 #endif 00136 00137 #if defined(CONF_DSENSOR_ROTATION) && !defined(CONF_DSENSOR) 00138 #error "Rotation sensor needs general sensor code." 00139 #endif 00140 00141 #if defined(CONF_DSENSOR_VELOCITY) && !defined(CONF_DSENSOR_ROTATION) 00142 #error "Velocity sensor needs rotation sensor code." 00143 #endif 00144 00146 #define __TEXT_HI__ __attribute__ ((__section__ (".text.hi"))) 00147 00148 #endif // __config_h__
brickOS is released under the
Mozilla Public License.
Original code copyright 1998-2002 by the authors. |