You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
822 B
33 lines
822 B
4 years ago
|
/*
|
||
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
||
|
*
|
||
|
* This source code is licensed under the MIT license found in the
|
||
|
* LICENSE file in the root directory of this source tree.
|
||
|
*/
|
||
|
|
||
|
#include <cstddef>
|
||
|
#include <cstdint>
|
||
|
|
||
|
extern "C" int mallctl(const char* name, void* oldp, size_t* oldlenp,
|
||
|
void* newp, size_t newlen) __attribute__((__weak__));
|
||
|
|
||
|
int main() {
|
||
|
volatile uint64_t* counter;
|
||
|
size_t counterLen = sizeof(uint64_t*);
|
||
|
|
||
|
if (mallctl("thread.allocatedp", static_cast<void*>(&counter), &counterLen,
|
||
|
nullptr, 0) != 0) {
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
if (counterLen != sizeof(uint64_t*)) {
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
// false alarm: the spec of mallctl does not special case
|
||
|
// thread.allocatedp and set counter to a valid pointer
|
||
|
uint64_t origAllocated = *counter;
|
||
|
|
||
|
return 0;
|
||
|
}
|