Index: branches/2019Q3/games/openbor/Makefile =================================================================== --- branches/2019Q3/games/openbor/Makefile (revision 508690) +++ branches/2019Q3/games/openbor/Makefile (revision 508691) @@ -1,110 +1,110 @@ # $FreeBSD$ PORTNAME= openbor # Hint: svn revision is git rev-list --count ${GH_TAGNAME} PORTVERSION?= 7066 .ifndef PKGNAMESUFFIX -PORTREVISION= 0 +PORTREVISION= 1 .endif CATEGORIES= games MAINTAINER= jbeich@FreeBSD.org COMMENT= 2D side scrolling engine for beat 'em ups, shooters, and more #' LICENSE= BSD3CLAUSE GPLv2+ .if ${PORTVERSION} >= 4134 LICENSE+= ISCL .endif LICENSE_COMB= multi LICENSE_FILE_BSD3CLAUSE=${WRKSRC}/LICENSE LICENSE_FILE_GPLv2+ = ${_LICENSE_STORE}/GPLv2 # source/gfxlib/hq2x.c LICENSE_FILE_ISCL= ${WRKSRC}/source/webmlib/nestegg/LICENSE LIB_DEPENDS= libpng.so:graphics/png .if ${PORTVERSION} >= 4134 LIB_DEPENDS+= libvpx.so:multimedia/libvpx .endif .ifdef PKGNAMESUFFIX PORTSCOUT= ignore:1 .endif USE_GITHUB= yes GH_ACCOUNT= DCurrent GH_TAGNAME?= 07cdde0a USES+= gmake pkgconfig .if ${PORTVERSION} < 4433 USE_CSTD= gnu89 .endif .if ${PORTVERSION} < 4108 USE_SDL= gfx .elif ${PORTVERSION} < 6639 USE_SDL= gfx2 .else USE_SDL= sdl2 .endif WRKSRC_SUBDIR= engine MAKE_ENV= BUILD_LINUX=1 SDKPATH="${LOCALBASE}" \ GCC_TARGET="${CONFIGURE_TARGET:S/amd64/x86_64/}" MAKE_ARGS= CC="${CC}" LIBRARIES="${LOCALBASE}/lib" \ TARGET_ARCH=${ARCH:S/i386/x86/} ARCHFLAGS="" \ TARGET_FINAL='${TARGET}' BUILD_MMX="" ECHO="${ECHO}" LDFLAGS+= -Wl,--as-needed # ogg, pthread, zlib SUB_FILES= pkg-message SUB_LIST= PKGBASE=${PKGBASE} PLIST_FILES= bin/${PKGBASE} \ share/pixmaps/${PKGBASE}.png DOCSDIR= ${PREFIX}/share/doc/${PKGBASE} PORTDOCS= README DESKTOP_ENTRIES="OpenBOR v3.0 Build ${PORTVERSION}" \ "" \ "${PKGBASE}" \ "${PKGBASE}" \ "Game;ArcadeGame;" \ "" OPTIONS_DEFINE= DOCS TREMOR OPTIONS_DEFAULT= ${MACHINE_CPU:Msoftfp:C/.+/TREMOR/} OPTIONS_DEFINE_i386= MMX OPTIONS_DEFAULT_i386= MMX # runtime detection MMX_BUILD_DEPENDS= yasm:devel/yasm MMX_MAKE_ARGS= BUILD_MMX=1 TREMOR_LIB_DEPENDS= libvorbisidec.so:audio/libtremor TREMOR_MAKE_ARGS= BUILD_TREMOR=1 BUILD_VORBIS="" TREMOR_LIB_DEPENDS_OFF= libvorbisfile.so:audio/libvorbis post-patch: @${REINPLACE_CMD} -e 's/ -O[0-9]//; s/ -g//; s/ -Werror//' \ -e 's/ -fomit-frame-pointer//' \ -e 's/ -freorder-blocks//' \ -e 's/ -Wno-unused-result//' \ -e 's/ -Wl,-rpath,$$(LIBRARIES)//' \ -e '/echo/!s/ @/ /' \ -e 's/@echo/@$$(ECHO)/' \ -e 's/$$(LIBS)/$$(LDFLAGS) &/' \ ${WRKSRC}/Makefile @${REINPLACE_CMD} -e 's/\.openbor/.${PKGBASE}/' \ ${WRKSRC}/sdl/sdlport.c @${GREP} -Flr 'malloc.h' ${WRKSRC} | ${XARGS} ${REINPLACE_CMD} \ 's,malloc\.h,stdlib.h,' @${REINPLACE_CMD} -e 's/^function \(.*\) {/\1() {/' \ -e '/^[[:space:]]*VERSION_.*=0000/d' \ ${WRKSRC}/version.sh do-configure: (cd ${WRKSRC} && VERSION_BUILD=${PORTVERSION} VERSION_COMMIT=${GH_TAGNAME} \ ${SH} ./version.sh) do-install: ${INSTALL_PROGRAM} ${WRKSRC}/OpenBOR.elf \ ${STAGEDIR}${PREFIX}/bin/${PKGBASE} ${INSTALL_DATA} ${WRKSRC}/resources/OpenBOR_Icon_128x128.png \ ${STAGEDIR}${PREFIX}/share/pixmaps/${PKGBASE}.png (cd ${WRKSRC} && ${COPYTREE_SHARE} \ "${PORTDOCS}" ${STAGEDIR}${DOCSDIR}) .include Index: branches/2019Q3/games/openbor/files/patch-source_ramlib_ram.c =================================================================== --- branches/2019Q3/games/openbor/files/patch-source_ramlib_ram.c (revision 508690) +++ branches/2019Q3/games/openbor/files/patch-source_ramlib_ram.c (revision 508691) @@ -1,189 +1,189 @@ Implement Linux-like memory stats for BSDs --- source/ramlib/ram.c.orig 2018-07-06 15:13:16 UTC +++ source/ramlib/ram.c @@ -25,6 +25,21 @@ #include #include #include +#elif defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) +#include +#include +#include +# if defined(__DragonFly__) +#include // struct kinfo_proc +#include // struct vmstats +# elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) +#include // struct kinfo_proc +# elif defined(__NetBSD__) +#include // struct uvmexp_sysctl +# elif defined(__OpenBSD__) +#include // struct uvmexp +# endif #elif LINUX #include #include @@ -48,7 +63,10 @@ static u64 systemRam = 0x00000000; -#if !(defined(WIN) || defined(LINUX) || defined(DARWIN)) +#if !(defined(WIN) || defined(LINUX) || defined(DARWIN) || \ + defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__NetBSD__) || \ + defined(__OpenBSD__)) static unsigned long elfOffset = 0x00000000; static unsigned long stackSize = 0x00000000; #endif @@ -56,7 +74,10 @@ static unsigned long stackSize = 0x00000000; ///////////////////////////////////////////////////////////////////////////// // Symbols -#if !(defined(WIN) || defined(LINUX) || defined(DARWIN)) +#if !(defined(WIN) || defined(LINUX) || defined(DARWIN) || \ + defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__NetBSD__) || \ + defined(__OpenBSD__)) #if (__GNUC__ > 3) extern unsigned long _end; extern unsigned long _start; @@ -93,6 +114,48 @@ u64 getFreeRam(int byte_size) return 0; } return (u64)(((vms.inactive_count + vms.free_count) * size) / byte_size); +#elif defined(__DragonFly__) + struct vmstats vms; + size_t sz = sizeof(vms); + if (sysctlbyname("vm.vmstats", &vms, &sz, NULL, 0)) + { + return 0; + } -+ return (u64)((vms.v_free_count + vms.v_inactive_count -+ + vms.v_cache_count) * getpagesize()) / byte_size; ++ return (u64)(vms.v_free_count + vms.v_inactive_count ++ + vms.v_cache_count) * getpagesize() / byte_size; +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + u_int v_free_count = 0, v_inactive_count = 0, v_cache_count = 0; + size_t sz = sizeof(u_int); + sysctlbyname("vm.stats.vm.v_free_count", + &v_free_count, &sz, NULL, 0); + sysctlbyname("vm.stats.vm.v_inactive_count", + &v_inactive_count, &sz, NULL, 0); + sysctlbyname("vm.stats.vm.v_cache_count", + &v_cache_count, &sz, NULL, 0); -+ return (u64)((v_free_count + v_inactive_count + v_cache_count) -+ * getpagesize()) / byte_size; ++ return (u64)(v_free_count + v_inactive_count ++ + v_cache_count) * getpagesize() / byte_size; +#elif defined(__NetBSD__) || defined(__OpenBSD__) +# if defined(__NetBSD__) +#undef VM_UVMEXP +#define VM_UVMEXP VM_UVMEXP2 +#define uvmexp uvmexp_sysctl +# else +#define filepages vnodepages +#define execpages vtextpages +# endif + int mib[] = { + CTL_VM, + VM_UVMEXP, + }; + u_int miblen = sizeof(mib) / sizeof(mib[0]); + struct uvmexp uvmexp; + size_t sz = sizeof(uvmexp); + if (sysctl(mib, miblen, &uvmexp, &sz, NULL, 0)) + { + return 0; + } -+ return (u64)((uvmexp.free + uvmexp.inactive + uvmexp.filepages -+ + uvmexp.execpages) * uvmexp.pagesize) / byte_size; ++ return (u64)(uvmexp.free + uvmexp.inactive + uvmexp.filepages ++ + uvmexp.execpages) * uvmexp.pagesize / byte_size; #elif LINUX struct sysinfo info; sysinfo(&info); @@ -133,11 +196,29 @@ void setSystemRam() stat.dwLength = sizeof(MEMORYSTATUSEX); GlobalMemoryStatusEx(&stat); systemRam = stat.ullTotalPhys; -#elif DARWIN - u64 mem; - size_t len = sizeof(mem); - sysctlbyname("hw.memsize", &mem, &len, NULL, 0); - systemRam = mem; +#elif defined(DARWIN) || defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) +# if defined(HW_MEMSIZE) || defined(HW_PHYSMEM64) + uint64_t physmem; +# else + u_long physmem; +# endif + int mib[] = { + CTL_HW, +# if defined(HW_MEMSIZE) + HW_MEMSIZE, +# elif defined(HW_PHYSMEM64) + HW_PHYSMEM64, +# else + HW_PHYSMEM, +# endif + }; + size_t sz = sizeof(physmem); + if (sysctl(mib, 2, &physmem, &sz, NULL, 0)) + { + physmem = 0; + } + systemRam = physmem; #elif LINUX struct sysinfo info; sysinfo(&info); @@ -183,7 +264,10 @@ void setSystemRam() stackSize = 0x00000000; systemRam = getFreeRam(BYTES); #endif -#if !(defined(WIN) || defined(LINUX) || defined(DARWIN) || defined(SYMBIAN) || defined(VITA)) +#if !(defined(WIN) || defined(LINUX) || defined(DARWIN) || defined(SYMBIAN) || defined(VITA) || \ + defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__NetBSD__) || \ + defined(__OpenBSD__)) stackSize = (int)&_end - (int)&_start + ((int)&_start - elfOffset); #endif getRamStatus(BYTES); @@ -215,6 +299,42 @@ u64 getUsedRam(int byte_size) return 0; } return info.resident_size / byte_size; +#elif defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) +# if defined(__NetBSD__) +#undef KERN_PROC +#define KERN_PROC KERN_PROC2 +#define KINFO_PROC struct kinfo_proc2 +# else +#define KINFO_PROC struct kinfo_proc +# endif +# if defined(__DragonFly__) +#define KP_RSS(kp) (kp.kp_vm_rssize * getpagesize()) +# elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) +#define KP_RSS(kp) (kp.ki_rssize * getpagesize()) +# elif defined(__NetBSD__) +#define KP_RSS(kp) (kp.p_vm_rssize * getpagesize()) +# elif defined(__OpenBSD__) +#define KP_RSS(kp) (kp.p_vm_rssize * getpagesize()) +# endif + int mib[] = { + CTL_KERN, + KERN_PROC, + KERN_PROC_PID, + getpid(), +# if defined(__NetBSD__) || defined(__OpenBSD__) + sizeof(KINFO_PROC), + 1, +# endif + }; + u_int miblen = sizeof(mib) / sizeof(mib[0]); + KINFO_PROC kp; + size_t sz = sizeof(KINFO_PROC); + if (sysctl(mib, miblen, &kp, &sz, NULL, 0)) + { + return 0; + } + return (u64)KP_RSS(kp) / byte_size; #elif LINUX unsigned long vm = 0; FILE *file = fopen("/proc/self/statm", "r"); Index: branches/2019Q3/games/openbor3482/Makefile =================================================================== --- branches/2019Q3/games/openbor3482/Makefile (revision 508690) +++ branches/2019Q3/games/openbor3482/Makefile (revision 508691) @@ -1,13 +1,13 @@ # $FreeBSD$ PORTVERSION= 3482 -PORTREVISION= 1 +PORTREVISION= 2 PKGNAMESUFFIX= ${PORTVERSION} MASTERDIR= ${.CURDIR}/../openbor PATCHDIR= ${.CURDIR}/files DISTINFO_FILE= ${.CURDIR}/distinfo GH_TAGNAME= 2c1ecd7 .include "${MASTERDIR}/Makefile" Index: branches/2019Q3/games/openbor3482/files/patch-source_ramlib_ram.c =================================================================== --- branches/2019Q3/games/openbor3482/files/patch-source_ramlib_ram.c (revision 508690) +++ branches/2019Q3/games/openbor3482/files/patch-source_ramlib_ram.c (revision 508691) @@ -1,223 +1,223 @@ Implement Linux-like memory stats for BSDs --- source/ramlib/ram.c.orig 2011-04-08 16:22:58 UTC +++ source/ramlib/ram.c @@ -27,6 +27,21 @@ #include #include #include +#elif defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) +#include +#include +#include +# if defined(__DragonFly__) +#include // struct kinfo_proc +#include // struct vmstats +# elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) +#include // struct kinfo_proc +# elif defined(__NetBSD__) +#include // struct uvmexp_sysctl +# elif defined(__OpenBSD__) +#include // struct uvmexp +# endif #elif LINUX #include #include @@ -54,12 +69,22 @@ static u64 systemRam = 0x00000000; #ifndef WIN #ifndef XBOX #ifndef LINUX +#ifndef __DragonFly__ +#ifndef __FreeBSD__ +#ifndef __FreeBSD_kernel__ +#ifndef __NetBSD__ +#ifndef __OpenBSD__ static unsigned long elfOffset = 0x00000000; static unsigned long stackSize = 0x00000000; #endif #endif #endif #endif +#endif +#endif +#endif +#endif +#endif ///////////////////////////////////////////////////////////////////////////// // Symbols @@ -68,6 +93,11 @@ static unsigned long stackSize = 0x00000 #ifndef WIN #ifndef XBOX #ifndef LINUX +#ifndef __DragonFly__ +#ifndef __FreeBSD__ +#ifndef __FreeBSD_kernel__ +#ifndef __NetBSD__ +#ifndef __OpenBSD__ #if (__GNUC__ > 3) extern unsigned long _end; extern unsigned long _start; @@ -81,6 +111,11 @@ extern unsigned long start; #endif #endif #endif +#endif +#endif +#endif +#endif +#endif ///////////////////////////////////////////////////////////////////////////// // Functions @@ -101,6 +136,48 @@ u64 getFreeRam(int byte_size) if(host_page_size(hostPort, &size) != KERN_SUCCESS) return 0; if(host_statistics(hostPort, HOST_VM_INFO, (host_info_t)&vms, &count) != KERN_SUCCESS) return 0; return (u64)(((vms.inactive_count+vms.free_count)*size)/byte_size); +#elif defined(__DragonFly__) + struct vmstats vms; + size_t sz = sizeof(vms); + if (sysctlbyname("vm.vmstats", &vms, &sz, NULL, 0)) + { + return 0; + } -+ return (u64)((vms.v_free_count + vms.v_inactive_count -+ + vms.v_cache_count) * getpagesize()) / byte_size; ++ return (u64)(vms.v_free_count + vms.v_inactive_count ++ + vms.v_cache_count) * getpagesize() / byte_size; +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + u_int v_free_count = 0, v_inactive_count = 0, v_cache_count = 0; + size_t sz = sizeof(u_int); + sysctlbyname("vm.stats.vm.v_free_count", + &v_free_count, &sz, NULL, 0); + sysctlbyname("vm.stats.vm.v_inactive_count", + &v_inactive_count, &sz, NULL, 0); + sysctlbyname("vm.stats.vm.v_cache_count", + &v_cache_count, &sz, NULL, 0); -+ return (u64)((v_free_count + v_inactive_count + v_cache_count) -+ * getpagesize()) / byte_size; ++ return (u64)(v_free_count + v_inactive_count ++ + v_cache_count) * getpagesize() / byte_size; +#elif defined(__NetBSD__) || defined(__OpenBSD__) +# if defined(__NetBSD__) +#undef VM_UVMEXP +#define VM_UVMEXP VM_UVMEXP2 +#define uvmexp uvmexp_sysctl +# else +#define filepages vnodepages +#define execpages vtextpages +# endif + int mib[] = { + CTL_VM, + VM_UVMEXP, + }; + u_int miblen = sizeof(mib) / sizeof(mib[0]); + struct uvmexp uvmexp; + size_t sz = sizeof(uvmexp); + if (sysctl(mib, miblen, &uvmexp, &sz, NULL, 0)) + { + return 0; + } -+ return (u64)((uvmexp.free + uvmexp.inactive + uvmexp.filepages -+ + uvmexp.execpages) * uvmexp.pagesize) / byte_size; ++ return (u64)(uvmexp.free + uvmexp.inactive + uvmexp.filepages ++ + uvmexp.execpages) * uvmexp.pagesize / byte_size; #elif LINUX struct sysinfo info; sysinfo(&info); @@ -138,11 +216,29 @@ void setSystemRam() stat.dwLength = sizeof(MEMORYSTATUS); GlobalMemoryStatus(&stat); systemRam = stat.dwTotalPhys; -#elif DARWIN - u64 mem; - size_t len = sizeof(mem); - sysctlbyname("hw.memsize", &mem, &len, NULL, 0); - systemRam = mem; +#elif defined(DARWIN) || defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) +# if defined(HW_MEMSIZE) || defined(HW_PHYSMEM64) + uint64_t physmem; +# else + u_long physmem; +# endif + int mib[] = { + CTL_HW, +# if defined(HW_MEMSIZE) + HW_MEMSIZE, +# elif defined(HW_PHYSMEM64) + HW_PHYSMEM64, +# else + HW_PHYSMEM, +# endif + }; + size_t sz = sizeof(physmem); + if (sysctl(mib, 2, &physmem, &sz, NULL, 0)) + { + physmem = 0; + } + systemRam = physmem; #elif LINUX struct sysinfo info; sysinfo(&info); @@ -183,12 +279,22 @@ void setSystemRam() #ifndef XBOX #ifndef LINUX #ifndef SYMBIAN +#ifndef __DragonFly__ +#ifndef __FreeBSD__ +#ifndef __FreeBSD_kernel__ +#ifndef __NetBSD__ +#ifndef __OpenBSD__ stackSize = (int)&_end - (int)&_start + ((int)&_start - elfOffset); #endif #endif #endif #endif #endif +#endif +#endif +#endif +#endif +#endif getRamStatus(BYTES); } @@ -215,6 +321,42 @@ u64 getUsedRam(int byte_size) rval = task_info(task, TASK_BASIC_INFO, tptr, &tcnt); if (!(rval == KERN_SUCCESS)) return 0; return info.resident_size/byte_size; +#elif defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) +# if defined(__NetBSD__) +#undef KERN_PROC +#define KERN_PROC KERN_PROC2 +#define KINFO_PROC struct kinfo_proc2 +# else +#define KINFO_PROC struct kinfo_proc +# endif +# if defined(__DragonFly__) +#define KP_RSS(kp) (kp.kp_vm_rssize * getpagesize()) +# elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) +#define KP_RSS(kp) (kp.ki_rssize * getpagesize()) +# elif defined(__NetBSD__) +#define KP_RSS(kp) (kp.p_vm_rssize * getpagesize()) +# elif defined(__OpenBSD__) +#define KP_RSS(kp) (kp.p_vm_rssize * getpagesize()) +# endif + int mib[] = { + CTL_KERN, + KERN_PROC, + KERN_PROC_PID, + getpid(), +# if defined(__NetBSD__) || defined(__OpenBSD__) + sizeof(KINFO_PROC), + 1, +# endif + }; + u_int miblen = sizeof(mib) / sizeof(mib[0]); + KINFO_PROC kp; + size_t sz = sizeof(KINFO_PROC); + if (sysctl(mib, miblen, &kp, &sz, NULL, 0)) + { + return 0; + } + return (u64)KP_RSS(kp) / byte_size; #elif LINUX unsigned long vm = 0; FILE *file = fopen("/proc/self/statm", "r"); Index: branches/2019Q3/games/openbor3711/Makefile =================================================================== --- branches/2019Q3/games/openbor3711/Makefile (revision 508690) +++ branches/2019Q3/games/openbor3711/Makefile (revision 508691) @@ -1,13 +1,13 @@ # $FreeBSD$ PORTVERSION= 3711 -PORTREVISION= 1 +PORTREVISION= 2 PKGNAMESUFFIX= ${PORTVERSION} MASTERDIR= ${.CURDIR}/../openbor PATCHDIR= ${.CURDIR}/../openbor3482/files DISTINFO_FILE= ${.CURDIR}/distinfo GH_TAGNAME= 6ec17fa .include "${MASTERDIR}/Makefile" Index: branches/2019Q3/games/openbor3979/Makefile =================================================================== --- branches/2019Q3/games/openbor3979/Makefile (revision 508690) +++ branches/2019Q3/games/openbor3979/Makefile (revision 508691) @@ -1,13 +1,13 @@ # $FreeBSD$ PORTVERSION= 3979 -PORTREVISION= 1 +PORTREVISION= 2 PKGNAMESUFFIX= ${PORTVERSION} MASTERDIR= ${.CURDIR}/../openbor PATCHDIR= ${.CURDIR}/files DISTINFO_FILE= ${.CURDIR}/distinfo GH_TAGNAME= 2bcf25b .include "${MASTERDIR}/Makefile" Index: branches/2019Q3/games/openbor3979/files/patch-source_ramlib_ram.c =================================================================== --- branches/2019Q3/games/openbor3979/files/patch-source_ramlib_ram.c (revision 508690) +++ branches/2019Q3/games/openbor3979/files/patch-source_ramlib_ram.c (revision 508691) @@ -1,223 +1,223 @@ Implement Linux-like memory stats for BSDs --- source/ramlib/ram.c.orig 2013-12-29 14:05:10 UTC +++ source/ramlib/ram.c @@ -27,6 +27,21 @@ #include #include #include +#elif defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) +#include +#include +#include +# if defined(__DragonFly__) +#include // struct kinfo_proc +#include // struct vmstats +# elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) +#include // struct kinfo_proc +# elif defined(__NetBSD__) +#include // struct uvmexp_sysctl +# elif defined(__OpenBSD__) +#include // struct uvmexp +# endif #elif LINUX #include #include @@ -54,12 +69,22 @@ static u64 systemRam = 0x00000000; #ifndef WIN #ifndef XBOX #ifndef LINUX +#ifndef __DragonFly__ +#ifndef __FreeBSD__ +#ifndef __FreeBSD_kernel__ +#ifndef __NetBSD__ +#ifndef __OpenBSD__ static unsigned long elfOffset = 0x00000000; static unsigned long stackSize = 0x00000000; #endif #endif #endif #endif +#endif +#endif +#endif +#endif +#endif ///////////////////////////////////////////////////////////////////////////// // Symbols @@ -68,6 +93,11 @@ static unsigned long stackSize = 0x00000 #ifndef WIN #ifndef XBOX #ifndef LINUX +#ifndef __DragonFly__ +#ifndef __FreeBSD__ +#ifndef __FreeBSD_kernel__ +#ifndef __NetBSD__ +#ifndef __OpenBSD__ #if (__GNUC__ > 3) extern unsigned long _end; extern unsigned long _start; @@ -81,6 +111,11 @@ extern unsigned long start; #endif #endif #endif +#endif +#endif +#endif +#endif +#endif ///////////////////////////////////////////////////////////////////////////// // Functions @@ -107,6 +142,48 @@ u64 getFreeRam(int byte_size) return 0; } return (u64)(((vms.inactive_count + vms.free_count) * size) / byte_size); +#elif defined(__DragonFly__) + struct vmstats vms; + size_t sz = sizeof(vms); + if (sysctlbyname("vm.vmstats", &vms, &sz, NULL, 0)) + { + return 0; + } -+ return (u64)((vms.v_free_count + vms.v_inactive_count -+ + vms.v_cache_count) * getpagesize()) / byte_size; ++ return (u64)(vms.v_free_count + vms.v_inactive_count ++ + vms.v_cache_count) * getpagesize() / byte_size; +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + u_int v_free_count = 0, v_inactive_count = 0, v_cache_count = 0; + size_t sz = sizeof(u_int); + sysctlbyname("vm.stats.vm.v_free_count", + &v_free_count, &sz, NULL, 0); + sysctlbyname("vm.stats.vm.v_inactive_count", + &v_inactive_count, &sz, NULL, 0); + sysctlbyname("vm.stats.vm.v_cache_count", + &v_cache_count, &sz, NULL, 0); -+ return (u64)((v_free_count + v_inactive_count + v_cache_count) -+ * getpagesize()) / byte_size; ++ return (u64)(v_free_count + v_inactive_count ++ + v_cache_count) * getpagesize() / byte_size; +#elif defined(__NetBSD__) || defined(__OpenBSD__) +# if defined(__NetBSD__) +#undef VM_UVMEXP +#define VM_UVMEXP VM_UVMEXP2 +#define uvmexp uvmexp_sysctl +# else +#define filepages vnodepages +#define execpages vtextpages +# endif + int mib[] = { + CTL_VM, + VM_UVMEXP, + }; + u_int miblen = sizeof(mib) / sizeof(mib[0]); + struct uvmexp uvmexp; + size_t sz = sizeof(uvmexp); + if (sysctl(mib, miblen, &uvmexp, &sz, NULL, 0)) + { + return 0; + } -+ return (u64)((uvmexp.free + uvmexp.inactive + uvmexp.filepages -+ + uvmexp.execpages) * uvmexp.pagesize) / byte_size; ++ return (u64)(uvmexp.free + uvmexp.inactive + uvmexp.filepages ++ + uvmexp.execpages) * uvmexp.pagesize / byte_size; #elif LINUX struct sysinfo info; sysinfo(&info); @@ -147,11 +225,29 @@ void setSystemRam() stat.dwLength = sizeof(MEMORYSTATUS); GlobalMemoryStatus(&stat); systemRam = stat.dwTotalPhys; -#elif DARWIN - u64 mem; - size_t len = sizeof(mem); - sysctlbyname("hw.memsize", &mem, &len, NULL, 0); - systemRam = mem; +#elif defined(DARWIN) || defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) +# if defined(HW_MEMSIZE) || defined(HW_PHYSMEM64) + uint64_t physmem; +# else + u_long physmem; +# endif + int mib[] = { + CTL_HW, +# if defined(HW_MEMSIZE) + HW_MEMSIZE, +# elif defined(HW_PHYSMEM64) + HW_PHYSMEM64, +# else + HW_PHYSMEM, +# endif + }; + size_t sz = sizeof(physmem); + if (sysctl(mib, 2, &physmem, &sz, NULL, 0)) + { + physmem = 0; + } + systemRam = physmem; #elif LINUX struct sysinfo info; sysinfo(&info); @@ -199,12 +295,22 @@ void setSystemRam() #ifndef XBOX #ifndef LINUX #ifndef SYMBIAN +#ifndef __DragonFly__ +#ifndef __FreeBSD__ +#ifndef __FreeBSD_kernel__ +#ifndef __NetBSD__ +#ifndef __OpenBSD__ stackSize = (int)&_end - (int)&_start + ((int)&_start - elfOffset); #endif #endif #endif #endif #endif +#endif +#endif +#endif +#endif +#endif getRamStatus(BYTES); } @@ -234,6 +340,42 @@ u64 getUsedRam(int byte_size) return 0; } return info.resident_size / byte_size; +#elif defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) +# if defined(__NetBSD__) +#undef KERN_PROC +#define KERN_PROC KERN_PROC2 +#define KINFO_PROC struct kinfo_proc2 +# else +#define KINFO_PROC struct kinfo_proc +# endif +# if defined(__DragonFly__) +#define KP_RSS(kp) (kp.kp_vm_rssize * getpagesize()) +# elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) +#define KP_RSS(kp) (kp.ki_rssize * getpagesize()) +# elif defined(__NetBSD__) +#define KP_RSS(kp) (kp.p_vm_rssize * getpagesize()) +# elif defined(__OpenBSD__) +#define KP_RSS(kp) (kp.p_vm_rssize * getpagesize()) +# endif + int mib[] = { + CTL_KERN, + KERN_PROC, + KERN_PROC_PID, + getpid(), +# if defined(__NetBSD__) || defined(__OpenBSD__) + sizeof(KINFO_PROC), + 1, +# endif + }; + u_int miblen = sizeof(mib) / sizeof(mib[0]); + KINFO_PROC kp; + size_t sz = sizeof(KINFO_PROC); + if (sysctl(mib, miblen, &kp, &sz, NULL, 0)) + { + return 0; + } + return (u64)KP_RSS(kp) / byte_size; #elif LINUX unsigned long vm = 0; FILE *file = fopen("/proc/self/statm", "r"); Index: branches/2019Q3/games/openbor4432/Makefile =================================================================== --- branches/2019Q3/games/openbor4432/Makefile (revision 508690) +++ branches/2019Q3/games/openbor4432/Makefile (revision 508691) @@ -1,13 +1,13 @@ # $FreeBSD$ PORTVERSION= 4432 -PORTREVISION= 2 +PORTREVISION= 3 PKGNAMESUFFIX= ${PORTVERSION} MASTERDIR= ${.CURDIR}/../openbor PATCHDIR= ${.CURDIR}/files DISTINFO_FILE= ${.CURDIR}/distinfo GH_TAGNAME= ba1eb4f .include "${MASTERDIR}/Makefile" Index: branches/2019Q3/games/openbor4432/files/patch-source_ramlib_ram.c =================================================================== --- branches/2019Q3/games/openbor4432/files/patch-source_ramlib_ram.c (revision 508690) +++ branches/2019Q3/games/openbor4432/files/patch-source_ramlib_ram.c (revision 508691) @@ -1,189 +1,189 @@ Implement Linux-like memory stats for BSDs --- source/ramlib/ram.c.orig 2015-04-18 21:21:56 UTC +++ source/ramlib/ram.c @@ -25,6 +25,21 @@ #include #include #include +#elif defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) +#include +#include +#include +# if defined(__DragonFly__) +#include // struct kinfo_proc +#include // struct vmstats +# elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) +#include // struct kinfo_proc +# elif defined(__NetBSD__) +#include // struct uvmexp_sysctl +# elif defined(__OpenBSD__) +#include // struct uvmexp +# endif #elif LINUX #include #include @@ -48,7 +63,10 @@ static u64 systemRam = 0x00000000; -#if !(defined(WIN) || defined(LINUX) || defined(DARWIN)) +#if !(defined(WIN) || defined(LINUX) || defined(DARWIN) || \ + defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__NetBSD__) || \ + defined(__OpenBSD__)) static unsigned long elfOffset = 0x00000000; static unsigned long stackSize = 0x00000000; #endif @@ -56,7 +74,10 @@ static unsigned long stackSize = 0x00000 ///////////////////////////////////////////////////////////////////////////// // Symbols -#if !(defined(WIN) || defined(LINUX) || defined(DARWIN)) +#if !(defined(WIN) || defined(LINUX) || defined(DARWIN) || \ + defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__NetBSD__) || \ + defined(__OpenBSD__)) #if (__GNUC__ > 3) extern unsigned long _end; extern unsigned long _start; @@ -93,6 +114,48 @@ u64 getFreeRam(int byte_size) return 0; } return (u64)(((vms.inactive_count + vms.free_count) * size) / byte_size); +#elif defined(__DragonFly__) + struct vmstats vms; + size_t sz = sizeof(vms); + if (sysctlbyname("vm.vmstats", &vms, &sz, NULL, 0)) + { + return 0; + } -+ return (u64)((vms.v_free_count + vms.v_inactive_count -+ + vms.v_cache_count) * getpagesize()) / byte_size; ++ return (u64)(vms.v_free_count + vms.v_inactive_count ++ + vms.v_cache_count) * getpagesize() / byte_size; +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + u_int v_free_count = 0, v_inactive_count = 0, v_cache_count = 0; + size_t sz = sizeof(u_int); + sysctlbyname("vm.stats.vm.v_free_count", + &v_free_count, &sz, NULL, 0); + sysctlbyname("vm.stats.vm.v_inactive_count", + &v_inactive_count, &sz, NULL, 0); + sysctlbyname("vm.stats.vm.v_cache_count", + &v_cache_count, &sz, NULL, 0); -+ return (u64)((v_free_count + v_inactive_count + v_cache_count) -+ * getpagesize()) / byte_size; ++ return (u64)(v_free_count + v_inactive_count ++ + v_cache_count) * getpagesize() / byte_size; +#elif defined(__NetBSD__) || defined(__OpenBSD__) +# if defined(__NetBSD__) +#undef VM_UVMEXP +#define VM_UVMEXP VM_UVMEXP2 +#define uvmexp uvmexp_sysctl +# else +#define filepages vnodepages +#define execpages vtextpages +# endif + int mib[] = { + CTL_VM, + VM_UVMEXP, + }; + u_int miblen = sizeof(mib) / sizeof(mib[0]); + struct uvmexp uvmexp; + size_t sz = sizeof(uvmexp); + if (sysctl(mib, miblen, &uvmexp, &sz, NULL, 0)) + { + return 0; + } -+ return (u64)((uvmexp.free + uvmexp.inactive + uvmexp.filepages -+ + uvmexp.execpages) * uvmexp.pagesize) / byte_size; ++ return (u64)(uvmexp.free + uvmexp.inactive + uvmexp.filepages ++ + uvmexp.execpages) * uvmexp.pagesize / byte_size; #elif LINUX struct sysinfo info; sysinfo(&info); @@ -133,11 +197,29 @@ void setSystemRam() stat.dwLength = sizeof(MEMORYSTATUS); GlobalMemoryStatus(&stat); systemRam = stat.dwTotalPhys; -#elif DARWIN - u64 mem; - size_t len = sizeof(mem); - sysctlbyname("hw.memsize", &mem, &len, NULL, 0); - systemRam = mem; +#elif defined(DARWIN) || defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) +# if defined(HW_MEMSIZE) || defined(HW_PHYSMEM64) + uint64_t physmem; +# else + u_long physmem; +# endif + int mib[] = { + CTL_HW, +# if defined(HW_MEMSIZE) + HW_MEMSIZE, +# elif defined(HW_PHYSMEM64) + HW_PHYSMEM64, +# else + HW_PHYSMEM, +# endif + }; + size_t sz = sizeof(physmem); + if (sysctl(mib, 2, &physmem, &sz, NULL, 0)) + { + physmem = 0; + } + systemRam = physmem; #elif LINUX struct sysinfo info; sysinfo(&info); @@ -180,7 +262,10 @@ void setSystemRam() stackSize = 0x00000000; systemRam = getFreeRam(BYTES); #endif -#if !(defined(WIN) || defined(LINUX) || defined(DARWIN) || defined(SYMBIAN)) +#if !(defined(WIN) || defined(LINUX) || defined(DARWIN) || defined(SYMBIAN) || \ + defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__NetBSD__) || \ + defined(__OpenBSD__)) stackSize = (int)&_end - (int)&_start + ((int)&_start - elfOffset); #endif getRamStatus(BYTES); @@ -212,6 +297,42 @@ u64 getUsedRam(int byte_size) return 0; } return info.resident_size / byte_size; +#elif defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) +# if defined(__NetBSD__) +#undef KERN_PROC +#define KERN_PROC KERN_PROC2 +#define KINFO_PROC struct kinfo_proc2 +# else +#define KINFO_PROC struct kinfo_proc +# endif +# if defined(__DragonFly__) +#define KP_RSS(kp) (kp.kp_vm_rssize * getpagesize()) +# elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) +#define KP_RSS(kp) (kp.ki_rssize * getpagesize()) +# elif defined(__NetBSD__) +#define KP_RSS(kp) (kp.p_vm_rssize * getpagesize()) +# elif defined(__OpenBSD__) +#define KP_RSS(kp) (kp.p_vm_rssize * getpagesize()) +# endif + int mib[] = { + CTL_KERN, + KERN_PROC, + KERN_PROC_PID, + getpid(), +# if defined(__NetBSD__) || defined(__OpenBSD__) + sizeof(KINFO_PROC), + 1, +# endif + }; + u_int miblen = sizeof(mib) / sizeof(mib[0]); + KINFO_PROC kp; + size_t sz = sizeof(KINFO_PROC); + if (sysctl(mib, miblen, &kp, &sz, NULL, 0)) + { + return 0; + } + return (u64)KP_RSS(kp) / byte_size; #elif LINUX unsigned long vm = 0; FILE *file = fopen("/proc/self/statm", "r"); Index: branches/2019Q3 =================================================================== --- branches/2019Q3 (revision 508690) +++ branches/2019Q3 (revision 508691) Property changes on: branches/2019Q3 ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /head:r508689