stackinfo.c

Go to the documentation of this file.
00001 /*-----------------------------------------------------------------------------------*/
00002 /* INRIA 2006 */
00003 /* Allan CORNET */
00004 /*-----------------------------------------------------------------------------------*/ 
00005 #ifdef HAVE_LIMITS_H
00006 #include <limits.h>
00007 #define MAXLONG LONG_MAX
00008 #else 
00009 #ifdef HAVE_VALUES_H
00010 #include <values.h>
00011 #endif /* HAVE_VALUES_H */
00012 #endif /* !HAVE_LIMITS_H */
00013 
00014 #include "stackinfo.h"
00015 #include "stack-def.h"
00016 /*-----------------------------------------------------------------------------------*/
00017 #ifndef MAXLONG
00018 #define MAXLONG LONG_MAX
00019 #endif
00020 
00021 #ifndef LONG_MAX 
00022 #define LONG_MAX 2147483647L 
00023 #endif 
00024 
00025 #ifndef MAXLONG
00026 #define MAXLONG LONG_MAX
00027 #endif
00028 /*-----------------------------------------------------------------------------------*/
00029 integer C2F(getstackinfo)(integer *total,integer *used)
00030 {
00031         *used = C2F(vstk).lstk[C2F(vstk).isiz - 1] - C2F(vstk).lstk[C2F(vstk).bot - 1] + 1;
00032         *total = C2F(vstk).lstk[C2F(vstk).isiz - 1] - C2F(vstk).lstk[0];
00033         return(0);
00034 }
00035 /*-----------------------------------------------------------------------------------*/
00036 integer C2F(getgstackinfo)(integer *total,integer *used)
00037 {
00038         *used = C2F(vstk).lstk[C2F(vstk).gtop] - C2F(vstk).lstk[C2F(vstk).isiz + 1] + 1;
00039         *total = C2F(vstk).lstk[C2F(vstk).gbot - 1] - C2F(vstk).lstk[C2F(vstk).isiz + 1] ;
00040         return(0);
00041 }
00042 /*-----------------------------------------------------------------------------------*/
00043 integer C2F(getvariablesinfo)(integer *total,integer *used)
00044 {
00045         *used = C2F(vstk).isiz - C2F(vstk).bot ;
00046         *total = C2F(vstk).isiz - 1;
00047         return 0;
00048 }
00049 /*-----------------------------------------------------------------------------------*/
00050 integer C2F(getgvariablesinfo)(integer *total,integer *used)
00051 {
00052         *used = C2F(vstk).gtop - C2F(vstk).isiz - 1;
00053         *total = 10000 - C2F(vstk).isiz - 1;
00054         return 0;
00055 }
00056 /*-----------------------------------------------------------------------------------*/
00057 BOOL is_a_valid_size_for_scilab_stack(int sizestack)
00058 {
00059         BOOL bOK=TRUE;
00060         double dsize = ((double) sizeof(double)) * (sizestack);
00061         unsigned long ulsize = ((unsigned long)sizeof(double)) * (sizestack);
00062         if ( dsize != (double) ulsize)
00063         {
00064                 bOK=FALSE;
00065         }
00066         return bOK;
00067 }
00068 /*-----------------------------------------------------------------------------------*/
00069 unsigned long get_max_memory_for_scilab_stack(void)
00070 {
00071         return MAXLONG/sizeof(double);
00072 }
00073 /*-----------------------------------------------------------------------------------*/
00074 

Generated on Sun Mar 4 15:03:48 2007 for Scilab [trunk] by  doxygen 1.5.1