19991022-10:33 GMT+1
This commit is contained in:
@@ -1,3 +1,12 @@
|
||||
19991022-10:33 GMT+1 Victor Szel <info@szelvesz.hu>
|
||||
* source/rtl/fm.c
|
||||
tests/memory.prg
|
||||
tests/Makefile
|
||||
doc/funclist.txt
|
||||
+ MEMORY() support for Win32 platform, it can now return available
|
||||
physical, page, virtual memory and total physical memory.
|
||||
+ Test program added.
|
||||
|
||||
19991022-10:03 GMT+1 Victor Szel <info@szelvesz.hu>
|
||||
* source/rtl/fm.c
|
||||
+ MEMORY() function enhanced internally.
|
||||
|
||||
@@ -176,7 +176,7 @@ MAXROW ;R;
|
||||
MEMOEDIT ;N;
|
||||
MEMOLINE ;R;
|
||||
MEMOREAD ;R;
|
||||
MEMORY ;N;
|
||||
MEMORY ;S;
|
||||
MEMOTRAN ;R;
|
||||
MEMOWRIT ;R;
|
||||
MEMVARBLOCK ;R;
|
||||
|
||||
@@ -54,6 +54,10 @@
|
||||
This should be normally turned off in a final release */
|
||||
#define HB_FM_STATISTICS
|
||||
|
||||
/* NOTE: The following #include "hbwinapi.h" must
|
||||
be ahead of any other #include statements! */
|
||||
#include "hbwinapi.h"
|
||||
|
||||
#ifndef __MPW__
|
||||
#include <malloc.h>
|
||||
#endif
|
||||
@@ -287,43 +291,103 @@ HARBOUR HB_MEMORY( void )
|
||||
switch( uiMode )
|
||||
{
|
||||
case 0: /* (Free Variable Space [KB]) */
|
||||
ulResult = 9999;
|
||||
#if defined(_Windows) || defined(WINNT)
|
||||
{
|
||||
MEMORYSTATUS memorystatus;
|
||||
GlobalMemoryStatus( &memorystatus );
|
||||
ulResult = memorystatus.dwAvailPhys / 1024;
|
||||
}
|
||||
#else
|
||||
ulResult = 9999;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case 1: /* (Largest String [KB]) */
|
||||
ulResult = 9999;
|
||||
#if defined(_Windows) || defined(WINNT)
|
||||
{
|
||||
MEMORYSTATUS memorystatus;
|
||||
GlobalMemoryStatus( &memorystatus );
|
||||
ulResult = HB_MIN_( memorystatus.dwAvailPhys, ULONG_MAX ) / 1024;
|
||||
}
|
||||
#else
|
||||
ulResult = 9999;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case 2: /* (RUN Memory [KB]) */
|
||||
ulResult = 9999;
|
||||
#if defined(_Windows) || defined(WINNT)
|
||||
{
|
||||
MEMORYSTATUS memorystatus;
|
||||
GlobalMemoryStatus( &memorystatus );
|
||||
ulResult = memorystatus.dwAvailPhys / 1024;
|
||||
}
|
||||
#else
|
||||
ulResult = 9999;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case 3: /* UNDOCUMENTED! (Virtual Memory [KB]) */
|
||||
ulResult = 9999;
|
||||
#if defined(_Windows) || defined(WINNT)
|
||||
{
|
||||
MEMORYSTATUS memorystatus;
|
||||
GlobalMemoryStatus( &memorystatus );
|
||||
ulResult = memorystatus.dwAvailVirtual / 1024;
|
||||
}
|
||||
#else
|
||||
ulResult = 9999;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case 4: /* UNDOCUMENTED! (Free Expanded Memory [KB]) (?) */
|
||||
ulResult = 9999;
|
||||
#if defined(_Windows) || defined(WINNT)
|
||||
ulResult = 0;
|
||||
#else
|
||||
ulResult = 9999;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case 101: /* UNDOCUMENTED! (Fixed Memory/Heap [KB]) (?) */
|
||||
ulResult = 9999;
|
||||
#if defined(_Windows) || defined(WINNT)
|
||||
{
|
||||
MEMORYSTATUS memorystatus;
|
||||
GlobalMemoryStatus( &memorystatus );
|
||||
ulResult = memorystatus.dwTotalPhys / 1024;
|
||||
}
|
||||
#else
|
||||
ulResult = 9999;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case 102: /* UNDOCUMENTED! (Segments in Fixed Memory/Heap) (?) */
|
||||
ulResult = 9999;
|
||||
#if defined(_Windows) || defined(WINNT)
|
||||
ulResult = 1;
|
||||
#else
|
||||
ulResult = 9999;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case 103: /* UNDOCUMENTED! (Free Swap Memory [KB]) */
|
||||
ulResult = 9999;
|
||||
#if defined(_Windows) || defined(WINNT)
|
||||
{
|
||||
MEMORYSTATUS memorystatus;
|
||||
GlobalMemoryStatus( &memorystatus );
|
||||
ulResult = memorystatus.dwAvailPageFile / 1024;
|
||||
}
|
||||
#else
|
||||
ulResult = 9999;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case 104: /* UNDOCUMENTED! (Free Conventional [KB]) */
|
||||
ulResult = 9999;
|
||||
#if defined(_Windows) || defined(WINNT)
|
||||
ulResult = 0;
|
||||
#else
|
||||
ulResult = 9999;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case 105: /* UNDOCUMENTED! (Used Expanded Memory [KB]) (?) */
|
||||
ulResult = ( s_ulMemoryConsumed / 1024 );
|
||||
ulResult = 0;
|
||||
break;
|
||||
|
||||
case 1001: /* Harbour extension (Memory used [bytes]) */
|
||||
|
||||
@@ -90,6 +90,7 @@ PRG_SOURCES=\
|
||||
longstr2.prg \
|
||||
mathtest.prg \
|
||||
memfile.prg \
|
||||
memory.prg \
|
||||
memvar.prg \
|
||||
menutest.prg \
|
||||
mtran.prg \
|
||||
|
||||
22
harbour/tests/memory.prg
Normal file
22
harbour/tests/memory.prg
Normal file
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/* ; Donated to the public domain by Victor Szel <info@szelvesz.hu> */
|
||||
|
||||
FUNCTION Main()
|
||||
|
||||
? 0, MEMORY( 0 )
|
||||
? 1, MEMORY( 1 )
|
||||
? 2, MEMORY( 2 )
|
||||
? 3, MEMORY( 3 )
|
||||
? 4, MEMORY( 4 )
|
||||
? 101, MEMORY( 101 )
|
||||
? 102, MEMORY( 102 )
|
||||
? 103, MEMORY( 103 )
|
||||
? 104, MEMORY( 104 )
|
||||
? 105, MEMORY( 105 )
|
||||
? 1001, MEMORY( 1001 )
|
||||
? 1002, MEMORY( 1002 )
|
||||
|
||||
RETURN NIL
|
||||
Reference in New Issue
Block a user