19991022-10:33 GMT+1

This commit is contained in:
Viktor Szakats
1999-10-22 08:46:36 +00:00
parent f866946be0
commit 8665e2523b
5 changed files with 107 additions and 11 deletions

View File

@@ -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.

View File

@@ -176,7 +176,7 @@ MAXROW ;R;
MEMOEDIT ;N;
MEMOLINE ;R;
MEMOREAD ;R;
MEMORY ;N;
MEMORY ;S;
MEMOTRAN ;R;
MEMOWRIT ;R;
MEMVARBLOCK ;R;

View File

@@ -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]) */

View File

@@ -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
View 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