| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- /*
- * Copyright (c) 2014 Apple Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
- #ifndef __DISPATCH_LAYOUT_PRIVATE__
- #define __DISPATCH_LAYOUT_PRIVATE__
- #ifndef __DISPATCH_INDIRECT__
- #error "Please #include <dispatch/private.h> instead of this file directly."
- #include <dispatch/base.h> // for HeaderDoc
- #endif
- __BEGIN_DECLS
- API_AVAILABLE(macos(10.6), ios(4.0))
- DISPATCH_EXPORT const struct dispatch_queue_offsets_s {
- // always add new fields at the end
- const uint16_t dqo_version;
- const uint16_t dqo_label;
- const uint16_t dqo_label_size;
- const uint16_t dqo_flags;
- const uint16_t dqo_flags_size;
- const uint16_t dqo_serialnum;
- const uint16_t dqo_serialnum_size;
- const uint16_t dqo_width;
- const uint16_t dqo_width_size;
- const uint16_t dqo_running;
- const uint16_t dqo_running_size;
- // fields added in dqo_version 5:
- const uint16_t dqo_suspend_cnt;
- const uint16_t dqo_suspend_cnt_size;
- const uint16_t dqo_target_queue;
- const uint16_t dqo_target_queue_size;
- const uint16_t dqo_priority;
- const uint16_t dqo_priority_size;
- } dispatch_queue_offsets;
- #if DISPATCH_LAYOUT_SPI
- /*!
- * @group Data Structure Layout SPI
- * SPI intended for CoreSymbolication only
- */
- API_AVAILABLE(macos(10.10), ios(8.0))
- DISPATCH_EXPORT const struct dispatch_tsd_indexes_s {
- // always add new fields at the end
- const uint16_t dti_version;
- const uint16_t dti_queue_index;
- const uint16_t dti_voucher_index;
- const uint16_t dti_qos_class_index;
- /* version 3 */
- const uint16_t dti_continuation_cache_index;
- } dispatch_tsd_indexes;
- #if TARGET_OS_MAC
- #include <malloc/malloc.h>
- API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0))
- DISPATCH_EXPORT const struct dispatch_allocator_layout_s {
- const uint16_t dal_version;
- /* version 1 */
- /* Pointer to the allocator metadata address, points to NULL if unused */
- void **const dal_allocator_zone;
- /* Magical "isa" for allocations that are on freelists */
- void *const *const dal_deferred_free_isa;
- /* Size of allocations made in the magazine */
- const uint16_t dal_allocation_size;
- /* fields used by the enumerator */
- const uint16_t dal_magazine_size;
- const uint16_t dal_first_allocation_offset;
- const uint16_t dal_allocation_isa_offset;
- /* Enumerates allocated continuations */
- kern_return_t (*dal_enumerator)(task_t remote_task,
- const struct dispatch_allocator_layout_s *remote_allocator_layout,
- vm_address_t zone_address, memory_reader_t reader,
- void (^recorder)(vm_address_t dc_address, void *dc_mem,
- size_t size, bool *stop));
- } dispatch_allocator_layout;
- #endif // TARGET_OS_MAC
- #endif // DISPATCH_LAYOUT_SPI
- __END_DECLS
- #endif // __DISPATCH_LAYOUT_PRIVATE__
|