00001 #ifndef ENV_H 00002 #define ENV_H 00003 /* 00004 Copyright 2009,2010 Karl Robillard 00005 00006 This file is part of the Urlan datatype system. 00007 00008 Urlan is free software: you can redistribute it and/or modify 00009 it under the terms of the GNU Lesser General Public License as published by 00010 the Free Software Foundation, either version 3 of the License, or 00011 (at your option) any later version. 00012 00013 Urlan is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 GNU Lesser General Public License for more details. 00017 00018 You should have received a copy of the GNU Lesser General Public License 00019 along with Urlan. If not, see <http://www.gnu.org/licenses/>. 00020 */ 00021 00022 00023 #include "urlan.h" 00024 #include "os.h" 00025 00026 00027 struct UEnv 00028 { 00029 OSMutex mutex; 00030 UBuffer dataStore; 00031 UBuffer atomNames; 00032 UBuffer atomTable; 00033 UBuffer ports; // Boron UPortDevice (need way to extend UEnv). 00034 uint16_t typeCount; 00035 uint16_t _pad0; 00036 uint32_t threadSize; 00037 void (*threadFunc)( UThread*, UThreadMethod ); 00038 UThread* threads; // Protected by mutex. 00039 const UDatatype* types[ UT_MAX ]; 00040 }; 00041 00042 00043 #endif /*EOF*/