Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit f35bbba

Browse files
committed
Merge pull request #10 from collinjackson/apple_apsl
Add third_party/apple_apsl from https://crrev.com/328418
2 parents 99f6739 + df5433d commit f35bbba

File tree

8 files changed

+765
-0
lines changed

8 files changed

+765
-0
lines changed

third_party/apple_apsl/CFBase.h

+82
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
/*
2+
* Copyright (c) 2011 Apple Inc. All rights reserved.
3+
*
4+
* @APPLE_LICENSE_HEADER_START@
5+
*
6+
* This file contains Original Code and/or Modifications of Original Code
7+
* as defined in and that are subject to the Apple Public Source License
8+
* Version 2.0 (the 'License'). You may not use this file except in
9+
* compliance with the License. Please obtain a copy of the License at
10+
* http://www.opensource.apple.com/apsl/ and read it before using this
11+
* file.
12+
*
13+
* The Original Code and all software distributed under the License are
14+
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15+
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16+
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17+
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18+
* Please see the License for the specific language governing rights and
19+
* limitations under the License.
20+
*
21+
* @APPLE_LICENSE_HEADER_END@
22+
*/
23+
/* CFBase.c
24+
Copyright (c) 1998-2011, Apple Inc. All rights reserved.
25+
Responsibility: Christopher Kane
26+
*/
27+
28+
#ifndef THIRD_PARTY_APPLE_APSL_CFBASE_H_
29+
#define THIRD_PARTY_APPLE_APSL_CFBASE_H_
30+
31+
#include "CFRuntime.h"
32+
33+
struct ChromeCFAllocatorLeopards {
34+
ChromeCFRuntimeBase _base;
35+
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED
36+
size_t (*size)(struct _malloc_zone_t *zone, const void *ptr); /* returns the size of a block or 0 if not in this zone; must be fast, especially for negative answers */
37+
void *(*malloc)(struct _malloc_zone_t *zone, size_t size);
38+
void *(*calloc)(struct _malloc_zone_t *zone, size_t num_items, size_t size); /* same as malloc, but block returned is set to zero */
39+
void *(*valloc)(struct _malloc_zone_t *zone, size_t size); /* same as malloc, but block returned is set to zero and is guaranteed to be page aligned */
40+
void (*free)(struct _malloc_zone_t *zone, void *ptr);
41+
void *(*realloc)(struct _malloc_zone_t *zone, void *ptr, size_t size);
42+
void (*destroy)(struct _malloc_zone_t *zone); /* zone is destroyed and all memory reclaimed */
43+
const char *zone_name;
44+
unsigned (*batch_malloc)(struct _malloc_zone_t *zone, size_t size, void **results, unsigned num_requested); /* given a size, returns pointers capable of holding that size; returns the number of pointers allocated (maybe 0 or less than num_requested) */
45+
void (*batch_free)(struct _malloc_zone_t *zone, void **to_be_freed, unsigned num_to_be_freed); /* frees all the pointers in to_be_freed; note that to_be_freed may be overwritten during the process */
46+
struct malloc_introspection_t *introspect;
47+
void *reserved5;
48+
#endif
49+
CFAllocatorRef _allocator;
50+
CFAllocatorContext _context;
51+
};
52+
53+
struct ChromeCFAllocatorLions {
54+
ChromeCFRuntimeBase _base;
55+
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED
56+
size_t (*size)(struct _malloc_zone_t *zone, const void *ptr); /* returns the size of a block or 0 if not in this zone; must be fast, especially for negative answers */
57+
void *(*malloc)(struct _malloc_zone_t *zone, size_t size);
58+
void *(*calloc)(struct _malloc_zone_t *zone, size_t num_items, size_t size); /* same as malloc, but block returned is set to zero */
59+
void *(*valloc)(struct _malloc_zone_t *zone, size_t size); /* same as malloc, but block returned is set to zero and is guaranteed to be page aligned */
60+
void (*free)(struct _malloc_zone_t *zone, void *ptr);
61+
void *(*realloc)(struct _malloc_zone_t *zone, void *ptr, size_t size);
62+
void (*destroy)(struct _malloc_zone_t *zone); /* zone is destroyed and all memory reclaimed */
63+
const char *zone_name;
64+
65+
/* Optional batch callbacks; these may be NULL */
66+
unsigned (*batch_malloc)(struct _malloc_zone_t *zone, size_t size, void **results, unsigned num_requested); /* given a size, returns pointers capable of holding that size; returns the number of pointers allocated (maybe 0 or less than num_requested) */
67+
void (*batch_free)(struct _malloc_zone_t *zone, void **to_be_freed, unsigned num_to_be_freed); /* frees all the pointers in to_be_freed; note that to_be_freed may be overwritten during the process */
68+
69+
struct malloc_introspection_t *introspect;
70+
unsigned version;
71+
72+
/* aligned memory allocation. The callback may be NULL. */
73+
void *(*memalign)(struct _malloc_zone_t *zone, size_t alignment, size_t size);
74+
75+
/* free a pointer known to be in zone and known to have the given size. The callback may be NULL. */
76+
void (*free_definite_size)(struct _malloc_zone_t *zone, void *ptr, size_t size);
77+
#endif
78+
CFAllocatorRef _allocator;
79+
CFAllocatorContext _context;
80+
};
81+
82+
#endif // THIRD_PARTY_APPLE_APSL_CFBASE_H_

third_party/apple_apsl/CFRuntime.h

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* Copyright (c) 2009 Apple Inc. All rights reserved.
3+
*
4+
* @APPLE_LICENSE_HEADER_START@
5+
*
6+
* This file contains Original Code and/or Modifications of Original Code
7+
* as defined in and that are subject to the Apple Public Source License
8+
* Version 2.0 (the 'License'). You may not use this file except in
9+
* compliance with the License. Please obtain a copy of the License at
10+
* http://www.opensource.apple.com/apsl/ and read it before using this
11+
* file.
12+
*
13+
* The Original Code and all software distributed under the License are
14+
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15+
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16+
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17+
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18+
* Please see the License for the specific language governing rights and
19+
* limitations under the License.
20+
*
21+
* @APPLE_LICENSE_HEADER_END@
22+
*/
23+
/* CFRuntime.h
24+
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
25+
*/
26+
27+
#ifndef THIRD_PARTY_APPLE_APSL_CFRUNTIME_H_
28+
#define THIRD_PARTY_APPLE_APSL_CFRUNTIME_H_
29+
30+
/* All CF "instances" start with this structure. Never refer to
31+
* these fields directly -- they are for CF's use and may be added
32+
* to or removed or change format without warning. Binary
33+
* compatibility for uses of this struct is not guaranteed from
34+
* release to release.
35+
*/
36+
typedef struct __ChromeCFRuntimeBase {
37+
uintptr_t _cfisa;
38+
uint8_t _cfinfo[4];
39+
#if __LP64__
40+
uint32_t _rc;
41+
#endif
42+
} ChromeCFRuntimeBase;
43+
44+
#endif // THIRD_PARTY_APPLE_APSL_CFRUNTIME_H_

0 commit comments

Comments
 (0)