17 # if defined(__APPLE__)
18 long gu_darwin_phys_pages (
void);
19 long gu_darwin_avphys_pages (
void);
20 # elif defined(__FreeBSD__)
21 long gu_freebsd_avphys_pages (
void);
27 #if defined(__APPLE__)
28 static inline size_t gu_page_size() {
return getpagesize(); }
29 static inline size_t gu_phys_pages() {
return gu_darwin_phys_pages(); }
30 static inline size_t gu_avphys_pages() {
return gu_darwin_avphys_pages(); }
31 #elif defined(__FreeBSD__)
32 static inline size_t gu_page_size() {
return sysconf(_SC_PAGESIZE); }
33 static inline size_t gu_phys_pages() {
return sysconf(_SC_PHYS_PAGES); }
34 static inline size_t gu_avphys_pages() {
return gu_freebsd_avphys_pages(); }
36 static inline size_t gu_page_size() {
return sysconf(_SC_PAGESIZE); }
37 static inline size_t gu_phys_pages() {
return sysconf(_SC_PHYS_PAGES); }
38 static inline size_t gu_avphys_pages() {
return sysconf(_SC_AVPHYS_PAGES); }
43 #define GU_PAGE_SIZE 4096
45 static inline size_t gu_avphys_bytes()
48 unsigned long long avphys = gu_avphys_pages(); avphys *= gu_page_size();
50 return (avphys < max ? avphys : max);
55 #define GU_ULONG_MAX ULONG_MAX
56 #define GU_LONG_MAX LONG_MAX
57 #define GU_LONG_MIN LONG_MIN
58 #define GU_ULONG_LONG_MAX ULLONG_MAX
59 #define GU_LONG_LONG_MAX LLONG_MAX
60 #define GU_LONG_LONG_MIN LLONG_MIN