SFBHWMisc.h

Go to the documentation of this file.
00001 /*
00002   SFBHWMisc.h Miscellaneous hardware-specific routines
00003   Copyright (C) 2009 The Regents of the University of New Mexico
00004  
00005   This library is free software; you can redistribute it and/or
00006   modify it under the terms of the GNU Lesser General Public
00007   License as published by the Free Software Foundation; either
00008   version 2.1 of the License, or (at your option) any later version.
00009 
00010   This library is distributed in the hope that it will be useful,
00011   but WITHOUT ANY WARRANTY; without even the implied warranty of
00012   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013   Lesser General Public License for more details.
00014 
00015   You should have received a copy of the GNU General Public License
00016   along with this library; if not, write to the Free Software
00017   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
00018   USA
00019 
00020   $Id$
00021  */
00029 #ifndef SFBHWMISC_H
00030 #define SFBHWMISC_H
00031 
00032 #include "SFBTypes.h"
00033 
00041 extern void facePrintTimestamp(u8 face) ;
00042 
00056 extern u32 getCurrentStackSpace();
00057 
00110 extern u32 getMinimumStackSpace();
00111 
00114 #define STACK_CANARY_VALUE 0x2c50904e
00115 
00119 extern volatile u32 stackCanary;
00120 
00121 static inline void init_stack_canary() { stackCanary = STACK_CANARY_VALUE; }
00122 
00127 #define API_ASSERT_STACK_OK() API_ASSERT(stackCanary==STACK_CANARY_VALUE,E_BUG_STACK_CORRUPT)
00128 
00129 #ifdef HOST_MODE
00130 
00131 #define disableInterrupts() /* empty */
00132 #define enableInterrupts() /* empty */
00133 
00134 #define suspendInterrupts(u32var) /* empty */
00135 #define restoreInterrupts(u32var) ((u32var) = 0)   /* note that suspend w/o restore will warn! */
00136 
00137 #else
00138 
00139 #include "lpc/irq.h"
00140 
00141 #endif /* HOST_MODE */
00142 
00143 #endif /* HW_MISC_H */

Generated on Fri Apr 22 06:54:11 2011 for SFB by doxygen 1.5.9