public mcentral(mutex @lock = default, spanClass spanclass = default, mSpanList nonempty = default, mSpanList empty = default, array <spanSet> partial = default, array <spanSet> full = default, ulong nmalloc = default) { this.@lock = @lock; this.spanclass = spanclass; this.nonempty = nonempty; this.empty = empty; this.partial = partial; this.full = full; this.nmalloc = nmalloc; }
// Initialize a single central free list. private static void init(this ptr <mcentral> _addr_c, spanClass spc) { ref mcentral c = ref _addr_c.val;
public mspan(ref ptr <mspan> next = default, ref ptr <mspan> prev = default, ref ptr <mSpanList> list = default, System.UIntPtr startAddr = default, System.UIntPtr npages = default, gclinkptr manualFreeList = default, System.UIntPtr freeindex = default, System.UIntPtr nelems = default, ulong allocCache = default, ref ptr <gcBits> allocBits = default, ref ptr <gcBits> gcmarkBits = default, uint sweepgen = default, ushort divMul = default, ushort baseMask = default, ushort allocCount = default, spanClass spanclass = default, mSpanStateBox state = default, byte needzero = default, byte divShift = default, byte divShift2 = default, System.UIntPtr elemsize = default, System.UIntPtr limit = default, mutex speciallock = default, ref ptr <special> specials = default) { this.next = next; this.prev = prev; this.list = list; this.startAddr = startAddr; this.npages = npages; this.manualFreeList = manualFreeList; this.freeindex = freeindex; this.nelems = nelems; this.allocCache = allocCache; this.allocBits = allocBits; this.gcmarkBits = gcmarkBits; this.sweepgen = sweepgen; this.divMul = divMul; this.baseMask = baseMask; this.allocCount = allocCount; this.spanclass = spanclass; this.state = state; this.needzero = needzero; this.divShift = divShift; this.divShift2 = divShift2; this.elemsize = elemsize; this.limit = limit; this.speciallock = speciallock; this.specials = specials; }