move Atari_Memory_free() and Memory_free() to osdep.c
This commit is contained in:
		
							parent
							
								
									c037c2c911
								
							
						
					
					
						commit
						663ddf39aa
					
				@ -77,6 +77,7 @@
 | 
			
		||||
#include "struct.h"
 | 
			
		||||
#include "global.h"
 | 
			
		||||
#include "misc.h"
 | 
			
		||||
#include "osdep.h"
 | 
			
		||||
#include "engine.h"
 | 
			
		||||
#include "helpfile.h"
 | 
			
		||||
#include "help.h"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										103
									
								
								src/misc.c
									
									
									
									
									
								
							
							
						
						
									
										103
									
								
								src/misc.c
									
									
									
									
									
								
							@ -682,109 +682,6 @@ void Zoom_a_line(byte* original_line, byte* zoomed_line,
 | 
			
		||||
 | 
			
		||||
/*############################################################################*/
 | 
			
		||||
 | 
			
		||||
#if defined(WIN32)
 | 
			
		||||
#include <windows.h>
 | 
			
		||||
#elif defined(__macosx__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__SWITCH__)
 | 
			
		||||
  #if defined(__OpenBSD__)
 | 
			
		||||
  #include <sys/param.h>
 | 
			
		||||
  #endif
 | 
			
		||||
  #include <sys/types.h>
 | 
			
		||||
  #include <sys/sysctl.h>
 | 
			
		||||
#elif defined(__BEOS__) || defined(__HAIKU__)
 | 
			
		||||
  #include <kernel/OS.h>
 | 
			
		||||
#elif defined(__AROS__) || defined(__amigaos4__) || defined(__MORPHOS__) || defined(__amigaos__)
 | 
			
		||||
  #include <proto/exec.h>
 | 
			
		||||
#elif defined(__MINT__)
 | 
			
		||||
  #include <mint/osbind.h>
 | 
			
		||||
  #include <mint/sysbind.h>
 | 
			
		||||
#elif defined(__SKYOS__)
 | 
			
		||||
  #include <skyos/sysinfo.h>
 | 
			
		||||
#else
 | 
			
		||||
  #include <sys/sysinfo.h> // sysinfo() for free RAM
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined (__MINT__)
 | 
			
		||||
// atari have two kinds of memory
 | 
			
		||||
// standard and fast ram
 | 
			
		||||
void Atari_Memory_free(unsigned long *stRam,unsigned long *ttRam){
 | 
			
		||||
  *stRam=Mxalloc(-1L,0);
 | 
			
		||||
  *ttRam = Mxalloc(-1L,1);
 | 
			
		||||
}
 | 
			
		||||
#else
 | 
			
		||||
// Indique quelle est la mémoire disponible
 | 
			
		||||
unsigned long Memory_free(void)
 | 
			
		||||
{
 | 
			
		||||
  // Memory is no longer relevant. If there is ANY problem or doubt here,
 | 
			
		||||
  // you can simply return 10*1024*1024 (10Mb), to make the "Pages"something
 | 
			
		||||
  // memory allocation functions happy.
 | 
			
		||||
 | 
			
		||||
  // However, it is still a good idea to make a proper function if you can...
 | 
			
		||||
  // If Grafx2 thinks the memory is full, weird things may happen. And if memory
 | 
			
		||||
  // ever becomes full and you're still saying there are 10MB free here, the
 | 
			
		||||
  // program will crash without saving any picture backup ! You've been warned...
 | 
			
		||||
#if defined(WIN32)
 | 
			
		||||
#if _WIN32_WINNT >= _WIN32_WINNT_WIN2K
 | 
			
		||||
  // GlobalMemoryStatusEx() is supported since Windows 2000
 | 
			
		||||
  MEMORYSTATUSEX mstt;
 | 
			
		||||
  mstt.dwLength = sizeof(mstt);
 | 
			
		||||
  if (GlobalMemoryStatusEx(&mstt))
 | 
			
		||||
  {
 | 
			
		||||
    GFX2_Log(GFX2_DEBUG, "Phys %lu / %luMB, Page %lu / %luMB, Virtual %lu / %luMB\n",
 | 
			
		||||
             (unsigned long)(mstt.ullAvailPhys >> 20), (unsigned long)(mstt.ullTotalPhys >> 20),
 | 
			
		||||
             (unsigned long)(mstt.ullAvailPageFile >> 20), (unsigned long)(mstt.ullTotalPageFile >> 20),
 | 
			
		||||
             (unsigned long)(mstt.ullAvailVirtual >> 20), (unsigned long)(mstt.ullTotalVirtual >> 20));
 | 
			
		||||
    return mstt.ullAvailPhys;
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    GFX2_Log(GFX2_ERROR, "GlobalMemoryStatusEx() failed\n");
 | 
			
		||||
    return 10*1024*1024;
 | 
			
		||||
  }
 | 
			
		||||
#else
 | 
			
		||||
  MEMORYSTATUS mstt;
 | 
			
		||||
  mstt.dwLength = sizeof(MEMORYSTATUS);
 | 
			
		||||
  GlobalMemoryStatus(&mstt);
 | 
			
		||||
  return mstt.dwAvailPhys;
 | 
			
		||||
#endif
 | 
			
		||||
#elif defined(__macosx__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
 | 
			
		||||
  int mib[2];
 | 
			
		||||
  int maxmem;
 | 
			
		||||
  size_t len;
 | 
			
		||||
 | 
			
		||||
  mib[0] = CTL_HW;
 | 
			
		||||
  mib[1] = HW_USERMEM;
 | 
			
		||||
  len = sizeof(maxmem);
 | 
			
		||||
  sysctl(mib,2,&maxmem,&len,NULL,0);
 | 
			
		||||
  return maxmem;
 | 
			
		||||
#elif defined(__HAIKU__) || defined(__BEOS__)
 | 
			
		||||
  int pages;
 | 
			
		||||
  system_info systemInfo;
 | 
			
		||||
  get_system_info(&systemInfo);
 | 
			
		||||
 | 
			
		||||
  pages = systemInfo.max_pages - systemInfo.used_pages;
 | 
			
		||||
  return pages * B_PAGE_SIZE;
 | 
			
		||||
#elif defined(__AROS__) || defined(__MORPHOS__) || defined(__amigaos__)
 | 
			
		||||
  return AvailMem(MEMF_ANY);
 | 
			
		||||
#elif defined(__linux__)
 | 
			
		||||
  struct sysinfo info;
 | 
			
		||||
  sysinfo(&info);
 | 
			
		||||
  return info.freeram*info.mem_unit;
 | 
			
		||||
#else
 | 
			
		||||
  // AvailMem is misleading on os4 (os4 caches stuff in memory that you can still allocate)
 | 
			
		||||
#if defined(__SWITCH__)
 | 
			
		||||
  // There is some way to get memory information on switch (see include switch/kernel/svc.h svcGetInfo svcGetSystemInfo)
 | 
			
		||||
  // but the usage is a bit confusing for the first and the later need privilege to be used.
 | 
			
		||||
  // If you come here with a solution, you'r welcome. For now we just return the default value.
 | 
			
		||||
#elif
 | 
			
		||||
#warning "There is missing code there for your platform ! please check and correct :)"
 | 
			
		||||
#endif
 | 
			
		||||
  return 10*1024*1024;
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Arrondir un nombre réel à la valeur entière la plus proche
 | 
			
		||||
// TODO : this should probably be replaced with round() from C99...
 | 
			
		||||
short Round(float value)
 | 
			
		||||
 | 
			
		||||
@ -127,11 +127,6 @@ GFX2_GLOBAL byte Timer_state; // State du chrono: 0=Attente d'un Xème de second
 | 
			
		||||
GFX2_GLOBAL dword Timer_delay;     // Nombre de 18.2ème de secondes demandés
 | 
			
		||||
GFX2_GLOBAL dword Timer_start;       // Heure de départ du chrono
 | 
			
		||||
 | 
			
		||||
#if defined (__MINT__)
 | 
			
		||||
void Atari_Memory_free(unsigned long *stRam,unsigned long *ttRam);
 | 
			
		||||
#else
 | 
			
		||||
unsigned long Memory_free(void);
 | 
			
		||||
#endif
 | 
			
		||||
#define Num2str(a,b,c) snprintf(b,sizeof(b),"%*lu",(int)c,(unsigned long)(a))
 | 
			
		||||
 | 
			
		||||
#define Dec2str(a,b,c) sprintf(b,"%.*f",c,(double)(a))
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										99
									
								
								src/osdep.c
									
									
									
									
									
								
							
							
						
						
									
										99
									
								
								src/osdep.c
									
									
									
									
									
								
							@ -33,6 +33,7 @@
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "struct.h"
 | 
			
		||||
#include "gfx2log.h"
 | 
			
		||||
 | 
			
		||||
dword GFX2_GetTicks(void)
 | 
			
		||||
{
 | 
			
		||||
@ -48,3 +49,101 @@ dword GFX2_GetTicks(void)
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if defined(__macosx__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__SWITCH__)
 | 
			
		||||
  #if defined(__OpenBSD__)
 | 
			
		||||
  #include <sys/param.h>
 | 
			
		||||
  #endif
 | 
			
		||||
  #include <sys/types.h>
 | 
			
		||||
  #include <sys/sysctl.h>
 | 
			
		||||
#elif defined(__BEOS__) || defined(__HAIKU__)
 | 
			
		||||
  #include <kernel/OS.h>
 | 
			
		||||
#elif defined(__AROS__) || defined(__amigaos4__) || defined(__MORPHOS__) || defined(__amigaos__)
 | 
			
		||||
  #include <proto/exec.h>
 | 
			
		||||
#elif defined(__MINT__)
 | 
			
		||||
  #include <mint/osbind.h>
 | 
			
		||||
  #include <mint/sysbind.h>
 | 
			
		||||
#elif defined(__SKYOS__)
 | 
			
		||||
  #include <skyos/sysinfo.h>
 | 
			
		||||
#elif !defined(WIN32)
 | 
			
		||||
  #include <sys/sysinfo.h> // sysinfo() for free RAM
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined (__MINT__)
 | 
			
		||||
// atari have two kinds of memory
 | 
			
		||||
// standard and fast ram
 | 
			
		||||
void Atari_Memory_free(unsigned long *stRam, unsigned long *ttRam){
 | 
			
		||||
  *stRam = Mxalloc(-1L, 0);
 | 
			
		||||
  *ttRam = Mxalloc(-1L, 1);
 | 
			
		||||
}
 | 
			
		||||
#else
 | 
			
		||||
// Indique quelle est la mémoire disponible
 | 
			
		||||
unsigned long Memory_free(void)
 | 
			
		||||
{
 | 
			
		||||
  // Memory is no longer relevant. If there is ANY problem or doubt here,
 | 
			
		||||
  // you can simply return 10*1024*1024 (10Mb), to make the "Pages"something
 | 
			
		||||
  // memory allocation functions happy.
 | 
			
		||||
 | 
			
		||||
  // However, it is still a good idea to make a proper function if you can...
 | 
			
		||||
  // If Grafx2 thinks the memory is full, weird things may happen. And if memory
 | 
			
		||||
  // ever becomes full and you're still saying there are 10MB free here, the
 | 
			
		||||
  // program will crash without saving any picture backup ! You've been warned...
 | 
			
		||||
#if defined(WIN32)
 | 
			
		||||
#if _WIN32_WINNT >= _WIN32_WINNT_WIN2K
 | 
			
		||||
  // GlobalMemoryStatusEx() is supported since Windows 2000
 | 
			
		||||
  MEMORYSTATUSEX mstt;
 | 
			
		||||
  mstt.dwLength = sizeof(mstt);
 | 
			
		||||
  if (GlobalMemoryStatusEx(&mstt))
 | 
			
		||||
  {
 | 
			
		||||
    GFX2_Log(GFX2_DEBUG, "Phys %lu / %luMB, Page %lu / %luMB, Virtual %lu / %luMB\n",
 | 
			
		||||
             (unsigned long)(mstt.ullAvailPhys >> 20), (unsigned long)(mstt.ullTotalPhys >> 20),
 | 
			
		||||
             (unsigned long)(mstt.ullAvailPageFile >> 20), (unsigned long)(mstt.ullTotalPageFile >> 20),
 | 
			
		||||
             (unsigned long)(mstt.ullAvailVirtual >> 20), (unsigned long)(mstt.ullTotalVirtual >> 20));
 | 
			
		||||
    return mstt.ullAvailPhys;
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    GFX2_Log(GFX2_ERROR, "GlobalMemoryStatusEx() failed\n");
 | 
			
		||||
    return 10*1024*1024;
 | 
			
		||||
  }
 | 
			
		||||
#else
 | 
			
		||||
  MEMORYSTATUS mstt;
 | 
			
		||||
  mstt.dwLength = sizeof(MEMORYSTATUS);
 | 
			
		||||
  GlobalMemoryStatus(&mstt);
 | 
			
		||||
  return mstt.dwAvailPhys;
 | 
			
		||||
#endif
 | 
			
		||||
#elif defined(__macosx__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
 | 
			
		||||
  int mib[2];
 | 
			
		||||
  int maxmem;
 | 
			
		||||
  size_t len;
 | 
			
		||||
 | 
			
		||||
  mib[0] = CTL_HW;
 | 
			
		||||
  mib[1] = HW_USERMEM;
 | 
			
		||||
  len = sizeof(maxmem);
 | 
			
		||||
  sysctl(mib,2,&maxmem,&len,NULL,0);
 | 
			
		||||
  return maxmem;
 | 
			
		||||
#elif defined(__HAIKU__) || defined(__BEOS__)
 | 
			
		||||
  int pages;
 | 
			
		||||
  system_info systemInfo;
 | 
			
		||||
  get_system_info(&systemInfo);
 | 
			
		||||
 | 
			
		||||
  pages = systemInfo.max_pages - systemInfo.used_pages;
 | 
			
		||||
  return pages * B_PAGE_SIZE;
 | 
			
		||||
#elif defined(__AROS__) || defined(__MORPHOS__) || defined(__amigaos__)
 | 
			
		||||
  return AvailMem(MEMF_ANY);
 | 
			
		||||
#elif defined(__linux__)
 | 
			
		||||
  struct sysinfo info;
 | 
			
		||||
  sysinfo(&info);
 | 
			
		||||
  return info.freeram*info.mem_unit;
 | 
			
		||||
#else
 | 
			
		||||
  // AvailMem is misleading on os4 (os4 caches stuff in memory that you can still allocate)
 | 
			
		||||
#if defined(__SWITCH__)
 | 
			
		||||
  // There is some way to get memory information on switch (see include switch/kernel/svc.h svcGetInfo svcGetSystemInfo)
 | 
			
		||||
  // but the usage is a bit confusing for the first and the later need privilege to be used.
 | 
			
		||||
  // If you come here with a solution, you'r welcome. For now we just return the default value.
 | 
			
		||||
#elif
 | 
			
		||||
#warning "There is missing code there for your platform ! please check and correct :)"
 | 
			
		||||
#endif
 | 
			
		||||
  return 10*1024*1024;
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@ -33,4 +33,13 @@
 | 
			
		||||
/// Return a number of milliseconds
 | 
			
		||||
dword GFX2_GetTicks(void);
 | 
			
		||||
 | 
			
		||||
#if defined (__MINT__)
 | 
			
		||||
void Atari_Memory_free(unsigned long *stRam, unsigned long *ttRam);
 | 
			
		||||
#else
 | 
			
		||||
/**
 | 
			
		||||
 * @return the number of RAM bytes available
 | 
			
		||||
 */
 | 
			
		||||
unsigned long Memory_free(void);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user