15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2010 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This file contains helpers for the process_util_unittest to allow it to fully 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// test the Mac code. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#ifndef BASE_PROCESS_MEMORY_UNITTEST_MAC_H_ 9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#define BASE_PROCESS_MEMORY_UNITTEST_MAC_H_ 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace base { 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Allocates memory via system allocators. Alas, they take a _signed_ size for 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// allocation. 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void* AllocateViaCFAllocatorSystemDefault(ssize_t size); 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void* AllocateViaCFAllocatorMalloc(ssize_t size); 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void* AllocateViaCFAllocatorMallocZone(ssize_t size); 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(ARCH_CPU_64_BITS) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// See process_util_unittest_mac.mm for an explanation of why this function 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// isn't implemented for the 64-bit environment. 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Allocates a huge Objective C object. 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void* AllocatePsychoticallyBigObjCObject(); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // !ARCH_CPU_64_BITS 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace base 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 32eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#endif // BASE_PROCESS_MEMORY_UNITTEST_MAC_H_ 33