Lines Matching refs:address

52     // A subzone is a region in vm memory managed by automatic garbage collection.  The base address of the subheap is
55 // A C++ Subzone object is constructed at this aligned address. The first chunk of memory are the write-barrier cards
80 void *_allocation_address; // base address for allocations
257 void *address = quantum_address(_in_use);
258 return Range(align_up(address, page_size_log2), align_down(displace(address, size), page_size_log2));
275 // Return the subzone of an arbitrary memory address.
277 static inline Subzone *subzone(void *address) { return (Subzone *)((uintptr_t)address & ~mask(subzone_quantum_log2)); }
299 // Return the first allocation address in the subzone.
307 // Return the last allocation address in the subzone.
362 inline usword_t quantum_index(void *address, usword_t quantum_log2) const {
364 usword_t result = (((uintptr_t)address & mask(subzone_quantum_log2)) >> quantum_log2) - base_data_quantum_count(quantum_log2);
370 inline usword_t quantum_index(void *address) const {
371 return is_small() ? quantum_index(address, allocate_quantum_small_log2) :
372 quantum_index(address, allocate_quantum_medium_log2);
379 // Returns a quantum index for a arbitrary pointer. Might be bogus if the address is in the admin (writebarrier) area.
381 inline usword_t quantum_index_unchecked(void *address, usword_t quantum_log2) const {
383 return (((uintptr_t)address & mask(subzone_quantum_log2)) >> quantum_log2) - base_data_quantum_count(quantum_log2);
385 inline usword_t quantum_index_unchecked(void *address) const {
386 return is_small() ? quantum_index_unchecked(address, allocate_quantum_small_log2) :
387 quantum_index_unchecked(address, allocate_quantum_medium_log2);
433 // Returns the address if a specified quantum.
454 inline bool block_is_start(void *address, usword_t *q) const {
455 return (is_small() ? is_bit_aligned(address, allocate_quantum_small_log2) :
456 is_bit_aligned(address, allocate_quantum_medium_log2)) &&
457 block_is_start(*q = quantum_index_unchecked(address));
488 inline usword_t sideData(void *address) const { return _side_data[quantum_index(address)]; }
668 // Return the start address for the given address.
671 inline void * block_start(void *address, usword_t &startq) const {
672 usword_t q = quantum_index_unchecked(address), s = q;
673 // an arbitrary address in our admin area will return a neg (very large) number
861 SubzoneRangeIterator(void *address, const usword_t size) : Range(address, size) {}
862 SubzoneRangeIterator(void *address, void *end) : Range(address, end) {}
871 inline boolean_t iteration_complete() { return !(address() < end()); }
880 if (address() < end()) {
882 Subzone *subzone = (Subzone *)address();
899 if (end() > address()) {