| 38 | /* ── Page size ─────────────────────────────────────────────────── */ |
| 39 | |
| 40 | static size_t page_size(void) { |
| 41 | #ifdef _WIN32 |
| 42 | SYSTEM_INFO si; |
| 43 | GetSystemInfo(&si); |
| 44 | return (size_t)si.dwPageSize; |
| 45 | #else |
| 46 | long ps = sysconf(_SC_PAGESIZE); |
| 47 | return ps > 0 ? (size_t)ps : 4096; |
| 48 | #endif |
| 49 | } |
| 50 | |
| 51 | /* Round up to page boundary. */ |
| 52 | static size_t round_to_page(size_t size) { |