const summaryLevels … const pageAlloc32Bit … const pageAlloc64Bit … const pallocChunksL1Bits … var levelBits … var levelShift … var levelLogPages … // sysInit performs architecture-dependent initialization of fields // in pageAlloc. pageAlloc should be uninitialized except for sysStat // if any runtime statistic should be updated. func (p *pageAlloc) sysInit(test bool) { … } // sysGrow performs architecture-dependent operations on heap // growth for the page allocator, such as mapping in new memory // for summaries. It also updates the length of the slices in // p.summary. // // base is the base of the newly-added heap memory and limit is // the first address past the end of the newly-added heap memory. // Both must be aligned to pallocChunkBytes. // // The caller must update p.start and p.end after calling sysGrow. func (p *pageAlloc) sysGrow(base, limit uintptr) { … } // sysGrow increases the index's backing store in response to a heap growth. // // Returns the amount of memory added to sysStat. func (s *scavengeIndex) sysGrow(base, limit uintptr, sysStat *sysMemStat) uintptr { … } // sysInit initializes the scavengeIndex' chunks array. // // Returns the amount of memory added to sysStat. func (s *scavengeIndex) sysInit(test bool, sysStat *sysMemStat) uintptr { … }