mirror of
https://github.com/ziglang/zig.git
synced 2026-02-21 16:54:52 +00:00
libc: update macOS libc headers
This commit is contained in:
parent
37f6f7990e
commit
1b97881e38
@ -4,10 +4,6 @@
|
||||
#ifndef _ARM__LIMITS_H_
|
||||
#define _ARM__LIMITS_H_
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
#define __DARWIN_CLK_TCK 100 /* ticks per second */
|
||||
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
|
||||
#endif /* _ARM__LIMITS_H_ */
|
||||
@ -29,8 +29,6 @@
|
||||
#ifndef __ARM_MCONTEXT_H_
|
||||
#define __ARM_MCONTEXT_H_
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
#include <sys/cdefs.h> /* __DARWIN_UNIX03 */
|
||||
#include <sys/appleapiopts.h>
|
||||
#include <mach/machine/_structs.h>
|
||||
@ -90,6 +88,4 @@ typedef _STRUCT_MCONTEXT32 *mcontext_t;
|
||||
#endif
|
||||
#endif /* _MCONTEXT_T */
|
||||
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
|
||||
#endif /* __ARM_MCONTEXT_H_ */
|
||||
@ -5,8 +5,6 @@
|
||||
#ifndef _ARM__PARAM_H_
|
||||
#define _ARM__PARAM_H_
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
#include <arm/_types.h>
|
||||
|
||||
/*
|
||||
@ -20,6 +18,5 @@
|
||||
#define __DARWIN_ALIGNBYTES32 (sizeof(__uint32_t) - 1)
|
||||
#define __DARWIN_ALIGN32(p) ((__darwin_size_t)((__darwin_size_t)(p) + __DARWIN_ALIGNBYTES32) &~ __DARWIN_ALIGNBYTES32)
|
||||
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
|
||||
#endif /* _ARM__PARAM_H_ */
|
||||
@ -4,8 +4,6 @@
|
||||
#ifndef _BSD_ARM__TYPES_H_
|
||||
#define _BSD_ARM__TYPES_H_
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
/*
|
||||
* This header file contains integer types. It's intended to also contain
|
||||
* flotaing point and other arithmetic types, as needed, later.
|
||||
@ -97,6 +95,4 @@ typedef __uint32_t __darwin_socklen_t; /* socklen_t (duh) */
|
||||
typedef long __darwin_ssize_t; /* byte count or error */
|
||||
typedef long __darwin_time_t; /* time() */
|
||||
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
|
||||
#endif /* _BSD_ARM__TYPES_H_ */
|
||||
@ -28,8 +28,6 @@
|
||||
#ifndef _ARM_ARCH_H
|
||||
#define _ARM_ARCH_H
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
/* Collect the __ARM_ARCH_*__ compiler flags into something easier to use. */
|
||||
#if defined (__ARM_ARCH_7A__) || defined (__ARM_ARCH_7S__) || defined (__ARM_ARCH_7F__) || defined (__ARM_ARCH_7K__)
|
||||
#define _ARM_ARCH_7
|
||||
@ -66,6 +64,4 @@
|
||||
#define _ARM_ARCH_4
|
||||
#endif
|
||||
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
|
||||
#endif
|
||||
@ -42,8 +42,6 @@
|
||||
#ifndef _ARM__ENDIAN_H_
|
||||
#define _ARM__ENDIAN_H_
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
/*
|
||||
* Define _NOQUAD if the compiler does NOT support 64-bit integers.
|
||||
@ -77,5 +75,4 @@
|
||||
#include <sys/_endian.h>
|
||||
|
||||
#endif /* defined(KERNEL) || (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) */
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
#endif /* !_ARM__ENDIAN_H_ */
|
||||
@ -39,8 +39,6 @@
|
||||
#ifndef _ARM_LIMITS_H_
|
||||
#define _ARM_LIMITS_H_
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <arm/_limits.h>
|
||||
|
||||
@ -109,6 +107,4 @@
|
||||
#endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE */
|
||||
#endif /* !_ANSI_SOURCE */
|
||||
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
|
||||
#endif /* _ARM_LIMITS_H_ */
|
||||
@ -48,8 +48,6 @@
|
||||
#ifndef _ARM_PARAM_H_
|
||||
#define _ARM_PARAM_H_
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
#include <arm/_param.h>
|
||||
|
||||
/*
|
||||
@ -146,6 +144,4 @@
|
||||
#define DELAY(n) { int N = (n); while (--N > 0); }
|
||||
#endif /* defined(KERNEL) || defined(STANDALONE) */
|
||||
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
|
||||
#endif /* _ARM_PARAM_H_ */
|
||||
@ -9,14 +9,10 @@
|
||||
#ifndef _ARM_SIGNAL_
|
||||
#define _ARM_SIGNAL_ 1
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#ifndef _ANSI_SOURCE
|
||||
typedef int sig_atomic_t;
|
||||
#endif /* ! _ANSI_SOURCE */
|
||||
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
|
||||
#endif /* _ARM_SIGNAL_ */
|
||||
@ -39,12 +39,9 @@
|
||||
* @(#)types.h 8.3 (Berkeley) 1/5/94
|
||||
*/
|
||||
|
||||
#ifndef _ARM_MACHTYPES_H_
|
||||
#define _ARM_MACHTYPES_H_
|
||||
#ifndef _MACHTYPES_H_
|
||||
#define _MACHTYPES_H_
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
#ifndef __ASSEMBLER__
|
||||
#include <arm/_types.h>
|
||||
#include <sys/cdefs.h>
|
||||
@ -107,5 +104,4 @@ typedef u_int64_t syscall_arg_t;
|
||||
#endif
|
||||
|
||||
#endif /* __ASSEMBLER__ */
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
#endif /* _ARM_MACHTYPES_H_ */
|
||||
#endif /* _MACHTYPES_H_ */
|
||||
@ -31,8 +31,6 @@
|
||||
#ifndef _MACH_ARM__STRUCTS_H_
|
||||
#define _MACH_ARM__STRUCTS_H_
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
#include <sys/cdefs.h> /* __DARWIN_UNIX03 */
|
||||
#include <machine/types.h> /* __uint32_t */
|
||||
|
||||
@ -509,6 +507,25 @@ _STRUCT_ARM_NEON_STATE
|
||||
|
||||
#endif /* __DARWIN_UNIX03 */
|
||||
|
||||
#if __DARWIN_UNIX03
|
||||
#define _STRUCT_ARM_AMX_STATE_V1 struct __darwin_arm_amx_state_v1
|
||||
_STRUCT_ARM_AMX_STATE_V1
|
||||
{
|
||||
__uint8_t __x[8][64]; /* 8 64-byte registers */
|
||||
__uint8_t __y[8][64]; /* 8 64-byte registers */
|
||||
__uint8_t __z[64][64]; /* 64 64-byte registers in an M-by-N matrix */
|
||||
__uint64_t __amx_state_t_el1; /* AMX_STATE_T_EL1 value */
|
||||
} __attribute__((aligned(64)));
|
||||
#else /* !__DARWIN_UNIX03 */
|
||||
#define _STRUCT_ARM_AMX_STATE_V1 struct arm_amx_state_v1
|
||||
_STRUCT_ARM_AMX_STATE_V1
|
||||
{
|
||||
__uint8_t x[8][64]; /* 8 64-byte registers */
|
||||
__uint8_t y[8][64]; /* 8 64-byte registers */
|
||||
__uint8_t z[64][64]; /* 64 64-byte registers in an M-by-N matrix */
|
||||
__uint64_t amx_state_t_el1; /* AMX_STATE_T_EL1 value. */
|
||||
} __attribute__((aligned(64)));
|
||||
#endif /* __DARWIN_UNIX03 */
|
||||
|
||||
#define _STRUCT_ARM_PAGEIN_STATE struct __arm_pagein_state
|
||||
_STRUCT_ARM_PAGEIN_STATE
|
||||
@ -625,6 +642,4 @@ _STRUCT_ARM_CPMU_STATE64
|
||||
};
|
||||
#endif /* !__DARWIN_UNIX03 */
|
||||
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
|
||||
#endif /* _MACH_ARM__STRUCTS_H_ */
|
||||
@ -65,10 +65,6 @@
|
||||
#ifndef _MACH_ARM_BOOLEAN_H_
|
||||
#define _MACH_ARM_BOOLEAN_H_
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
typedef int boolean_t;
|
||||
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
|
||||
#endif /* _MACH_ARM_BOOLEAN_H_ */
|
||||
@ -29,8 +29,6 @@
|
||||
#ifndef _MACH_ARM_EXCEPTION_H_
|
||||
#define _MACH_ARM_EXCEPTION_H_
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
#define EXC_TYPES_COUNT 14 /* incl. illegal exception 0 */
|
||||
|
||||
#define EXC_MASK_MACHINE 0
|
||||
@ -77,6 +75,5 @@
|
||||
|
||||
#define EXC_ARM_BREAKPOINT 1 /* breakpoint trap */
|
||||
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
|
||||
#endif /* _MACH_ARM_EXCEPTION_H_ */
|
||||
@ -67,12 +67,8 @@
|
||||
#ifndef _MACH_ARM_KERN_RETURN_H_
|
||||
#define _MACH_ARM_KERN_RETURN_H_
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
#ifndef ASSEMBLER
|
||||
typedef int kern_return_t;
|
||||
#endif /* ASSEMBLER */
|
||||
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
|
||||
#endif /* _MACH_ARM_KERN_RETURN_H_ */
|
||||
@ -29,8 +29,6 @@
|
||||
#ifndef _MACH_ARM_PROCESSOR_INFO_H_
|
||||
#define _MACH_ARM_PROCESSOR_INFO_H_
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
#define PROCESSOR_CPU_STAT 0x10000003 /* Low-level CPU statistics */
|
||||
#define PROCESSOR_CPU_STAT64 0x10000004 /* Low-level CPU statistics, in full 64-bit */
|
||||
|
||||
@ -71,6 +69,4 @@ typedef struct processor_cpu_stat64 *processor_cpu_stat64_t;
|
||||
#define PROCESSOR_CPU_STAT64_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(processor_cpu_stat64_data_t) / sizeof(integer_t)))
|
||||
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
|
||||
#endif /* _MACH_ARM_PROCESSOR_INFO_H_ */
|
||||
@ -32,8 +32,4 @@
|
||||
#ifndef _MACH_ARM_RPC_H_
|
||||
#define _MACH_ARM_RPC_H_
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
|
||||
#endif /* _MACH_ARM_RPC_H_ */
|
||||
@ -32,11 +32,13 @@
|
||||
#ifndef _MACH_ARM_THREAD_STATE_H_
|
||||
#define _MACH_ARM_THREAD_STATE_H_
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
/* Size of maximum exported thread state in words */
|
||||
#define ARM_THREAD_STATE_MAX (1296) /* Size of biggest state possible */
|
||||
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
#if defined (__arm__) || defined(__arm64__)
|
||||
#define THREAD_STATE_MAX ARM_THREAD_STATE_MAX
|
||||
#else
|
||||
#error Unsupported arch
|
||||
#endif
|
||||
|
||||
#endif /* _MACH_ARM_THREAD_STATE_H_ */
|
||||
@ -33,12 +33,10 @@
|
||||
#ifndef _ARM_THREAD_STATUS_H_
|
||||
#define _ARM_THREAD_STATUS_H_
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
#include <mach/machine/_structs.h>
|
||||
#include <mach/machine/thread_state.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/vm_types.h>
|
||||
#include <mach/arm/thread_state.h>
|
||||
|
||||
/*
|
||||
* Support for determining the state of a thread
|
||||
@ -69,12 +67,13 @@
|
||||
#define ARM_CPMU_STATE64 18
|
||||
|
||||
|
||||
/* API */
|
||||
#define ARM_AMX_STATE 24
|
||||
#define ARM_AMX_STATE_V1 25
|
||||
#define ARM_STATE_FLAVOR_IS_OTHER_VALID(_flavor_) \
|
||||
((_flavor_) == ARM_AMX_STATE_V1)
|
||||
#define ARM_PAGEIN_STATE 27
|
||||
|
||||
#ifndef ARM_STATE_FLAVOR_IS_OTHER_VALID
|
||||
#define ARM_STATE_FLAVOR_IS_OTHER_VALID(_flavor_) 0
|
||||
#endif
|
||||
|
||||
#define VALID_THREAD_STATE_FLAVOR(x) \
|
||||
((x == ARM_THREAD_STATE) || \
|
||||
(x == ARM_VFP_STATE) || \
|
||||
@ -171,6 +170,7 @@ typedef _STRUCT_ARM_NEON_STATE arm_neon_state_t;
|
||||
typedef _STRUCT_ARM_NEON_STATE arm_neon_state32_t;
|
||||
typedef _STRUCT_ARM_NEON_STATE64 arm_neon_state64_t;
|
||||
|
||||
typedef _STRUCT_ARM_AMX_STATE_V1 arm_amx_state_v1_t;
|
||||
|
||||
typedef _STRUCT_ARM_EXCEPTION_STATE arm_exception_state_t;
|
||||
typedef _STRUCT_ARM_EXCEPTION_STATE arm_exception_state32_t;
|
||||
@ -224,12 +224,26 @@ typedef _STRUCT_ARM_LEGACY_DEBUG_STATE arm_debug_state_t;
|
||||
#define MACHINE_THREAD_STATE_COUNT ARM_UNIFIED_THREAD_STATE_COUNT
|
||||
|
||||
|
||||
struct arm_amx_state {
|
||||
arm_state_hdr_t ash;
|
||||
union {
|
||||
arm_amx_state_v1_t as_v1;
|
||||
} uas;
|
||||
};
|
||||
#define as_v1 uas.as_v1
|
||||
typedef struct arm_amx_state arm_amx_state_t;
|
||||
|
||||
#define ARM_AMX_STATE_V1_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(arm_amx_state_v1_t)/sizeof(unsigned int)))
|
||||
|
||||
#define ARM_AMX_STATE_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(arm_amx_state_t)/sizeof(unsigned int)))
|
||||
|
||||
|
||||
/*
|
||||
* Largest state on this machine:
|
||||
*/
|
||||
#define THREAD_MACHINE_STATE_MAX THREAD_STATE_MAX
|
||||
|
||||
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
|
||||
#endif /* _ARM_THREAD_STATUS_H_ */
|
||||
@ -36,8 +36,6 @@
|
||||
#ifndef _MACH_ARM_VM_PARAM_H_
|
||||
#define _MACH_ARM_VM_PARAM_H_
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
|
||||
#if !defined (KERNEL) && !defined (__ASSEMBLER__)
|
||||
#include <mach/vm_page_size.h>
|
||||
@ -106,6 +104,4 @@
|
||||
|
||||
#define SWI_SYSCALL 0x80
|
||||
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
|
||||
#endif /* _MACH_ARM_VM_PARAM_H_ */
|
||||
@ -67,14 +67,11 @@
|
||||
#ifndef _MACH_ARM_VM_TYPES_H_
|
||||
#define _MACH_ARM_VM_TYPES_H_
|
||||
|
||||
#if defined (__arm__) || defined (__arm64__)
|
||||
|
||||
#ifndef ASSEMBLER
|
||||
|
||||
#include <arm/_types.h>
|
||||
#include <stdint.h>
|
||||
#include <Availability.h>
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
/*
|
||||
* natural_t and integer_t are Mach's legacy types for machine-
|
||||
@ -101,18 +98,18 @@ typedef int integer_t;
|
||||
* e.g. an offset into a virtual memory space.
|
||||
*/
|
||||
#ifdef __LP64__
|
||||
typedef uintptr_t vm_offset_t __kernel_ptr_semantics;
|
||||
typedef uintptr_t vm_offset_t;
|
||||
typedef uintptr_t vm_size_t;
|
||||
|
||||
typedef uint64_t mach_vm_address_t __kernel_ptr_semantics;
|
||||
typedef uint64_t mach_vm_offset_t __kernel_ptr_semantics;
|
||||
typedef uint64_t mach_vm_address_t;
|
||||
typedef uint64_t mach_vm_offset_t;
|
||||
typedef uint64_t mach_vm_size_t;
|
||||
|
||||
typedef uint64_t vm_map_offset_t __kernel_ptr_semantics;
|
||||
typedef uint64_t vm_map_address_t __kernel_ptr_semantics;
|
||||
typedef uint64_t vm_map_offset_t;
|
||||
typedef uint64_t vm_map_address_t;
|
||||
typedef uint64_t vm_map_size_t;
|
||||
#else
|
||||
typedef natural_t vm_offset_t __kernel_ptr_semantics;
|
||||
typedef natural_t vm_offset_t;
|
||||
/*
|
||||
* A vm_size_t is the proper type for e.g.
|
||||
* expressing the difference between two
|
||||
@ -132,13 +129,13 @@ typedef uint32_t mach_vm_address_t;
|
||||
typedef uint32_t mach_vm_offset_t;
|
||||
typedef uint32_t mach_vm_size_t;
|
||||
#else
|
||||
typedef uint64_t mach_vm_address_t __kernel_ptr_semantics;
|
||||
typedef uint64_t mach_vm_offset_t __kernel_ptr_semantics;
|
||||
typedef uint64_t mach_vm_address_t;
|
||||
typedef uint64_t mach_vm_offset_t;
|
||||
typedef uint64_t mach_vm_size_t;
|
||||
#endif
|
||||
|
||||
typedef uint32_t vm_map_offset_t __kernel_ptr_semantics;
|
||||
typedef uint32_t vm_map_address_t __kernel_ptr_semantics;
|
||||
typedef uint32_t vm_map_offset_t;
|
||||
typedef uint32_t vm_map_address_t;
|
||||
typedef uint32_t vm_map_size_t;
|
||||
#endif /* __LP64__ */
|
||||
|
||||
@ -157,6 +154,4 @@ typedef vm_offset_t mach_port_context_t;
|
||||
*/
|
||||
#define MACH_MSG_TYPE_INTEGER_T MACH_MSG_TYPE_INTEGER_32
|
||||
|
||||
#endif /* defined (__arm__) || defined (__arm64__) */
|
||||
|
||||
#endif /* _MACH_ARM_VM_TYPES_H_ */
|
||||
219
lib/libc/include/any-macos-any/db.h
vendored
Normal file
219
lib/libc/include/any-macos-any/db.h
vendored
Normal file
@ -0,0 +1,219 @@
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993, 1994
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)db.h 8.7 (Berkeley) 6/16/94
|
||||
* $FreeBSD: src/include/db.h,v 1.5 2002/03/26 01:35:05 bde Exp $
|
||||
*/
|
||||
|
||||
#ifndef _DB_H_
|
||||
#define _DB_H_
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#include <limits.h>
|
||||
|
||||
#define RET_ERROR -1 /* Return values. */
|
||||
#define RET_SUCCESS 0
|
||||
#define RET_SPECIAL 1
|
||||
|
||||
#define MAX_PAGE_NUMBER 0xffffffff /* >= # of pages in a file */
|
||||
typedef u_int32_t pgno_t;
|
||||
#define MAX_PAGE_OFFSET 65535 /* >= # of bytes in a page */
|
||||
typedef u_int16_t indx_t;
|
||||
#define MAX_REC_NUMBER 0xffffffff /* >= # of records in a tree */
|
||||
typedef u_int32_t recno_t;
|
||||
|
||||
/* Key/data structure -- a Data-Base Thang. */
|
||||
typedef struct {
|
||||
void *data; /* data */
|
||||
size_t size; /* data length */
|
||||
} DBT;
|
||||
|
||||
/* Routine flags. */
|
||||
#define R_CURSOR 1 /* del, put, seq */
|
||||
#define __R_UNUSED 2 /* UNUSED */
|
||||
#define R_FIRST 3 /* seq */
|
||||
#define R_IAFTER 4 /* put (RECNO) */
|
||||
#define R_IBEFORE 5 /* put (RECNO) */
|
||||
#define R_LAST 6 /* seq (BTREE, RECNO) */
|
||||
#define R_NEXT 7 /* seq */
|
||||
#define R_NOOVERWRITE 8 /* put */
|
||||
#define R_PREV 9 /* seq (BTREE, RECNO) */
|
||||
#define R_SETCURSOR 10 /* put (RECNO) */
|
||||
#define R_RECNOSYNC 11 /* sync (RECNO) */
|
||||
|
||||
typedef enum { DB_BTREE, DB_HASH, DB_RECNO } DBTYPE;
|
||||
|
||||
/*
|
||||
* !!!
|
||||
* The following flags are included in the dbopen(3) call as part of the
|
||||
* open(2) flags. In order to avoid conflicts with the open flags, start
|
||||
* at the top of the 16 or 32-bit number space and work our way down. If
|
||||
* the open flags were significantly expanded in the future, it could be
|
||||
* a problem. Wish I'd left another flags word in the dbopen call.
|
||||
*
|
||||
* !!!
|
||||
* None of this stuff is implemented yet. The only reason that it's here
|
||||
* is so that the access methods can skip copying the key/data pair when
|
||||
* the DB_LOCK flag isn't set.
|
||||
*/
|
||||
#if UINT_MAX > 65535
|
||||
#define DB_LOCK 0x20000000 /* Do locking. */
|
||||
#define DB_SHMEM 0x40000000 /* Use shared memory. */
|
||||
#define DB_TXN 0x80000000 /* Do transactions. */
|
||||
#else
|
||||
#define DB_LOCK 0x2000 /* Do locking. */
|
||||
#define DB_SHMEM 0x4000 /* Use shared memory. */
|
||||
#define DB_TXN 0x8000 /* Do transactions. */
|
||||
#endif
|
||||
|
||||
/* Access method description structure. */
|
||||
typedef struct __db {
|
||||
DBTYPE type; /* Underlying db type. */
|
||||
int (*close)(struct __db *);
|
||||
int (*del)(const struct __db *, const DBT *, unsigned int);
|
||||
int (*get)(const struct __db *, const DBT *, DBT *, unsigned int);
|
||||
int (*put)(const struct __db *, DBT *, const DBT *, unsigned int);
|
||||
int (*seq)(const struct __db *, DBT *, DBT *, unsigned int);
|
||||
int (*sync)(const struct __db *, unsigned int);
|
||||
void *internal; /* Access method private. */
|
||||
int (*fd)(const struct __db *);
|
||||
} DB;
|
||||
|
||||
#define BTREEMAGIC 0x053162
|
||||
#define BTREEVERSION 3
|
||||
|
||||
/* Structure used to pass parameters to the btree routines. */
|
||||
typedef struct {
|
||||
#define R_DUP 0x01 /* duplicate keys */
|
||||
unsigned long flags;
|
||||
unsigned int cachesize; /* bytes to cache */
|
||||
int maxkeypage; /* maximum keys per page */
|
||||
int minkeypage; /* minimum keys per page */
|
||||
unsigned int psize; /* page size */
|
||||
int (*compare) /* comparison function */
|
||||
(const DBT *, const DBT *);
|
||||
size_t (*prefix) /* prefix function */
|
||||
(const DBT *, const DBT *);
|
||||
int lorder; /* byte order */
|
||||
} BTREEINFO;
|
||||
|
||||
#define HASHMAGIC 0x061561
|
||||
#define HASHVERSION 2
|
||||
|
||||
/* Structure used to pass parameters to the hashing routines. */
|
||||
typedef struct {
|
||||
unsigned int bsize; /* bucket size */
|
||||
unsigned int ffactor; /* fill factor */
|
||||
unsigned int nelem; /* number of elements */
|
||||
unsigned int cachesize; /* bytes to cache */
|
||||
u_int32_t /* hash function */
|
||||
(*hash)(const void *, size_t);
|
||||
int lorder; /* byte order */
|
||||
} HASHINFO;
|
||||
|
||||
/* Structure used to pass parameters to the record routines. */
|
||||
typedef struct {
|
||||
#define R_FIXEDLEN 0x01 /* fixed-length records */
|
||||
#define R_NOKEY 0x02 /* key not required */
|
||||
#define R_SNAPSHOT 0x04 /* snapshot the input */
|
||||
unsigned long flags;
|
||||
unsigned int cachesize; /* bytes to cache */
|
||||
unsigned int psize; /* page size */
|
||||
int lorder; /* byte order */
|
||||
size_t reclen; /* record length (fixed-length records) */
|
||||
unsigned char bval; /* delimiting byte (variable-length records */
|
||||
char *bfname; /* btree file name */
|
||||
} RECNOINFO;
|
||||
|
||||
#ifdef __DBINTERFACE_PRIVATE
|
||||
/*
|
||||
* Little endian <==> big endian 32-bit swap macros.
|
||||
* M_32_SWAP swap a memory location
|
||||
* P_32_SWAP swap a referenced memory location
|
||||
* P_32_COPY swap from one location to another
|
||||
*/
|
||||
#define M_32_SWAP(a) { \
|
||||
u_int32_t _tmp = a; \
|
||||
((char *)&a)[0] = ((char *)&_tmp)[3]; \
|
||||
((char *)&a)[1] = ((char *)&_tmp)[2]; \
|
||||
((char *)&a)[2] = ((char *)&_tmp)[1]; \
|
||||
((char *)&a)[3] = ((char *)&_tmp)[0]; \
|
||||
}
|
||||
#define P_32_SWAP(a) { \
|
||||
u_int32_t _tmp = *(u_int32_t *)a; \
|
||||
((char *)a)[0] = ((char *)&_tmp)[3]; \
|
||||
((char *)a)[1] = ((char *)&_tmp)[2]; \
|
||||
((char *)a)[2] = ((char *)&_tmp)[1]; \
|
||||
((char *)a)[3] = ((char *)&_tmp)[0]; \
|
||||
}
|
||||
#define P_32_COPY(a, b) { \
|
||||
((char *)&(b))[0] = ((char *)&(a))[3]; \
|
||||
((char *)&(b))[1] = ((char *)&(a))[2]; \
|
||||
((char *)&(b))[2] = ((char *)&(a))[1]; \
|
||||
((char *)&(b))[3] = ((char *)&(a))[0]; \
|
||||
}
|
||||
|
||||
/*
|
||||
* Little endian <==> big endian 16-bit swap macros.
|
||||
* M_16_SWAP swap a memory location
|
||||
* P_16_SWAP swap a referenced memory location
|
||||
* P_16_COPY swap from one location to another
|
||||
*/
|
||||
#define M_16_SWAP(a) { \
|
||||
u_int16_t _tmp = a; \
|
||||
((char *)&a)[0] = ((char *)&_tmp)[1]; \
|
||||
((char *)&a)[1] = ((char *)&_tmp)[0]; \
|
||||
}
|
||||
#define P_16_SWAP(a) { \
|
||||
u_int16_t _tmp = *(u_int16_t *)a; \
|
||||
((char *)a)[0] = ((char *)&_tmp)[1]; \
|
||||
((char *)a)[1] = ((char *)&_tmp)[0]; \
|
||||
}
|
||||
#define P_16_COPY(a, b) { \
|
||||
((char *)&(b))[0] = ((char *)&(a))[1]; \
|
||||
((char *)&(b))[1] = ((char *)&(a))[0]; \
|
||||
}
|
||||
#endif
|
||||
|
||||
__BEGIN_DECLS
|
||||
DB *dbopen(const char *, int, int, DBTYPE, const void *);
|
||||
|
||||
#ifdef __DBINTERFACE_PRIVATE
|
||||
DB *__bt_open(const char *, int, int, const BTREEINFO *, int);
|
||||
DB *__hash_open(const char *, int, int, const HASHINFO *, int);
|
||||
DB *__rec_open(const char *, int, int, const RECNOINFO *, int);
|
||||
void __dbpanic(DB *dbp);
|
||||
#endif
|
||||
__END_DECLS
|
||||
#endif /* !_DB_H_ */
|
||||
93
lib/libc/include/any-macos-any/err.h
vendored
Normal file
93
lib/libc/include/any-macos-any/err.h
vendored
Normal file
@ -0,0 +1,93 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2003, 2004, 2008 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*-
|
||||
* Copyright (c) 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)err.h 8.1 (Berkeley) 6/2/93
|
||||
*/
|
||||
|
||||
#ifndef _ERR_H_
|
||||
#define _ERR_H_
|
||||
|
||||
/*
|
||||
* Don't use va_list in the err/warn prototypes. Va_list is typedef'd in two
|
||||
* places (<machine/varargs.h> and <machine/stdarg.h>), so if we include one
|
||||
* of them here we may collide with the utility's includes. It's unreasonable
|
||||
* for utilities to have to include one of them to include err.h, so we get
|
||||
* __darwin_va_list from <machine/_type.h> and use it.
|
||||
*/
|
||||
#include <sys/cdefs.h>
|
||||
#include <_types.h>
|
||||
#include <Availability.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
void err(int, const char *, ...) __cold __dead2 __printflike(2, 3);
|
||||
void verr(int, const char *, __darwin_va_list) __cold __dead2 __printflike(2, 0);
|
||||
void errc(int, int, const char *, ...) __cold __dead2 __printflike(3, 4);
|
||||
void verrc(int, int, const char *, __darwin_va_list) __cold __dead2 __printflike(3, 0);
|
||||
void errx(int, const char *, ...) __cold __dead2 __printflike(2, 3);
|
||||
void verrx(int, const char *, __darwin_va_list) __cold __dead2 __printflike(2, 0);
|
||||
void warn(const char *, ...) __cold __printflike(1, 2);
|
||||
void vwarn(const char *, __darwin_va_list) __cold __printflike(1, 0);
|
||||
void warnc(int, const char *, ...) __cold __printflike(2, 3);
|
||||
void vwarnc(int, const char *, __darwin_va_list) __cold __printflike(2, 0);
|
||||
void warnx(const char *, ...) __cold __printflike(1, 2);
|
||||
void vwarnx(const char *, __darwin_va_list) __cold __printflike(1, 0);
|
||||
void err_set_file(void *);
|
||||
void err_set_exit(void (* _Nullable)(int));
|
||||
#ifdef __BLOCKS__
|
||||
void err_set_exit_b(void (^ _Nullable)(int)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
|
||||
#endif /* __BLOCKS__ */
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* !_ERR_H_ */
|
||||
190
lib/libc/include/any-macos-any/fts.h
vendored
Normal file
190
lib/libc/include/any-macos-any/fts.h
vendored
Normal file
@ -0,0 +1,190 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2003-2006, 2008, 2012 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* Copyright (c) 1989, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)fts.h 8.3 (Berkeley) 8/14/94
|
||||
*/
|
||||
|
||||
#ifndef _FTS_H_
|
||||
#define _FTS_H_
|
||||
|
||||
#include <sys/_types.h>
|
||||
#include <sys/_types/_dev_t.h>
|
||||
#include <sys/_types/_ino_t.h>
|
||||
#include <sys/_types/_nlink_t.h>
|
||||
|
||||
#include <Availability.h>
|
||||
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wstrict-prototypes"
|
||||
|
||||
typedef struct {
|
||||
struct _ftsent *fts_cur; /* current node */
|
||||
struct _ftsent *fts_child; /* linked list of children */
|
||||
struct _ftsent **fts_array; /* sort array */
|
||||
dev_t fts_dev; /* starting device # */
|
||||
char *fts_path; /* path for this descent */
|
||||
int fts_rfd; /* fd for root */
|
||||
int fts_pathlen; /* sizeof(path) */
|
||||
int fts_nitems; /* elements in the sort array */
|
||||
#ifdef __BLOCKS__
|
||||
union {
|
||||
#endif /* __BLOCKS__ */
|
||||
int (*fts_compar)(); /* compare function */
|
||||
#ifdef __BLOCKS__
|
||||
int (^fts_compar_b)(); /* compare block */
|
||||
};
|
||||
#endif /* __BLOCKS__ */
|
||||
|
||||
#define FTS_COMFOLLOW 0x001 /* follow command line symlinks */
|
||||
#define FTS_LOGICAL 0x002 /* logical walk */
|
||||
#define FTS_NOCHDIR 0x004 /* don't change directories */
|
||||
#define FTS_NOSTAT 0x008 /* don't get stat info */
|
||||
#define FTS_PHYSICAL 0x010 /* physical walk */
|
||||
#define FTS_SEEDOT 0x020 /* return dot and dot-dot */
|
||||
#define FTS_XDEV 0x040 /* don't cross devices */
|
||||
#define FTS_WHITEOUT 0x080 /* (no longer supported) return whiteout information */
|
||||
#define FTS_COMFOLLOWDIR 0x400 /* (non-std) follow command line symlinks for directories only */
|
||||
#if (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED < 1090) || (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < 70000)
|
||||
#define FTS_OPTIONMASK 0x4ff /* valid user option mask */
|
||||
#else
|
||||
#define FTS_NOSTAT_TYPE 0x800 /* (non-std) no stat, but use d_type in struct dirent when available */
|
||||
#define FTS_OPTIONMASK 0xcff /* valid user option mask */
|
||||
#endif
|
||||
|
||||
#define FTS_NAMEONLY 0x100 /* (private) child names only */
|
||||
#define FTS_STOP 0x200 /* (private) unrecoverable error */
|
||||
#ifdef __BLOCKS__
|
||||
#define FTS_BLOCK_COMPAR 0x80000000 /* fts_compar is a block */
|
||||
#endif /* __BLOCKS__ */
|
||||
int fts_options; /* fts_open options, global flags */
|
||||
} FTS;
|
||||
|
||||
typedef struct _ftsent {
|
||||
struct _ftsent *fts_cycle; /* cycle node */
|
||||
struct _ftsent *fts_parent; /* parent directory */
|
||||
struct _ftsent *fts_link; /* next file in directory */
|
||||
long fts_number; /* local numeric value */
|
||||
void *fts_pointer; /* local address value */
|
||||
char *fts_accpath; /* access path */
|
||||
char *fts_path; /* root path */
|
||||
int fts_errno; /* errno for this node */
|
||||
int fts_symfd; /* fd for symlink or chdir */
|
||||
unsigned short fts_pathlen; /* strlen(fts_path) */
|
||||
unsigned short fts_namelen; /* strlen(fts_name) */
|
||||
|
||||
ino_t fts_ino; /* inode */
|
||||
dev_t fts_dev; /* device */
|
||||
nlink_t fts_nlink; /* link count */
|
||||
|
||||
#define FTS_ROOTPARENTLEVEL -1
|
||||
#define FTS_ROOTLEVEL 0
|
||||
#define FTS_MAXLEVEL 0x7fffffff
|
||||
short fts_level; /* depth (-1 to N) */
|
||||
|
||||
#define FTS_D 1 /* preorder directory */
|
||||
#define FTS_DC 2 /* directory that causes cycles */
|
||||
#define FTS_DEFAULT 3 /* none of the above */
|
||||
#define FTS_DNR 4 /* unreadable directory */
|
||||
#define FTS_DOT 5 /* dot or dot-dot */
|
||||
#define FTS_DP 6 /* postorder directory */
|
||||
#define FTS_ERR 7 /* error; errno is set */
|
||||
#define FTS_F 8 /* regular file */
|
||||
#define FTS_INIT 9 /* initialized only */
|
||||
#define FTS_NS 10 /* stat(2) failed */
|
||||
#define FTS_NSOK 11 /* no stat(2) requested */
|
||||
#define FTS_SL 12 /* symbolic link */
|
||||
#define FTS_SLNONE 13 /* symbolic link without target */
|
||||
#define FTS_W 14 /* whiteout object */
|
||||
unsigned short fts_info; /* user flags for FTSENT structure */
|
||||
|
||||
#define FTS_DONTCHDIR 0x01 /* don't chdir .. to the parent */
|
||||
#define FTS_SYMFOLLOW 0x02 /* followed a symlink to get here */
|
||||
#define FTS_ISW 0x04 /* this is a whiteout object */
|
||||
#define FTS_CHDIRFD 0x08 /* indicates the fts_symfd field was set for chdir */
|
||||
unsigned short fts_flags; /* private flags for FTSENT structure */
|
||||
|
||||
#define FTS_AGAIN 1 /* read node again */
|
||||
#define FTS_FOLLOW 2 /* follow symbolic link */
|
||||
#define FTS_NOINSTR 3 /* no instructions */
|
||||
#define FTS_SKIP 4 /* discard node */
|
||||
unsigned short fts_instr; /* fts_set() instructions */
|
||||
|
||||
struct stat *fts_statp; /* stat(2) information */
|
||||
char fts_name[1]; /* file name */
|
||||
} FTSENT;
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <Availability.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
FTSENT *fts_children(FTS *, int) __DARWIN_INODE64(fts_children);
|
||||
int fts_close(FTS *) __DARWIN_INODE64(fts_close);
|
||||
FTS *fts_open(char * const *, int,
|
||||
int (*)(const FTSENT **, const FTSENT **)) __DARWIN_INODE64(fts_open);
|
||||
#ifdef __BLOCKS__
|
||||
#if __has_attribute(noescape)
|
||||
#define __fts_noescape __attribute__((__noescape__))
|
||||
#else
|
||||
#define __fts_noescape
|
||||
#endif
|
||||
FTS *fts_open_b(char * const *, int,
|
||||
int (^)(const FTSENT **, const FTSENT **) __fts_noescape)
|
||||
__DARWIN_INODE64(fts_open_b) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
|
||||
#endif /* __BLOCKS__ */
|
||||
FTSENT *fts_read(FTS *) __DARWIN_INODE64(fts_read);
|
||||
int fts_set(FTS *, FTSENT *, int) __DARWIN_INODE64(fts_set);
|
||||
__END_DECLS
|
||||
|
||||
#pragma clang diagnostic pop
|
||||
#endif /* !_FTS_H_ */
|
||||
52
lib/libc/include/any-macos-any/iso646.h
vendored
Normal file
52
lib/libc/include/any-macos-any/iso646.h
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
/*-
|
||||
* Copyright (c) 1998 Alex Nash
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD: src/include/iso646.h,v 1.4 2002/09/18 22:23:59 mike Exp $
|
||||
*/
|
||||
|
||||
#ifndef _ISO646_H_
|
||||
#define _ISO646_H_
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
|
||||
|
||||
#ifndef __cplusplus
|
||||
#define and &&
|
||||
#define and_eq &=
|
||||
#define bitand &
|
||||
#define bitor |
|
||||
#define compl ~
|
||||
#define not !
|
||||
#define not_eq !=
|
||||
#define or ||
|
||||
#define or_eq |=
|
||||
#define xor ^
|
||||
#define xor_eq ^=
|
||||
#endif /* ! __cplusplus */
|
||||
|
||||
#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
|
||||
|
||||
#endif /* !_ISO646_H_ */
|
||||
66
lib/libc/include/any-macos-any/libkern/OSCacheControl.h
vendored
Normal file
66
lib/libc/include/any-macos-any/libkern/OSCacheControl.h
vendored
Normal file
@ -0,0 +1,66 @@
|
||||
/*
|
||||
* Copyright (c) 2006 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#ifndef _OS_CACHE_CONTROL_H_
|
||||
#define _OS_CACHE_CONTROL_H_
|
||||
|
||||
#include <stddef.h>
|
||||
#include <sys/cdefs.h>
|
||||
#include <stdint.h>
|
||||
#include <Availability.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
||||
/* Functions performed by sys_cache_control(): */
|
||||
|
||||
/* Prepare memory for execution. This should be called
|
||||
* after writing machine instructions to memory, before
|
||||
* executing them. It syncs the dcache and icache.
|
||||
* On IA32 processors this function is a NOP, because
|
||||
* no synchronization is required.
|
||||
*/
|
||||
#define kCacheFunctionPrepareForExecution 1
|
||||
|
||||
/* Flush data cache(s). This ensures that cached data
|
||||
* makes it all the way out to DRAM, and then removes
|
||||
* copies of the data from all processor caches.
|
||||
* It can be useful when dealing with cache incoherent
|
||||
* devices or DMA.
|
||||
*/
|
||||
#define kCacheFunctionFlushDcache 2
|
||||
|
||||
|
||||
/* perform one of the above cache functions: */
|
||||
int sys_cache_control( int function, void *start, size_t len) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
|
||||
|
||||
/* equivalent to sys_cache_control(kCacheFunctionPrepareForExecution): */
|
||||
void sys_icache_invalidate( void *start, size_t len) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
|
||||
|
||||
/* equivalent to sys_cache_control(kCacheFunctionFlushDcache): */
|
||||
void sys_dcache_flush( void *start, size_t len) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
|
||||
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* _OS_CACHE_CONTROL_H_ */
|
||||
59
lib/libc/include/any-macos-any/libkern/OSDebug.h
vendored
Normal file
59
lib/libc/include/any-macos-any/libkern/OSDebug.h
vendored
Normal file
@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* HISTORY
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _OS_OSDEBBUG_H
|
||||
#define _OS_OSDEBBUG_H
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <mach/mach_types.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* Report a message with a 4 entry backtrace - very slow */
|
||||
extern void OSReportWithBacktrace(const char *str, ...) __printflike(1, 2);
|
||||
extern unsigned OSBacktrace(void **bt, unsigned maxAddrs);
|
||||
|
||||
/* Simple dump of 20 backtrace entries */
|
||||
extern void OSPrintBacktrace(void);
|
||||
|
||||
/*! @function OSKernelStackRemaining
|
||||
* @abstract Returns bytes available below the current stack frame.
|
||||
* @discussion Returns bytes available below the current stack frame. Safe for interrupt or thread context.
|
||||
* @result Approximate byte count available. */
|
||||
|
||||
vm_offset_t OSKernelStackRemaining( void );
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* !_OS_OSDEBBUG_H */
|
||||
571
lib/libc/include/any-macos-any/libkern/OSKextLib.h
vendored
Normal file
571
lib/libc/include/any-macos-any/libkern/OSKextLib.h
vendored
Normal file
@ -0,0 +1,571 @@
|
||||
/*
|
||||
* Copyright (c) 2008 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#ifndef _LIBKERN_OSKEXTLIB_H
|
||||
#define _LIBKERN_OSKEXTLIB_H
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__BEGIN_DECLS
|
||||
|
||||
#include <stdint.h>
|
||||
#include <mach/kmod.h>
|
||||
#include <mach/vm_types.h>
|
||||
#include <uuid/uuid.h>
|
||||
|
||||
#include <libkern/OSReturn.h>
|
||||
|
||||
/*!
|
||||
* @header
|
||||
*
|
||||
* Declares functions, basic return values, and other constants
|
||||
* related to kernel extensions (kexts).
|
||||
*/
|
||||
|
||||
#if PRAGMA_MARK
|
||||
#pragma mark -
|
||||
/********************************************************************/
|
||||
#pragma mark OSReturn Values for Kernel Extensions
|
||||
/********************************************************************/
|
||||
#endif
|
||||
/*!
|
||||
* @group OSReturn Values for Kernel Extensions
|
||||
* Many kext-related functions return these values,
|
||||
* as well as those defined under
|
||||
* <code>@link //apple_ref/c/tdef/OSReturn OSReturn@/link</code>
|
||||
* and other variants of <code>kern_return_t</code>.
|
||||
*/
|
||||
|
||||
|
||||
#define sub_libkern_kext err_sub(2)
|
||||
#define libkern_kext_err(code) (sys_libkern|sub_libkern_kext|(code))
|
||||
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnInternalError
|
||||
* @abstract An internal error in the kext library.
|
||||
* Contrast with <code>@link //apple_ref/c/econst/OSReturnError
|
||||
* OSReturnError@/link</code>.
|
||||
*/
|
||||
#define kOSKextReturnInternalError libkern_kext_err(0x1)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnNoMemory
|
||||
* @abstract Memory allocation failed.
|
||||
*/
|
||||
#define kOSKextReturnNoMemory libkern_kext_err(0x2)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnNoResources
|
||||
* @abstract Some resource other than memory (such as available load tags)
|
||||
* is exhausted.
|
||||
*/
|
||||
#define kOSKextReturnNoResources libkern_kext_err(0x3)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnNotPrivileged
|
||||
* @abstract The caller lacks privileges to perform the requested operation.
|
||||
*/
|
||||
#define kOSKextReturnNotPrivileged libkern_kext_err(0x4)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnInvalidArgument
|
||||
* @abstract Invalid argument.
|
||||
*/
|
||||
#define kOSKextReturnInvalidArgument libkern_kext_err(0x5)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnNotFound
|
||||
* @abstract Search item not found.
|
||||
*/
|
||||
#define kOSKextReturnNotFound libkern_kext_err(0x6)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnBadData
|
||||
* @abstract Malformed data (not used for XML).
|
||||
*/
|
||||
#define kOSKextReturnBadData libkern_kext_err(0x7)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnSerialization
|
||||
* @abstract Error converting or (un)serializing URL, string, or XML.
|
||||
*/
|
||||
#define kOSKextReturnSerialization libkern_kext_err(0x8)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnUnsupported
|
||||
* @abstract Operation is no longer or not yet supported.
|
||||
*/
|
||||
#define kOSKextReturnUnsupported libkern_kext_err(0x9)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnDisabled
|
||||
* @abstract Operation is currently disabled.
|
||||
*/
|
||||
#define kOSKextReturnDisabled libkern_kext_err(0xa)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnNotAKext
|
||||
* @abstract Bundle is not a kernel extension.
|
||||
*/
|
||||
#define kOSKextReturnNotAKext libkern_kext_err(0xb)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnValidation
|
||||
* @abstract Validation failures encountered; check diagnostics for details.
|
||||
*/
|
||||
#define kOSKextReturnValidation libkern_kext_err(0xc)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnAuthentication
|
||||
* @abstract Authetication failures encountered; check diagnostics for details.
|
||||
*/
|
||||
#define kOSKextReturnAuthentication libkern_kext_err(0xd)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnDependencies
|
||||
* @abstract Dependency resolution failures encountered; check diagnostics for details.
|
||||
*/
|
||||
#define kOSKextReturnDependencies libkern_kext_err(0xe)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnArchNotFound
|
||||
* @abstract Kext does not contain code for the requested architecture.
|
||||
*/
|
||||
#define kOSKextReturnArchNotFound libkern_kext_err(0xf)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnCache
|
||||
* @abstract An error occurred processing a system kext cache.
|
||||
*/
|
||||
#define kOSKextReturnCache libkern_kext_err(0x10)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnDeferred
|
||||
* @abstract Operation has been posted asynchronously to user space (kernel only).
|
||||
*/
|
||||
#define kOSKextReturnDeferred libkern_kext_err(0x11)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnBootLevel
|
||||
* @abstract Kext not loadable or operation not allowed at current boot level.
|
||||
*/
|
||||
#define kOSKextReturnBootLevel libkern_kext_err(0x12)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnNotLoadable
|
||||
* @abstract Kext cannot be loaded; check diagnostics for details.
|
||||
*/
|
||||
#define kOSKextReturnNotLoadable libkern_kext_err(0x13)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnLoadedVersionDiffers
|
||||
* @abstract A different version (or executable UUID, or executable by checksum)
|
||||
* of the requested kext is already loaded.
|
||||
*/
|
||||
#define kOSKextReturnLoadedVersionDiffers libkern_kext_err(0x14)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnDependencyLoadError
|
||||
* @abstract A load error occurred on a dependency of the kext being loaded.
|
||||
*/
|
||||
#define kOSKextReturnDependencyLoadError libkern_kext_err(0x15)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnLinkError
|
||||
* @abstract A link failure occured with this kext or a dependency.
|
||||
*/
|
||||
#define kOSKextReturnLinkError libkern_kext_err(0x16)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnStartStopError
|
||||
* @abstract The kext start or stop routine returned an error.
|
||||
*/
|
||||
#define kOSKextReturnStartStopError libkern_kext_err(0x17)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnInUse
|
||||
* @abstract The kext is currently in use or has outstanding references,
|
||||
* and cannot be unloaded.
|
||||
*/
|
||||
#define kOSKextReturnInUse libkern_kext_err(0x18)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnTimeout
|
||||
* @abstract A kext request has timed out.
|
||||
*/
|
||||
#define kOSKextReturnTimeout libkern_kext_err(0x19)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnStopping
|
||||
* @abstract The kext is in the process of stopping; requests cannot be made.
|
||||
*/
|
||||
#define kOSKextReturnStopping libkern_kext_err(0x1a)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnSystemPolicy
|
||||
* @abstract The kext was prevented from loading due to system policy.
|
||||
*/
|
||||
#define kOSKextReturnSystemPolicy libkern_kext_err(0x1b)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnKCLoadFailure
|
||||
* @abstract Loading of the System KC failed
|
||||
*/
|
||||
#define kOSKextReturnKCLoadFailure libkern_kext_err(0x1c)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnKCLoadFailureSystemKC
|
||||
* @abstract Loading of the System KC failed
|
||||
*
|
||||
* This a sub-code of kOSKextReturnKCLoadFailure. It can be OR'd together
|
||||
* with: kOSKextReturnKCLoadFailureAuxKC
|
||||
*
|
||||
* If both the System and Aux KCs fail to load, then the error code will be:
|
||||
* libkern_kext_err(0x1f)
|
||||
*/
|
||||
#define kOSKextReturnKCLoadFailureSystemKC libkern_kext_err(0x1d)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnKCLoadFailureAuxKC
|
||||
* @abstract Loading of the Aux KC failed
|
||||
*
|
||||
* This a sub-code of kOSKextReturnKCLoadFailure. It can be OR'd together
|
||||
* with: kOSKextReturnKCLoadFailureSystemKC
|
||||
*
|
||||
* If both the System and Aux KCs fail to load, then the error code will be:
|
||||
* libkern_kext_err(0x1f)
|
||||
*/
|
||||
#define kOSKextReturnKCLoadFailureAuxKC libkern_kext_err(0x1e)
|
||||
|
||||
/* next available error is: libkern_kext_err(0x20) */
|
||||
|
||||
#if PRAGMA_MARK
|
||||
#pragma mark -
|
||||
/********************************************************************/
|
||||
#pragma mark Kext/OSBundle Property List Keys
|
||||
/********************************************************************/
|
||||
#endif
|
||||
/*!
|
||||
* @group Kext Property List Keys
|
||||
* These constants cover CFBundle properties defined for kernel extensions.
|
||||
* Because they are used in the kernel, if you want to use one with
|
||||
* CFBundle APIs you'll need to wrap it in a <code>CFSTR()</code> macro.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
* @define kOSBundleCompatibleVersionKey
|
||||
* @abstract A string giving the backwards-compatible version of a library kext
|
||||
* in extended Mac OS 'vers' format (####.##.##s{1-255} where 's'
|
||||
* is a build stage 'd', 'a', 'b', 'f' or 'fc').
|
||||
*/
|
||||
#define kOSBundleCompatibleVersionKey "OSBundleCompatibleVersion"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleEnableKextLoggingKey
|
||||
* @abstract Set to true to have the kernel kext logging spec applied
|
||||
* to the kext.
|
||||
* See <code>@link //apple_ref/c/econst/OSKextLogSpec
|
||||
* OSKextLogSpec@/link</code>.
|
||||
*/
|
||||
#define kOSBundleEnableKextLoggingKey "OSBundleEnableKextLogging"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleIsInterfaceKey
|
||||
* @abstract A boolean value indicating whether the kext executable
|
||||
* contains only symbol references.
|
||||
*/
|
||||
#define kOSBundleIsInterfaceKey "OSBundleIsInterface"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleLibrariesKey
|
||||
* @abstract A dictionary listing link dependencies for this kext.
|
||||
* Keys are bundle identifiers, values are version strings.
|
||||
*/
|
||||
#define kOSBundleLibrariesKey "OSBundleLibraries"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleRequiredKey
|
||||
* @abstract A string indicating in which kinds of startup this kext
|
||||
* may need to load during early startup (before
|
||||
* <code>@link //apple_ref/doc/man/8/kextd kextcache(8)@/link</code>).
|
||||
* @discussion
|
||||
* The value is one of:
|
||||
* <ul>
|
||||
* <li>@link kOSBundleRequiredRoot "OSBundleRequiredRoot"@/link</li>
|
||||
* <li>@link kOSBundleRequiredLocalRoot "OSBundleRequiredLocalRoot"@/link</li>
|
||||
* <li>@link kOSBundleRequiredNetworkRoot "OSBundleRequiredNetworkRoot"@/link</li>
|
||||
* <li>@link kOSBundleRequiredSafeBoot "OSBundleRequiredSafeBoot"@/link</li>
|
||||
* <li>@link kOSBundleRequiredConsole "OSBundleRequiredConsole"@/link</li>
|
||||
* </ul>
|
||||
*
|
||||
* Use this property judiciously.
|
||||
* Every kext that declares a value other than "OSBundleRequiredSafeBoot"
|
||||
* increases startup time, as the booter must read it into memory,
|
||||
* or startup kext caches must include it.
|
||||
*/
|
||||
#define kOSBundleRequiredKey "OSBundleRequired"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleRequireExplicitLoadKey
|
||||
* @abstract A boolean value indicating whether the kext requires an
|
||||
* explicit kextload in order to start/match.
|
||||
*/
|
||||
#define kOSBundleRequireExplicitLoadKey "OSBundleRequireExplicitLoad"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleAllowUserLoadKey
|
||||
* @abstract A boolean value indicating whether
|
||||
* <code>@link //apple_ref/doc/man/8/kextd kextcache(8)@/link</code>
|
||||
* will honor a non-root process's request to load a kext.
|
||||
* @discussion
|
||||
* See <code>@link //apple_ref/doc/compositePage/c/func/KextManagerLoadKextWithURL
|
||||
* KextManagerLoadKextWithURL@/link</code>
|
||||
* and <code>@link //apple_ref/doc/compositePage/c/func/KextManagerLoadKextWithIdentifier
|
||||
* KextManagerLoadKextWithIdentifier@/link</code>.
|
||||
*/
|
||||
#define kOSBundleAllowUserLoadKey "OSBundleAllowUserLoad"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleAllowUserTerminateKey
|
||||
* @abstract A boolean value indicating whether the kextunload tool
|
||||
* is allowed to issue IOService terminate to classes defined in this kext.
|
||||
* @discussion A boolean value indicating whether the kextunload tool
|
||||
* is allowed to issue IOService terminate to classes defined in this kext.
|
||||
*/
|
||||
#define kOSBundleAllowUserTerminateKey "OSBundleAllowUserTerminate"
|
||||
|
||||
/*!
|
||||
* @define kOSKernelResourceKey
|
||||
* @abstract A boolean value indicating whether the kext represents a built-in
|
||||
* component of the kernel.
|
||||
*/
|
||||
#define kOSKernelResourceKey "OSKernelResource"
|
||||
|
||||
/*!
|
||||
* @define kOSKextVariantOverrideKey
|
||||
* @abstract A dictionary with target names as key and a target-specific variant
|
||||
* name as value.
|
||||
*/
|
||||
#define kOSKextVariantOverrideKey "OSKextVariantOverride"
|
||||
|
||||
/*!
|
||||
* @define kIOKitPersonalitiesKey
|
||||
* @abstract A dictionary of dictionaries used in matching for I/O Kit drivers.
|
||||
*/
|
||||
#define kIOKitPersonalitiesKey "IOKitPersonalities"
|
||||
|
||||
/*
|
||||
* @define kIOPersonalityPublisherKey
|
||||
* @abstract Used in personalities sent to the I/O Kit,
|
||||
* contains the CFBundleIdentifier of the kext
|
||||
* that the personality originated in.
|
||||
*/
|
||||
#define kIOPersonalityPublisherKey "IOPersonalityPublisher"
|
||||
|
||||
#if CONFIG_KEC_FIPS
|
||||
/*
|
||||
* @define kAppleTextHashesKey
|
||||
* @abstract A dictionary conataining hashes for corecrypto kext.
|
||||
*/
|
||||
#define kAppleTextHashesKey "AppleTextHashes"
|
||||
#endif
|
||||
|
||||
/*!
|
||||
* @define kOSMutableSegmentCopy
|
||||
* @abstract A boolean value indicating whether the kext requires a copy of
|
||||
* its mutable segments to be kept in memory, and then reset when the kext
|
||||
* unloads. This should be used with caution as it will increase the
|
||||
* amount of memory used by the kext.
|
||||
*/
|
||||
#define kOSMutableSegmentCopy "OSMutableSegmentCopy"
|
||||
|
||||
|
||||
#if PRAGMA_MARK
|
||||
/********************************************************************/
|
||||
#pragma mark Kext/OSBundle Property Deprecated Keys
|
||||
/********************************************************************/
|
||||
#endif
|
||||
/*
|
||||
* @define kOSBundleDebugLevelKey
|
||||
* @abstract
|
||||
* Deprecated (used on some releases of Mac OS X prior to 10.6 Snow Leopard).
|
||||
* Value is an integer from 1-6, corresponding to the verbose levels
|
||||
* of kext tools on those releases.
|
||||
* On 10.6 Snow Leopard, use <code>@link OSKextEnableKextLogging
|
||||
* OSKextEnableKextLogging@/link</code>.
|
||||
*/
|
||||
#define kOSBundleDebugLevelKey "OSBundleDebugLevel"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleSharedExecutableIdentifierKey
|
||||
* @abstract Deprecated (used on some releases of Mac OS X
|
||||
* prior to 10.6 Snow Leopard).
|
||||
* Value is the bundle identifier of the pseudokext
|
||||
* that contains an executable shared by this kext.
|
||||
*/
|
||||
#define kOSBundleSharedExecutableIdentifierKey "OSBundleSharedExecutableIdentifier"
|
||||
|
||||
|
||||
#if PRAGMA_MARK
|
||||
/********************************************************************/
|
||||
#pragma mark Kext/OSBundle Property List Values
|
||||
/********************************************************************/
|
||||
#endif
|
||||
|
||||
/*!
|
||||
* @group Kext Property List Values
|
||||
* These constants encompass established values
|
||||
* for kernel extension bundle properties.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* @define kOSKextKernelIdentifier
|
||||
* @abstract
|
||||
* This is the CFBundleIdentifier user for the kernel itself.
|
||||
*/
|
||||
#define kOSKextKernelIdentifier "__kernel__"
|
||||
|
||||
/*!
|
||||
* @define kOSKextBundlePackageTypeKext
|
||||
* @abstract
|
||||
* The bundle type value for Kernel Extensions.
|
||||
*/
|
||||
#define kOSKextBundlePackageTypeKext "KEXT"
|
||||
|
||||
/*!
|
||||
* @define kOSKextBundlePackageTypeDriverKit
|
||||
* @abstract
|
||||
* The bundle type value for Driver Extensions.
|
||||
*/
|
||||
#define kOSKextBundlePackageTypeDriverKit "DEXT"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleRequiredRoot
|
||||
* @abstract
|
||||
* This <code>@link kOSBundleRequiredKey OSBundleRequired@/link</code>
|
||||
* value indicates that the kext may be needed to mount the root filesystem
|
||||
* whether starting from a local or a network volume.
|
||||
*/
|
||||
#define kOSBundleRequiredRoot "Root"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleRequiredLocalRoot
|
||||
* @abstract
|
||||
* This <code>@link kOSBundleRequiredKey OSBundleRequired@/link</code>
|
||||
* value indicates that the kext may be needed to mount the root filesystem
|
||||
* when starting from a local disk.
|
||||
*/
|
||||
#define kOSBundleRequiredLocalRoot "Local-Root"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleRequiredNetworkRoot
|
||||
* @abstract
|
||||
* This <code>@link kOSBundleRequiredKey OSBundleRequired@/link</code>
|
||||
* value indicates that the kext may be needed to mount the root filesystem
|
||||
* when starting over a network connection.
|
||||
*/
|
||||
#define kOSBundleRequiredNetworkRoot "Network-Root"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleRequiredSafeBoot
|
||||
* @abstract
|
||||
* This <code>@link kOSBundleRequiredKey OSBundleRequired@/link</code>
|
||||
* value indicates that the kext can be loaded during a safe startup.
|
||||
* This value does not normally cause the kext to be read by the booter
|
||||
* or included in startup kext caches.
|
||||
*/
|
||||
#define kOSBundleRequiredSafeBoot "Safe Boot"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleRequiredConsole
|
||||
* @abstract
|
||||
* This <code>@link kOSBundleRequiredKey OSBundleRequired@/link</code>
|
||||
* value indicates that the kext may be needed for console access
|
||||
* (specifically in a single-user startup when
|
||||
* <code>@link //apple_ref/doc/man/8/kextd kextd(8)@/link</code>.
|
||||
* does not run)
|
||||
* and should be loaded during early startup.
|
||||
*/
|
||||
#define kOSBundleRequiredConsole "Console"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleRequiredDriverKit
|
||||
* @abstract
|
||||
* This <code>@link kOSBundleRequiredKey OSBundleRequired@/link</code>
|
||||
* value indicates that the driver extension's (DriverKit driver's)
|
||||
* personalities must be present in the kernel at early boot (specifically
|
||||
* before <code>@link //apple_ref/doc/man/8/kextd kextd(8)@/link</code> starts)
|
||||
* in order to compete with kexts built into the prelinkedkernel. Note that
|
||||
* kextd is still required to launch the user space driver binary. The IOKit
|
||||
* matching will happen during early boot, and the actual driver launch
|
||||
* will happen after kextd starts.
|
||||
*/
|
||||
#define kOSBundleRequiredDriverKit "DriverKit"
|
||||
|
||||
#if PRAGMA_MARK
|
||||
#pragma mark -
|
||||
/********************************************************************/
|
||||
#pragma mark Kext Information
|
||||
/********************************************************************/
|
||||
#endif
|
||||
/*!
|
||||
* @group Kext Information
|
||||
* Types, constants, and macros providing a kext with information
|
||||
* about itself.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* @typedef OSKextLoadTag
|
||||
*
|
||||
* @abstract
|
||||
* A unique identifier assigned to a loaded instanace of a kext.
|
||||
*
|
||||
* @discussion
|
||||
* If a kext is unloaded and later reloaded, the new instance
|
||||
* has a different load tag.
|
||||
*
|
||||
* A kext can get its own load tag in the <code>kmod_info_t</code>
|
||||
* structure passed into its module start routine, as the
|
||||
* <code>id</code> field (cast to this type).
|
||||
*/
|
||||
typedef uint32_t OSKextLoadTag;
|
||||
|
||||
/*!
|
||||
* @define kOSKextInvalidLoadTag
|
||||
*
|
||||
* @abstract
|
||||
* A load tag value that will never be used for a loaded kext;
|
||||
* indicates kext not found.
|
||||
*/
|
||||
#define kOSKextInvalidLoadTag ((OSKextLoadTag)(-1))
|
||||
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* _LIBKERN_OSKEXTLIB_H */
|
||||
198
lib/libc/include/any-macos-any/libkern/OSReturn.h
vendored
Normal file
198
lib/libc/include/any-macos-any/libkern/OSReturn.h
vendored
Normal file
@ -0,0 +1,198 @@
|
||||
/*
|
||||
* Copyright (c) 2000 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* Copyright (c) 1998 Apple Inc. All rights reserved.
|
||||
*
|
||||
* HISTORY
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* Core OSReturn values.
|
||||
*/
|
||||
|
||||
#ifndef __LIBKERN_OSRETURN_H
|
||||
#define __LIBKERN_OSRETURN_H
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
#include <mach/error.h>
|
||||
|
||||
|
||||
/*!
|
||||
* @header
|
||||
*
|
||||
* Declares functions, basic return values, and other constants
|
||||
* related to kernel extensions (kexts).
|
||||
*/
|
||||
|
||||
#if PRAGMA_MARK
|
||||
#pragma mark Core OSReturn Values for Libkern
|
||||
#endif
|
||||
/*********************************************************************
|
||||
* Core OSReturn Values for Libkern
|
||||
*********************************************************************/
|
||||
/*!
|
||||
* @group Core OSReturn Values for Libkern
|
||||
* Some kext and I/O Kit functions can return these values,
|
||||
* as well as other values of
|
||||
* <code>kern_return_t</code>.
|
||||
*
|
||||
* Many of these return values represent internal errors
|
||||
* in the Libkern C++ run-time typing information system
|
||||
* based on @link //apple_ref/doc/class/OSMetaClass OSMetaClass@/link;
|
||||
* you are unlikely to ever see them.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
* @typedef OSReturn
|
||||
* @abstract The return type for many Libkern functions.
|
||||
*/
|
||||
typedef kern_return_t OSReturn;
|
||||
|
||||
#ifndef sys_libkern
|
||||
#define sys_libkern err_system(0x37)
|
||||
#endif /* sys_libkern */
|
||||
|
||||
#define sub_libkern_common err_sub(0)
|
||||
#define sub_libkern_metaclass err_sub(1)
|
||||
#define sub_libkern_reserved err_sub(-1)
|
||||
|
||||
#define libkern_common_err(return ) (sys_libkern|sub_libkern_common|(return))
|
||||
#define libkern_metaclass_err(return ) (sys_libkern|sub_libkern_metaclass|(return))
|
||||
|
||||
/* See OSKextLib.h for these
|
||||
* #define sub_libkern_kext err_sub(2)
|
||||
* #define libkern_kext_err(code) (sys_libkern|sub_libkern_kext|(code))
|
||||
*/
|
||||
|
||||
/*!
|
||||
* @define kOSReturnSuccess
|
||||
* @abstract Operation successful.
|
||||
* Equal to <code>@link //apple_ref/c/econst/KERN_SUCCESS
|
||||
* KERN_SUCCESS@/link</code>.
|
||||
*/
|
||||
#define kOSReturnSuccess KERN_SUCCESS
|
||||
|
||||
/*!
|
||||
* @define kOSReturnError
|
||||
* @abstract Unspecified Libkern error.
|
||||
* <b>Not equal</b> to
|
||||
* <code>@link //apple_ref/c/econst/KERN_FAILURE
|
||||
* KERN_FAILURE@/link</code>.
|
||||
*/
|
||||
#define kOSReturnError libkern_common_err(1)
|
||||
|
||||
/*!
|
||||
* @define kOSMetaClassInternal
|
||||
* @abstract Internal OSMetaClass run-time error.
|
||||
*/
|
||||
#define kOSMetaClassInternal libkern_metaclass_err(1)
|
||||
|
||||
/*!
|
||||
* @define kOSMetaClassHasInstances
|
||||
* @abstract A kext cannot be unloaded because there are instances
|
||||
* derived from Libkern C++ classes that it defines.
|
||||
*/
|
||||
#define kOSMetaClassHasInstances libkern_metaclass_err(2)
|
||||
|
||||
/*!
|
||||
* @define kOSMetaClassNoInit
|
||||
* @abstract Internal error: The Libkern C++ class registration system
|
||||
* was not properly initialized during kext loading.
|
||||
*/
|
||||
#define kOSMetaClassNoInit libkern_metaclass_err(3)
|
||||
// OSMetaClass::preModLoad wasn't called, runtime internal error
|
||||
|
||||
/*!
|
||||
* @define kOSMetaClassNoTempData
|
||||
* @abstract Internal error: An allocation failure occurred
|
||||
* registering Libkern C++ classes during kext loading.
|
||||
*/
|
||||
#define kOSMetaClassNoTempData libkern_metaclass_err(4)
|
||||
// Allocation failure internal data
|
||||
|
||||
/*!
|
||||
* @define kOSMetaClassNoDicts
|
||||
* @abstract Internal error: An allocation failure occurred
|
||||
* registering Libkern C++ classes during kext loading.
|
||||
*/
|
||||
#define kOSMetaClassNoDicts libkern_metaclass_err(5)
|
||||
// Allocation failure for Metaclass internal dictionaries
|
||||
|
||||
/*!
|
||||
* @define kOSMetaClassNoKModSet
|
||||
* @abstract Internal error: An allocation failure occurred
|
||||
* registering Libkern C++ classes during kext loading.
|
||||
*/
|
||||
#define kOSMetaClassNoKModSet libkern_metaclass_err(6)
|
||||
// Allocation failure for internal kmodule set
|
||||
|
||||
/*!
|
||||
* @define kOSMetaClassNoInsKModSet
|
||||
* @abstract Internal error: An error occurred registering
|
||||
* a specific Libkern C++ class during kext loading.
|
||||
*/
|
||||
#define kOSMetaClassNoInsKModSet libkern_metaclass_err(7)
|
||||
// Can't insert the KMod set into the module dictionary
|
||||
|
||||
/*!
|
||||
* @define kOSMetaClassNoSuper
|
||||
* @abstract Internal error: No superclass can be found
|
||||
* for a specific Libkern C++ class during kext loading.
|
||||
*/
|
||||
#define kOSMetaClassNoSuper libkern_metaclass_err(8)
|
||||
|
||||
/*!
|
||||
* @define kOSMetaClassInstNoSuper
|
||||
* @abstract Internal error: No superclass can be found when constructing
|
||||
* an instance of a Libkern C++ class.
|
||||
*/
|
||||
#define kOSMetaClassInstNoSuper libkern_metaclass_err(9)
|
||||
|
||||
/*!
|
||||
* @define kOSMetaClassDuplicateClass
|
||||
* @abstract A duplicate Libkern C++ classname was encountered
|
||||
* during kext loading.
|
||||
*/
|
||||
#define kOSMetaClassDuplicateClass libkern_metaclass_err(10)
|
||||
|
||||
/*!
|
||||
* @define kOSMetaClassNoKext
|
||||
* @abstract Internal error: The kext for a Libkern C++ class
|
||||
* can't be found during kext loading.
|
||||
*/
|
||||
#define kOSMetaClassNoKext libkern_metaclass_err(11)
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* ! __LIBKERN_OSRETURN_H */
|
||||
135
lib/libc/include/any-macos-any/libkern/OSThermalNotification.h
vendored
Normal file
135
lib/libc/include/any-macos-any/libkern/OSThermalNotification.h
vendored
Normal file
@ -0,0 +1,135 @@
|
||||
/*
|
||||
* Copyright (c) 2007 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#ifndef _OSTHERMALNOTIFICATION_H_
|
||||
#define _OSTHERMALNOTIFICATION_H_
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <Availability.h>
|
||||
|
||||
/*
|
||||
** OSThermalNotification.h
|
||||
**
|
||||
** Notification mechanism to alert registered tasks when device thermal conditions
|
||||
** reach certain thresholds. Notifications are triggered in both directions
|
||||
** so clients can manage their memory usage more and less aggressively.
|
||||
**
|
||||
*/
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* Define pressure levels usable by OSThermalPressureLevel */
|
||||
typedef enum {
|
||||
#if TARGET_OS_OSX || TARGET_OS_MACCATALYST
|
||||
kOSThermalPressureLevelNominal = 0,
|
||||
kOSThermalPressureLevelModerate,
|
||||
kOSThermalPressureLevelHeavy,
|
||||
kOSThermalPressureLevelTrapping,
|
||||
kOSThermalPressureLevelSleeping
|
||||
#else
|
||||
kOSThermalPressureLevelNominal = 0,
|
||||
kOSThermalPressureLevelLight = 10,
|
||||
kOSThermalPressureLevelModerate = 20,
|
||||
kOSThermalPressureLevelHeavy = 30,
|
||||
kOSThermalPressureLevelTrapping = 40,
|
||||
kOSThermalPressureLevelSleeping = 50
|
||||
#endif
|
||||
} OSThermalPressureLevel;
|
||||
|
||||
/*
|
||||
** External notify(3) string for thermal pressure level notification
|
||||
*/
|
||||
__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_0)
|
||||
extern const char * const kOSThermalNotificationPressureLevelName;
|
||||
|
||||
|
||||
#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && \
|
||||
__IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_2_0
|
||||
|
||||
typedef enum {
|
||||
OSThermalNotificationLevelAny = -1,
|
||||
OSThermalNotificationLevelNormal = 0,
|
||||
} OSThermalNotificationLevel;
|
||||
|
||||
extern OSThermalNotificationLevel _OSThermalNotificationLevelForBehavior(int) __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_4_2);
|
||||
extern void _OSThermalNotificationSetLevelForBehavior(int, int) __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_4_2);
|
||||
|
||||
enum {
|
||||
kOSThermalMitigationNone,
|
||||
kOSThermalMitigation70PercentTorch,
|
||||
kOSThermalMitigation70PercentBacklight,
|
||||
kOSThermalMitigation50PercentTorch,
|
||||
kOSThermalMitigation50PercentBacklight,
|
||||
kOSThermalMitigationDisableTorch,
|
||||
kOSThermalMitigation25PercentBacklight,
|
||||
kOSThermalMitigationDisableMapsHalo,
|
||||
kOSThermalMitigationAppTerminate,
|
||||
kOSThermalMitigationDeviceRestart,
|
||||
kOSThermalMitigationThermalTableReady,
|
||||
kOSThermalMitigationCount
|
||||
};
|
||||
|
||||
#define OSThermalNotificationLevel70PercentTorch _OSThermalNotificationLevelForBehavior(kOSThermalMitigation70PercentTorch)
|
||||
#define OSThermalNotificationLevel70PercentBacklight _OSThermalNotificationLevelForBehavior(kOSThermalMitigation70PercentBacklight)
|
||||
#define OSThermalNotificationLevel50PercentTorch _OSThermalNotificationLevelForBehavior(kOSThermalMitigation50PercentTorch)
|
||||
#define OSThermalNotificationLevel50PercentBacklight _OSThermalNotificationLevelForBehavior(kOSThermalMitigation50PercentBacklight)
|
||||
#define OSThermalNotificationLevelDisableTorch _OSThermalNotificationLevelForBehavior(kOSThermalMitigationDisableTorch)
|
||||
#define OSThermalNotificationLevel25PercentBacklight _OSThermalNotificationLevelForBehavior(kOSThermalMitigation25PercentBacklight)
|
||||
#define OSThermalNotificationLevelDisableMapsHalo _OSThermalNotificationLevelForBehavior(kOSThermalMitigationDisableMapsHalo)
|
||||
#define OSThermalNotificationLevelAppTerminate _OSThermalNotificationLevelForBehavior(kOSThermalMitigationAppTerminate)
|
||||
#define OSThermalNotificationLevelDeviceRestart _OSThermalNotificationLevelForBehavior(kOSThermalMitigationDeviceRestart)
|
||||
|
||||
/* Backwards compatibility */
|
||||
#define OSThermalNotificationLevelWarning OSThermalNotificationLevel70PercentBacklight
|
||||
#define OSThermalNotificationLevelUrgent OSThermalNotificationLevelAppTerminate
|
||||
#define OSThermalNotificationLevelCritical OSThermalNotificationLevelDeviceRestart
|
||||
|
||||
/*
|
||||
** Simple polling interface to detect current thermal level
|
||||
*/
|
||||
__OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_2_0)
|
||||
extern OSThermalNotificationLevel OSThermalNotificationCurrentLevel(void);
|
||||
|
||||
/*
|
||||
** External notify(3) string for manual notification setup
|
||||
*/
|
||||
__OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_2_0)
|
||||
extern const char * const kOSThermalNotificationName;
|
||||
|
||||
/*
|
||||
** External notify(3) string for alerting user of a thermal condition
|
||||
*/
|
||||
__OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_6_0)
|
||||
extern const char * const kOSThermalNotificationAlert;
|
||||
|
||||
/*
|
||||
** External notify(3) string for notifying system the options taken to resolve thermal condition
|
||||
*/
|
||||
__OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_6_0)
|
||||
extern const char * const kOSThermalNotificationDecision;
|
||||
|
||||
#endif // __IPHONE_OS_VERSION_MIN_REQUIRED
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* _OSTHERMALNOTIFICATION_H_ */
|
||||
90
lib/libc/include/any-macos-any/stddef.h
vendored
Normal file
90
lib/libc/include/any-macos-any/stddef.h
vendored
Normal file
@ -0,0 +1,90 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2013 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/* $OpenBSD: stddef.h,v 1.2 1997/09/21 10:45:52 niklas Exp $ */
|
||||
/* $NetBSD: stddef.h,v 1.4 1994/10/26 00:56:26 cgd Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)stddef.h 5.5 (Berkeley) 4/3/91
|
||||
*/
|
||||
|
||||
#ifndef __STDDEF_H__
|
||||
#define __STDDEF_H__
|
||||
|
||||
#include <_types.h>
|
||||
|
||||
#include <sys/_types.h>
|
||||
#include <sys/_types/_null.h>
|
||||
#include <sys/_types/_offsetof.h>
|
||||
#include <sys/_types/_ptrdiff_t.h>
|
||||
|
||||
#if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1
|
||||
#include <sys/_types/_rsize_t.h>
|
||||
#endif /* __STDC_WANT_LIB_EXT1__ >= 1 */
|
||||
|
||||
/* DO NOT REMOVE THIS COMMENT: fixincludes needs to see:
|
||||
* _GCC_SIZE_T */
|
||||
#include <sys/_types/_size_t.h>
|
||||
|
||||
#include <sys/_types/_wchar_t.h>
|
||||
|
||||
#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
|
||||
#include <sys/_types/_wint_t.h>
|
||||
#endif /* !_ANSI_SOURCE && (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
|
||||
|
||||
#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) \
|
||||
|| (defined(__cplusplus) && __cplusplus >= 201103L)
|
||||
typedef long double max_align_t;
|
||||
#endif
|
||||
|
||||
#endif /* __STDDEF_H__ */
|
||||
30
lib/libc/include/any-macos-any/sys/_types/_offsetof.h
vendored
Normal file
30
lib/libc/include/any-macos-any/sys/_types/_offsetof.h
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright (c) 2003-2012 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
#ifndef offsetof
|
||||
#define offsetof(type, field) __offsetof(type, field)
|
||||
#endif /* offsetof */
|
||||
33
lib/libc/include/any-macos-any/sys/_types/_ptrdiff_t.h
vendored
Normal file
33
lib/libc/include/any-macos-any/sys/_types/_ptrdiff_t.h
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright (c) 2012 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#ifndef _PTRDIFF_T
|
||||
#define _PTRDIFF_T
|
||||
#include <machine/types.h> /* __darwin_ptrdiff_t */
|
||||
typedef __darwin_ptrdiff_t ptrdiff_t;
|
||||
#endif /* _PTRDIFF_T */
|
||||
138
lib/libc/include/any-macos-any/vis.h
vendored
Normal file
138
lib/libc/include/any-macos-any/vis.h
vendored
Normal file
@ -0,0 +1,138 @@
|
||||
/*
|
||||
* Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/* $NetBSD: vis.h,v 1.21 2013/02/20 17:01:15 christos Exp $ */
|
||||
/* $FreeBSD$ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)vis.h 8.1 (Berkeley) 6/2/93
|
||||
*/
|
||||
|
||||
#ifndef _VIS_H_
|
||||
#define _VIS_H_
|
||||
|
||||
#include <_types.h>
|
||||
#include <sys/_types/_size_t.h>
|
||||
|
||||
/*
|
||||
* to select alternate encoding format
|
||||
*/
|
||||
#define VIS_OCTAL 0x0001 /* use octal \ddd format */
|
||||
#define VIS_CSTYLE 0x0002 /* use \[nrft0..] where appropiate */
|
||||
|
||||
/*
|
||||
* to alter set of characters encoded (default is to encode all
|
||||
* non-graphic except space, tab, and newline).
|
||||
*/
|
||||
#define VIS_SP 0x0004 /* also encode space */
|
||||
#define VIS_TAB 0x0008 /* also encode tab */
|
||||
#define VIS_NL 0x0010 /* also encode newline */
|
||||
#define VIS_WHITE (VIS_SP | VIS_TAB | VIS_NL)
|
||||
#define VIS_SAFE 0x0020 /* only encode "unsafe" characters */
|
||||
|
||||
/*
|
||||
* other
|
||||
*/
|
||||
#define VIS_NOSLASH 0x0040 /* inhibit printing '\' */
|
||||
#define VIS_HTTP1808 0x0080 /* http-style escape % hex hex */
|
||||
#define VIS_HTTPSTYLE 0x0080 /* http-style escape % hex hex */
|
||||
#define VIS_GLOB 0x0100 /* encode glob(3) magic characters */
|
||||
#define VIS_MIMESTYLE 0x0200 /* mime-style escape = HEX HEX */
|
||||
#define VIS_HTTP1866 0x0400 /* http-style &#num; or &string; */
|
||||
#define VIS_NOESCAPE 0x0800 /* don't decode `\' */
|
||||
#define _VIS_END 0x1000 /* for unvis */
|
||||
|
||||
/*
|
||||
* unvis return codes
|
||||
*/
|
||||
#define UNVIS_VALID 1 /* character valid */
|
||||
#define UNVIS_VALIDPUSH 2 /* character valid, push back passed char */
|
||||
#define UNVIS_NOCHAR 3 /* valid sequence, no character produced */
|
||||
#define UNVIS_SYNBAD -1 /* unrecognized escape sequence */
|
||||
#define UNVIS_ERROR -2 /* decoder in unknown state (unrecoverable) */
|
||||
|
||||
/*
|
||||
* unvis flags
|
||||
*/
|
||||
#define UNVIS_END _VIS_END /* no more characters */
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
char *vis(char *, int, int, int);
|
||||
char *nvis(char *, size_t, int, int, int);
|
||||
|
||||
char *svis(char *, int, int, int, const char *);
|
||||
char *snvis(char *, size_t, int, int, int, const char *);
|
||||
|
||||
int strvis(char *, const char *, int);
|
||||
int strnvis(char *, size_t, const char *, int);
|
||||
|
||||
int strsvis(char *, const char *, int, const char *);
|
||||
int strsnvis(char *, size_t, const char *, int, const char *);
|
||||
|
||||
int strvisx(char *, const char *, size_t, int);
|
||||
int strnvisx(char *, size_t, const char *, size_t, int);
|
||||
int strenvisx(char *, size_t, const char *, size_t, int, int *);
|
||||
|
||||
int strsvisx(char *, const char *, size_t, int, const char *);
|
||||
int strsnvisx(char *, size_t, const char *, size_t, int, const char *);
|
||||
int strsenvisx(char *, size_t, const char *, size_t , int, const char *,
|
||||
int *);
|
||||
|
||||
int strunvis(char *, const char *);
|
||||
int strnunvis(char *, size_t, const char *);
|
||||
|
||||
int strunvisx(char *, const char *, int);
|
||||
int strnunvisx(char *, size_t, const char *, int);
|
||||
|
||||
int unvis(char *, int, int *, int);
|
||||
__END_DECLS
|
||||
|
||||
#endif /* !_VIS_H_ */
|
||||
1441
lib/libc/include/any-macos.11-any/AssertMacros.h
vendored
Normal file
1441
lib/libc/include/any-macos.11-any/AssertMacros.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@ -55,7 +55,7 @@
|
||||
#ifdef __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__
|
||||
/* compiler sets __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ when -mtvos-version-min is used */
|
||||
#define __TV_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__
|
||||
#define __TV_OS_VERSION_MAX_ALLOWED __TVOS_15_2
|
||||
#define __TV_OS_VERSION_MAX_ALLOWED __TVOS_14_5
|
||||
/* for compatibility with existing code. New code should use platform specific checks */
|
||||
#define __IPHONE_OS_VERSION_MIN_REQUIRED 90000
|
||||
#endif
|
||||
@ -65,7 +65,7 @@
|
||||
#ifdef __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__
|
||||
/* compiler sets __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ when -mwatchos-version-min is used */
|
||||
#define __WATCH_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__
|
||||
#define __WATCH_OS_VERSION_MAX_ALLOWED __WATCHOS_8_3
|
||||
#define __WATCH_OS_VERSION_MAX_ALLOWED __WATCHOS_7_4
|
||||
/* for compatibility with existing code. New code should use platform specific checks */
|
||||
#define __IPHONE_OS_VERSION_MIN_REQUIRED 90000
|
||||
#endif
|
||||
@ -75,7 +75,7 @@
|
||||
#ifdef __ENVIRONMENT_BRIDGE_OS_VERSION_MIN_REQUIRED__
|
||||
|
||||
#define __BRIDGE_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_BRIDGE_OS_VERSION_MIN_REQUIRED__
|
||||
#define __BRIDGE_OS_VERSION_MAX_ALLOWED 60100
|
||||
#define __BRIDGE_OS_VERSION_MAX_ALLOWED 50300
|
||||
/* for compatibility with existing code. New code should use platform specific checks */
|
||||
#define __IPHONE_OS_VERSION_MIN_REQUIRED 110000
|
||||
#endif
|
||||
@ -90,14 +90,14 @@
|
||||
#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
|
||||
/* make sure a default max version is set */
|
||||
#ifndef __MAC_OS_X_VERSION_MAX_ALLOWED
|
||||
#define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_12_1
|
||||
#define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_11_3
|
||||
#endif
|
||||
#endif /* __MAC_OS_X_VERSION_MIN_REQUIRED */
|
||||
|
||||
#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED
|
||||
/* make sure a default max version is set */
|
||||
#ifndef __IPHONE_OS_VERSION_MAX_ALLOWED
|
||||
#define __IPHONE_OS_VERSION_MAX_ALLOWED __IPHONE_15_2
|
||||
#define __IPHONE_OS_VERSION_MAX_ALLOWED __IPHONE_14_5
|
||||
#endif
|
||||
/* make sure a valid min is set */
|
||||
#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_2_0
|
||||
|
||||
4015
lib/libc/include/any-macos.11-any/AvailabilityMacros.h
vendored
Normal file
4015
lib/libc/include/any-macos.11-any/AvailabilityMacros.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@ -60,11 +60,6 @@
|
||||
#define __MAC_11_0 110000
|
||||
#define __MAC_11_1 110100
|
||||
#define __MAC_11_3 110300
|
||||
#define __MAC_11_4 110400
|
||||
#define __MAC_11_5 110500
|
||||
#define __MAC_11_6 110600
|
||||
#define __MAC_12_0 120000
|
||||
#define __MAC_12_1 120100
|
||||
/* __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */
|
||||
|
||||
#define __IPHONE_2_0 20000
|
||||
@ -119,12 +114,6 @@
|
||||
#define __IPHONE_14_2 140200
|
||||
#define __IPHONE_14_3 140300
|
||||
#define __IPHONE_14_5 140500
|
||||
#define __IPHONE_14_6 140600
|
||||
#define __IPHONE_14_7 140700
|
||||
#define __IPHONE_14_8 140800
|
||||
#define __IPHONE_15_0 150000
|
||||
#define __IPHONE_15_1 150100
|
||||
#define __IPHONE_15_2 150200
|
||||
/* __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */
|
||||
|
||||
#define __TVOS_9_0 90000
|
||||
@ -153,11 +142,6 @@
|
||||
#define __TVOS_14_2 140200
|
||||
#define __TVOS_14_3 140300
|
||||
#define __TVOS_14_5 140500
|
||||
#define __TVOS_14_6 140600
|
||||
#define __TVOS_14_7 140700
|
||||
#define __TVOS_15_0 150000
|
||||
#define __TVOS_15_1 150100
|
||||
#define __TVOS_15_2 150200
|
||||
|
||||
#define __WATCHOS_1_0 10000
|
||||
#define __WATCHOS_2_0 20000
|
||||
@ -183,12 +167,6 @@
|
||||
#define __WATCHOS_7_2 70200
|
||||
#define __WATCHOS_7_3 70300
|
||||
#define __WATCHOS_7_4 70400
|
||||
#define __WATCHOS_7_5 70500
|
||||
#define __WATCHOS_7_6 70600
|
||||
#define __WATCHOS_8_0 80000
|
||||
#define __WATCHOS_8_1 80100
|
||||
#define __WATCHOS_8_3 80300
|
||||
|
||||
|
||||
/*
|
||||
* Set up standard Mac OS X versions
|
||||
@ -229,12 +207,10 @@
|
||||
#define MAC_OS_X_VERSION_10_15_1 101501
|
||||
#define MAC_OS_X_VERSION_10_16 101600
|
||||
#define MAC_OS_VERSION_11_0 110000
|
||||
#define MAC_OS_VERSION_12_0 120000
|
||||
|
||||
#endif /* #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) */
|
||||
|
||||
#define __DRIVERKIT_19_0 190000
|
||||
#define __DRIVERKIT_20_0 200000
|
||||
#define __DRIVERKIT_21_0 210000
|
||||
|
||||
#endif /* __AVAILABILITY_VERSIONS__ */
|
||||
@ -61,10 +61,8 @@
|
||||
* The IOS/TV/WATCH conditionals are mutually exclusive.
|
||||
*
|
||||
*
|
||||
* TARGET_OS_WIN32 - Generated code will run under WIN32 API
|
||||
* TARGET_OS_WINDOWS - Generated code will run under Windows
|
||||
* TARGET_OS_WIN32 - Generated code will run under 32-bit Windows
|
||||
* TARGET_OS_UNIX - Generated code will run under some Unix (not OSX)
|
||||
* TARGET_OS_LINUX - Generated code will run under Linux
|
||||
* TARGET_OS_MAC - Generated code will run under Mac OS X variant
|
||||
* TARGET_OS_OSX - Generated code will run under OS X devices
|
||||
* TARGET_OS_IPHONE - Generated code for firmware, devices, or simulator
|
||||
@ -180,7 +178,7 @@
|
||||
/* -target=x86_64-apple-driverkit19.0 */
|
||||
/* -target=arm64-apple-driverkit19.0 */
|
||||
/* -target=arm64e-apple-driverkit19.0 */
|
||||
#if __is_target_vendor(apple) && __is_target_os(driverkit)
|
||||
#if (__is_target_arch(x86_64) || __is_target_arch(arm64) || __is_target_arch(arm64e)) && __is_target_vendor(apple) && __is_target_os(driverkit)
|
||||
#define TARGET_OS_OSX 0
|
||||
#define TARGET_OS_IPHONE 0
|
||||
#define TARGET_OS_IOS 0
|
||||
@ -216,9 +214,7 @@
|
||||
#if defined(__GNUC__) && ( defined(__APPLE_CPP__) || defined(__APPLE_CC__) || defined(__MACOS_CLASSIC__) )
|
||||
#define TARGET_OS_MAC 1
|
||||
#define TARGET_OS_WIN32 0
|
||||
#define TARGET_OS_WINDOWS 0
|
||||
#define TARGET_OS_UNIX 0
|
||||
#define TARGET_OS_LINUX 0
|
||||
|
||||
#if !DYNAMIC_TARGETS_ENABLED
|
||||
#define TARGET_OS_OSX 1
|
||||
@ -359,9 +355,7 @@
|
||||
#elif defined(__MWERKS__)
|
||||
#define TARGET_OS_MAC 1
|
||||
#define TARGET_OS_WIN32 0
|
||||
#define TARGET_OS_WINDOWS 0
|
||||
#define TARGET_OS_UNIX 0
|
||||
#define TARGET_OS_LINUX 0
|
||||
#define TARGET_OS_EMBEDDED 0
|
||||
#if defined(__POWERPC__)
|
||||
#define TARGET_CPU_PPC 1
|
||||
@ -487,9 +481,7 @@
|
||||
#endif
|
||||
#define TARGET_OS_MAC 1
|
||||
#define TARGET_OS_WIN32 0
|
||||
#define TARGET_OS_WINDOWS 0
|
||||
#define TARGET_OS_UNIX 0
|
||||
#define TARGET_OS_LINUX 0
|
||||
#define TARGET_OS_EMBEDDED 0
|
||||
#if TARGET_CPU_PPC || TARGET_CPU_PPC64
|
||||
#define TARGET_RT_BIG_ENDIAN 1
|
||||
|
||||
111
lib/libc/include/any-macos.11-any/assert.h
vendored
Normal file
111
lib/libc/include/any-macos.11-any/assert.h
vendored
Normal file
@ -0,0 +1,111 @@
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* (c) UNIX System Laboratories, Inc.
|
||||
* All or some portions of this file are derived from material licensed
|
||||
* to the University of California by American Telephone and Telegraph
|
||||
* Co. or Unix System Laboratories, Inc. and are reproduced herein with
|
||||
* the permission of UNIX System Laboratories, Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)assert.h 8.2 (Berkeley) 1/21/94
|
||||
* $FreeBSD: src/include/assert.h,v 1.4 2002/03/23 17:24:53 imp Exp $
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifdef __cplusplus
|
||||
#include <stdlib.h>
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/*
|
||||
* Unlike other ANSI header files, <assert.h> may usefully be included
|
||||
* multiple times, with and without NDEBUG defined.
|
||||
*/
|
||||
|
||||
#undef assert
|
||||
#undef __assert
|
||||
|
||||
#ifdef NDEBUG
|
||||
#define assert(e) ((void)0)
|
||||
#else
|
||||
|
||||
#ifndef __GNUC__
|
||||
|
||||
__BEGIN_DECLS
|
||||
#ifndef __cplusplus
|
||||
void abort(void) __dead2 __cold;
|
||||
#endif /* !__cplusplus */
|
||||
int printf(const char * __restrict, ...);
|
||||
__END_DECLS
|
||||
|
||||
#define assert(e) \
|
||||
((void) ((e) ? ((void)0) : __assert (#e, __FILE__, __LINE__)))
|
||||
#define __assert(e, file, line) \
|
||||
((void)printf ("%s:%d: failed assertion `%s'\n", file, line, e), abort())
|
||||
|
||||
#else /* __GNUC__ */
|
||||
|
||||
__BEGIN_DECLS
|
||||
void __assert_rtn(const char *, const char *, int, const char *) __dead2 __cold __disable_tail_calls;
|
||||
#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__-0) < 1070)
|
||||
void __eprintf(const char *, const char *, unsigned, const char *) __dead2 __cold;
|
||||
#endif
|
||||
__END_DECLS
|
||||
|
||||
#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__-0) < 1070)
|
||||
#define __assert(e, file, line) \
|
||||
__eprintf ("%s:%d: failed assertion `%s'\n", file, line, e)
|
||||
#else
|
||||
/* 8462256: modified __assert_rtn() replaces deprecated __eprintf() */
|
||||
#define __assert(e, file, line) \
|
||||
__assert_rtn ((const char *)-1L, file, line, e)
|
||||
#endif
|
||||
|
||||
#if __DARWIN_UNIX03
|
||||
#define assert(e) \
|
||||
(__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)
|
||||
#else /* !__DARWIN_UNIX03 */
|
||||
#define assert(e) \
|
||||
(__builtin_expect(!(e), 0) ? __assert (#e, __FILE__, __LINE__) : (void)0)
|
||||
#endif /* __DARWIN_UNIX03 */
|
||||
|
||||
#endif /* __GNUC__ */
|
||||
#endif /* NDEBUG */
|
||||
|
||||
#ifndef _ASSERT_H_
|
||||
#define _ASSERT_H_
|
||||
|
||||
#ifndef __cplusplus
|
||||
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
|
||||
#define static_assert _Static_assert
|
||||
#endif /* __STDC_VERSION__ */
|
||||
#endif /* !__cplusplus */
|
||||
|
||||
#endif /* _ASSERT_H_ */
|
||||
118
lib/libc/include/any-macos.11-any/device/device_types.h
vendored
Normal file
118
lib/libc/include/any-macos.11-any/device/device_types.h
vendored
Normal file
@ -0,0 +1,118 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* @OSF_COPYRIGHT@
|
||||
*/
|
||||
/*
|
||||
* Mach Operating System
|
||||
* Copyright (c) 1991,1990,1989 Carnegie Mellon University
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission to use, copy, modify and distribute this software and its
|
||||
* documentation is hereby granted, provided that both the copyright
|
||||
* notice and this permission notice appear in all copies of the
|
||||
* software, derivative works or modified versions, and any portions
|
||||
* thereof, and that both notices appear in supporting documentation.
|
||||
*
|
||||
* CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
|
||||
* CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
|
||||
* ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
|
||||
*
|
||||
* Carnegie Mellon requests users of this software to return to
|
||||
*
|
||||
* Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
|
||||
* School of Computer Science
|
||||
* Carnegie Mellon University
|
||||
* Pittsburgh PA 15213-3890
|
||||
*
|
||||
* any improvements or extensions that they make and grant Carnegie Mellon
|
||||
* the rights to redistribute these changes.
|
||||
*/
|
||||
/*
|
||||
*/
|
||||
/*
|
||||
* Author: David B. Golub, Carnegie Mellon University
|
||||
* Date: 3/89
|
||||
*/
|
||||
|
||||
#ifndef DEVICE_TYPES_H
|
||||
#define DEVICE_TYPES_H
|
||||
|
||||
/*
|
||||
* Types for device interface.
|
||||
*/
|
||||
#include <mach/std_types.h>
|
||||
#include <mach/mach_types.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/port.h>
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* IO buffer - out-of-line array of characters.
|
||||
*/
|
||||
typedef char * io_buf_ptr_t;
|
||||
|
||||
/*
|
||||
* Some types for IOKit.
|
||||
*/
|
||||
|
||||
#ifdef IOKIT
|
||||
|
||||
/* must match device_types.defs */
|
||||
typedef char io_name_t[128];
|
||||
typedef char io_string_t[512];
|
||||
typedef char io_string_inband_t[4096];
|
||||
typedef char io_struct_inband_t[4096];
|
||||
|
||||
#if __LP64__
|
||||
typedef uint64_t io_user_scalar_t;
|
||||
typedef uint64_t io_user_reference_t;
|
||||
typedef io_user_scalar_t io_scalar_inband_t[16];
|
||||
typedef io_user_reference_t io_async_ref_t[8];
|
||||
typedef io_user_scalar_t io_scalar_inband64_t[16];
|
||||
typedef io_user_reference_t io_async_ref64_t[8];
|
||||
#else
|
||||
typedef int io_user_scalar_t;
|
||||
typedef natural_t io_user_reference_t;
|
||||
typedef io_user_scalar_t io_scalar_inband_t[16];
|
||||
typedef io_user_reference_t io_async_ref_t[8];
|
||||
typedef uint64_t io_scalar_inband64_t[16];
|
||||
typedef uint64_t io_async_ref64_t[8];
|
||||
#endif // __LP64__
|
||||
|
||||
|
||||
#ifndef __IOKIT_PORTS_DEFINED__
|
||||
#define __IOKIT_PORTS_DEFINED__
|
||||
typedef mach_port_t io_object_t;
|
||||
#endif /* __IOKIT_PORTS_DEFINED__ */
|
||||
|
||||
|
||||
#endif /* IOKIT */
|
||||
|
||||
#endif /* DEVICE_TYPES_H */
|
||||
306
lib/libc/include/any-macos.11-any/dispatch/base.h
vendored
Normal file
306
lib/libc/include/any-macos.11-any/dispatch/base.h
vendored
Normal file
@ -0,0 +1,306 @@
|
||||
/*
|
||||
* Copyright (c) 2008-2012 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_BASE__
|
||||
#define __DISPATCH_BASE__
|
||||
|
||||
#ifndef __DISPATCH_INDIRECT__
|
||||
#error "Please #include <dispatch/dispatch.h> instead of this file directly."
|
||||
#endif
|
||||
|
||||
#ifndef __has_builtin
|
||||
#define __has_builtin(x) 0
|
||||
#endif
|
||||
#ifndef __has_include
|
||||
#define __has_include(x) 0
|
||||
#endif
|
||||
#ifndef __has_feature
|
||||
#define __has_feature(x) 0
|
||||
#endif
|
||||
#ifndef __has_attribute
|
||||
#define __has_attribute(x) 0
|
||||
#endif
|
||||
#ifndef __has_extension
|
||||
#define __has_extension(x) 0
|
||||
#endif
|
||||
|
||||
#if __GNUC__
|
||||
#define DISPATCH_NORETURN __attribute__((__noreturn__))
|
||||
#define DISPATCH_NOTHROW __attribute__((__nothrow__))
|
||||
#define DISPATCH_NONNULL1 __attribute__((__nonnull__(1)))
|
||||
#define DISPATCH_NONNULL2 __attribute__((__nonnull__(2)))
|
||||
#define DISPATCH_NONNULL3 __attribute__((__nonnull__(3)))
|
||||
#define DISPATCH_NONNULL4 __attribute__((__nonnull__(4)))
|
||||
#define DISPATCH_NONNULL5 __attribute__((__nonnull__(5)))
|
||||
#define DISPATCH_NONNULL6 __attribute__((__nonnull__(6)))
|
||||
#define DISPATCH_NONNULL7 __attribute__((__nonnull__(7)))
|
||||
#if __clang__ && __clang_major__ < 3
|
||||
// rdar://problem/6857843
|
||||
#define DISPATCH_NONNULL_ALL
|
||||
#else
|
||||
#define DISPATCH_NONNULL_ALL __attribute__((__nonnull__))
|
||||
#endif
|
||||
#define DISPATCH_SENTINEL __attribute__((__sentinel__))
|
||||
#define DISPATCH_PURE __attribute__((__pure__))
|
||||
#define DISPATCH_CONST __attribute__((__const__))
|
||||
#define DISPATCH_WARN_RESULT __attribute__((__warn_unused_result__))
|
||||
#define DISPATCH_MALLOC __attribute__((__malloc__))
|
||||
#define DISPATCH_ALWAYS_INLINE __attribute__((__always_inline__))
|
||||
#define DISPATCH_UNAVAILABLE __attribute__((__unavailable__))
|
||||
#define DISPATCH_UNAVAILABLE_MSG(msg) __attribute__((__unavailable__(msg)))
|
||||
#elif defined(_MSC_VER)
|
||||
#define DISPATCH_NORETURN __declspec(noreturn)
|
||||
#define DISPATCH_NOTHROW __declspec(nothrow)
|
||||
#define DISPATCH_NONNULL1
|
||||
#define DISPATCH_NONNULL2
|
||||
#define DISPATCH_NONNULL3
|
||||
#define DISPATCH_NONNULL4
|
||||
#define DISPATCH_NONNULL5
|
||||
#define DISPATCH_NONNULL6
|
||||
#define DISPATCH_NONNULL7
|
||||
#define DISPATCH_NONNULL_ALL
|
||||
#define DISPATCH_SENTINEL
|
||||
#define DISPATCH_PURE
|
||||
#define DISPATCH_CONST
|
||||
#if (_MSC_VER >= 1700)
|
||||
#define DISPATCH_WARN_RESULT _Check_return_
|
||||
#else
|
||||
#define DISPATCH_WARN_RESULT
|
||||
#endif
|
||||
#define DISPATCH_MALLOC
|
||||
#define DISPATCH_ALWAYS_INLINE __forceinline
|
||||
#define DISPATCH_UNAVAILABLE
|
||||
#define DISPATCH_UNAVAILABLE_MSG(msg)
|
||||
#else
|
||||
/*! @parseOnly */
|
||||
#define DISPATCH_NORETURN
|
||||
/*! @parseOnly */
|
||||
#define DISPATCH_NOTHROW
|
||||
/*! @parseOnly */
|
||||
#define DISPATCH_NONNULL1
|
||||
/*! @parseOnly */
|
||||
#define DISPATCH_NONNULL2
|
||||
/*! @parseOnly */
|
||||
#define DISPATCH_NONNULL3
|
||||
/*! @parseOnly */
|
||||
#define DISPATCH_NONNULL4
|
||||
/*! @parseOnly */
|
||||
#define DISPATCH_NONNULL5
|
||||
/*! @parseOnly */
|
||||
#define DISPATCH_NONNULL6
|
||||
/*! @parseOnly */
|
||||
#define DISPATCH_NONNULL7
|
||||
/*! @parseOnly */
|
||||
#define DISPATCH_NONNULL_ALL
|
||||
/*! @parseOnly */
|
||||
#define DISPATCH_SENTINEL
|
||||
/*! @parseOnly */
|
||||
#define DISPATCH_PURE
|
||||
/*! @parseOnly */
|
||||
#define DISPATCH_CONST
|
||||
/*! @parseOnly */
|
||||
#define DISPATCH_WARN_RESULT
|
||||
/*! @parseOnly */
|
||||
#define DISPATCH_MALLOC
|
||||
/*! @parseOnly */
|
||||
#define DISPATCH_ALWAYS_INLINE
|
||||
/*! @parseOnly */
|
||||
#define DISPATCH_UNAVAILABLE
|
||||
/*! @parseOnly */
|
||||
#define DISPATCH_UNAVAILABLE_MSG(msg)
|
||||
#endif
|
||||
|
||||
#define DISPATCH_LINUX_UNAVAILABLE()
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
#define DISPATCH_FREEBSD_UNAVAILABLE() \
|
||||
DISPATCH_UNAVAILABLE_MSG( \
|
||||
"This interface is unavailable on FreeBSD systems")
|
||||
#else
|
||||
#define DISPATCH_FREEBSD_UNAVAILABLE()
|
||||
#endif
|
||||
|
||||
#ifndef DISPATCH_ALIAS_V2
|
||||
#if TARGET_OS_MAC
|
||||
#define DISPATCH_ALIAS_V2(sym) __asm__("_" #sym "$V2")
|
||||
#else
|
||||
#define DISPATCH_ALIAS_V2(sym)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
#if defined(__cplusplus)
|
||||
#define DISPATCH_EXPORT extern "C" __declspec(dllimport)
|
||||
#else
|
||||
#define DISPATCH_EXPORT extern __declspec(dllimport)
|
||||
#endif
|
||||
#elif __GNUC__
|
||||
#define DISPATCH_EXPORT extern __attribute__((visibility("default")))
|
||||
#else
|
||||
#define DISPATCH_EXPORT extern
|
||||
#endif
|
||||
|
||||
#if __GNUC__
|
||||
#define DISPATCH_INLINE static __inline__
|
||||
#else
|
||||
#define DISPATCH_INLINE static inline
|
||||
#endif
|
||||
|
||||
#if __GNUC__
|
||||
#define DISPATCH_EXPECT(x, v) __builtin_expect((x), (v))
|
||||
#define dispatch_compiler_barrier() __asm__ __volatile__("" ::: "memory")
|
||||
#else
|
||||
#define DISPATCH_EXPECT(x, v) (x)
|
||||
#define dispatch_compiler_barrier() do { } while (0)
|
||||
#endif
|
||||
|
||||
#if __has_attribute(not_tail_called)
|
||||
#define DISPATCH_NOT_TAIL_CALLED __attribute__((__not_tail_called__))
|
||||
#else
|
||||
#define DISPATCH_NOT_TAIL_CALLED
|
||||
#endif
|
||||
|
||||
#if __has_builtin(__builtin_assume)
|
||||
#define DISPATCH_COMPILER_CAN_ASSUME(expr) __builtin_assume(expr)
|
||||
#else
|
||||
#define DISPATCH_COMPILER_CAN_ASSUME(expr) ((void)(expr))
|
||||
#endif
|
||||
|
||||
#if __has_attribute(noescape)
|
||||
#define DISPATCH_NOESCAPE __attribute__((__noescape__))
|
||||
#else
|
||||
#define DISPATCH_NOESCAPE
|
||||
#endif
|
||||
|
||||
#if __has_attribute(cold)
|
||||
#define DISPATCH_COLD __attribute__((__cold__))
|
||||
#else
|
||||
#define DISPATCH_COLD
|
||||
#endif
|
||||
|
||||
#if __has_feature(assume_nonnull)
|
||||
#define DISPATCH_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin")
|
||||
#define DISPATCH_ASSUME_NONNULL_END _Pragma("clang assume_nonnull end")
|
||||
#else
|
||||
#define DISPATCH_ASSUME_NONNULL_BEGIN
|
||||
#define DISPATCH_ASSUME_NONNULL_END
|
||||
#endif
|
||||
|
||||
#if !__has_feature(nullability)
|
||||
#ifndef _Nullable
|
||||
#define _Nullable
|
||||
#endif
|
||||
#ifndef _Nonnull
|
||||
#define _Nonnull
|
||||
#endif
|
||||
#ifndef _Null_unspecified
|
||||
#define _Null_unspecified
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef DISPATCH_RETURNS_RETAINED_BLOCK
|
||||
#if __has_attribute(ns_returns_retained)
|
||||
#define DISPATCH_RETURNS_RETAINED_BLOCK __attribute__((__ns_returns_retained__))
|
||||
#else
|
||||
#define DISPATCH_RETURNS_RETAINED_BLOCK
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if __has_attribute(enum_extensibility)
|
||||
#define __DISPATCH_ENUM_ATTR __attribute__((__enum_extensibility__(open)))
|
||||
#define __DISPATCH_ENUM_ATTR_CLOSED __attribute__((__enum_extensibility__(closed)))
|
||||
#else
|
||||
#define __DISPATCH_ENUM_ATTR
|
||||
#define __DISPATCH_ENUM_ATTR_CLOSED
|
||||
#endif // __has_attribute(enum_extensibility)
|
||||
|
||||
#if __has_attribute(flag_enum)
|
||||
#define __DISPATCH_OPTIONS_ATTR __attribute__((__flag_enum__))
|
||||
#else
|
||||
#define __DISPATCH_OPTIONS_ATTR
|
||||
#endif // __has_attribute(flag_enum)
|
||||
|
||||
|
||||
#if __has_feature(objc_fixed_enum) || __has_extension(cxx_strong_enums) || \
|
||||
__has_extension(cxx_fixed_enum) || defined(_WIN32)
|
||||
#define DISPATCH_ENUM(name, type, ...) \
|
||||
typedef enum : type { __VA_ARGS__ } __DISPATCH_ENUM_ATTR name##_t
|
||||
#define DISPATCH_OPTIONS(name, type, ...) \
|
||||
typedef enum : type { __VA_ARGS__ } __DISPATCH_OPTIONS_ATTR __DISPATCH_ENUM_ATTR name##_t
|
||||
#else
|
||||
#define DISPATCH_ENUM(name, type, ...) \
|
||||
enum { __VA_ARGS__ } __DISPATCH_ENUM_ATTR; typedef type name##_t
|
||||
#define DISPATCH_OPTIONS(name, type, ...) \
|
||||
enum { __VA_ARGS__ } __DISPATCH_OPTIONS_ATTR __DISPATCH_ENUM_ATTR; typedef type name##_t
|
||||
#endif // __has_feature(objc_fixed_enum) ...
|
||||
|
||||
|
||||
|
||||
#if __has_feature(enumerator_attributes)
|
||||
#define DISPATCH_ENUM_API_AVAILABLE(...) API_AVAILABLE(__VA_ARGS__)
|
||||
#define DISPATCH_ENUM_API_DEPRECATED(...) API_DEPRECATED(__VA_ARGS__)
|
||||
#define DISPATCH_ENUM_API_DEPRECATED_WITH_REPLACEMENT(...) \
|
||||
API_DEPRECATED_WITH_REPLACEMENT(__VA_ARGS__)
|
||||
#else
|
||||
#define DISPATCH_ENUM_API_AVAILABLE(...)
|
||||
#define DISPATCH_ENUM_API_DEPRECATED(...)
|
||||
#define DISPATCH_ENUM_API_DEPRECATED_WITH_REPLACEMENT(...)
|
||||
#endif
|
||||
|
||||
#ifdef __swift__
|
||||
#define DISPATCH_SWIFT3_OVERLAY 1
|
||||
#else // __swift__
|
||||
#define DISPATCH_SWIFT3_OVERLAY 0
|
||||
#endif // __swift__
|
||||
|
||||
#if __has_feature(attribute_availability_swift)
|
||||
#define DISPATCH_SWIFT_UNAVAILABLE(_msg) \
|
||||
__attribute__((__availability__(swift, unavailable, message=_msg)))
|
||||
#else
|
||||
#define DISPATCH_SWIFT_UNAVAILABLE(_msg)
|
||||
#endif
|
||||
|
||||
#if DISPATCH_SWIFT3_OVERLAY
|
||||
#define DISPATCH_SWIFT3_UNAVAILABLE(_msg) DISPATCH_SWIFT_UNAVAILABLE(_msg)
|
||||
#else
|
||||
#define DISPATCH_SWIFT3_UNAVAILABLE(_msg)
|
||||
#endif
|
||||
|
||||
#if __has_attribute(swift_private)
|
||||
#define DISPATCH_REFINED_FOR_SWIFT __attribute__((__swift_private__))
|
||||
#else
|
||||
#define DISPATCH_REFINED_FOR_SWIFT
|
||||
#endif
|
||||
|
||||
#if __has_attribute(swift_name)
|
||||
#define DISPATCH_SWIFT_NAME(_name) __attribute__((__swift_name__(#_name)))
|
||||
#else
|
||||
#define DISPATCH_SWIFT_NAME(_name)
|
||||
#endif
|
||||
|
||||
#ifndef __cplusplus
|
||||
#define DISPATCH_TRANSPARENT_UNION __attribute__((__transparent_union__))
|
||||
#else
|
||||
#define DISPATCH_TRANSPARENT_UNION
|
||||
#endif
|
||||
|
||||
typedef void (*dispatch_function_t)(void *_Nullable);
|
||||
|
||||
#endif
|
||||
@ -480,7 +480,7 @@ DISPATCH_EXPORT DISPATCH_NONNULL3 DISPATCH_NOTHROW
|
||||
void
|
||||
dispatch_apply(size_t iterations,
|
||||
dispatch_queue_t DISPATCH_APPLY_QUEUE_ARG_NULLABILITY queue,
|
||||
DISPATCH_NOESCAPE void (^block)(size_t iteration));
|
||||
DISPATCH_NOESCAPE void (^block)(size_t));
|
||||
#endif
|
||||
|
||||
/*!
|
||||
@ -515,7 +515,7 @@ DISPATCH_EXPORT DISPATCH_NONNULL4 DISPATCH_NOTHROW
|
||||
void
|
||||
dispatch_apply_f(size_t iterations,
|
||||
dispatch_queue_t DISPATCH_APPLY_QUEUE_ARG_NULLABILITY queue,
|
||||
void *_Nullable context, void (*work)(void *_Nullable context, size_t iteration));
|
||||
void *_Nullable context, void (*work)(void *_Nullable, size_t));
|
||||
|
||||
/*!
|
||||
* @function dispatch_get_current_queue
|
||||
|
||||
63
lib/libc/include/any-macos.11-any/execinfo.h
vendored
Normal file
63
lib/libc/include/any-macos.11-any/execinfo.h
vendored
Normal file
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright (c) 2007 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
#ifndef _EXECINFO_H_
|
||||
#define _EXECINFO_H_ 1
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <Availability.h>
|
||||
#include <os/base.h>
|
||||
#include <os/availability.h>
|
||||
#include <stdint.h>
|
||||
#include <uuid/uuid.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
int backtrace(void**,int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
|
||||
|
||||
API_AVAILABLE(macosx(10.14), ios(12.0), tvos(12.0), watchos(5.0))
|
||||
OS_EXPORT
|
||||
int backtrace_from_fp(void *startfp, void **array, int size);
|
||||
|
||||
char** backtrace_symbols(void* const*,int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
|
||||
void backtrace_symbols_fd(void* const*,int,int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
|
||||
|
||||
struct image_offset {
|
||||
/*
|
||||
* The UUID of the image.
|
||||
*/
|
||||
uuid_t uuid;
|
||||
|
||||
/*
|
||||
* The offset is relative to the __TEXT section of the image.
|
||||
*/
|
||||
uint32_t offset;
|
||||
};
|
||||
|
||||
API_AVAILABLE(macosx(10.14), ios(12.0), tvos(12.0), watchos(5.0))
|
||||
OS_EXPORT
|
||||
void backtrace_image_offsets(void* const* array,
|
||||
struct image_offset *image_offsets, int size);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* !_EXECINFO_H_ */
|
||||
42
lib/libc/include/any-macos.11-any/gethostuuid.h
vendored
Normal file
42
lib/libc/include/any-macos.11-any/gethostuuid.h
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright (c) 2013 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#ifndef __GETHOSTUUID_H
|
||||
#define __GETHOSTUUID_H
|
||||
|
||||
#include <sys/_types/_timespec.h>
|
||||
#include <sys/_types/_uuid_t.h>
|
||||
#include <Availability.h>
|
||||
|
||||
#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && (__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0)
|
||||
int gethostuuid(uuid_t, const struct timespec *) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_NA, __MAC_NA, __IPHONE_2_0, __IPHONE_5_0, "gethostuuid() is no longer supported");
|
||||
#else
|
||||
int gethostuuid(uuid_t, const struct timespec *) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_NA);
|
||||
#endif
|
||||
|
||||
#endif /* __GETHOSTUUID_H */
|
||||
69
lib/libc/include/any-macos.11-any/libkern/OSDebug.h
vendored
Normal file
69
lib/libc/include/any-macos.11-any/libkern/OSDebug.h
vendored
Normal file
@ -0,0 +1,69 @@
|
||||
/*
|
||||
* Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* HISTORY
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _OS_OSDEBBUG_H
|
||||
#define _OS_OSDEBBUG_H
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <mach/mach_types.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
extern int log_leaks;
|
||||
|
||||
/* Use kernel_debug() to log a backtrace */
|
||||
extern void trace_backtrace(unsigned int debugid, unsigned int debugid2, unsigned long size, unsigned long data);
|
||||
/* Report a message with a 4 entry backtrace - very slow */
|
||||
extern void OSReportWithBacktrace(const char *str, ...);
|
||||
extern unsigned OSBacktrace(void **bt, unsigned maxAddrs);
|
||||
|
||||
/* Simple dump of 20 backtrace entries */
|
||||
extern void OSPrintBacktrace(void);
|
||||
|
||||
/*! @function OSKernelStackRemaining
|
||||
* @abstract Returns bytes available below the current stack frame.
|
||||
* @discussion Returns bytes available below the current stack frame. Safe for interrupt or thread context.
|
||||
* @result Approximate byte count available. */
|
||||
|
||||
vm_offset_t OSKernelStackRemaining( void );
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#define TRACE_MACHLEAKS(a, b, c, d) \
|
||||
do { \
|
||||
if (__builtin_expect(!!log_leaks, 0)) \
|
||||
trace_backtrace(a,b,c,d); \
|
||||
} while(0)
|
||||
|
||||
#endif /* !_OS_OSDEBBUG_H */
|
||||
572
lib/libc/include/any-macos.11-any/libkern/OSKextLib.h
vendored
Normal file
572
lib/libc/include/any-macos.11-any/libkern/OSKextLib.h
vendored
Normal file
@ -0,0 +1,572 @@
|
||||
/*
|
||||
* Copyright (c) 2008 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#ifndef _LIBKERN_OSKEXTLIB_H
|
||||
#define _LIBKERN_OSKEXTLIB_H
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__BEGIN_DECLS
|
||||
|
||||
#include <stdint.h>
|
||||
#include <mach/kmod.h>
|
||||
#include <mach/vm_types.h>
|
||||
#include <uuid/uuid.h>
|
||||
|
||||
#include <CoreFoundation/CoreFoundation.h>
|
||||
#include <libkern/OSReturn.h>
|
||||
|
||||
/*!
|
||||
* @header
|
||||
*
|
||||
* Declares functions, basic return values, and other constants
|
||||
* related to kernel extensions (kexts).
|
||||
*/
|
||||
|
||||
#if PRAGMA_MARK
|
||||
#pragma mark -
|
||||
/********************************************************************/
|
||||
#pragma mark OSReturn Values for Kernel Extensions
|
||||
/********************************************************************/
|
||||
#endif
|
||||
/*!
|
||||
* @group OSReturn Values for Kernel Extensions
|
||||
* Many kext-related functions return these values,
|
||||
* as well as those defined under
|
||||
* <code>@link //apple_ref/c/tdef/OSReturn OSReturn@/link</code>
|
||||
* and other variants of <code>kern_return_t</code>.
|
||||
*/
|
||||
|
||||
|
||||
#define sub_libkern_kext err_sub(2)
|
||||
#define libkern_kext_err(code) (sys_libkern|sub_libkern_kext|(code))
|
||||
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnInternalError
|
||||
* @abstract An internal error in the kext library.
|
||||
* Contrast with <code>@link //apple_ref/c/econst/OSReturnError
|
||||
* OSReturnError@/link</code>.
|
||||
*/
|
||||
#define kOSKextReturnInternalError libkern_kext_err(0x1)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnNoMemory
|
||||
* @abstract Memory allocation failed.
|
||||
*/
|
||||
#define kOSKextReturnNoMemory libkern_kext_err(0x2)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnNoResources
|
||||
* @abstract Some resource other than memory (such as available load tags)
|
||||
* is exhausted.
|
||||
*/
|
||||
#define kOSKextReturnNoResources libkern_kext_err(0x3)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnNotPrivileged
|
||||
* @abstract The caller lacks privileges to perform the requested operation.
|
||||
*/
|
||||
#define kOSKextReturnNotPrivileged libkern_kext_err(0x4)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnInvalidArgument
|
||||
* @abstract Invalid argument.
|
||||
*/
|
||||
#define kOSKextReturnInvalidArgument libkern_kext_err(0x5)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnNotFound
|
||||
* @abstract Search item not found.
|
||||
*/
|
||||
#define kOSKextReturnNotFound libkern_kext_err(0x6)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnBadData
|
||||
* @abstract Malformed data (not used for XML).
|
||||
*/
|
||||
#define kOSKextReturnBadData libkern_kext_err(0x7)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnSerialization
|
||||
* @abstract Error converting or (un)serializing URL, string, or XML.
|
||||
*/
|
||||
#define kOSKextReturnSerialization libkern_kext_err(0x8)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnUnsupported
|
||||
* @abstract Operation is no longer or not yet supported.
|
||||
*/
|
||||
#define kOSKextReturnUnsupported libkern_kext_err(0x9)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnDisabled
|
||||
* @abstract Operation is currently disabled.
|
||||
*/
|
||||
#define kOSKextReturnDisabled libkern_kext_err(0xa)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnNotAKext
|
||||
* @abstract Bundle is not a kernel extension.
|
||||
*/
|
||||
#define kOSKextReturnNotAKext libkern_kext_err(0xb)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnValidation
|
||||
* @abstract Validation failures encountered; check diagnostics for details.
|
||||
*/
|
||||
#define kOSKextReturnValidation libkern_kext_err(0xc)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnAuthentication
|
||||
* @abstract Authetication failures encountered; check diagnostics for details.
|
||||
*/
|
||||
#define kOSKextReturnAuthentication libkern_kext_err(0xd)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnDependencies
|
||||
* @abstract Dependency resolution failures encountered; check diagnostics for details.
|
||||
*/
|
||||
#define kOSKextReturnDependencies libkern_kext_err(0xe)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnArchNotFound
|
||||
* @abstract Kext does not contain code for the requested architecture.
|
||||
*/
|
||||
#define kOSKextReturnArchNotFound libkern_kext_err(0xf)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnCache
|
||||
* @abstract An error occurred processing a system kext cache.
|
||||
*/
|
||||
#define kOSKextReturnCache libkern_kext_err(0x10)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnDeferred
|
||||
* @abstract Operation has been posted asynchronously to user space (kernel only).
|
||||
*/
|
||||
#define kOSKextReturnDeferred libkern_kext_err(0x11)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnBootLevel
|
||||
* @abstract Kext not loadable or operation not allowed at current boot level.
|
||||
*/
|
||||
#define kOSKextReturnBootLevel libkern_kext_err(0x12)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnNotLoadable
|
||||
* @abstract Kext cannot be loaded; check diagnostics for details.
|
||||
*/
|
||||
#define kOSKextReturnNotLoadable libkern_kext_err(0x13)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnLoadedVersionDiffers
|
||||
* @abstract A different version (or executable UUID, or executable by checksum)
|
||||
* of the requested kext is already loaded.
|
||||
*/
|
||||
#define kOSKextReturnLoadedVersionDiffers libkern_kext_err(0x14)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnDependencyLoadError
|
||||
* @abstract A load error occurred on a dependency of the kext being loaded.
|
||||
*/
|
||||
#define kOSKextReturnDependencyLoadError libkern_kext_err(0x15)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnLinkError
|
||||
* @abstract A link failure occured with this kext or a dependency.
|
||||
*/
|
||||
#define kOSKextReturnLinkError libkern_kext_err(0x16)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnStartStopError
|
||||
* @abstract The kext start or stop routine returned an error.
|
||||
*/
|
||||
#define kOSKextReturnStartStopError libkern_kext_err(0x17)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnInUse
|
||||
* @abstract The kext is currently in use or has outstanding references,
|
||||
* and cannot be unloaded.
|
||||
*/
|
||||
#define kOSKextReturnInUse libkern_kext_err(0x18)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnTimeout
|
||||
* @abstract A kext request has timed out.
|
||||
*/
|
||||
#define kOSKextReturnTimeout libkern_kext_err(0x19)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnStopping
|
||||
* @abstract The kext is in the process of stopping; requests cannot be made.
|
||||
*/
|
||||
#define kOSKextReturnStopping libkern_kext_err(0x1a)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnSystemPolicy
|
||||
* @abstract The kext was prevented from loading due to system policy.
|
||||
*/
|
||||
#define kOSKextReturnSystemPolicy libkern_kext_err(0x1b)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnKCLoadFailure
|
||||
* @abstract Loading of the System KC failed
|
||||
*/
|
||||
#define kOSKextReturnKCLoadFailure libkern_kext_err(0x1c)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnKCLoadFailureSystemKC
|
||||
* @abstract Loading of the System KC failed
|
||||
*
|
||||
* This a sub-code of kOSKextReturnKCLoadFailure. It can be OR'd together
|
||||
* with: kOSKextReturnKCLoadFailureAuxKC
|
||||
*
|
||||
* If both the System and Aux KCs fail to load, then the error code will be:
|
||||
* libkern_kext_err(0x1f)
|
||||
*/
|
||||
#define kOSKextReturnKCLoadFailureSystemKC libkern_kext_err(0x1d)
|
||||
|
||||
/*!
|
||||
* @define kOSKextReturnKCLoadFailureAuxKC
|
||||
* @abstract Loading of the Aux KC failed
|
||||
*
|
||||
* This a sub-code of kOSKextReturnKCLoadFailure. It can be OR'd together
|
||||
* with: kOSKextReturnKCLoadFailureSystemKC
|
||||
*
|
||||
* If both the System and Aux KCs fail to load, then the error code will be:
|
||||
* libkern_kext_err(0x1f)
|
||||
*/
|
||||
#define kOSKextReturnKCLoadFailureAuxKC libkern_kext_err(0x1e)
|
||||
|
||||
/* next available error is: libkern_kext_err(0x20) */
|
||||
|
||||
#if PRAGMA_MARK
|
||||
#pragma mark -
|
||||
/********************************************************************/
|
||||
#pragma mark Kext/OSBundle Property List Keys
|
||||
/********************************************************************/
|
||||
#endif
|
||||
/*!
|
||||
* @group Kext Property List Keys
|
||||
* These constants cover CFBundle properties defined for kernel extensions.
|
||||
* Because they are used in the kernel, if you want to use one with
|
||||
* CFBundle APIs you'll need to wrap it in a <code>CFSTR()</code> macro.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
* @define kOSBundleCompatibleVersionKey
|
||||
* @abstract A string giving the backwards-compatible version of a library kext
|
||||
* in extended Mac OS 'vers' format (####.##.##s{1-255} where 's'
|
||||
* is a build stage 'd', 'a', 'b', 'f' or 'fc').
|
||||
*/
|
||||
#define kOSBundleCompatibleVersionKey "OSBundleCompatibleVersion"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleEnableKextLoggingKey
|
||||
* @abstract Set to true to have the kernel kext logging spec applied
|
||||
* to the kext.
|
||||
* See <code>@link //apple_ref/c/econst/OSKextLogSpec
|
||||
* OSKextLogSpec@/link</code>.
|
||||
*/
|
||||
#define kOSBundleEnableKextLoggingKey "OSBundleEnableKextLogging"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleIsInterfaceKey
|
||||
* @abstract A boolean value indicating whether the kext executable
|
||||
* contains only symbol references.
|
||||
*/
|
||||
#define kOSBundleIsInterfaceKey "OSBundleIsInterface"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleLibrariesKey
|
||||
* @abstract A dictionary listing link dependencies for this kext.
|
||||
* Keys are bundle identifiers, values are version strings.
|
||||
*/
|
||||
#define kOSBundleLibrariesKey "OSBundleLibraries"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleRequiredKey
|
||||
* @abstract A string indicating in which kinds of startup this kext
|
||||
* may need to load during early startup (before
|
||||
* <code>@link //apple_ref/doc/man/8/kextd kextcache(8)@/link</code>).
|
||||
* @discussion
|
||||
* The value is one of:
|
||||
* <ul>
|
||||
* <li>@link kOSBundleRequiredRoot "OSBundleRequiredRoot"@/link</li>
|
||||
* <li>@link kOSBundleRequiredLocalRoot "OSBundleRequiredLocalRoot"@/link</li>
|
||||
* <li>@link kOSBundleRequiredNetworkRoot "OSBundleRequiredNetworkRoot"@/link</li>
|
||||
* <li>@link kOSBundleRequiredSafeBoot "OSBundleRequiredSafeBoot"@/link</li>
|
||||
* <li>@link kOSBundleRequiredConsole "OSBundleRequiredConsole"@/link</li>
|
||||
* </ul>
|
||||
*
|
||||
* Use this property judiciously.
|
||||
* Every kext that declares a value other than "OSBundleRequiredSafeBoot"
|
||||
* increases startup time, as the booter must read it into memory,
|
||||
* or startup kext caches must include it.
|
||||
*/
|
||||
#define kOSBundleRequiredKey "OSBundleRequired"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleRequireExplicitLoadKey
|
||||
* @abstract A boolean value indicating whether the kext requires an
|
||||
* explicit kextload in order to start/match.
|
||||
*/
|
||||
#define kOSBundleRequireExplicitLoadKey "OSBundleRequireExplicitLoad"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleAllowUserLoadKey
|
||||
* @abstract A boolean value indicating whether
|
||||
* <code>@link //apple_ref/doc/man/8/kextd kextcache(8)@/link</code>
|
||||
* will honor a non-root process's request to load a kext.
|
||||
* @discussion
|
||||
* See <code>@link //apple_ref/doc/compositePage/c/func/KextManagerLoadKextWithURL
|
||||
* KextManagerLoadKextWithURL@/link</code>
|
||||
* and <code>@link //apple_ref/doc/compositePage/c/func/KextManagerLoadKextWithIdentifier
|
||||
* KextManagerLoadKextWithIdentifier@/link</code>.
|
||||
*/
|
||||
#define kOSBundleAllowUserLoadKey "OSBundleAllowUserLoad"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleAllowUserTerminateKey
|
||||
* @abstract A boolean value indicating whether the kextunload tool
|
||||
* is allowed to issue IOService terminate to classes defined in this kext.
|
||||
* @discussion A boolean value indicating whether the kextunload tool
|
||||
* is allowed to issue IOService terminate to classes defined in this kext.
|
||||
*/
|
||||
#define kOSBundleAllowUserTerminateKey "OSBundleAllowUserTerminate"
|
||||
|
||||
/*!
|
||||
* @define kOSKernelResourceKey
|
||||
* @abstract A boolean value indicating whether the kext represents a built-in
|
||||
* component of the kernel.
|
||||
*/
|
||||
#define kOSKernelResourceKey "OSKernelResource"
|
||||
|
||||
/*!
|
||||
* @define kOSKextVariantOverrideKey
|
||||
* @abstract A dictionary with target names as key and a target-specific variant
|
||||
* name as value.
|
||||
*/
|
||||
#define kOSKextVariantOverrideKey "OSKextVariantOverride"
|
||||
|
||||
/*!
|
||||
* @define kIOKitPersonalitiesKey
|
||||
* @abstract A dictionary of dictionaries used in matching for I/O Kit drivers.
|
||||
*/
|
||||
#define kIOKitPersonalitiesKey "IOKitPersonalities"
|
||||
|
||||
/*
|
||||
* @define kIOPersonalityPublisherKey
|
||||
* @abstract Used in personalities sent to the I/O Kit,
|
||||
* contains the CFBundleIdentifier of the kext
|
||||
* that the personality originated in.
|
||||
*/
|
||||
#define kIOPersonalityPublisherKey "IOPersonalityPublisher"
|
||||
|
||||
#if CONFIG_KEC_FIPS
|
||||
/*
|
||||
* @define kAppleTextHashesKey
|
||||
* @abstract A dictionary conataining hashes for corecrypto kext.
|
||||
*/
|
||||
#define kAppleTextHashesKey "AppleTextHashes"
|
||||
#endif
|
||||
|
||||
/*!
|
||||
* @define kOSMutableSegmentCopy
|
||||
* @abstract A boolean value indicating whether the kext requires a copy of
|
||||
* its mutable segments to be kept in memory, and then reset when the kext
|
||||
* unloads. This should be used with caution as it will increase the
|
||||
* amount of memory used by the kext.
|
||||
*/
|
||||
#define kOSMutableSegmentCopy "OSMutableSegmentCopy"
|
||||
|
||||
|
||||
#if PRAGMA_MARK
|
||||
/********************************************************************/
|
||||
#pragma mark Kext/OSBundle Property Deprecated Keys
|
||||
/********************************************************************/
|
||||
#endif
|
||||
/*
|
||||
* @define kOSBundleDebugLevelKey
|
||||
* @abstract
|
||||
* Deprecated (used on some releases of Mac OS X prior to 10.6 Snow Leopard).
|
||||
* Value is an integer from 1-6, corresponding to the verbose levels
|
||||
* of kext tools on those releases.
|
||||
* On 10.6 Snow Leopard, use <code>@link OSKextEnableKextLogging
|
||||
* OSKextEnableKextLogging@/link</code>.
|
||||
*/
|
||||
#define kOSBundleDebugLevelKey "OSBundleDebugLevel"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleSharedExecutableIdentifierKey
|
||||
* @abstract Deprecated (used on some releases of Mac OS X
|
||||
* prior to 10.6 Snow Leopard).
|
||||
* Value is the bundle identifier of the pseudokext
|
||||
* that contains an executable shared by this kext.
|
||||
*/
|
||||
#define kOSBundleSharedExecutableIdentifierKey "OSBundleSharedExecutableIdentifier"
|
||||
|
||||
|
||||
#if PRAGMA_MARK
|
||||
/********************************************************************/
|
||||
#pragma mark Kext/OSBundle Property List Values
|
||||
/********************************************************************/
|
||||
#endif
|
||||
|
||||
/*!
|
||||
* @group Kext Property List Values
|
||||
* These constants encompass established values
|
||||
* for kernel extension bundle properties.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* @define kOSKextKernelIdentifier
|
||||
* @abstract
|
||||
* This is the CFBundleIdentifier user for the kernel itself.
|
||||
*/
|
||||
#define kOSKextKernelIdentifier "__kernel__"
|
||||
|
||||
/*!
|
||||
* @define kOSKextBundlePackageTypeKext
|
||||
* @abstract
|
||||
* The bundle type value for Kernel Extensions.
|
||||
*/
|
||||
#define kOSKextBundlePackageTypeKext "KEXT"
|
||||
|
||||
/*!
|
||||
* @define kOSKextBundlePackageTypeDriverKit
|
||||
* @abstract
|
||||
* The bundle type value for Driver Extensions.
|
||||
*/
|
||||
#define kOSKextBundlePackageTypeDriverKit "DEXT"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleRequiredRoot
|
||||
* @abstract
|
||||
* This <code>@link kOSBundleRequiredKey OSBundleRequired@/link</code>
|
||||
* value indicates that the kext may be needed to mount the root filesystem
|
||||
* whether starting from a local or a network volume.
|
||||
*/
|
||||
#define kOSBundleRequiredRoot "Root"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleRequiredLocalRoot
|
||||
* @abstract
|
||||
* This <code>@link kOSBundleRequiredKey OSBundleRequired@/link</code>
|
||||
* value indicates that the kext may be needed to mount the root filesystem
|
||||
* when starting from a local disk.
|
||||
*/
|
||||
#define kOSBundleRequiredLocalRoot "Local-Root"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleRequiredNetworkRoot
|
||||
* @abstract
|
||||
* This <code>@link kOSBundleRequiredKey OSBundleRequired@/link</code>
|
||||
* value indicates that the kext may be needed to mount the root filesystem
|
||||
* when starting over a network connection.
|
||||
*/
|
||||
#define kOSBundleRequiredNetworkRoot "Network-Root"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleRequiredSafeBoot
|
||||
* @abstract
|
||||
* This <code>@link kOSBundleRequiredKey OSBundleRequired@/link</code>
|
||||
* value indicates that the kext can be loaded during a safe startup.
|
||||
* This value does not normally cause the kext to be read by the booter
|
||||
* or included in startup kext caches.
|
||||
*/
|
||||
#define kOSBundleRequiredSafeBoot "Safe Boot"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleRequiredConsole
|
||||
* @abstract
|
||||
* This <code>@link kOSBundleRequiredKey OSBundleRequired@/link</code>
|
||||
* value indicates that the kext may be needed for console access
|
||||
* (specifically in a single-user startup when
|
||||
* <code>@link //apple_ref/doc/man/8/kextd kextd(8)@/link</code>.
|
||||
* does not run)
|
||||
* and should be loaded during early startup.
|
||||
*/
|
||||
#define kOSBundleRequiredConsole "Console"
|
||||
|
||||
/*!
|
||||
* @define kOSBundleRequiredDriverKit
|
||||
* @abstract
|
||||
* This <code>@link kOSBundleRequiredKey OSBundleRequired@/link</code>
|
||||
* value indicates that the driver extension's (DriverKit driver's)
|
||||
* personalities must be present in the kernel at early boot (specifically
|
||||
* before <code>@link //apple_ref/doc/man/8/kextd kextd(8)@/link</code> starts)
|
||||
* in order to compete with kexts built into the prelinkedkernel. Note that
|
||||
* kextd is still required to launch the user space driver binary. The IOKit
|
||||
* matching will happen during early boot, and the actual driver launch
|
||||
* will happen after kextd starts.
|
||||
*/
|
||||
#define kOSBundleRequiredDriverKit "DriverKit"
|
||||
|
||||
#if PRAGMA_MARK
|
||||
#pragma mark -
|
||||
/********************************************************************/
|
||||
#pragma mark Kext Information
|
||||
/********************************************************************/
|
||||
#endif
|
||||
/*!
|
||||
* @group Kext Information
|
||||
* Types, constants, and macros providing a kext with information
|
||||
* about itself.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* @typedef OSKextLoadTag
|
||||
*
|
||||
* @abstract
|
||||
* A unique identifier assigned to a loaded instanace of a kext.
|
||||
*
|
||||
* @discussion
|
||||
* If a kext is unloaded and later reloaded, the new instance
|
||||
* has a different load tag.
|
||||
*
|
||||
* A kext can get its own load tag in the <code>kmod_info_t</code>
|
||||
* structure passed into its module start routine, as the
|
||||
* <code>id</code> field (cast to this type).
|
||||
*/
|
||||
typedef uint32_t OSKextLoadTag;
|
||||
|
||||
/*!
|
||||
* @define kOSKextInvalidLoadTag
|
||||
*
|
||||
* @abstract
|
||||
* A load tag value that will never be used for a loaded kext;
|
||||
* indicates kext not found.
|
||||
*/
|
||||
#define kOSKextInvalidLoadTag ((OSKextLoadTag)(-1))
|
||||
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* _LIBKERN_OSKEXTLIB_H */
|
||||
187
lib/libc/include/any-macos.11-any/libproc.h
vendored
Normal file
187
lib/libc/include/any-macos.11-any/libproc.h
vendored
Normal file
@ -0,0 +1,187 @@
|
||||
/*
|
||||
* Copyright (c) 2006, 2007, 2010 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
#ifndef _LIBPROC_H_
|
||||
#define _LIBPROC_H_
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/mount.h>
|
||||
#include <sys/resource.h>
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <mach/message.h> /* for audit_token_t */
|
||||
|
||||
#include <sys/proc_info.h>
|
||||
|
||||
#include <Availability.h>
|
||||
#include <os/availability.h>
|
||||
|
||||
/*
|
||||
* This header file contains private interfaces to obtain process information.
|
||||
* These interfaces are subject to change in future releases.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* @define PROC_LISTPIDSPATH_PATH_IS_VOLUME
|
||||
* @discussion This flag indicates that all processes that hold open
|
||||
* file references on the volume associated with the specified
|
||||
* path should be returned.
|
||||
*/
|
||||
#define PROC_LISTPIDSPATH_PATH_IS_VOLUME 1
|
||||
|
||||
|
||||
/*!
|
||||
* @define PROC_LISTPIDSPATH_EXCLUDE_EVTONLY
|
||||
* @discussion This flag indicates that file references that were opened
|
||||
* with the O_EVTONLY flag should be excluded from the matching
|
||||
* criteria.
|
||||
*/
|
||||
#define PROC_LISTPIDSPATH_EXCLUDE_EVTONLY 2
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
||||
/*!
|
||||
* @function proc_listpidspath
|
||||
* @discussion A function which will search through the current
|
||||
* processes looking for open file references which match
|
||||
* a specified path or volume.
|
||||
* @param type types of processes to be searched (see proc_listpids)
|
||||
* @param typeinfo adjunct information for type
|
||||
* @param path file or volume path
|
||||
* @param pathflags flags to control which files should be considered
|
||||
* during the process search.
|
||||
* @param buffer a C array of int-sized values to be filled with
|
||||
* process identifiers that hold an open file reference
|
||||
* matching the specified path or volume. Pass NULL to
|
||||
* obtain the minimum buffer size needed to hold the
|
||||
* currently active processes.
|
||||
* @param buffersize the size (in bytes) of the provided buffer.
|
||||
* @result the number of bytes of data returned in the provided buffer;
|
||||
* -1 if an error was encountered;
|
||||
*/
|
||||
int proc_listpidspath(uint32_t type,
|
||||
uint32_t typeinfo,
|
||||
const char *path,
|
||||
uint32_t pathflags,
|
||||
void *buffer,
|
||||
int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
|
||||
|
||||
int proc_listpids(uint32_t type, uint32_t typeinfo, void *buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
|
||||
int proc_listallpids(void * buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_1);
|
||||
int proc_listpgrppids(pid_t pgrpid, void * buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_1);
|
||||
int proc_listchildpids(pid_t ppid, void * buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_1);
|
||||
int proc_pidinfo(int pid, int flavor, uint64_t arg, void *buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
|
||||
int proc_pidfdinfo(int pid, int fd, int flavor, void * buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
|
||||
int proc_pidfileportinfo(int pid, uint32_t fileport, int flavor, void *buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
|
||||
int proc_name(int pid, void * buffer, uint32_t buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
|
||||
int proc_regionfilename(int pid, uint64_t address, void * buffer, uint32_t buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
|
||||
int proc_kmsgbuf(void * buffer, uint32_t buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
|
||||
int proc_pidpath(int pid, void * buffer, uint32_t buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
|
||||
int proc_pidpath_audittoken(audit_token_t *audittoken, void * buffer, uint32_t buffersize) API_AVAILABLE(macos(11.0), ios(14.0), watchos(7.0), tvos(14.0));
|
||||
int proc_libversion(int *major, int * minor) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
|
||||
|
||||
/*
|
||||
* Return resource usage information for the given pid, which can be a live process or a zombie.
|
||||
*
|
||||
* Returns 0 on success; or -1 on failure, with errno set to indicate the specific error.
|
||||
*/
|
||||
int proc_pid_rusage(int pid, int flavor, rusage_info_t *buffer) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0);
|
||||
|
||||
/*
|
||||
* A process can use the following api to set its own process control
|
||||
* state on resoure starvation. The argument can have one of the PROC_SETPC_XX values
|
||||
*/
|
||||
#define PROC_SETPC_NONE 0
|
||||
#define PROC_SETPC_THROTTLEMEM 1
|
||||
#define PROC_SETPC_SUSPEND 2
|
||||
#define PROC_SETPC_TERMINATE 3
|
||||
|
||||
int proc_setpcontrol(const int control) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
|
||||
int proc_setpcontrol(const int control);
|
||||
|
||||
int proc_track_dirty(pid_t pid, uint32_t flags);
|
||||
int proc_set_dirty(pid_t pid, bool dirty);
|
||||
int proc_get_dirty(pid_t pid, uint32_t *flags);
|
||||
int proc_clear_dirty(pid_t pid, uint32_t flags);
|
||||
|
||||
int proc_terminate(pid_t pid, int *sig);
|
||||
|
||||
/*
|
||||
* NO_SMT means that on an SMT CPU, this thread must be scheduled alone,
|
||||
* with the paired CPU idle.
|
||||
*
|
||||
* Set NO_SMT on the current proc (all existing and future threads)
|
||||
* This attribute is inherited on fork and exec
|
||||
*/
|
||||
int proc_set_no_smt(void) __API_AVAILABLE(macos(11.0));
|
||||
|
||||
/* Set NO_SMT on the current thread */
|
||||
int proc_setthread_no_smt(void) __API_AVAILABLE(macos(11.0));
|
||||
|
||||
/*
|
||||
* CPU Security Mitigation APIs
|
||||
*
|
||||
* Set CPU security mitigation on the current proc (all existing and future threads)
|
||||
* This attribute is inherited on fork and exec
|
||||
*/
|
||||
int proc_set_csm(uint32_t flags) __API_AVAILABLE(macos(11.0));
|
||||
|
||||
/* Set CPU security mitigation on the current thread */
|
||||
int proc_setthread_csm(uint32_t flags) __API_AVAILABLE(macos(11.0));
|
||||
|
||||
/*
|
||||
* flags for CPU Security Mitigation APIs
|
||||
* PROC_CSM_ALL should be used in most cases,
|
||||
* the individual flags are provided only for performance evaluation etc
|
||||
*/
|
||||
#define PROC_CSM_ALL 0x0001 /* Set all available mitigations */
|
||||
#define PROC_CSM_NOSMT 0x0002 /* Set NO_SMT - see above */
|
||||
#define PROC_CSM_TECS 0x0004 /* Execute VERW on every return to user mode */
|
||||
|
||||
#ifdef PRIVATE
|
||||
#include <sys/event.h>
|
||||
/*
|
||||
* Enumerate potential userspace pointers embedded in kernel data structures.
|
||||
* Currently inspects kqueues only.
|
||||
*
|
||||
* NOTE: returned "pointers" are opaque user-supplied values and thus not
|
||||
* guaranteed to address valid objects or be pointers at all.
|
||||
*
|
||||
* Returns the number of pointers found (which may exceed buffersize), or -1 on
|
||||
* failure and errno set appropriately.
|
||||
*/
|
||||
int proc_list_uptrs(pid_t pid, uint64_t *buffer, uint32_t buffersize);
|
||||
|
||||
int proc_list_dynkqueueids(int pid, kqueue_id_t *buf, uint32_t bufsz);
|
||||
int proc_piddynkqueueinfo(int pid, int flavor, kqueue_id_t kq_id, void *buffer,
|
||||
int buffersize);
|
||||
#endif /* PRIVATE */
|
||||
|
||||
int proc_udata_info(int pid, int flavor, void *buffer, int buffersize);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /*_LIBPROC_H_ */
|
||||
@ -1274,8 +1274,6 @@ struct build_tool_version {
|
||||
#define PLATFORM_WATCHOSSIMULATOR 9
|
||||
#define PLATFORM_DRIVERKIT 10
|
||||
|
||||
|
||||
|
||||
/* Known values for the tool field above. */
|
||||
#define TOOL_CLANG 1
|
||||
#define TOOL_SWIFT 2
|
||||
@ -1458,8 +1456,6 @@ struct dyld_info_command {
|
||||
#define EXPORT_SYMBOL_FLAGS_WEAK_DEFINITION 0x04
|
||||
#define EXPORT_SYMBOL_FLAGS_REEXPORT 0x08
|
||||
#define EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER 0x10
|
||||
#define EXPORT_SYMBOL_FLAGS_STATIC_RESOLVER 0x20
|
||||
|
||||
|
||||
/*
|
||||
* The linker_option_command contains linker options embedded in object files.
|
||||
|
||||
245
lib/libc/include/any-macos.11-any/mach/clock.h
vendored
Normal file
245
lib/libc/include/any-macos.11-any/mach/clock.h
vendored
Normal file
@ -0,0 +1,245 @@
|
||||
#ifndef _clock_user_
|
||||
#define _clock_user_
|
||||
|
||||
/* Module clock */
|
||||
|
||||
#include <string.h>
|
||||
#include <mach/ndr.h>
|
||||
#include <mach/boolean.h>
|
||||
#include <mach/kern_return.h>
|
||||
#include <mach/notify.h>
|
||||
#include <mach/mach_types.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/mig_errors.h>
|
||||
#include <mach/port.h>
|
||||
|
||||
/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
|
||||
|
||||
#if defined(__has_include)
|
||||
#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
|
||||
#ifndef USING_MIG_STRNCPY_ZEROFILL
|
||||
#define USING_MIG_STRNCPY_ZEROFILL
|
||||
#endif
|
||||
#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
|
||||
#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
|
||||
#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
|
||||
#endif /* __has_include */
|
||||
|
||||
/* END MIG_STRNCPY_ZEROFILL CODE */
|
||||
|
||||
|
||||
#ifdef AUTOTEST
|
||||
#ifndef FUNCTION_PTR_T
|
||||
#define FUNCTION_PTR_T
|
||||
typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
|
||||
typedef struct {
|
||||
char *name;
|
||||
function_ptr_t function;
|
||||
} function_table_entry;
|
||||
typedef function_table_entry *function_table_t;
|
||||
#endif /* FUNCTION_PTR_T */
|
||||
#endif /* AUTOTEST */
|
||||
|
||||
#ifndef clock_MSG_COUNT
|
||||
#define clock_MSG_COUNT 3
|
||||
#endif /* clock_MSG_COUNT */
|
||||
|
||||
#include <mach/std_types.h>
|
||||
#include <mach/mig.h>
|
||||
#include <mach/mig.h>
|
||||
#include <mach/mach_types.h>
|
||||
#include <mach/mach_types.h>
|
||||
|
||||
#ifdef __BeforeMigUserHeader
|
||||
__BeforeMigUserHeader
|
||||
#endif /* __BeforeMigUserHeader */
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
||||
/* Routine clock_get_time */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t clock_get_time
|
||||
(
|
||||
clock_serv_t clock_serv,
|
||||
mach_timespec_t *cur_time
|
||||
);
|
||||
|
||||
/* Routine clock_get_attributes */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t clock_get_attributes
|
||||
(
|
||||
clock_serv_t clock_serv,
|
||||
clock_flavor_t flavor,
|
||||
clock_attr_t clock_attr,
|
||||
mach_msg_type_number_t *clock_attrCnt
|
||||
);
|
||||
|
||||
/* Routine clock_alarm */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t clock_alarm
|
||||
(
|
||||
clock_serv_t clock_serv,
|
||||
alarm_type_t alarm_type,
|
||||
mach_timespec_t alarm_time,
|
||||
clock_reply_t alarm_port
|
||||
);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
/********************** Caution **************************/
|
||||
/* The following data types should be used to calculate */
|
||||
/* maximum message sizes only. The actual message may be */
|
||||
/* smaller, and the position of the arguments within the */
|
||||
/* message layout may vary from what is presented here. */
|
||||
/* For example, if any of the arguments are variable- */
|
||||
/* sized, and less than the maximum is sent, the data */
|
||||
/* will be packed tight in the actual message to reduce */
|
||||
/* the presence of holes. */
|
||||
/********************** Caution **************************/
|
||||
|
||||
/* typedefs for all requests */
|
||||
|
||||
#ifndef __Request__clock_subsystem__defined
|
||||
#define __Request__clock_subsystem__defined
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
} __Request__clock_get_time_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
clock_flavor_t flavor;
|
||||
mach_msg_type_number_t clock_attrCnt;
|
||||
} __Request__clock_get_attributes_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
/* start of the kernel processed data */
|
||||
mach_msg_body_t msgh_body;
|
||||
mach_msg_port_descriptor_t alarm_port;
|
||||
/* end of the kernel processed data */
|
||||
NDR_record_t NDR;
|
||||
alarm_type_t alarm_type;
|
||||
mach_timespec_t alarm_time;
|
||||
} __Request__clock_alarm_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
#endif /* !__Request__clock_subsystem__defined */
|
||||
|
||||
/* union of all requests */
|
||||
|
||||
#ifndef __RequestUnion__clock_subsystem__defined
|
||||
#define __RequestUnion__clock_subsystem__defined
|
||||
union __RequestUnion__clock_subsystem {
|
||||
__Request__clock_get_time_t Request_clock_get_time;
|
||||
__Request__clock_get_attributes_t Request_clock_get_attributes;
|
||||
__Request__clock_alarm_t Request_clock_alarm;
|
||||
};
|
||||
#endif /* !__RequestUnion__clock_subsystem__defined */
|
||||
/* typedefs for all replies */
|
||||
|
||||
#ifndef __Reply__clock_subsystem__defined
|
||||
#define __Reply__clock_subsystem__defined
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
mach_timespec_t cur_time;
|
||||
} __Reply__clock_get_time_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
mach_msg_type_number_t clock_attrCnt;
|
||||
int clock_attr[1];
|
||||
} __Reply__clock_get_attributes_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__clock_alarm_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
#endif /* !__Reply__clock_subsystem__defined */
|
||||
|
||||
/* union of all replies */
|
||||
|
||||
#ifndef __ReplyUnion__clock_subsystem__defined
|
||||
#define __ReplyUnion__clock_subsystem__defined
|
||||
union __ReplyUnion__clock_subsystem {
|
||||
__Reply__clock_get_time_t Reply_clock_get_time;
|
||||
__Reply__clock_get_attributes_t Reply_clock_get_attributes;
|
||||
__Reply__clock_alarm_t Reply_clock_alarm;
|
||||
};
|
||||
#endif /* !__RequestUnion__clock_subsystem__defined */
|
||||
|
||||
#ifndef subsystem_to_name_map_clock
|
||||
#define subsystem_to_name_map_clock \
|
||||
{ "clock_get_time", 1000 },\
|
||||
{ "clock_get_attributes", 1001 },\
|
||||
{ "clock_alarm", 1002 }
|
||||
#endif
|
||||
|
||||
#ifdef __AfterMigUserHeader
|
||||
__AfterMigUserHeader
|
||||
#endif /* __AfterMigUserHeader */
|
||||
|
||||
#endif /* _clock_user_ */
|
||||
199
lib/libc/include/any-macos.11-any/mach/clock_priv.h
vendored
Normal file
199
lib/libc/include/any-macos.11-any/mach/clock_priv.h
vendored
Normal file
@ -0,0 +1,199 @@
|
||||
#ifndef _clock_priv_user_
|
||||
#define _clock_priv_user_
|
||||
|
||||
/* Module clock_priv */
|
||||
|
||||
#include <string.h>
|
||||
#include <mach/ndr.h>
|
||||
#include <mach/boolean.h>
|
||||
#include <mach/kern_return.h>
|
||||
#include <mach/notify.h>
|
||||
#include <mach/mach_types.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/mig_errors.h>
|
||||
#include <mach/port.h>
|
||||
|
||||
/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
|
||||
|
||||
#if defined(__has_include)
|
||||
#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
|
||||
#ifndef USING_MIG_STRNCPY_ZEROFILL
|
||||
#define USING_MIG_STRNCPY_ZEROFILL
|
||||
#endif
|
||||
#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
|
||||
#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
|
||||
#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
|
||||
#endif /* __has_include */
|
||||
|
||||
/* END MIG_STRNCPY_ZEROFILL CODE */
|
||||
|
||||
|
||||
#ifdef AUTOTEST
|
||||
#ifndef FUNCTION_PTR_T
|
||||
#define FUNCTION_PTR_T
|
||||
typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
|
||||
typedef struct {
|
||||
char *name;
|
||||
function_ptr_t function;
|
||||
} function_table_entry;
|
||||
typedef function_table_entry *function_table_t;
|
||||
#endif /* FUNCTION_PTR_T */
|
||||
#endif /* AUTOTEST */
|
||||
|
||||
#ifndef clock_priv_MSG_COUNT
|
||||
#define clock_priv_MSG_COUNT 2
|
||||
#endif /* clock_priv_MSG_COUNT */
|
||||
|
||||
#include <mach/std_types.h>
|
||||
#include <mach/mig.h>
|
||||
#include <mach/mig.h>
|
||||
#include <mach/mach_types.h>
|
||||
#include <mach/mach_types.h>
|
||||
|
||||
#ifdef __BeforeMigUserHeader
|
||||
__BeforeMigUserHeader
|
||||
#endif /* __BeforeMigUserHeader */
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
||||
/* Routine clock_set_time */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t clock_set_time
|
||||
(
|
||||
clock_ctrl_t clock_ctrl,
|
||||
mach_timespec_t new_time
|
||||
);
|
||||
|
||||
/* Routine clock_set_attributes */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t clock_set_attributes
|
||||
(
|
||||
clock_ctrl_t clock_ctrl,
|
||||
clock_flavor_t flavor,
|
||||
clock_attr_t clock_attr,
|
||||
mach_msg_type_number_t clock_attrCnt
|
||||
);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
/********************** Caution **************************/
|
||||
/* The following data types should be used to calculate */
|
||||
/* maximum message sizes only. The actual message may be */
|
||||
/* smaller, and the position of the arguments within the */
|
||||
/* message layout may vary from what is presented here. */
|
||||
/* For example, if any of the arguments are variable- */
|
||||
/* sized, and less than the maximum is sent, the data */
|
||||
/* will be packed tight in the actual message to reduce */
|
||||
/* the presence of holes. */
|
||||
/********************** Caution **************************/
|
||||
|
||||
/* typedefs for all requests */
|
||||
|
||||
#ifndef __Request__clock_priv_subsystem__defined
|
||||
#define __Request__clock_priv_subsystem__defined
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
mach_timespec_t new_time;
|
||||
} __Request__clock_set_time_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
clock_flavor_t flavor;
|
||||
mach_msg_type_number_t clock_attrCnt;
|
||||
int clock_attr[1];
|
||||
} __Request__clock_set_attributes_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
#endif /* !__Request__clock_priv_subsystem__defined */
|
||||
|
||||
/* union of all requests */
|
||||
|
||||
#ifndef __RequestUnion__clock_priv_subsystem__defined
|
||||
#define __RequestUnion__clock_priv_subsystem__defined
|
||||
union __RequestUnion__clock_priv_subsystem {
|
||||
__Request__clock_set_time_t Request_clock_set_time;
|
||||
__Request__clock_set_attributes_t Request_clock_set_attributes;
|
||||
};
|
||||
#endif /* !__RequestUnion__clock_priv_subsystem__defined */
|
||||
/* typedefs for all replies */
|
||||
|
||||
#ifndef __Reply__clock_priv_subsystem__defined
|
||||
#define __Reply__clock_priv_subsystem__defined
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__clock_set_time_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__clock_set_attributes_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
#endif /* !__Reply__clock_priv_subsystem__defined */
|
||||
|
||||
/* union of all replies */
|
||||
|
||||
#ifndef __ReplyUnion__clock_priv_subsystem__defined
|
||||
#define __ReplyUnion__clock_priv_subsystem__defined
|
||||
union __ReplyUnion__clock_priv_subsystem {
|
||||
__Reply__clock_set_time_t Reply_clock_set_time;
|
||||
__Reply__clock_set_attributes_t Reply_clock_set_attributes;
|
||||
};
|
||||
#endif /* !__RequestUnion__clock_priv_subsystem__defined */
|
||||
|
||||
#ifndef subsystem_to_name_map_clock_priv
|
||||
#define subsystem_to_name_map_clock_priv \
|
||||
{ "clock_set_time", 1200 },\
|
||||
{ "clock_set_attributes", 1201 }
|
||||
#endif
|
||||
|
||||
#ifdef __AfterMigUserHeader
|
||||
__AfterMigUserHeader
|
||||
#endif /* __AfterMigUserHeader */
|
||||
|
||||
#endif /* _clock_priv_user_ */
|
||||
206
lib/libc/include/any-macos.11-any/mach/exception_types.h
vendored
Normal file
206
lib/libc/include/any-macos.11-any/mach/exception_types.h
vendored
Normal file
@ -0,0 +1,206 @@
|
||||
/*
|
||||
* Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* @OSF_COPYRIGHT@
|
||||
*/
|
||||
/*
|
||||
* Mach Operating System
|
||||
* Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission to use, copy, modify and distribute this software and its
|
||||
* documentation is hereby granted, provided that both the copyright
|
||||
* notice and this permission notice appear in all copies of the
|
||||
* software, derivative works or modified versions, and any portions
|
||||
* thereof, and that both notices appear in supporting documentation.
|
||||
*
|
||||
* CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
|
||||
* CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
|
||||
* ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
|
||||
*
|
||||
* Carnegie Mellon requests users of this software to return to
|
||||
*
|
||||
* Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
|
||||
* School of Computer Science
|
||||
* Carnegie Mellon University
|
||||
* Pittsburgh PA 15213-3890
|
||||
*
|
||||
* any improvements or extensions that they make and grant Carnegie Mellon
|
||||
* the rights to redistribute these changes.
|
||||
*/
|
||||
/*
|
||||
*/
|
||||
|
||||
#ifndef _MACH_EXCEPTION_TYPES_H_
|
||||
#define _MACH_EXCEPTION_TYPES_H_
|
||||
|
||||
#include <mach/machine/exception.h>
|
||||
|
||||
/*
|
||||
* Machine-independent exception definitions.
|
||||
*/
|
||||
|
||||
#define EXC_BAD_ACCESS 1 /* Could not access memory */
|
||||
/* Code contains kern_return_t describing error. */
|
||||
/* Subcode contains bad memory address. */
|
||||
|
||||
#define EXC_BAD_INSTRUCTION 2 /* Instruction failed */
|
||||
/* Illegal or undefined instruction or operand */
|
||||
|
||||
#define EXC_ARITHMETIC 3 /* Arithmetic exception */
|
||||
/* Exact nature of exception is in code field */
|
||||
|
||||
#define EXC_EMULATION 4 /* Emulation instruction */
|
||||
/* Emulation support instruction encountered */
|
||||
/* Details in code and subcode fields */
|
||||
|
||||
#define EXC_SOFTWARE 5 /* Software generated exception */
|
||||
/* Exact exception is in code field. */
|
||||
/* Codes 0 - 0xFFFF reserved to hardware */
|
||||
/* Codes 0x10000 - 0x1FFFF reserved for OS emulation (Unix) */
|
||||
|
||||
#define EXC_BREAKPOINT 6 /* Trace, breakpoint, etc. */
|
||||
/* Details in code field. */
|
||||
|
||||
#define EXC_SYSCALL 7 /* System calls. */
|
||||
|
||||
#define EXC_MACH_SYSCALL 8 /* Mach system calls. */
|
||||
|
||||
#define EXC_RPC_ALERT 9 /* RPC alert */
|
||||
|
||||
#define EXC_CRASH 10 /* Abnormal process exit */
|
||||
|
||||
#define EXC_RESOURCE 11 /* Hit resource consumption limit */
|
||||
/* Exact resource is in code field. */
|
||||
|
||||
#define EXC_GUARD 12 /* Violated guarded resource protections */
|
||||
|
||||
#define EXC_CORPSE_NOTIFY 13 /* Abnormal process exited to corpse state */
|
||||
|
||||
#define EXC_CORPSE_VARIANT_BIT 0x100 /* bit set for EXC_*_CORPSE variants of EXC_* */
|
||||
|
||||
|
||||
/*
|
||||
* Machine-independent exception behaviors
|
||||
*/
|
||||
|
||||
# define EXCEPTION_DEFAULT 1
|
||||
/* Send a catch_exception_raise message including the identity.
|
||||
*/
|
||||
|
||||
# define EXCEPTION_STATE 2
|
||||
/* Send a catch_exception_raise_state message including the
|
||||
* thread state.
|
||||
*/
|
||||
|
||||
# define EXCEPTION_STATE_IDENTITY 3
|
||||
/* Send a catch_exception_raise_state_identity message including
|
||||
* the thread identity and state.
|
||||
*/
|
||||
|
||||
#define MACH_EXCEPTION_ERRORS 0x40000000
|
||||
/* include additional exception specific errors, not used yet. */
|
||||
|
||||
#define MACH_EXCEPTION_CODES 0x80000000
|
||||
/* Send 64-bit code and subcode in the exception header */
|
||||
|
||||
#define MACH_EXCEPTION_MASK (MACH_EXCEPTION_CODES | MACH_EXCEPTION_ERRORS)
|
||||
/*
|
||||
* Masks for exception definitions, above
|
||||
* bit zero is unused, therefore 1 word = 31 exception types
|
||||
*/
|
||||
|
||||
#define EXC_MASK_BAD_ACCESS (1 << EXC_BAD_ACCESS)
|
||||
#define EXC_MASK_BAD_INSTRUCTION (1 << EXC_BAD_INSTRUCTION)
|
||||
#define EXC_MASK_ARITHMETIC (1 << EXC_ARITHMETIC)
|
||||
#define EXC_MASK_EMULATION (1 << EXC_EMULATION)
|
||||
#define EXC_MASK_SOFTWARE (1 << EXC_SOFTWARE)
|
||||
#define EXC_MASK_BREAKPOINT (1 << EXC_BREAKPOINT)
|
||||
#define EXC_MASK_SYSCALL (1 << EXC_SYSCALL)
|
||||
#define EXC_MASK_MACH_SYSCALL (1 << EXC_MACH_SYSCALL)
|
||||
#define EXC_MASK_RPC_ALERT (1 << EXC_RPC_ALERT)
|
||||
#define EXC_MASK_CRASH (1 << EXC_CRASH)
|
||||
#define EXC_MASK_RESOURCE (1 << EXC_RESOURCE)
|
||||
#define EXC_MASK_GUARD (1 << EXC_GUARD)
|
||||
#define EXC_MASK_CORPSE_NOTIFY (1 << EXC_CORPSE_NOTIFY)
|
||||
|
||||
#define EXC_MASK_ALL (EXC_MASK_BAD_ACCESS | \
|
||||
EXC_MASK_BAD_INSTRUCTION | \
|
||||
EXC_MASK_ARITHMETIC | \
|
||||
EXC_MASK_EMULATION | \
|
||||
EXC_MASK_SOFTWARE | \
|
||||
EXC_MASK_BREAKPOINT | \
|
||||
EXC_MASK_SYSCALL | \
|
||||
EXC_MASK_MACH_SYSCALL | \
|
||||
EXC_MASK_RPC_ALERT | \
|
||||
EXC_MASK_RESOURCE | \
|
||||
EXC_MASK_GUARD | \
|
||||
EXC_MASK_MACHINE)
|
||||
|
||||
|
||||
#define FIRST_EXCEPTION 1 /* ZERO is illegal */
|
||||
|
||||
/*
|
||||
* Machine independent codes for EXC_SOFTWARE
|
||||
* Codes 0x10000 - 0x1FFFF reserved for OS emulation (Unix)
|
||||
* 0x10000 - 0x10002 in use for unix signals
|
||||
* 0x20000 - 0x2FFFF reserved for MACF
|
||||
*/
|
||||
#define EXC_SOFT_SIGNAL 0x10003 /* Unix signal exceptions */
|
||||
|
||||
#define EXC_MACF_MIN 0x20000 /* MACF exceptions */
|
||||
#define EXC_MACF_MAX 0x2FFFF
|
||||
|
||||
#ifndef ASSEMBLER
|
||||
|
||||
#include <mach/port.h>
|
||||
#include <mach/thread_status.h>
|
||||
#include <mach/machine/vm_types.h>
|
||||
#include <mach_debug/ipc_info.h>
|
||||
/*
|
||||
* Exported types
|
||||
*/
|
||||
|
||||
typedef int exception_type_t;
|
||||
typedef integer_t exception_data_type_t;
|
||||
typedef int64_t mach_exception_data_type_t;
|
||||
typedef int exception_behavior_t;
|
||||
typedef exception_data_type_t *exception_data_t;
|
||||
typedef mach_exception_data_type_t *mach_exception_data_t;
|
||||
typedef unsigned int exception_mask_t;
|
||||
typedef exception_mask_t *exception_mask_array_t;
|
||||
typedef exception_behavior_t *exception_behavior_array_t;
|
||||
typedef thread_state_flavor_t *exception_flavor_array_t;
|
||||
typedef mach_port_t *exception_port_array_t;
|
||||
typedef ipc_info_port_t *exception_port_info_array_t;
|
||||
typedef mach_exception_data_type_t mach_exception_code_t;
|
||||
typedef mach_exception_data_type_t mach_exception_subcode_t;
|
||||
|
||||
#endif /* ASSEMBLER */
|
||||
|
||||
#endif /* _MACH_EXCEPTION_TYPES_H_ */
|
||||
1163
lib/libc/include/any-macos.11-any/mach/host_priv.h
vendored
Normal file
1163
lib/libc/include/any-macos.11-any/mach/host_priv.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
221
lib/libc/include/any-macos.11-any/mach/host_security.h
vendored
Normal file
221
lib/libc/include/any-macos.11-any/mach/host_security.h
vendored
Normal file
@ -0,0 +1,221 @@
|
||||
#ifndef _host_security_user_
|
||||
#define _host_security_user_
|
||||
|
||||
/* Module host_security */
|
||||
|
||||
#include <string.h>
|
||||
#include <mach/ndr.h>
|
||||
#include <mach/boolean.h>
|
||||
#include <mach/kern_return.h>
|
||||
#include <mach/notify.h>
|
||||
#include <mach/mach_types.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/mig_errors.h>
|
||||
#include <mach/port.h>
|
||||
|
||||
/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
|
||||
|
||||
#if defined(__has_include)
|
||||
#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
|
||||
#ifndef USING_MIG_STRNCPY_ZEROFILL
|
||||
#define USING_MIG_STRNCPY_ZEROFILL
|
||||
#endif
|
||||
#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
|
||||
#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
|
||||
#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
|
||||
#endif /* __has_include */
|
||||
|
||||
/* END MIG_STRNCPY_ZEROFILL CODE */
|
||||
|
||||
|
||||
#ifdef AUTOTEST
|
||||
#ifndef FUNCTION_PTR_T
|
||||
#define FUNCTION_PTR_T
|
||||
typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
|
||||
typedef struct {
|
||||
char *name;
|
||||
function_ptr_t function;
|
||||
} function_table_entry;
|
||||
typedef function_table_entry *function_table_t;
|
||||
#endif /* FUNCTION_PTR_T */
|
||||
#endif /* AUTOTEST */
|
||||
|
||||
#ifndef host_security_MSG_COUNT
|
||||
#define host_security_MSG_COUNT 2
|
||||
#endif /* host_security_MSG_COUNT */
|
||||
|
||||
#include <mach/std_types.h>
|
||||
#include <mach/mig.h>
|
||||
#include <mach/mig.h>
|
||||
#include <mach/mach_types.h>
|
||||
|
||||
#ifdef __BeforeMigUserHeader
|
||||
__BeforeMigUserHeader
|
||||
#endif /* __BeforeMigUserHeader */
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
||||
/* Routine host_security_create_task_token */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t host_security_create_task_token
|
||||
(
|
||||
host_security_t host_security,
|
||||
task_t parent_task,
|
||||
security_token_t sec_token,
|
||||
audit_token_t audit_token,
|
||||
host_t host,
|
||||
ledger_array_t ledgers,
|
||||
mach_msg_type_number_t ledgersCnt,
|
||||
boolean_t inherit_memory,
|
||||
task_t *child_task
|
||||
);
|
||||
|
||||
/* Routine host_security_set_task_token */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t host_security_set_task_token
|
||||
(
|
||||
host_security_t host_security,
|
||||
task_t target_task,
|
||||
security_token_t sec_token,
|
||||
audit_token_t audit_token,
|
||||
host_t host
|
||||
);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
/********************** Caution **************************/
|
||||
/* The following data types should be used to calculate */
|
||||
/* maximum message sizes only. The actual message may be */
|
||||
/* smaller, and the position of the arguments within the */
|
||||
/* message layout may vary from what is presented here. */
|
||||
/* For example, if any of the arguments are variable- */
|
||||
/* sized, and less than the maximum is sent, the data */
|
||||
/* will be packed tight in the actual message to reduce */
|
||||
/* the presence of holes. */
|
||||
/********************** Caution **************************/
|
||||
|
||||
/* typedefs for all requests */
|
||||
|
||||
#ifndef __Request__host_security_subsystem__defined
|
||||
#define __Request__host_security_subsystem__defined
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
/* start of the kernel processed data */
|
||||
mach_msg_body_t msgh_body;
|
||||
mach_msg_port_descriptor_t parent_task;
|
||||
mach_msg_port_descriptor_t host;
|
||||
mach_msg_ool_ports_descriptor_t ledgers;
|
||||
/* end of the kernel processed data */
|
||||
NDR_record_t NDR;
|
||||
security_token_t sec_token;
|
||||
audit_token_t audit_token;
|
||||
mach_msg_type_number_t ledgersCnt;
|
||||
boolean_t inherit_memory;
|
||||
} __Request__host_security_create_task_token_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
/* start of the kernel processed data */
|
||||
mach_msg_body_t msgh_body;
|
||||
mach_msg_port_descriptor_t target_task;
|
||||
mach_msg_port_descriptor_t host;
|
||||
/* end of the kernel processed data */
|
||||
NDR_record_t NDR;
|
||||
security_token_t sec_token;
|
||||
audit_token_t audit_token;
|
||||
} __Request__host_security_set_task_token_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
#endif /* !__Request__host_security_subsystem__defined */
|
||||
|
||||
/* union of all requests */
|
||||
|
||||
#ifndef __RequestUnion__host_security_subsystem__defined
|
||||
#define __RequestUnion__host_security_subsystem__defined
|
||||
union __RequestUnion__host_security_subsystem {
|
||||
__Request__host_security_create_task_token_t Request_host_security_create_task_token;
|
||||
__Request__host_security_set_task_token_t Request_host_security_set_task_token;
|
||||
};
|
||||
#endif /* !__RequestUnion__host_security_subsystem__defined */
|
||||
/* typedefs for all replies */
|
||||
|
||||
#ifndef __Reply__host_security_subsystem__defined
|
||||
#define __Reply__host_security_subsystem__defined
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
/* start of the kernel processed data */
|
||||
mach_msg_body_t msgh_body;
|
||||
mach_msg_port_descriptor_t child_task;
|
||||
/* end of the kernel processed data */
|
||||
} __Reply__host_security_create_task_token_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__host_security_set_task_token_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
#endif /* !__Reply__host_security_subsystem__defined */
|
||||
|
||||
/* union of all replies */
|
||||
|
||||
#ifndef __ReplyUnion__host_security_subsystem__defined
|
||||
#define __ReplyUnion__host_security_subsystem__defined
|
||||
union __ReplyUnion__host_security_subsystem {
|
||||
__Reply__host_security_create_task_token_t Reply_host_security_create_task_token;
|
||||
__Reply__host_security_set_task_token_t Reply_host_security_set_task_token;
|
||||
};
|
||||
#endif /* !__RequestUnion__host_security_subsystem__defined */
|
||||
|
||||
#ifndef subsystem_to_name_map_host_security
|
||||
#define subsystem_to_name_map_host_security \
|
||||
{ "host_security_create_task_token", 600 },\
|
||||
{ "host_security_set_task_token", 601 }
|
||||
#endif
|
||||
|
||||
#ifdef __AfterMigUserHeader
|
||||
__AfterMigUserHeader
|
||||
#endif /* __AfterMigUserHeader */
|
||||
|
||||
#endif /* _host_security_user_ */
|
||||
342
lib/libc/include/any-macos.11-any/mach/kern_return.h
vendored
Normal file
342
lib/libc/include/any-macos.11-any/mach/kern_return.h
vendored
Normal file
@ -0,0 +1,342 @@
|
||||
/*
|
||||
* Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* @OSF_COPYRIGHT@
|
||||
*/
|
||||
/*
|
||||
* Mach Operating System
|
||||
* Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission to use, copy, modify and distribute this software and its
|
||||
* documentation is hereby granted, provided that both the copyright
|
||||
* notice and this permission notice appear in all copies of the
|
||||
* software, derivative works or modified versions, and any portions
|
||||
* thereof, and that both notices appear in supporting documentation.
|
||||
*
|
||||
* CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
|
||||
* CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
|
||||
* ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
|
||||
*
|
||||
* Carnegie Mellon requests users of this software to return to
|
||||
*
|
||||
* Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
|
||||
* School of Computer Science
|
||||
* Carnegie Mellon University
|
||||
* Pittsburgh PA 15213-3890
|
||||
*
|
||||
* any improvements or extensions that they make and grant Carnegie Mellon
|
||||
* the rights to redistribute these changes.
|
||||
*/
|
||||
/*
|
||||
*/
|
||||
/*
|
||||
* File: h/kern_return.h
|
||||
* Author: Avadis Tevanian, Jr.
|
||||
* Date: 1985
|
||||
*
|
||||
* Kernel return codes.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MACH_KERN_RETURN_H_
|
||||
#define _MACH_KERN_RETURN_H_
|
||||
|
||||
#include <mach/machine/kern_return.h>
|
||||
|
||||
#define KERN_SUCCESS 0
|
||||
|
||||
#define KERN_INVALID_ADDRESS 1
|
||||
/* Specified address is not currently valid.
|
||||
*/
|
||||
|
||||
#define KERN_PROTECTION_FAILURE 2
|
||||
/* Specified memory is valid, but does not permit the
|
||||
* required forms of access.
|
||||
*/
|
||||
|
||||
#define KERN_NO_SPACE 3
|
||||
/* The address range specified is already in use, or
|
||||
* no address range of the size specified could be
|
||||
* found.
|
||||
*/
|
||||
|
||||
#define KERN_INVALID_ARGUMENT 4
|
||||
/* The function requested was not applicable to this
|
||||
* type of argument, or an argument is invalid
|
||||
*/
|
||||
|
||||
#define KERN_FAILURE 5
|
||||
/* The function could not be performed. A catch-all.
|
||||
*/
|
||||
|
||||
#define KERN_RESOURCE_SHORTAGE 6
|
||||
/* A system resource could not be allocated to fulfill
|
||||
* this request. This failure may not be permanent.
|
||||
*/
|
||||
|
||||
#define KERN_NOT_RECEIVER 7
|
||||
/* The task in question does not hold receive rights
|
||||
* for the port argument.
|
||||
*/
|
||||
|
||||
#define KERN_NO_ACCESS 8
|
||||
/* Bogus access restriction.
|
||||
*/
|
||||
|
||||
#define KERN_MEMORY_FAILURE 9
|
||||
/* During a page fault, the target address refers to a
|
||||
* memory object that has been destroyed. This
|
||||
* failure is permanent.
|
||||
*/
|
||||
|
||||
#define KERN_MEMORY_ERROR 10
|
||||
/* During a page fault, the memory object indicated
|
||||
* that the data could not be returned. This failure
|
||||
* may be temporary; future attempts to access this
|
||||
* same data may succeed, as defined by the memory
|
||||
* object.
|
||||
*/
|
||||
|
||||
#define KERN_ALREADY_IN_SET 11
|
||||
/* The receive right is already a member of the portset.
|
||||
*/
|
||||
|
||||
#define KERN_NOT_IN_SET 12
|
||||
/* The receive right is not a member of a port set.
|
||||
*/
|
||||
|
||||
#define KERN_NAME_EXISTS 13
|
||||
/* The name already denotes a right in the task.
|
||||
*/
|
||||
|
||||
#define KERN_ABORTED 14
|
||||
/* The operation was aborted. Ipc code will
|
||||
* catch this and reflect it as a message error.
|
||||
*/
|
||||
|
||||
#define KERN_INVALID_NAME 15
|
||||
/* The name doesn't denote a right in the task.
|
||||
*/
|
||||
|
||||
#define KERN_INVALID_TASK 16
|
||||
/* Target task isn't an active task.
|
||||
*/
|
||||
|
||||
#define KERN_INVALID_RIGHT 17
|
||||
/* The name denotes a right, but not an appropriate right.
|
||||
*/
|
||||
|
||||
#define KERN_INVALID_VALUE 18
|
||||
/* A blatant range error.
|
||||
*/
|
||||
|
||||
#define KERN_UREFS_OVERFLOW 19
|
||||
/* Operation would overflow limit on user-references.
|
||||
*/
|
||||
|
||||
#define KERN_INVALID_CAPABILITY 20
|
||||
/* The supplied (port) capability is improper.
|
||||
*/
|
||||
|
||||
#define KERN_RIGHT_EXISTS 21
|
||||
/* The task already has send or receive rights
|
||||
* for the port under another name.
|
||||
*/
|
||||
|
||||
#define KERN_INVALID_HOST 22
|
||||
/* Target host isn't actually a host.
|
||||
*/
|
||||
|
||||
#define KERN_MEMORY_PRESENT 23
|
||||
/* An attempt was made to supply "precious" data
|
||||
* for memory that is already present in a
|
||||
* memory object.
|
||||
*/
|
||||
|
||||
#define KERN_MEMORY_DATA_MOVED 24
|
||||
/* A page was requested of a memory manager via
|
||||
* memory_object_data_request for an object using
|
||||
* a MEMORY_OBJECT_COPY_CALL strategy, with the
|
||||
* VM_PROT_WANTS_COPY flag being used to specify
|
||||
* that the page desired is for a copy of the
|
||||
* object, and the memory manager has detected
|
||||
* the page was pushed into a copy of the object
|
||||
* while the kernel was walking the shadow chain
|
||||
* from the copy to the object. This error code
|
||||
* is delivered via memory_object_data_error
|
||||
* and is handled by the kernel (it forces the
|
||||
* kernel to restart the fault). It will not be
|
||||
* seen by users.
|
||||
*/
|
||||
|
||||
#define KERN_MEMORY_RESTART_COPY 25
|
||||
/* A strategic copy was attempted of an object
|
||||
* upon which a quicker copy is now possible.
|
||||
* The caller should retry the copy using
|
||||
* vm_object_copy_quickly. This error code
|
||||
* is seen only by the kernel.
|
||||
*/
|
||||
|
||||
#define KERN_INVALID_PROCESSOR_SET 26
|
||||
/* An argument applied to assert processor set privilege
|
||||
* was not a processor set control port.
|
||||
*/
|
||||
|
||||
#define KERN_POLICY_LIMIT 27
|
||||
/* The specified scheduling attributes exceed the thread's
|
||||
* limits.
|
||||
*/
|
||||
|
||||
#define KERN_INVALID_POLICY 28
|
||||
/* The specified scheduling policy is not currently
|
||||
* enabled for the processor set.
|
||||
*/
|
||||
|
||||
#define KERN_INVALID_OBJECT 29
|
||||
/* The external memory manager failed to initialize the
|
||||
* memory object.
|
||||
*/
|
||||
|
||||
#define KERN_ALREADY_WAITING 30
|
||||
/* A thread is attempting to wait for an event for which
|
||||
* there is already a waiting thread.
|
||||
*/
|
||||
|
||||
#define KERN_DEFAULT_SET 31
|
||||
/* An attempt was made to destroy the default processor
|
||||
* set.
|
||||
*/
|
||||
|
||||
#define KERN_EXCEPTION_PROTECTED 32
|
||||
/* An attempt was made to fetch an exception port that is
|
||||
* protected, or to abort a thread while processing a
|
||||
* protected exception.
|
||||
*/
|
||||
|
||||
#define KERN_INVALID_LEDGER 33
|
||||
/* A ledger was required but not supplied.
|
||||
*/
|
||||
|
||||
#define KERN_INVALID_MEMORY_CONTROL 34
|
||||
/* The port was not a memory cache control port.
|
||||
*/
|
||||
|
||||
#define KERN_INVALID_SECURITY 35
|
||||
/* An argument supplied to assert security privilege
|
||||
* was not a host security port.
|
||||
*/
|
||||
|
||||
#define KERN_NOT_DEPRESSED 36
|
||||
/* thread_depress_abort was called on a thread which
|
||||
* was not currently depressed.
|
||||
*/
|
||||
|
||||
#define KERN_TERMINATED 37
|
||||
/* Object has been terminated and is no longer available
|
||||
*/
|
||||
|
||||
#define KERN_LOCK_SET_DESTROYED 38
|
||||
/* Lock set has been destroyed and is no longer available.
|
||||
*/
|
||||
|
||||
#define KERN_LOCK_UNSTABLE 39
|
||||
/* The thread holding the lock terminated before releasing
|
||||
* the lock
|
||||
*/
|
||||
|
||||
#define KERN_LOCK_OWNED 40
|
||||
/* The lock is already owned by another thread
|
||||
*/
|
||||
|
||||
#define KERN_LOCK_OWNED_SELF 41
|
||||
/* The lock is already owned by the calling thread
|
||||
*/
|
||||
|
||||
#define KERN_SEMAPHORE_DESTROYED 42
|
||||
/* Semaphore has been destroyed and is no longer available.
|
||||
*/
|
||||
|
||||
#define KERN_RPC_SERVER_TERMINATED 43
|
||||
/* Return from RPC indicating the target server was
|
||||
* terminated before it successfully replied
|
||||
*/
|
||||
|
||||
#define KERN_RPC_TERMINATE_ORPHAN 44
|
||||
/* Terminate an orphaned activation.
|
||||
*/
|
||||
|
||||
#define KERN_RPC_CONTINUE_ORPHAN 45
|
||||
/* Allow an orphaned activation to continue executing.
|
||||
*/
|
||||
|
||||
#define KERN_NOT_SUPPORTED 46
|
||||
/* Empty thread activation (No thread linked to it)
|
||||
*/
|
||||
|
||||
#define KERN_NODE_DOWN 47
|
||||
/* Remote node down or inaccessible.
|
||||
*/
|
||||
|
||||
#define KERN_NOT_WAITING 48
|
||||
/* A signalled thread was not actually waiting. */
|
||||
|
||||
#define KERN_OPERATION_TIMED_OUT 49
|
||||
/* Some thread-oriented operation (semaphore_wait) timed out
|
||||
*/
|
||||
|
||||
#define KERN_CODESIGN_ERROR 50
|
||||
/* During a page fault, indicates that the page was rejected
|
||||
* as a result of a signature check.
|
||||
*/
|
||||
|
||||
#define KERN_POLICY_STATIC 51
|
||||
/* The requested property cannot be changed at this time.
|
||||
*/
|
||||
|
||||
#define KERN_INSUFFICIENT_BUFFER_SIZE 52
|
||||
/* The provided buffer is of insufficient size for the requested data.
|
||||
*/
|
||||
|
||||
#define KERN_DENIED 53
|
||||
/* Denied by security policy
|
||||
*/
|
||||
|
||||
#define KERN_MISSING_KC 54
|
||||
/* The KC on which the function is operating is missing
|
||||
*/
|
||||
|
||||
#define KERN_INVALID_KC 55
|
||||
/* The KC on which the function is operating is invalid
|
||||
*/
|
||||
|
||||
#define KERN_RETURN_MAX 0x100
|
||||
/* Maximum return value allowable
|
||||
*/
|
||||
|
||||
#endif /* _MACH_KERN_RETURN_H_ */
|
||||
350
lib/libc/include/any-macos.11-any/mach/lock_set.h
vendored
Normal file
350
lib/libc/include/any-macos.11-any/mach/lock_set.h
vendored
Normal file
@ -0,0 +1,350 @@
|
||||
#ifndef _lock_set_user_
|
||||
#define _lock_set_user_
|
||||
|
||||
/* Module lock_set */
|
||||
|
||||
#include <string.h>
|
||||
#include <mach/ndr.h>
|
||||
#include <mach/boolean.h>
|
||||
#include <mach/kern_return.h>
|
||||
#include <mach/notify.h>
|
||||
#include <mach/mach_types.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/mig_errors.h>
|
||||
#include <mach/port.h>
|
||||
|
||||
/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
|
||||
|
||||
#if defined(__has_include)
|
||||
#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
|
||||
#ifndef USING_MIG_STRNCPY_ZEROFILL
|
||||
#define USING_MIG_STRNCPY_ZEROFILL
|
||||
#endif
|
||||
#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
|
||||
#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
|
||||
#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
|
||||
#endif /* __has_include */
|
||||
|
||||
/* END MIG_STRNCPY_ZEROFILL CODE */
|
||||
|
||||
|
||||
#ifdef AUTOTEST
|
||||
#ifndef FUNCTION_PTR_T
|
||||
#define FUNCTION_PTR_T
|
||||
typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
|
||||
typedef struct {
|
||||
char *name;
|
||||
function_ptr_t function;
|
||||
} function_table_entry;
|
||||
typedef function_table_entry *function_table_t;
|
||||
#endif /* FUNCTION_PTR_T */
|
||||
#endif /* AUTOTEST */
|
||||
|
||||
#ifndef lock_set_MSG_COUNT
|
||||
#define lock_set_MSG_COUNT 6
|
||||
#endif /* lock_set_MSG_COUNT */
|
||||
|
||||
#include <mach/std_types.h>
|
||||
#include <mach/mig.h>
|
||||
#include <mach/mig.h>
|
||||
#include <mach/mach_types.h>
|
||||
|
||||
#ifdef __BeforeMigUserHeader
|
||||
__BeforeMigUserHeader
|
||||
#endif /* __BeforeMigUserHeader */
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
||||
/* Routine lock_acquire */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t lock_acquire
|
||||
(
|
||||
lock_set_t lock_set,
|
||||
int lock_id
|
||||
);
|
||||
|
||||
/* Routine lock_release */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t lock_release
|
||||
(
|
||||
lock_set_t lock_set,
|
||||
int lock_id
|
||||
);
|
||||
|
||||
/* Routine lock_try */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t lock_try
|
||||
(
|
||||
lock_set_t lock_set,
|
||||
int lock_id
|
||||
);
|
||||
|
||||
/* Routine lock_make_stable */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t lock_make_stable
|
||||
(
|
||||
lock_set_t lock_set,
|
||||
int lock_id
|
||||
);
|
||||
|
||||
/* Routine lock_handoff */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t lock_handoff
|
||||
(
|
||||
lock_set_t lock_set,
|
||||
int lock_id
|
||||
);
|
||||
|
||||
/* Routine lock_handoff_accept */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t lock_handoff_accept
|
||||
(
|
||||
lock_set_t lock_set,
|
||||
int lock_id
|
||||
);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
/********************** Caution **************************/
|
||||
/* The following data types should be used to calculate */
|
||||
/* maximum message sizes only. The actual message may be */
|
||||
/* smaller, and the position of the arguments within the */
|
||||
/* message layout may vary from what is presented here. */
|
||||
/* For example, if any of the arguments are variable- */
|
||||
/* sized, and less than the maximum is sent, the data */
|
||||
/* will be packed tight in the actual message to reduce */
|
||||
/* the presence of holes. */
|
||||
/********************** Caution **************************/
|
||||
|
||||
/* typedefs for all requests */
|
||||
|
||||
#ifndef __Request__lock_set_subsystem__defined
|
||||
#define __Request__lock_set_subsystem__defined
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
int lock_id;
|
||||
} __Request__lock_acquire_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
int lock_id;
|
||||
} __Request__lock_release_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
int lock_id;
|
||||
} __Request__lock_try_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
int lock_id;
|
||||
} __Request__lock_make_stable_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
int lock_id;
|
||||
} __Request__lock_handoff_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
int lock_id;
|
||||
} __Request__lock_handoff_accept_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
#endif /* !__Request__lock_set_subsystem__defined */
|
||||
|
||||
/* union of all requests */
|
||||
|
||||
#ifndef __RequestUnion__lock_set_subsystem__defined
|
||||
#define __RequestUnion__lock_set_subsystem__defined
|
||||
union __RequestUnion__lock_set_subsystem {
|
||||
__Request__lock_acquire_t Request_lock_acquire;
|
||||
__Request__lock_release_t Request_lock_release;
|
||||
__Request__lock_try_t Request_lock_try;
|
||||
__Request__lock_make_stable_t Request_lock_make_stable;
|
||||
__Request__lock_handoff_t Request_lock_handoff;
|
||||
__Request__lock_handoff_accept_t Request_lock_handoff_accept;
|
||||
};
|
||||
#endif /* !__RequestUnion__lock_set_subsystem__defined */
|
||||
/* typedefs for all replies */
|
||||
|
||||
#ifndef __Reply__lock_set_subsystem__defined
|
||||
#define __Reply__lock_set_subsystem__defined
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__lock_acquire_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__lock_release_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__lock_try_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__lock_make_stable_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__lock_handoff_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__lock_handoff_accept_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
#endif /* !__Reply__lock_set_subsystem__defined */
|
||||
|
||||
/* union of all replies */
|
||||
|
||||
#ifndef __ReplyUnion__lock_set_subsystem__defined
|
||||
#define __ReplyUnion__lock_set_subsystem__defined
|
||||
union __ReplyUnion__lock_set_subsystem {
|
||||
__Reply__lock_acquire_t Reply_lock_acquire;
|
||||
__Reply__lock_release_t Reply_lock_release;
|
||||
__Reply__lock_try_t Reply_lock_try;
|
||||
__Reply__lock_make_stable_t Reply_lock_make_stable;
|
||||
__Reply__lock_handoff_t Reply_lock_handoff;
|
||||
__Reply__lock_handoff_accept_t Reply_lock_handoff_accept;
|
||||
};
|
||||
#endif /* !__RequestUnion__lock_set_subsystem__defined */
|
||||
|
||||
#ifndef subsystem_to_name_map_lock_set
|
||||
#define subsystem_to_name_map_lock_set \
|
||||
{ "lock_acquire", 617000 },\
|
||||
{ "lock_release", 617001 },\
|
||||
{ "lock_try", 617002 },\
|
||||
{ "lock_make_stable", 617003 },\
|
||||
{ "lock_handoff", 617004 },\
|
||||
{ "lock_handoff_accept", 617005 }
|
||||
#endif
|
||||
|
||||
#ifdef __AfterMigUserHeader
|
||||
__AfterMigUserHeader
|
||||
#endif /* __AfterMigUserHeader */
|
||||
|
||||
#endif /* _lock_set_user_ */
|
||||
245
lib/libc/include/any-macos.11-any/mach/mach.h
vendored
Normal file
245
lib/libc/include/any-macos.11-any/mach/mach.h
vendored
Normal file
@ -0,0 +1,245 @@
|
||||
/*
|
||||
* Copyright (c) 1999-2014 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* Mach Operating System
|
||||
* Copyright (c) 1991,1990,1989 Carnegie Mellon University
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission to use, copy, modify and distribute this software and its
|
||||
* documentation is hereby granted, provided that both the copyright
|
||||
* notice and this permission notice appear in all copies of the
|
||||
* software, derivative works or modified versions, and any portions
|
||||
* thereof, and that both notices appear in supporting documentation.
|
||||
*
|
||||
* CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
|
||||
* CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
|
||||
* ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
|
||||
*
|
||||
* Carnegie Mellon requests users of this software to return to
|
||||
*
|
||||
* Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
|
||||
* School of Computer Science
|
||||
* Carnegie Mellon University
|
||||
* Pittsburgh PA 15213-3890
|
||||
*
|
||||
* any improvements or extensions that they make and grant Carnegie Mellon
|
||||
* the rights to redistribute these changes.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Includes all the types that a normal user
|
||||
* of Mach programs should need
|
||||
*/
|
||||
|
||||
#ifndef _MACH_H_
|
||||
#define _MACH_H_
|
||||
|
||||
#define __MACH30__
|
||||
#define MACH_IPC_FLAVOR UNTYPED
|
||||
|
||||
#include <mach/std_types.h>
|
||||
#include <mach/mach_types.h>
|
||||
#include <mach/mach_interface.h>
|
||||
#include <mach/mach_port.h>
|
||||
#include <mach/mach_init.h>
|
||||
#include <mach/mach_host.h>
|
||||
#include <mach/thread_switch.h>
|
||||
|
||||
#include <mach/rpc.h> /* for compatibility only */
|
||||
#include <mach/mig.h>
|
||||
|
||||
#include <mach/mig_errors.h>
|
||||
#include <mach/mach_error.h>
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
/*
|
||||
* Standard prototypes
|
||||
*/
|
||||
extern void panic_init(mach_port_t);
|
||||
extern void panic(const char *, ...);
|
||||
|
||||
extern void safe_gets(char *,
|
||||
char *,
|
||||
int);
|
||||
|
||||
extern void slot_name(cpu_type_t,
|
||||
cpu_subtype_t,
|
||||
char **,
|
||||
char **);
|
||||
|
||||
extern void mig_reply_setup(mach_msg_header_t *,
|
||||
mach_msg_header_t *);
|
||||
|
||||
__WATCHOS_PROHIBITED __TVOS_PROHIBITED
|
||||
extern void mach_msg_destroy(mach_msg_header_t *);
|
||||
|
||||
__WATCHOS_PROHIBITED __TVOS_PROHIBITED
|
||||
extern mach_msg_return_t mach_msg_receive(mach_msg_header_t *);
|
||||
|
||||
__WATCHOS_PROHIBITED __TVOS_PROHIBITED
|
||||
extern mach_msg_return_t mach_msg_send(mach_msg_header_t *);
|
||||
|
||||
__WATCHOS_PROHIBITED __TVOS_PROHIBITED
|
||||
extern mach_msg_return_t mach_msg_server_once(boolean_t (*)
|
||||
(mach_msg_header_t *,
|
||||
mach_msg_header_t *),
|
||||
mach_msg_size_t,
|
||||
mach_port_t,
|
||||
mach_msg_options_t);
|
||||
|
||||
__WATCHOS_PROHIBITED __TVOS_PROHIBITED
|
||||
extern mach_msg_return_t mach_msg_server(boolean_t (*)
|
||||
(mach_msg_header_t *,
|
||||
mach_msg_header_t *),
|
||||
mach_msg_size_t,
|
||||
mach_port_t,
|
||||
mach_msg_options_t);
|
||||
|
||||
__WATCHOS_PROHIBITED __TVOS_PROHIBITED
|
||||
extern mach_msg_return_t mach_msg_server_importance(boolean_t (*)
|
||||
(mach_msg_header_t *,
|
||||
mach_msg_header_t *),
|
||||
mach_msg_size_t,
|
||||
mach_port_t,
|
||||
mach_msg_options_t);
|
||||
|
||||
/*
|
||||
* Prototypes for compatibility
|
||||
*/
|
||||
extern kern_return_t clock_get_res(mach_port_t,
|
||||
clock_res_t *);
|
||||
extern kern_return_t clock_set_res(mach_port_t,
|
||||
clock_res_t);
|
||||
|
||||
extern kern_return_t clock_sleep(mach_port_t,
|
||||
int,
|
||||
mach_timespec_t,
|
||||
mach_timespec_t *);
|
||||
|
||||
/*!
|
||||
* @group voucher_mach_msg Prototypes
|
||||
*/
|
||||
|
||||
#define VOUCHER_MACH_MSG_API_VERSION 20140205
|
||||
|
||||
/*!
|
||||
* @typedef voucher_mach_msg_state_t
|
||||
*
|
||||
* @abstract
|
||||
* Opaque object encapsulating state changed by voucher_mach_msg_adopt().
|
||||
*/
|
||||
typedef struct voucher_mach_msg_state_s *voucher_mach_msg_state_t;
|
||||
|
||||
/*!
|
||||
* @const VOUCHER_MACH_MSG_STATE_UNCHANGED
|
||||
*
|
||||
* @discussion
|
||||
* Constant indicating no state change occurred.
|
||||
*/
|
||||
#define VOUCHER_MACH_MSG_STATE_UNCHANGED ((voucher_mach_msg_state_t)~0ul)
|
||||
|
||||
/*!
|
||||
* @function voucher_mach_msg_set
|
||||
*
|
||||
* @abstract
|
||||
* Change specified message header to contain current mach voucher with a
|
||||
* COPY_SEND disposition.
|
||||
* Does not change message if it already has non-zero MACH_MSGH_BITS_VOUCHER.
|
||||
*
|
||||
* @discussion
|
||||
* Borrows reference to current thread voucher so message should be sent
|
||||
* immediately (without intervening calls that might change that voucher).
|
||||
*
|
||||
* @param msg
|
||||
* The message to modify.
|
||||
*
|
||||
* @result
|
||||
* True if header was changed.
|
||||
*/
|
||||
extern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg);
|
||||
|
||||
/*!
|
||||
* @function voucher_mach_msg_clear
|
||||
*
|
||||
* @abstract
|
||||
* Removes changes made to specified message header by voucher_mach_msg_set()
|
||||
* and any mach_msg() send operations (successful or not).
|
||||
* If the message is not needed further, mach_msg_destroy() should be called
|
||||
* instead.
|
||||
*
|
||||
* @discussion
|
||||
* Not intended to be called if voucher_mach_msg_set() returned false.
|
||||
* Releases reference to message mach voucher if an extra reference was
|
||||
* acquired due to an unsuccessful send operation (pseudo-receive).
|
||||
*
|
||||
* @param msg
|
||||
* The message to modify.
|
||||
*/
|
||||
extern void voucher_mach_msg_clear(mach_msg_header_t *msg);
|
||||
|
||||
/*!
|
||||
* @function voucher_mach_msg_adopt
|
||||
*
|
||||
* @abstract
|
||||
* Adopt the voucher contained in the specified message on the current thread
|
||||
* and return the previous thread voucher state.
|
||||
*
|
||||
* @discussion
|
||||
* Ownership of the mach voucher in the message is transferred to the current
|
||||
* thread and the message header voucher fields are cleared.
|
||||
*
|
||||
* @param msg
|
||||
* The message to query and modify.
|
||||
*
|
||||
* @result
|
||||
* The previous thread voucher state or VOUCHER_MACH_MSG_STATE_UNCHANGED if no
|
||||
* state change occurred.
|
||||
*/
|
||||
extern voucher_mach_msg_state_t voucher_mach_msg_adopt(mach_msg_header_t *msg);
|
||||
|
||||
/*!
|
||||
* @function voucher_mach_msg_revert
|
||||
*
|
||||
* @abstract
|
||||
* Restore thread voucher state previously modified by voucher_mach_msg_adopt().
|
||||
*
|
||||
* @discussion
|
||||
* Current thread voucher reference is released.
|
||||
* No change to thread voucher state if passed VOUCHER_MACH_MSG_STATE_UNCHANGED.
|
||||
*
|
||||
* @param state
|
||||
* The thread voucher state to restore.
|
||||
*/
|
||||
|
||||
extern void voucher_mach_msg_revert(voucher_mach_msg_state_t state);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* _MACH_H_ */
|
||||
1295
lib/libc/include/any-macos.11-any/mach/mach_host.h
vendored
Normal file
1295
lib/libc/include/any-macos.11-any/mach/mach_host.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@ -64,7 +64,9 @@
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#ifndef KERNEL
|
||||
#include <Availability.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Kernel-related ports; how a task/thread controls itself
|
||||
|
||||
1808
lib/libc/include/any-macos.11-any/mach/mach_port.h
vendored
Normal file
1808
lib/libc/include/any-macos.11-any/mach/mach_port.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@ -218,7 +218,6 @@ typedef exception_handler_t exception_port_t;
|
||||
typedef exception_handler_array_t exception_port_arrary_t;
|
||||
typedef char vfs_path_t[4096];
|
||||
typedef char nspace_path_t[1024]; /* 1024 == PATH_MAX */
|
||||
typedef char nspace_name_t[1024]; /* 1024 == PATH_MAX */
|
||||
typedef char suid_cred_path_t[1024];
|
||||
typedef uint32_t suid_cred_uid_t;
|
||||
|
||||
@ -262,16 +261,12 @@ typedef unsigned int mach_task_flavor_t;
|
||||
#define TASK_FLAVOR_INSPECT 2 /* a task_inspect_t */
|
||||
#define TASK_FLAVOR_NAME 3 /* a task_name_t */
|
||||
|
||||
#define TASK_FLAVOR_MAX TASK_FLAVOR_NAME
|
||||
|
||||
/* capability strictly _DECREASING_ */
|
||||
typedef unsigned int mach_thread_flavor_t;
|
||||
#define THREAD_FLAVOR_CONTROL 0 /* a thread_t */
|
||||
#define THREAD_FLAVOR_READ 1 /* a thread_read_t */
|
||||
#define THREAD_FLAVOR_INSPECT 2 /* a thread_inspect_t */
|
||||
|
||||
#define THREAD_FLAVOR_MAX THREAD_FLAVOR_INSPECT
|
||||
|
||||
/* DEPRECATED */
|
||||
typedef natural_t ledger_item_t;
|
||||
#define LEDGER_ITEM_INFINITY ((ledger_item_t) (~0))
|
||||
|
||||
245
lib/libc/include/any-macos.11-any/mach/mach_voucher_types.h
vendored
Normal file
245
lib/libc/include/any-macos.11-any/mach/mach_voucher_types.h
vendored
Normal file
@ -0,0 +1,245 @@
|
||||
/*
|
||||
* Copyright (c) 2013 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#ifndef _MACH_VOUCHER_TYPES_H_
|
||||
#define _MACH_VOUCHER_TYPES_H_
|
||||
|
||||
#include <mach/std_types.h>
|
||||
#include <mach/port.h>
|
||||
|
||||
/*
|
||||
* Mach Voucher - an immutable collection of attribute value handles.
|
||||
*
|
||||
* The mach voucher is such that it can be passed between processes
|
||||
* as a Mach port send right (by convention in the mach_msg_header_t’s
|
||||
* msgh_voucher field).
|
||||
*
|
||||
* You may construct a new mach voucher by passing a construction
|
||||
* recipe to host_create_mach_voucher(). The construction recipe supports
|
||||
* generic commands for copying, removing, and redeeming attribute value
|
||||
* handles from previous vouchers, or running attribute-mananger-specific
|
||||
* commands within the recipe.
|
||||
*
|
||||
* Once the set of attribute value handles is constructed and returned,
|
||||
* that set will not change for the life of the voucher (just because the
|
||||
* attribute value handle itself doesn't change, the value the handle refers
|
||||
* to is free to change at will).
|
||||
*/
|
||||
typedef mach_port_t mach_voucher_t;
|
||||
#define MACH_VOUCHER_NULL ((mach_voucher_t) 0)
|
||||
|
||||
typedef mach_port_name_t mach_voucher_name_t;
|
||||
#define MACH_VOUCHER_NAME_NULL ((mach_voucher_name_t) 0)
|
||||
|
||||
typedef mach_voucher_name_t *mach_voucher_name_array_t;
|
||||
#define MACH_VOUCHER_NAME_ARRAY_NULL ((mach_voucher_name_array_t) 0)
|
||||
|
||||
/*
|
||||
* This type changes appearance between user-space and kernel. It is
|
||||
* a port at user-space and a reference to an ipc_voucher structure in-kernel.
|
||||
*/
|
||||
typedef mach_voucher_t ipc_voucher_t;
|
||||
#define IPC_VOUCHER_NULL ((ipc_voucher_t) 0)
|
||||
|
||||
/*
|
||||
* mach_voucher_selector_t - A means of specifying which thread/task value to extract -
|
||||
* the current voucher set at this level, or a voucher representing
|
||||
* the full [layered] effective value for the task/thread.
|
||||
*/
|
||||
typedef uint32_t mach_voucher_selector_t;
|
||||
#define MACH_VOUCHER_SELECTOR_CURRENT ((mach_voucher_selector_t)0)
|
||||
#define MACH_VOUCHER_SELECTOR_EFFECTIVE ((mach_voucher_selector_t)1)
|
||||
|
||||
|
||||
/*
|
||||
* mach_voucher_attr_key_t - The key used to identify a particular managed resource or
|
||||
* to select the specific resource manager’s data associated
|
||||
* with a given voucher.
|
||||
*/
|
||||
typedef uint32_t mach_voucher_attr_key_t;
|
||||
typedef mach_voucher_attr_key_t *mach_voucher_attr_key_array_t;
|
||||
|
||||
#define MACH_VOUCHER_ATTR_KEY_ALL ((mach_voucher_attr_key_t)~0)
|
||||
#define MACH_VOUCHER_ATTR_KEY_NONE ((mach_voucher_attr_key_t)0)
|
||||
|
||||
/* other well-known-keys will be added here */
|
||||
#define MACH_VOUCHER_ATTR_KEY_ATM ((mach_voucher_attr_key_t)1)
|
||||
#define MACH_VOUCHER_ATTR_KEY_IMPORTANCE ((mach_voucher_attr_key_t)2)
|
||||
#define MACH_VOUCHER_ATTR_KEY_BANK ((mach_voucher_attr_key_t)3)
|
||||
#define MACH_VOUCHER_ATTR_KEY_PTHPRIORITY ((mach_voucher_attr_key_t)4)
|
||||
|
||||
#define MACH_VOUCHER_ATTR_KEY_USER_DATA ((mach_voucher_attr_key_t)7)
|
||||
#define MACH_VOUCHER_ATTR_KEY_BITS MACH_VOUCHER_ATTR_KEY_USER_DATA /* deprecated */
|
||||
#define MACH_VOUCHER_ATTR_KEY_TEST ((mach_voucher_attr_key_t)8)
|
||||
|
||||
#define MACH_VOUCHER_ATTR_KEY_NUM_WELL_KNOWN MACH_VOUCHER_ATTR_KEY_TEST
|
||||
|
||||
/*
|
||||
* mach_voucher_attr_content_t
|
||||
*
|
||||
* Data passed to a resource manager for modifying an attribute
|
||||
* value or returned from the resource manager in response to a
|
||||
* request to externalize the current value for that attribute.
|
||||
*/
|
||||
typedef uint8_t *mach_voucher_attr_content_t;
|
||||
typedef uint32_t mach_voucher_attr_content_size_t;
|
||||
|
||||
/*
|
||||
* mach_voucher_attr_command_t - The private verbs implemented by each voucher
|
||||
* attribute manager via mach_voucher_attr_command().
|
||||
*/
|
||||
typedef uint32_t mach_voucher_attr_command_t;
|
||||
|
||||
/*
|
||||
* mach_voucher_attr_recipe_command_t
|
||||
*
|
||||
* The verbs used to create/morph a voucher attribute value.
|
||||
* We define some system-wide commands here - related to creation, and transport of
|
||||
* vouchers and attributes. Additional commands can be defined by, and supported by,
|
||||
* individual attribute resource managers.
|
||||
*/
|
||||
typedef uint32_t mach_voucher_attr_recipe_command_t;
|
||||
typedef mach_voucher_attr_recipe_command_t *mach_voucher_attr_recipe_command_array_t;
|
||||
|
||||
#define MACH_VOUCHER_ATTR_NOOP ((mach_voucher_attr_recipe_command_t)0)
|
||||
#define MACH_VOUCHER_ATTR_COPY ((mach_voucher_attr_recipe_command_t)1)
|
||||
#define MACH_VOUCHER_ATTR_REMOVE ((mach_voucher_attr_recipe_command_t)2)
|
||||
#define MACH_VOUCHER_ATTR_SET_VALUE_HANDLE ((mach_voucher_attr_recipe_command_t)3)
|
||||
#define MACH_VOUCHER_ATTR_AUTO_REDEEM ((mach_voucher_attr_recipe_command_t)4)
|
||||
#define MACH_VOUCHER_ATTR_SEND_PREPROCESS ((mach_voucher_attr_recipe_command_t)5)
|
||||
|
||||
/* redeem is on its way out? */
|
||||
#define MACH_VOUCHER_ATTR_REDEEM ((mach_voucher_attr_recipe_command_t)10)
|
||||
|
||||
/* recipe command(s) for importance attribute manager */
|
||||
#define MACH_VOUCHER_ATTR_IMPORTANCE_SELF ((mach_voucher_attr_recipe_command_t)200)
|
||||
|
||||
/* recipe command(s) for bit-store attribute manager */
|
||||
#define MACH_VOUCHER_ATTR_USER_DATA_STORE ((mach_voucher_attr_recipe_command_t)211)
|
||||
#define MACH_VOUCHER_ATTR_BITS_STORE MACH_VOUCHER_ATTR_USER_DATA_STORE /* deprecated */
|
||||
|
||||
/* recipe command(s) for test attribute manager */
|
||||
#define MACH_VOUCHER_ATTR_TEST_STORE MACH_VOUCHER_ATTR_USER_DATA_STORE
|
||||
|
||||
/*
|
||||
* mach_voucher_attr_recipe_t
|
||||
*
|
||||
* An element in a recipe list to create a voucher.
|
||||
*/
|
||||
#pragma pack(push, 1)
|
||||
|
||||
typedef struct mach_voucher_attr_recipe_data {
|
||||
mach_voucher_attr_key_t key;
|
||||
mach_voucher_attr_recipe_command_t command;
|
||||
mach_voucher_name_t previous_voucher;
|
||||
mach_voucher_attr_content_size_t content_size;
|
||||
uint8_t content[];
|
||||
} mach_voucher_attr_recipe_data_t;
|
||||
typedef mach_voucher_attr_recipe_data_t *mach_voucher_attr_recipe_t;
|
||||
typedef mach_msg_type_number_t mach_voucher_attr_recipe_size_t;
|
||||
|
||||
/* Make the above palatable to MIG */
|
||||
typedef uint8_t *mach_voucher_attr_raw_recipe_t;
|
||||
typedef mach_voucher_attr_raw_recipe_t mach_voucher_attr_raw_recipe_array_t;
|
||||
typedef mach_msg_type_number_t mach_voucher_attr_raw_recipe_size_t;
|
||||
typedef mach_msg_type_number_t mach_voucher_attr_raw_recipe_array_size_t;
|
||||
|
||||
#define MACH_VOUCHER_ATTR_MAX_RAW_RECIPE_ARRAY_SIZE 5120
|
||||
#define MACH_VOUCHER_TRAP_STACK_LIMIT 256
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
/*
|
||||
* VOUCHER ATTRIBUTE MANAGER Writer types
|
||||
*/
|
||||
|
||||
/*
|
||||
* mach_voucher_attr_manager_t
|
||||
*
|
||||
* A handle through which the mach voucher mechanism communicates with the voucher
|
||||
* attribute manager for a given attribute key.
|
||||
*/
|
||||
typedef mach_port_t mach_voucher_attr_manager_t;
|
||||
#define MACH_VOUCHER_ATTR_MANAGER_NULL ((mach_voucher_attr_manager_t) 0)
|
||||
|
||||
/*
|
||||
* mach_voucher_attr_control_t
|
||||
*
|
||||
* A handle provided to the voucher attribute manager for a given attribute key
|
||||
* through which it makes inquiries or control operations of the mach voucher mechanism.
|
||||
*/
|
||||
typedef mach_port_t mach_voucher_attr_control_t;
|
||||
#define MACH_VOUCHER_ATTR_CONTROL_NULL ((mach_voucher_attr_control_t) 0)
|
||||
|
||||
/*
|
||||
* These types are different in-kernel vs user-space. They are ports in user-space,
|
||||
* pointers to opaque structs in most of the kernel, and pointers to known struct
|
||||
* types in the Mach portion of the kernel.
|
||||
*/
|
||||
typedef mach_port_t ipc_voucher_attr_manager_t;
|
||||
typedef mach_port_t ipc_voucher_attr_control_t;
|
||||
#define IPC_VOUCHER_ATTR_MANAGER_NULL ((ipc_voucher_attr_manager_t) 0)
|
||||
#define IPC_VOUCHER_ATTR_CONTROL_NULL ((ipc_voucher_attr_control_t) 0)
|
||||
|
||||
/*
|
||||
* mach_voucher_attr_value_handle_t
|
||||
*
|
||||
* The private handle that the voucher attribute manager provides to
|
||||
* the mach voucher mechanism to represent a given attr content/value.
|
||||
*/
|
||||
typedef uint64_t mach_voucher_attr_value_handle_t;
|
||||
typedef mach_voucher_attr_value_handle_t *mach_voucher_attr_value_handle_array_t;
|
||||
|
||||
typedef mach_msg_type_number_t mach_voucher_attr_value_handle_array_size_t;
|
||||
#define MACH_VOUCHER_ATTR_VALUE_MAX_NESTED ((mach_voucher_attr_value_handle_array_size_t)4)
|
||||
|
||||
typedef uint32_t mach_voucher_attr_value_reference_t;
|
||||
typedef uint32_t mach_voucher_attr_value_flags_t;
|
||||
#define MACH_VOUCHER_ATTR_VALUE_FLAGS_NONE ((mach_voucher_attr_value_flags_t)0)
|
||||
#define MACH_VOUCHER_ATTR_VALUE_FLAGS_PERSIST ((mach_voucher_attr_value_flags_t)1)
|
||||
|
||||
/* USE - TBD */
|
||||
typedef uint32_t mach_voucher_attr_control_flags_t;
|
||||
#define MACH_VOUCHER_ATTR_CONTROL_FLAGS_NONE ((mach_voucher_attr_control_flags_t)0)
|
||||
|
||||
/*
|
||||
* Commands and types for the IPC Importance Attribute Manager
|
||||
*
|
||||
* These are the valid mach_voucher_attr_command() options with the
|
||||
* MACH_VOUCHER_ATTR_KEY_IMPORTANCE key.
|
||||
*/
|
||||
#define MACH_VOUCHER_IMPORTANCE_ATTR_ADD_EXTERNAL 1 /* Add some number of external refs (not supported) */
|
||||
#define MACH_VOUCHER_IMPORTANCE_ATTR_DROP_EXTERNAL 2 /* Drop some number of external refs */
|
||||
typedef uint32_t mach_voucher_attr_importance_refs;
|
||||
|
||||
/*
|
||||
* Activity id Generation defines
|
||||
*/
|
||||
#define MACH_ACTIVITY_ID_COUNT_MAX 16
|
||||
|
||||
#endif /* _MACH_VOUCHER_TYPES_H_ */
|
||||
409
lib/libc/include/any-macos.11-any/mach/machine.h
vendored
Normal file
409
lib/libc/include/any-macos.11-any/mach/machine.h
vendored
Normal file
@ -0,0 +1,409 @@
|
||||
/*
|
||||
* Copyright (c) 2007-2016 Apple, Inc. All rights reserved.
|
||||
* Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* Mach Operating System
|
||||
* Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission to use, copy, modify and distribute this software and its
|
||||
* documentation is hereby granted, provided that both the copyright
|
||||
* notice and this permission notice appear in all copies of the
|
||||
* software, derivative works or modified versions, and any portions
|
||||
* thereof, and that both notices appear in supporting documentation.
|
||||
*
|
||||
* CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
|
||||
* CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
|
||||
* ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
|
||||
*
|
||||
* Carnegie Mellon requests users of this software to return to
|
||||
*
|
||||
* Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
|
||||
* School of Computer Science
|
||||
* Carnegie Mellon University
|
||||
* Pittsburgh PA 15213-3890
|
||||
*
|
||||
* any improvements or extensions that they make and grant Carnegie Mellon
|
||||
* the rights to redistribute these changes.
|
||||
*/
|
||||
/* File: machine.h
|
||||
* Author: Avadis Tevanian, Jr.
|
||||
* Date: 1986
|
||||
*
|
||||
* Machine independent machine abstraction.
|
||||
*/
|
||||
|
||||
#ifndef _MACH_MACHINE_H_
|
||||
#define _MACH_MACHINE_H_
|
||||
|
||||
#ifndef __ASSEMBLER__
|
||||
|
||||
#include <stdint.h>
|
||||
#include <mach/machine/vm_types.h>
|
||||
#include <mach/boolean.h>
|
||||
|
||||
typedef integer_t cpu_type_t;
|
||||
typedef integer_t cpu_subtype_t;
|
||||
typedef integer_t cpu_threadtype_t;
|
||||
|
||||
#define CPU_STATE_MAX 4
|
||||
|
||||
#define CPU_STATE_USER 0
|
||||
#define CPU_STATE_SYSTEM 1
|
||||
#define CPU_STATE_IDLE 2
|
||||
#define CPU_STATE_NICE 3
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Capability bits used in the definition of cpu_type.
|
||||
*/
|
||||
#define CPU_ARCH_MASK 0xff000000 /* mask for architecture bits */
|
||||
#define CPU_ARCH_ABI64 0x01000000 /* 64 bit ABI */
|
||||
#define CPU_ARCH_ABI64_32 0x02000000 /* ABI for 64-bit hardware with 32-bit types; LP32 */
|
||||
|
||||
/*
|
||||
* Machine types known by all.
|
||||
*/
|
||||
|
||||
#define CPU_TYPE_ANY ((cpu_type_t) -1)
|
||||
|
||||
#define CPU_TYPE_VAX ((cpu_type_t) 1)
|
||||
/* skip ((cpu_type_t) 2) */
|
||||
/* skip ((cpu_type_t) 3) */
|
||||
/* skip ((cpu_type_t) 4) */
|
||||
/* skip ((cpu_type_t) 5) */
|
||||
#define CPU_TYPE_MC680x0 ((cpu_type_t) 6)
|
||||
#define CPU_TYPE_X86 ((cpu_type_t) 7)
|
||||
#define CPU_TYPE_I386 CPU_TYPE_X86 /* compatibility */
|
||||
#define CPU_TYPE_X86_64 (CPU_TYPE_X86 | CPU_ARCH_ABI64)
|
||||
|
||||
/* skip CPU_TYPE_MIPS ((cpu_type_t) 8) */
|
||||
/* skip ((cpu_type_t) 9) */
|
||||
#define CPU_TYPE_MC98000 ((cpu_type_t) 10)
|
||||
#define CPU_TYPE_HPPA ((cpu_type_t) 11)
|
||||
#define CPU_TYPE_ARM ((cpu_type_t) 12)
|
||||
#define CPU_TYPE_ARM64 (CPU_TYPE_ARM | CPU_ARCH_ABI64)
|
||||
#define CPU_TYPE_ARM64_32 (CPU_TYPE_ARM | CPU_ARCH_ABI64_32)
|
||||
#define CPU_TYPE_MC88000 ((cpu_type_t) 13)
|
||||
#define CPU_TYPE_SPARC ((cpu_type_t) 14)
|
||||
#define CPU_TYPE_I860 ((cpu_type_t) 15)
|
||||
/* skip CPU_TYPE_ALPHA ((cpu_type_t) 16) */
|
||||
/* skip ((cpu_type_t) 17) */
|
||||
#define CPU_TYPE_POWERPC ((cpu_type_t) 18)
|
||||
#define CPU_TYPE_POWERPC64 (CPU_TYPE_POWERPC | CPU_ARCH_ABI64)
|
||||
/* skip ((cpu_type_t) 19) */
|
||||
/* skip ((cpu_type_t) 20 */
|
||||
/* skip ((cpu_type_t) 21 */
|
||||
/* skip ((cpu_type_t) 22 */
|
||||
|
||||
/*
|
||||
* Machine subtypes (these are defined here, instead of in a machine
|
||||
* dependent directory, so that any program can get all definitions
|
||||
* regardless of where is it compiled).
|
||||
*/
|
||||
|
||||
/*
|
||||
* Capability bits used in the definition of cpu_subtype.
|
||||
*/
|
||||
#define CPU_SUBTYPE_MASK 0xff000000 /* mask for feature flags */
|
||||
#define CPU_SUBTYPE_LIB64 0x80000000 /* 64 bit libraries */
|
||||
#define CPU_SUBTYPE_PTRAUTH_ABI 0x80000000 /* pointer authentication with versioned ABI */
|
||||
|
||||
/*
|
||||
* When selecting a slice, ANY will pick the slice with the best
|
||||
* grading for the selected cpu_type_t, unlike the "ALL" subtypes,
|
||||
* which are the slices that can run on any hardware for that cpu type.
|
||||
*/
|
||||
#define CPU_SUBTYPE_ANY ((cpu_subtype_t) -1)
|
||||
|
||||
/*
|
||||
* Object files that are hand-crafted to run on any
|
||||
* implementation of an architecture are tagged with
|
||||
* CPU_SUBTYPE_MULTIPLE. This functions essentially the same as
|
||||
* the "ALL" subtype of an architecture except that it allows us
|
||||
* to easily find object files that may need to be modified
|
||||
* whenever a new implementation of an architecture comes out.
|
||||
*
|
||||
* It is the responsibility of the implementor to make sure the
|
||||
* software handles unsupported implementations elegantly.
|
||||
*/
|
||||
#define CPU_SUBTYPE_MULTIPLE ((cpu_subtype_t) -1)
|
||||
#define CPU_SUBTYPE_LITTLE_ENDIAN ((cpu_subtype_t) 0)
|
||||
#define CPU_SUBTYPE_BIG_ENDIAN ((cpu_subtype_t) 1)
|
||||
|
||||
/*
|
||||
* Machine threadtypes.
|
||||
* This is none - not defined - for most machine types/subtypes.
|
||||
*/
|
||||
#define CPU_THREADTYPE_NONE ((cpu_threadtype_t) 0)
|
||||
|
||||
/*
|
||||
* VAX subtypes (these do *not* necessary conform to the actual cpu
|
||||
* ID assigned by DEC available via the SID register).
|
||||
*/
|
||||
|
||||
#define CPU_SUBTYPE_VAX_ALL ((cpu_subtype_t) 0)
|
||||
#define CPU_SUBTYPE_VAX780 ((cpu_subtype_t) 1)
|
||||
#define CPU_SUBTYPE_VAX785 ((cpu_subtype_t) 2)
|
||||
#define CPU_SUBTYPE_VAX750 ((cpu_subtype_t) 3)
|
||||
#define CPU_SUBTYPE_VAX730 ((cpu_subtype_t) 4)
|
||||
#define CPU_SUBTYPE_UVAXI ((cpu_subtype_t) 5)
|
||||
#define CPU_SUBTYPE_UVAXII ((cpu_subtype_t) 6)
|
||||
#define CPU_SUBTYPE_VAX8200 ((cpu_subtype_t) 7)
|
||||
#define CPU_SUBTYPE_VAX8500 ((cpu_subtype_t) 8)
|
||||
#define CPU_SUBTYPE_VAX8600 ((cpu_subtype_t) 9)
|
||||
#define CPU_SUBTYPE_VAX8650 ((cpu_subtype_t) 10)
|
||||
#define CPU_SUBTYPE_VAX8800 ((cpu_subtype_t) 11)
|
||||
#define CPU_SUBTYPE_UVAXIII ((cpu_subtype_t) 12)
|
||||
|
||||
/*
|
||||
* 680x0 subtypes
|
||||
*
|
||||
* The subtype definitions here are unusual for historical reasons.
|
||||
* NeXT used to consider 68030 code as generic 68000 code. For
|
||||
* backwards compatability:
|
||||
*
|
||||
* CPU_SUBTYPE_MC68030 symbol has been preserved for source code
|
||||
* compatability.
|
||||
*
|
||||
* CPU_SUBTYPE_MC680x0_ALL has been defined to be the same
|
||||
* subtype as CPU_SUBTYPE_MC68030 for binary comatability.
|
||||
*
|
||||
* CPU_SUBTYPE_MC68030_ONLY has been added to allow new object
|
||||
* files to be tagged as containing 68030-specific instructions.
|
||||
*/
|
||||
|
||||
#define CPU_SUBTYPE_MC680x0_ALL ((cpu_subtype_t) 1)
|
||||
#define CPU_SUBTYPE_MC68030 ((cpu_subtype_t) 1) /* compat */
|
||||
#define CPU_SUBTYPE_MC68040 ((cpu_subtype_t) 2)
|
||||
#define CPU_SUBTYPE_MC68030_ONLY ((cpu_subtype_t) 3)
|
||||
|
||||
/*
|
||||
* I386 subtypes
|
||||
*/
|
||||
|
||||
#define CPU_SUBTYPE_INTEL(f, m) ((cpu_subtype_t) (f) + ((m) << 4))
|
||||
|
||||
#define CPU_SUBTYPE_I386_ALL CPU_SUBTYPE_INTEL(3, 0)
|
||||
#define CPU_SUBTYPE_386 CPU_SUBTYPE_INTEL(3, 0)
|
||||
#define CPU_SUBTYPE_486 CPU_SUBTYPE_INTEL(4, 0)
|
||||
#define CPU_SUBTYPE_486SX CPU_SUBTYPE_INTEL(4, 8) // 8 << 4 = 128
|
||||
#define CPU_SUBTYPE_586 CPU_SUBTYPE_INTEL(5, 0)
|
||||
#define CPU_SUBTYPE_PENT CPU_SUBTYPE_INTEL(5, 0)
|
||||
#define CPU_SUBTYPE_PENTPRO CPU_SUBTYPE_INTEL(6, 1)
|
||||
#define CPU_SUBTYPE_PENTII_M3 CPU_SUBTYPE_INTEL(6, 3)
|
||||
#define CPU_SUBTYPE_PENTII_M5 CPU_SUBTYPE_INTEL(6, 5)
|
||||
#define CPU_SUBTYPE_CELERON CPU_SUBTYPE_INTEL(7, 6)
|
||||
#define CPU_SUBTYPE_CELERON_MOBILE CPU_SUBTYPE_INTEL(7, 7)
|
||||
#define CPU_SUBTYPE_PENTIUM_3 CPU_SUBTYPE_INTEL(8, 0)
|
||||
#define CPU_SUBTYPE_PENTIUM_3_M CPU_SUBTYPE_INTEL(8, 1)
|
||||
#define CPU_SUBTYPE_PENTIUM_3_XEON CPU_SUBTYPE_INTEL(8, 2)
|
||||
#define CPU_SUBTYPE_PENTIUM_M CPU_SUBTYPE_INTEL(9, 0)
|
||||
#define CPU_SUBTYPE_PENTIUM_4 CPU_SUBTYPE_INTEL(10, 0)
|
||||
#define CPU_SUBTYPE_PENTIUM_4_M CPU_SUBTYPE_INTEL(10, 1)
|
||||
#define CPU_SUBTYPE_ITANIUM CPU_SUBTYPE_INTEL(11, 0)
|
||||
#define CPU_SUBTYPE_ITANIUM_2 CPU_SUBTYPE_INTEL(11, 1)
|
||||
#define CPU_SUBTYPE_XEON CPU_SUBTYPE_INTEL(12, 0)
|
||||
#define CPU_SUBTYPE_XEON_MP CPU_SUBTYPE_INTEL(12, 1)
|
||||
|
||||
#define CPU_SUBTYPE_INTEL_FAMILY(x) ((x) & 15)
|
||||
#define CPU_SUBTYPE_INTEL_FAMILY_MAX 15
|
||||
|
||||
#define CPU_SUBTYPE_INTEL_MODEL(x) ((x) >> 4)
|
||||
#define CPU_SUBTYPE_INTEL_MODEL_ALL 0
|
||||
|
||||
/*
|
||||
* X86 subtypes.
|
||||
*/
|
||||
|
||||
#define CPU_SUBTYPE_X86_ALL ((cpu_subtype_t)3)
|
||||
#define CPU_SUBTYPE_X86_64_ALL ((cpu_subtype_t)3)
|
||||
#define CPU_SUBTYPE_X86_ARCH1 ((cpu_subtype_t)4)
|
||||
#define CPU_SUBTYPE_X86_64_H ((cpu_subtype_t)8) /* Haswell feature subset */
|
||||
|
||||
|
||||
#define CPU_THREADTYPE_INTEL_HTT ((cpu_threadtype_t) 1)
|
||||
|
||||
/*
|
||||
* Mips subtypes.
|
||||
*/
|
||||
|
||||
#define CPU_SUBTYPE_MIPS_ALL ((cpu_subtype_t) 0)
|
||||
#define CPU_SUBTYPE_MIPS_R2300 ((cpu_subtype_t) 1)
|
||||
#define CPU_SUBTYPE_MIPS_R2600 ((cpu_subtype_t) 2)
|
||||
#define CPU_SUBTYPE_MIPS_R2800 ((cpu_subtype_t) 3)
|
||||
#define CPU_SUBTYPE_MIPS_R2000a ((cpu_subtype_t) 4) /* pmax */
|
||||
#define CPU_SUBTYPE_MIPS_R2000 ((cpu_subtype_t) 5)
|
||||
#define CPU_SUBTYPE_MIPS_R3000a ((cpu_subtype_t) 6) /* 3max */
|
||||
#define CPU_SUBTYPE_MIPS_R3000 ((cpu_subtype_t) 7)
|
||||
|
||||
/*
|
||||
* MC98000 (PowerPC) subtypes
|
||||
*/
|
||||
#define CPU_SUBTYPE_MC98000_ALL ((cpu_subtype_t) 0)
|
||||
#define CPU_SUBTYPE_MC98601 ((cpu_subtype_t) 1)
|
||||
|
||||
/*
|
||||
* HPPA subtypes for Hewlett-Packard HP-PA family of
|
||||
* risc processors. Port by NeXT to 700 series.
|
||||
*/
|
||||
|
||||
#define CPU_SUBTYPE_HPPA_ALL ((cpu_subtype_t) 0)
|
||||
#define CPU_SUBTYPE_HPPA_7100 ((cpu_subtype_t) 0) /* compat */
|
||||
#define CPU_SUBTYPE_HPPA_7100LC ((cpu_subtype_t) 1)
|
||||
|
||||
/*
|
||||
* MC88000 subtypes.
|
||||
*/
|
||||
#define CPU_SUBTYPE_MC88000_ALL ((cpu_subtype_t) 0)
|
||||
#define CPU_SUBTYPE_MC88100 ((cpu_subtype_t) 1)
|
||||
#define CPU_SUBTYPE_MC88110 ((cpu_subtype_t) 2)
|
||||
|
||||
/*
|
||||
* SPARC subtypes
|
||||
*/
|
||||
#define CPU_SUBTYPE_SPARC_ALL ((cpu_subtype_t) 0)
|
||||
|
||||
/*
|
||||
* I860 subtypes
|
||||
*/
|
||||
#define CPU_SUBTYPE_I860_ALL ((cpu_subtype_t) 0)
|
||||
#define CPU_SUBTYPE_I860_860 ((cpu_subtype_t) 1)
|
||||
|
||||
/*
|
||||
* PowerPC subtypes
|
||||
*/
|
||||
#define CPU_SUBTYPE_POWERPC_ALL ((cpu_subtype_t) 0)
|
||||
#define CPU_SUBTYPE_POWERPC_601 ((cpu_subtype_t) 1)
|
||||
#define CPU_SUBTYPE_POWERPC_602 ((cpu_subtype_t) 2)
|
||||
#define CPU_SUBTYPE_POWERPC_603 ((cpu_subtype_t) 3)
|
||||
#define CPU_SUBTYPE_POWERPC_603e ((cpu_subtype_t) 4)
|
||||
#define CPU_SUBTYPE_POWERPC_603ev ((cpu_subtype_t) 5)
|
||||
#define CPU_SUBTYPE_POWERPC_604 ((cpu_subtype_t) 6)
|
||||
#define CPU_SUBTYPE_POWERPC_604e ((cpu_subtype_t) 7)
|
||||
#define CPU_SUBTYPE_POWERPC_620 ((cpu_subtype_t) 8)
|
||||
#define CPU_SUBTYPE_POWERPC_750 ((cpu_subtype_t) 9)
|
||||
#define CPU_SUBTYPE_POWERPC_7400 ((cpu_subtype_t) 10)
|
||||
#define CPU_SUBTYPE_POWERPC_7450 ((cpu_subtype_t) 11)
|
||||
#define CPU_SUBTYPE_POWERPC_970 ((cpu_subtype_t) 100)
|
||||
|
||||
/*
|
||||
* ARM subtypes
|
||||
*/
|
||||
#define CPU_SUBTYPE_ARM_ALL ((cpu_subtype_t) 0)
|
||||
#define CPU_SUBTYPE_ARM_V4T ((cpu_subtype_t) 5)
|
||||
#define CPU_SUBTYPE_ARM_V6 ((cpu_subtype_t) 6)
|
||||
#define CPU_SUBTYPE_ARM_V5TEJ ((cpu_subtype_t) 7)
|
||||
#define CPU_SUBTYPE_ARM_XSCALE ((cpu_subtype_t) 8)
|
||||
#define CPU_SUBTYPE_ARM_V7 ((cpu_subtype_t) 9) /* ARMv7-A and ARMv7-R */
|
||||
#define CPU_SUBTYPE_ARM_V7F ((cpu_subtype_t) 10) /* Cortex A9 */
|
||||
#define CPU_SUBTYPE_ARM_V7S ((cpu_subtype_t) 11) /* Swift */
|
||||
#define CPU_SUBTYPE_ARM_V7K ((cpu_subtype_t) 12)
|
||||
#define CPU_SUBTYPE_ARM_V8 ((cpu_subtype_t) 13)
|
||||
#define CPU_SUBTYPE_ARM_V6M ((cpu_subtype_t) 14) /* Not meant to be run under xnu */
|
||||
#define CPU_SUBTYPE_ARM_V7M ((cpu_subtype_t) 15) /* Not meant to be run under xnu */
|
||||
#define CPU_SUBTYPE_ARM_V7EM ((cpu_subtype_t) 16) /* Not meant to be run under xnu */
|
||||
#define CPU_SUBTYPE_ARM_V8M ((cpu_subtype_t) 17) /* Not meant to be run under xnu */
|
||||
|
||||
/*
|
||||
* ARM64 subtypes
|
||||
*/
|
||||
#define CPU_SUBTYPE_ARM64_ALL ((cpu_subtype_t) 0)
|
||||
#define CPU_SUBTYPE_ARM64_V8 ((cpu_subtype_t) 1)
|
||||
#define CPU_SUBTYPE_ARM64E ((cpu_subtype_t) 2)
|
||||
|
||||
/* CPU subtype feature flags for ptrauth on arm64e platforms */
|
||||
#define CPU_SUBTYPE_ARM64_PTR_AUTH_MASK 0x0f000000
|
||||
#define CPU_SUBTYPE_ARM64_PTR_AUTH_VERSION(x) (((x) & CPU_SUBTYPE_ARM64_PTR_AUTH_MASK) >> 24)
|
||||
|
||||
/*
|
||||
* ARM64_32 subtypes
|
||||
*/
|
||||
#define CPU_SUBTYPE_ARM64_32_ALL ((cpu_subtype_t) 0)
|
||||
#define CPU_SUBTYPE_ARM64_32_V8 ((cpu_subtype_t) 1)
|
||||
|
||||
#endif /* !__ASSEMBLER__ */
|
||||
|
||||
/*
|
||||
* CPU families (sysctl hw.cpufamily)
|
||||
*
|
||||
* These are meant to identify the CPU's marketing name - an
|
||||
* application can map these to (possibly) localized strings.
|
||||
* NB: the encodings of the CPU families are intentionally arbitrary.
|
||||
* There is no ordering, and you should never try to deduce whether
|
||||
* or not some feature is available based on the family.
|
||||
* Use feature flags (eg, hw.optional.altivec) to test for optional
|
||||
* functionality.
|
||||
*/
|
||||
#define CPUFAMILY_UNKNOWN 0
|
||||
#define CPUFAMILY_POWERPC_G3 0xcee41549
|
||||
#define CPUFAMILY_POWERPC_G4 0x77c184ae
|
||||
#define CPUFAMILY_POWERPC_G5 0xed76d8aa
|
||||
#define CPUFAMILY_INTEL_6_13 0xaa33392b
|
||||
#define CPUFAMILY_INTEL_PENRYN 0x78ea4fbc
|
||||
#define CPUFAMILY_INTEL_NEHALEM 0x6b5a4cd2
|
||||
#define CPUFAMILY_INTEL_WESTMERE 0x573b5eec
|
||||
#define CPUFAMILY_INTEL_SANDYBRIDGE 0x5490b78c
|
||||
#define CPUFAMILY_INTEL_IVYBRIDGE 0x1f65e835
|
||||
#define CPUFAMILY_INTEL_HASWELL 0x10b282dc
|
||||
#define CPUFAMILY_INTEL_BROADWELL 0x582ed09c
|
||||
#define CPUFAMILY_INTEL_SKYLAKE 0x37fc219f
|
||||
#define CPUFAMILY_INTEL_KABYLAKE 0x0f817246
|
||||
#define CPUFAMILY_INTEL_ICELAKE 0x38435547
|
||||
#define CPUFAMILY_INTEL_COMETLAKE 0x1cf8a03e
|
||||
#define CPUFAMILY_ARM_9 0xe73283ae
|
||||
#define CPUFAMILY_ARM_11 0x8ff620d8
|
||||
#define CPUFAMILY_ARM_XSCALE 0x53b005f5
|
||||
#define CPUFAMILY_ARM_12 0xbd1b0ae9
|
||||
#define CPUFAMILY_ARM_13 0x0cc90e64
|
||||
#define CPUFAMILY_ARM_14 0x96077ef1
|
||||
#define CPUFAMILY_ARM_15 0xa8511bca
|
||||
#define CPUFAMILY_ARM_SWIFT 0x1e2d6381
|
||||
#define CPUFAMILY_ARM_CYCLONE 0x37a09642
|
||||
#define CPUFAMILY_ARM_TYPHOON 0x2c91a47e
|
||||
#define CPUFAMILY_ARM_TWISTER 0x92fb37c8
|
||||
#define CPUFAMILY_ARM_HURRICANE 0x67ceee93
|
||||
#define CPUFAMILY_ARM_MONSOON_MISTRAL 0xe81e7ef6
|
||||
#define CPUFAMILY_ARM_VORTEX_TEMPEST 0x07d34b9f
|
||||
#define CPUFAMILY_ARM_LIGHTNING_THUNDER 0x462504d2
|
||||
#define CPUFAMILY_ARM_FIRESTORM_ICESTORM 0x1b588bb3
|
||||
|
||||
#define CPUSUBFAMILY_UNKNOWN 0
|
||||
#define CPUSUBFAMILY_ARM_HP 1
|
||||
#define CPUSUBFAMILY_ARM_HG 2
|
||||
#define CPUSUBFAMILY_ARM_M 3
|
||||
#define CPUSUBFAMILY_ARM_HS 4
|
||||
#define CPUSUBFAMILY_ARM_HC_HD 5
|
||||
|
||||
/* The following synonyms are deprecated: */
|
||||
#define CPUFAMILY_INTEL_6_23 CPUFAMILY_INTEL_PENRYN
|
||||
#define CPUFAMILY_INTEL_6_26 CPUFAMILY_INTEL_NEHALEM
|
||||
|
||||
|
||||
#endif /* _MACH_MACHINE_H_ */
|
||||
40
lib/libc/include/any-macos.11-any/mach/machine/thread_state.h
vendored
Normal file
40
lib/libc/include/any-macos.11-any/mach/machine/thread_state.h
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2007 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#ifndef _MACH_MACHINE_THREAD_STATE_H_
|
||||
#define _MACH_MACHINE_THREAD_STATE_H_
|
||||
|
||||
#if defined (__i386__) || defined(__x86_64__)
|
||||
#include "mach/i386/thread_state.h"
|
||||
#elif defined (__arm__) || defined (__arm64__)
|
||||
#include "mach/arm/thread_state.h"
|
||||
#else
|
||||
#error architecture not supported
|
||||
#endif
|
||||
|
||||
#endif /* _MACH_MACHINE_THREAD_STATE_H_ */
|
||||
908
lib/libc/include/any-macos.11-any/mach/message.h
vendored
Normal file
908
lib/libc/include/any-macos.11-any/mach/message.h
vendored
Normal file
@ -0,0 +1,908 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* @OSF_COPYRIGHT@
|
||||
*/
|
||||
/*
|
||||
* Mach Operating System
|
||||
* Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission to use, copy, modify and distribute this software and its
|
||||
* documentation is hereby granted, provided that both the copyright
|
||||
* notice and this permission notice appear in all copies of the
|
||||
* software, derivative works or modified versions, and any portions
|
||||
* thereof, and that both notices appear in supporting documentation.
|
||||
*
|
||||
* CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
|
||||
* CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
|
||||
* ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
|
||||
*
|
||||
* Carnegie Mellon requests users of this software to return to
|
||||
*
|
||||
* Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
|
||||
* School of Computer Science
|
||||
* Carnegie Mellon University
|
||||
* Pittsburgh PA 15213-3890
|
||||
*
|
||||
* any improvements or extensions that they make and grant Carnegie Mellon
|
||||
* the rights to redistribute these changes.
|
||||
*/
|
||||
/*
|
||||
* NOTICE: This file was modified by McAfee Research in 2004 to introduce
|
||||
* support for mandatory and extensible security protections. This notice
|
||||
* is included in support of clause 2.2 (b) of the Apple Public License,
|
||||
* Version 2.0.
|
||||
* Copyright (c) 2005 SPARTA, Inc.
|
||||
*/
|
||||
/*
|
||||
*/
|
||||
/*
|
||||
* File: mach/message.h
|
||||
*
|
||||
* Mach IPC message and primitive function definitions.
|
||||
*/
|
||||
|
||||
#ifndef _MACH_MESSAGE_H_
|
||||
#define _MACH_MESSAGE_H_
|
||||
|
||||
#include <stdint.h>
|
||||
#include <mach/port.h>
|
||||
#include <mach/boolean.h>
|
||||
#include <mach/kern_return.h>
|
||||
#include <mach/machine/vm_types.h>
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/appleapiopts.h>
|
||||
#include <Availability.h>
|
||||
|
||||
/*
|
||||
* The timeout mechanism uses mach_msg_timeout_t values,
|
||||
* passed by value. The timeout units are milliseconds.
|
||||
* It is controlled with the MACH_SEND_TIMEOUT
|
||||
* and MACH_RCV_TIMEOUT options.
|
||||
*/
|
||||
|
||||
typedef natural_t mach_msg_timeout_t;
|
||||
|
||||
/*
|
||||
* The value to be used when there is no timeout.
|
||||
* (No MACH_SEND_TIMEOUT/MACH_RCV_TIMEOUT option.)
|
||||
*/
|
||||
|
||||
#define MACH_MSG_TIMEOUT_NONE ((mach_msg_timeout_t) 0)
|
||||
|
||||
/*
|
||||
* The kernel uses MACH_MSGH_BITS_COMPLEX as a hint. If it isn't on, it
|
||||
* assumes the body of the message doesn't contain port rights or OOL
|
||||
* data. The field is set in received messages. A user task must
|
||||
* use caution in interpreting the body of a message if the bit isn't
|
||||
* on, because the mach_msg_type's in the body might "lie" about the
|
||||
* contents. If the bit isn't on, but the mach_msg_types
|
||||
* in the body specify rights or OOL data, the behavior is undefined.
|
||||
* (Ie, an error may or may not be produced.)
|
||||
*
|
||||
* The value of MACH_MSGH_BITS_REMOTE determines the interpretation
|
||||
* of the msgh_remote_port field. It is handled like a msgt_name,
|
||||
* but must result in a send or send-once type right.
|
||||
*
|
||||
* The value of MACH_MSGH_BITS_LOCAL determines the interpretation
|
||||
* of the msgh_local_port field. It is handled like a msgt_name,
|
||||
* and also must result in a send or send-once type right.
|
||||
*
|
||||
* The value of MACH_MSGH_BITS_VOUCHER determines the interpretation
|
||||
* of the msgh_voucher_port field. It is handled like a msgt_name,
|
||||
* but must result in a send right (and the msgh_voucher_port field
|
||||
* must be the name of a send right to a Mach voucher kernel object.
|
||||
*
|
||||
* MACH_MSGH_BITS() combines two MACH_MSG_TYPE_* values, for the remote
|
||||
* and local fields, into a single value suitable for msgh_bits.
|
||||
*
|
||||
* MACH_MSGH_BITS_CIRCULAR should be zero; is is used internally.
|
||||
*
|
||||
* The unused bits should be zero and are reserved for the kernel
|
||||
* or for future interface expansion.
|
||||
*/
|
||||
|
||||
#define MACH_MSGH_BITS_ZERO 0x00000000
|
||||
|
||||
#define MACH_MSGH_BITS_REMOTE_MASK 0x0000001f
|
||||
#define MACH_MSGH_BITS_LOCAL_MASK 0x00001f00
|
||||
#define MACH_MSGH_BITS_VOUCHER_MASK 0x001f0000
|
||||
|
||||
#define MACH_MSGH_BITS_PORTS_MASK \
|
||||
(MACH_MSGH_BITS_REMOTE_MASK | \
|
||||
MACH_MSGH_BITS_LOCAL_MASK | \
|
||||
MACH_MSGH_BITS_VOUCHER_MASK)
|
||||
|
||||
#define MACH_MSGH_BITS_COMPLEX 0x80000000U /* message is complex */
|
||||
|
||||
#define MACH_MSGH_BITS_USER 0x801f1f1fU /* allowed bits user->kernel */
|
||||
|
||||
#define MACH_MSGH_BITS_RAISEIMP 0x20000000U /* importance raised due to msg */
|
||||
#define MACH_MSGH_BITS_DENAP MACH_MSGH_BITS_RAISEIMP
|
||||
|
||||
#define MACH_MSGH_BITS_IMPHOLDASRT 0x10000000U /* assertion help, userland private */
|
||||
#define MACH_MSGH_BITS_DENAPHOLDASRT MACH_MSGH_BITS_IMPHOLDASRT
|
||||
|
||||
#define MACH_MSGH_BITS_CIRCULAR 0x10000000U /* message circular, kernel private */
|
||||
|
||||
#define MACH_MSGH_BITS_USED 0xb01f1f1fU
|
||||
|
||||
/* setter macros for the bits */
|
||||
#define MACH_MSGH_BITS(remote, local) /* legacy */ \
|
||||
((remote) | ((local) << 8))
|
||||
#define MACH_MSGH_BITS_SET_PORTS(remote, local, voucher) \
|
||||
(((remote) & MACH_MSGH_BITS_REMOTE_MASK) | \
|
||||
(((local) << 8) & MACH_MSGH_BITS_LOCAL_MASK) | \
|
||||
(((voucher) << 16) & MACH_MSGH_BITS_VOUCHER_MASK))
|
||||
#define MACH_MSGH_BITS_SET(remote, local, voucher, other) \
|
||||
(MACH_MSGH_BITS_SET_PORTS((remote), (local), (voucher)) \
|
||||
| ((other) &~ MACH_MSGH_BITS_PORTS_MASK))
|
||||
|
||||
/* getter macros for pulling values out of the bits field */
|
||||
#define MACH_MSGH_BITS_REMOTE(bits) \
|
||||
((bits) & MACH_MSGH_BITS_REMOTE_MASK)
|
||||
#define MACH_MSGH_BITS_LOCAL(bits) \
|
||||
(((bits) & MACH_MSGH_BITS_LOCAL_MASK) >> 8)
|
||||
#define MACH_MSGH_BITS_VOUCHER(bits) \
|
||||
(((bits) & MACH_MSGH_BITS_VOUCHER_MASK) >> 16)
|
||||
#define MACH_MSGH_BITS_PORTS(bits) \
|
||||
((bits) & MACH_MSGH_BITS_PORTS_MASK)
|
||||
#define MACH_MSGH_BITS_OTHER(bits) \
|
||||
((bits) &~ MACH_MSGH_BITS_PORTS_MASK)
|
||||
|
||||
/* checking macros */
|
||||
#define MACH_MSGH_BITS_HAS_REMOTE(bits) \
|
||||
(MACH_MSGH_BITS_REMOTE(bits) != MACH_MSGH_BITS_ZERO)
|
||||
#define MACH_MSGH_BITS_HAS_LOCAL(bits) \
|
||||
(MACH_MSGH_BITS_LOCAL(bits) != MACH_MSGH_BITS_ZERO)
|
||||
#define MACH_MSGH_BITS_HAS_VOUCHER(bits) \
|
||||
(MACH_MSGH_BITS_VOUCHER(bits) != MACH_MSGH_BITS_ZERO)
|
||||
#define MACH_MSGH_BITS_IS_COMPLEX(bits) \
|
||||
(((bits) & MACH_MSGH_BITS_COMPLEX) != MACH_MSGH_BITS_ZERO)
|
||||
|
||||
/* importance checking macros */
|
||||
#define MACH_MSGH_BITS_RAISED_IMPORTANCE(bits) \
|
||||
(((bits) & MACH_MSGH_BITS_RAISEIMP) != MACH_MSGH_BITS_ZERO)
|
||||
#define MACH_MSGH_BITS_HOLDS_IMPORTANCE_ASSERTION(bits) \
|
||||
(((bits) & MACH_MSGH_BITS_IMPHOLDASRT) != MACH_MSGH_BITS_ZERO)
|
||||
|
||||
/*
|
||||
* Every message starts with a message header.
|
||||
* Following the message header, if the message is complex, are a count
|
||||
* of type descriptors and the type descriptors themselves
|
||||
* (mach_msg_descriptor_t). The size of the message must be specified in
|
||||
* bytes, and includes the message header, descriptor count, descriptors,
|
||||
* and inline data.
|
||||
*
|
||||
* The msgh_remote_port field specifies the destination of the message.
|
||||
* It must specify a valid send or send-once right for a port.
|
||||
*
|
||||
* The msgh_local_port field specifies a "reply port". Normally,
|
||||
* This field carries a send-once right that the receiver will use
|
||||
* to reply to the message. It may carry the values MACH_PORT_NULL,
|
||||
* MACH_PORT_DEAD, a send-once right, or a send right.
|
||||
*
|
||||
* The msgh_voucher_port field specifies a Mach voucher port. Only
|
||||
* send rights to kernel-implemented Mach Voucher kernel objects in
|
||||
* addition to MACH_PORT_NULL or MACH_PORT_DEAD may be passed.
|
||||
*
|
||||
* The msgh_id field is uninterpreted by the message primitives.
|
||||
* It normally carries information specifying the format
|
||||
* or meaning of the message.
|
||||
*/
|
||||
|
||||
typedef unsigned int mach_msg_bits_t;
|
||||
typedef natural_t mach_msg_size_t;
|
||||
typedef integer_t mach_msg_id_t;
|
||||
|
||||
#define MACH_MSG_SIZE_NULL (mach_msg_size_t *) 0
|
||||
|
||||
typedef unsigned int mach_msg_priority_t;
|
||||
|
||||
#define MACH_MSG_PRIORITY_UNSPECIFIED (mach_msg_priority_t) 0
|
||||
|
||||
|
||||
typedef unsigned int mach_msg_type_name_t;
|
||||
|
||||
#define MACH_MSG_TYPE_MOVE_RECEIVE 16 /* Must hold receive right */
|
||||
#define MACH_MSG_TYPE_MOVE_SEND 17 /* Must hold send right(s) */
|
||||
#define MACH_MSG_TYPE_MOVE_SEND_ONCE 18 /* Must hold sendonce right */
|
||||
#define MACH_MSG_TYPE_COPY_SEND 19 /* Must hold send right(s) */
|
||||
#define MACH_MSG_TYPE_MAKE_SEND 20 /* Must hold receive right */
|
||||
#define MACH_MSG_TYPE_MAKE_SEND_ONCE 21 /* Must hold receive right */
|
||||
#define MACH_MSG_TYPE_COPY_RECEIVE 22 /* NOT VALID */
|
||||
#define MACH_MSG_TYPE_DISPOSE_RECEIVE 24 /* must hold receive right */
|
||||
#define MACH_MSG_TYPE_DISPOSE_SEND 25 /* must hold send right(s) */
|
||||
#define MACH_MSG_TYPE_DISPOSE_SEND_ONCE 26 /* must hold sendonce right */
|
||||
|
||||
typedef unsigned int mach_msg_copy_options_t;
|
||||
|
||||
#define MACH_MSG_PHYSICAL_COPY 0
|
||||
#define MACH_MSG_VIRTUAL_COPY 1
|
||||
#define MACH_MSG_ALLOCATE 2
|
||||
#define MACH_MSG_OVERWRITE 3 /* deprecated */
|
||||
#ifdef MACH_KERNEL
|
||||
#define MACH_MSG_KALLOC_COPY_T 4
|
||||
#endif /* MACH_KERNEL */
|
||||
|
||||
#define MACH_MSG_GUARD_FLAGS_NONE 0x0000
|
||||
#define MACH_MSG_GUARD_FLAGS_IMMOVABLE_RECEIVE 0x0001 /* Move the receive right and mark it as immovable */
|
||||
#define MACH_MSG_GUARD_FLAGS_UNGUARDED_ON_SEND 0x0002 /* Verify that the port is unguarded */
|
||||
#define MACH_MSG_GUARD_FLAGS_MASK 0x0003 /* Valid flag bits */
|
||||
typedef unsigned int mach_msg_guard_flags_t;
|
||||
|
||||
/*
|
||||
* In a complex mach message, the mach_msg_header_t is followed by
|
||||
* a descriptor count, then an array of that number of descriptors
|
||||
* (mach_msg_*_descriptor_t). The type field of mach_msg_type_descriptor_t
|
||||
* (which any descriptor can be cast to) indicates the flavor of the
|
||||
* descriptor.
|
||||
*
|
||||
* Note that in LP64, the various types of descriptors are no longer all
|
||||
* the same size as mach_msg_descriptor_t, so the array cannot be indexed
|
||||
* as expected.
|
||||
*/
|
||||
|
||||
typedef unsigned int mach_msg_descriptor_type_t;
|
||||
|
||||
#define MACH_MSG_PORT_DESCRIPTOR 0
|
||||
#define MACH_MSG_OOL_DESCRIPTOR 1
|
||||
#define MACH_MSG_OOL_PORTS_DESCRIPTOR 2
|
||||
#define MACH_MSG_OOL_VOLATILE_DESCRIPTOR 3
|
||||
#define MACH_MSG_GUARDED_PORT_DESCRIPTOR 4
|
||||
|
||||
#pragma pack(push, 4)
|
||||
|
||||
typedef struct{
|
||||
natural_t pad1;
|
||||
mach_msg_size_t pad2;
|
||||
unsigned int pad3 : 24;
|
||||
mach_msg_descriptor_type_t type : 8;
|
||||
} mach_msg_type_descriptor_t;
|
||||
|
||||
typedef struct{
|
||||
mach_port_t name;
|
||||
// Pad to 8 bytes everywhere except the K64 kernel where mach_port_t is 8 bytes
|
||||
mach_msg_size_t pad1;
|
||||
unsigned int pad2 : 16;
|
||||
mach_msg_type_name_t disposition : 8;
|
||||
mach_msg_descriptor_type_t type : 8;
|
||||
} mach_msg_port_descriptor_t;
|
||||
|
||||
typedef struct{
|
||||
uint32_t address;
|
||||
mach_msg_size_t size;
|
||||
boolean_t deallocate: 8;
|
||||
mach_msg_copy_options_t copy: 8;
|
||||
unsigned int pad1: 8;
|
||||
mach_msg_descriptor_type_t type: 8;
|
||||
} mach_msg_ool_descriptor32_t;
|
||||
|
||||
typedef struct{
|
||||
uint64_t address;
|
||||
boolean_t deallocate: 8;
|
||||
mach_msg_copy_options_t copy: 8;
|
||||
unsigned int pad1: 8;
|
||||
mach_msg_descriptor_type_t type: 8;
|
||||
mach_msg_size_t size;
|
||||
} mach_msg_ool_descriptor64_t;
|
||||
|
||||
typedef struct{
|
||||
void* address;
|
||||
#if !defined(__LP64__)
|
||||
mach_msg_size_t size;
|
||||
#endif
|
||||
boolean_t deallocate: 8;
|
||||
mach_msg_copy_options_t copy: 8;
|
||||
unsigned int pad1: 8;
|
||||
mach_msg_descriptor_type_t type: 8;
|
||||
#if defined(__LP64__)
|
||||
mach_msg_size_t size;
|
||||
#endif
|
||||
} mach_msg_ool_descriptor_t;
|
||||
|
||||
typedef struct{
|
||||
uint32_t address;
|
||||
mach_msg_size_t count;
|
||||
boolean_t deallocate: 8;
|
||||
mach_msg_copy_options_t copy: 8;
|
||||
mach_msg_type_name_t disposition : 8;
|
||||
mach_msg_descriptor_type_t type : 8;
|
||||
} mach_msg_ool_ports_descriptor32_t;
|
||||
|
||||
typedef struct{
|
||||
uint64_t address;
|
||||
boolean_t deallocate: 8;
|
||||
mach_msg_copy_options_t copy: 8;
|
||||
mach_msg_type_name_t disposition : 8;
|
||||
mach_msg_descriptor_type_t type : 8;
|
||||
mach_msg_size_t count;
|
||||
} mach_msg_ool_ports_descriptor64_t;
|
||||
|
||||
typedef struct{
|
||||
void* address;
|
||||
#if !defined(__LP64__)
|
||||
mach_msg_size_t count;
|
||||
#endif
|
||||
boolean_t deallocate: 8;
|
||||
mach_msg_copy_options_t copy: 8;
|
||||
mach_msg_type_name_t disposition : 8;
|
||||
mach_msg_descriptor_type_t type : 8;
|
||||
#if defined(__LP64__)
|
||||
mach_msg_size_t count;
|
||||
#endif
|
||||
} mach_msg_ool_ports_descriptor_t;
|
||||
|
||||
typedef struct{
|
||||
uint32_t context;
|
||||
mach_port_name_t name;
|
||||
mach_msg_guard_flags_t flags : 16;
|
||||
mach_msg_type_name_t disposition : 8;
|
||||
mach_msg_descriptor_type_t type : 8;
|
||||
} mach_msg_guarded_port_descriptor32_t;
|
||||
|
||||
typedef struct{
|
||||
uint64_t context;
|
||||
mach_msg_guard_flags_t flags : 16;
|
||||
mach_msg_type_name_t disposition : 8;
|
||||
mach_msg_descriptor_type_t type : 8;
|
||||
mach_port_name_t name;
|
||||
} mach_msg_guarded_port_descriptor64_t;
|
||||
|
||||
typedef struct{
|
||||
mach_port_context_t context;
|
||||
#if !defined(__LP64__)
|
||||
mach_port_name_t name;
|
||||
#endif
|
||||
mach_msg_guard_flags_t flags : 16;
|
||||
mach_msg_type_name_t disposition : 8;
|
||||
mach_msg_descriptor_type_t type : 8;
|
||||
#if defined(__LP64__)
|
||||
mach_port_name_t name;
|
||||
#endif /* defined(__LP64__) */
|
||||
} mach_msg_guarded_port_descriptor_t;
|
||||
|
||||
/*
|
||||
* LP64support - This union definition is not really
|
||||
* appropriate in LP64 mode because not all descriptors
|
||||
* are of the same size in that environment.
|
||||
*/
|
||||
typedef union{
|
||||
mach_msg_port_descriptor_t port;
|
||||
mach_msg_ool_descriptor_t out_of_line;
|
||||
mach_msg_ool_ports_descriptor_t ool_ports;
|
||||
mach_msg_type_descriptor_t type;
|
||||
mach_msg_guarded_port_descriptor_t guarded_port;
|
||||
} mach_msg_descriptor_t;
|
||||
|
||||
typedef struct{
|
||||
mach_msg_size_t msgh_descriptor_count;
|
||||
} mach_msg_body_t;
|
||||
|
||||
#define MACH_MSG_BODY_NULL (mach_msg_body_t *) 0
|
||||
#define MACH_MSG_DESCRIPTOR_NULL (mach_msg_descriptor_t *) 0
|
||||
|
||||
typedef struct{
|
||||
mach_msg_bits_t msgh_bits;
|
||||
mach_msg_size_t msgh_size;
|
||||
mach_port_t msgh_remote_port;
|
||||
mach_port_t msgh_local_port;
|
||||
mach_port_name_t msgh_voucher_port;
|
||||
mach_msg_id_t msgh_id;
|
||||
} mach_msg_header_t;
|
||||
|
||||
#define msgh_reserved msgh_voucher_port
|
||||
#define MACH_MSG_NULL (mach_msg_header_t *) 0
|
||||
|
||||
typedef struct{
|
||||
mach_msg_header_t header;
|
||||
mach_msg_body_t body;
|
||||
} mach_msg_base_t;
|
||||
|
||||
typedef unsigned int mach_msg_trailer_type_t;
|
||||
|
||||
#define MACH_MSG_TRAILER_FORMAT_0 0
|
||||
|
||||
typedef unsigned int mach_msg_trailer_size_t;
|
||||
typedef char *mach_msg_trailer_info_t;
|
||||
|
||||
typedef struct{
|
||||
mach_msg_trailer_type_t msgh_trailer_type;
|
||||
mach_msg_trailer_size_t msgh_trailer_size;
|
||||
} mach_msg_trailer_t;
|
||||
|
||||
/*
|
||||
* The msgh_seqno field carries a sequence number
|
||||
* associated with the received-from port. A port's
|
||||
* sequence number is incremented every time a message
|
||||
* is received from it and included in the received
|
||||
* trailer to help put messages back in sequence if
|
||||
* multiple threads receive and/or process received
|
||||
* messages.
|
||||
*/
|
||||
typedef struct{
|
||||
mach_msg_trailer_type_t msgh_trailer_type;
|
||||
mach_msg_trailer_size_t msgh_trailer_size;
|
||||
mach_port_seqno_t msgh_seqno;
|
||||
} mach_msg_seqno_trailer_t;
|
||||
|
||||
typedef struct{
|
||||
unsigned int val[2];
|
||||
} security_token_t;
|
||||
|
||||
typedef struct{
|
||||
mach_msg_trailer_type_t msgh_trailer_type;
|
||||
mach_msg_trailer_size_t msgh_trailer_size;
|
||||
mach_port_seqno_t msgh_seqno;
|
||||
security_token_t msgh_sender;
|
||||
} mach_msg_security_trailer_t;
|
||||
|
||||
/*
|
||||
* The audit token is an opaque token which identifies
|
||||
* Mach tasks and senders of Mach messages as subjects
|
||||
* to the BSM audit system. Only the appropriate BSM
|
||||
* library routines should be used to interpret the
|
||||
* contents of the audit token as the representation
|
||||
* of the subject identity within the token may change
|
||||
* over time.
|
||||
*/
|
||||
typedef struct{
|
||||
unsigned int val[8];
|
||||
} audit_token_t;
|
||||
|
||||
typedef struct{
|
||||
mach_msg_trailer_type_t msgh_trailer_type;
|
||||
mach_msg_trailer_size_t msgh_trailer_size;
|
||||
mach_port_seqno_t msgh_seqno;
|
||||
security_token_t msgh_sender;
|
||||
audit_token_t msgh_audit;
|
||||
} mach_msg_audit_trailer_t;
|
||||
|
||||
typedef struct{
|
||||
mach_msg_trailer_type_t msgh_trailer_type;
|
||||
mach_msg_trailer_size_t msgh_trailer_size;
|
||||
mach_port_seqno_t msgh_seqno;
|
||||
security_token_t msgh_sender;
|
||||
audit_token_t msgh_audit;
|
||||
mach_port_context_t msgh_context;
|
||||
} mach_msg_context_trailer_t;
|
||||
|
||||
|
||||
|
||||
typedef struct{
|
||||
mach_port_name_t sender;
|
||||
} msg_labels_t;
|
||||
|
||||
typedef int mach_msg_filter_id;
|
||||
#define MACH_MSG_FILTER_POLICY_ALLOW (mach_msg_filter_id)0
|
||||
|
||||
/*
|
||||
* Trailer type to pass MAC policy label info as a mach message trailer.
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct{
|
||||
mach_msg_trailer_type_t msgh_trailer_type;
|
||||
mach_msg_trailer_size_t msgh_trailer_size;
|
||||
mach_port_seqno_t msgh_seqno;
|
||||
security_token_t msgh_sender;
|
||||
audit_token_t msgh_audit;
|
||||
mach_port_context_t msgh_context;
|
||||
mach_msg_filter_id msgh_ad;
|
||||
msg_labels_t msgh_labels;
|
||||
} mach_msg_mac_trailer_t;
|
||||
|
||||
|
||||
#define MACH_MSG_TRAILER_MINIMUM_SIZE sizeof(mach_msg_trailer_t)
|
||||
|
||||
/*
|
||||
* These values can change from release to release - but clearly
|
||||
* code cannot request additional trailer elements one was not
|
||||
* compiled to understand. Therefore, it is safe to use this
|
||||
* constant when the same module specified the receive options.
|
||||
* Otherwise, you run the risk that the options requested by
|
||||
* another module may exceed the local modules notion of
|
||||
* MAX_TRAILER_SIZE.
|
||||
*/
|
||||
|
||||
typedef mach_msg_mac_trailer_t mach_msg_max_trailer_t;
|
||||
#define MAX_TRAILER_SIZE ((mach_msg_size_t)sizeof(mach_msg_max_trailer_t))
|
||||
|
||||
/*
|
||||
* Legacy requirements keep us from ever updating these defines (even
|
||||
* when the format_0 trailers gain new option data fields in the future).
|
||||
* Therefore, they shouldn't be used going forward. Instead, the sizes
|
||||
* should be compared against the specific element size requested using
|
||||
* REQUESTED_TRAILER_SIZE.
|
||||
*/
|
||||
typedef mach_msg_security_trailer_t mach_msg_format_0_trailer_t;
|
||||
|
||||
/*typedef mach_msg_mac_trailer_t mach_msg_format_0_trailer_t;
|
||||
*/
|
||||
|
||||
#define MACH_MSG_TRAILER_FORMAT_0_SIZE sizeof(mach_msg_format_0_trailer_t)
|
||||
|
||||
#define KERNEL_SECURITY_TOKEN_VALUE { {0, 1} }
|
||||
extern const security_token_t KERNEL_SECURITY_TOKEN;
|
||||
|
||||
#define KERNEL_AUDIT_TOKEN_VALUE { {0, 0, 0, 0, 0, 0, 0, 0} }
|
||||
extern const audit_token_t KERNEL_AUDIT_TOKEN;
|
||||
|
||||
typedef integer_t mach_msg_options_t;
|
||||
|
||||
typedef struct{
|
||||
mach_msg_header_t header;
|
||||
} mach_msg_empty_send_t;
|
||||
|
||||
typedef struct{
|
||||
mach_msg_header_t header;
|
||||
mach_msg_trailer_t trailer;
|
||||
} mach_msg_empty_rcv_t;
|
||||
|
||||
typedef union{
|
||||
mach_msg_empty_send_t send;
|
||||
mach_msg_empty_rcv_t rcv;
|
||||
} mach_msg_empty_t;
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
/* utility to round the message size - will become machine dependent */
|
||||
#define round_msg(x) (((mach_msg_size_t)(x) + sizeof (natural_t) - 1) & \
|
||||
~(sizeof (natural_t) - 1))
|
||||
|
||||
|
||||
/*
|
||||
* There is no fixed upper bound to the size of Mach messages.
|
||||
*/
|
||||
#define MACH_MSG_SIZE_MAX ((mach_msg_size_t) ~0)
|
||||
|
||||
#if defined(__APPLE_API_PRIVATE)
|
||||
/*
|
||||
* But architectural limits of a given implementation, or
|
||||
* temporal conditions may cause unpredictable send failures
|
||||
* for messages larger than MACH_MSG_SIZE_RELIABLE.
|
||||
*
|
||||
* In either case, waiting for memory is [currently] outside
|
||||
* the scope of send timeout values provided to IPC.
|
||||
*/
|
||||
#define MACH_MSG_SIZE_RELIABLE ((mach_msg_size_t) 256 * 1024)
|
||||
#endif
|
||||
/*
|
||||
* Compatibility definitions, for code written
|
||||
* when there was a msgh_kind instead of msgh_seqno.
|
||||
*/
|
||||
#define MACH_MSGH_KIND_NORMAL 0x00000000
|
||||
#define MACH_MSGH_KIND_NOTIFICATION 0x00000001
|
||||
#define msgh_kind msgh_seqno
|
||||
#define mach_msg_kind_t mach_port_seqno_t
|
||||
|
||||
typedef natural_t mach_msg_type_size_t;
|
||||
typedef natural_t mach_msg_type_number_t;
|
||||
|
||||
/*
|
||||
* Values received/carried in messages. Tells the receiver what
|
||||
* sort of port right he now has.
|
||||
*
|
||||
* MACH_MSG_TYPE_PORT_NAME is used to transfer a port name
|
||||
* which should remain uninterpreted by the kernel. (Port rights
|
||||
* are not transferred, just the port name.)
|
||||
*/
|
||||
|
||||
#define MACH_MSG_TYPE_PORT_NONE 0
|
||||
|
||||
#define MACH_MSG_TYPE_PORT_NAME 15
|
||||
#define MACH_MSG_TYPE_PORT_RECEIVE MACH_MSG_TYPE_MOVE_RECEIVE
|
||||
#define MACH_MSG_TYPE_PORT_SEND MACH_MSG_TYPE_MOVE_SEND
|
||||
#define MACH_MSG_TYPE_PORT_SEND_ONCE MACH_MSG_TYPE_MOVE_SEND_ONCE
|
||||
|
||||
#define MACH_MSG_TYPE_LAST 22 /* Last assigned */
|
||||
|
||||
/*
|
||||
* A dummy value. Mostly used to indicate that the actual value
|
||||
* will be filled in later, dynamically.
|
||||
*/
|
||||
|
||||
#define MACH_MSG_TYPE_POLYMORPHIC ((mach_msg_type_name_t) -1)
|
||||
|
||||
/*
|
||||
* Is a given item a port type?
|
||||
*/
|
||||
|
||||
#define MACH_MSG_TYPE_PORT_ANY(x) \
|
||||
(((x) >= MACH_MSG_TYPE_MOVE_RECEIVE) && \
|
||||
((x) <= MACH_MSG_TYPE_MAKE_SEND_ONCE))
|
||||
|
||||
#define MACH_MSG_TYPE_PORT_ANY_SEND(x) \
|
||||
(((x) >= MACH_MSG_TYPE_MOVE_SEND) && \
|
||||
((x) <= MACH_MSG_TYPE_MAKE_SEND_ONCE))
|
||||
|
||||
#define MACH_MSG_TYPE_PORT_ANY_RIGHT(x) \
|
||||
(((x) >= MACH_MSG_TYPE_MOVE_RECEIVE) && \
|
||||
((x) <= MACH_MSG_TYPE_MOVE_SEND_ONCE))
|
||||
|
||||
typedef integer_t mach_msg_option_t;
|
||||
|
||||
#define MACH_MSG_OPTION_NONE 0x00000000
|
||||
|
||||
#define MACH_SEND_MSG 0x00000001
|
||||
#define MACH_RCV_MSG 0x00000002
|
||||
|
||||
#define MACH_RCV_LARGE 0x00000004 /* report large message sizes */
|
||||
#define MACH_RCV_LARGE_IDENTITY 0x00000008 /* identify source of large messages */
|
||||
|
||||
#define MACH_SEND_TIMEOUT 0x00000010 /* timeout value applies to send */
|
||||
#define MACH_SEND_OVERRIDE 0x00000020 /* priority override for send */
|
||||
#define MACH_SEND_INTERRUPT 0x00000040 /* don't restart interrupted sends */
|
||||
#define MACH_SEND_NOTIFY 0x00000080 /* arm send-possible notify */
|
||||
#define MACH_SEND_ALWAYS 0x00010000 /* ignore qlimits - kernel only */
|
||||
#define MACH_SEND_TRAILER 0x00020000 /* sender-provided trailer */
|
||||
#define MACH_SEND_NOIMPORTANCE 0x00040000 /* msg won't carry importance */
|
||||
#define MACH_SEND_NODENAP MACH_SEND_NOIMPORTANCE
|
||||
#define MACH_SEND_IMPORTANCE 0x00080000 /* msg carries importance - kernel only */
|
||||
#define MACH_SEND_SYNC_OVERRIDE 0x00100000 /* msg should do sync ipc override */
|
||||
#define MACH_SEND_PROPAGATE_QOS 0x00200000 /* IPC should propagate the caller's QoS */
|
||||
#define MACH_SEND_SYNC_USE_THRPRI MACH_SEND_PROPAGATE_QOS /* obsolete name */
|
||||
#define MACH_SEND_KERNEL 0x00400000 /* full send from kernel space - kernel only */
|
||||
#define MACH_SEND_SYNC_BOOTSTRAP_CHECKIN 0x00800000 /* special reply port should boost thread doing sync bootstrap checkin */
|
||||
|
||||
#define MACH_RCV_TIMEOUT 0x00000100 /* timeout value applies to receive */
|
||||
#define MACH_RCV_NOTIFY 0x00000000 /* legacy name (value was: 0x00000200) */
|
||||
#define MACH_RCV_INTERRUPT 0x00000400 /* don't restart interrupted receive */
|
||||
#define MACH_RCV_VOUCHER 0x00000800 /* willing to receive voucher port */
|
||||
#define MACH_RCV_OVERWRITE 0x00000000 /* scatter receive (deprecated) */
|
||||
#define MACH_RCV_GUARDED_DESC 0x00001000 /* Can receive new guarded descriptor */
|
||||
#define MACH_RCV_SYNC_WAIT 0x00004000 /* sync waiter waiting for rcv */
|
||||
#define MACH_RCV_SYNC_PEEK 0x00008000 /* sync waiter waiting to peek */
|
||||
|
||||
#define MACH_MSG_STRICT_REPLY 0x00000200 /* Enforce specific properties about the reply port, and
|
||||
* the context in which a thread replies to a message.
|
||||
* This flag must be passed on both the SEND and RCV */
|
||||
|
||||
|
||||
/*
|
||||
* NOTE: a 0x00------ RCV mask implies to ask for
|
||||
* a MACH_MSG_TRAILER_FORMAT_0 with 0 Elements,
|
||||
* which is equivalent to a mach_msg_trailer_t.
|
||||
*
|
||||
* XXXMAC: unlike the rest of the MACH_RCV_* flags, MACH_RCV_TRAILER_LABELS
|
||||
* needs its own private bit since we only calculate its fields when absolutely
|
||||
* required.
|
||||
*/
|
||||
#define MACH_RCV_TRAILER_NULL 0
|
||||
#define MACH_RCV_TRAILER_SEQNO 1
|
||||
#define MACH_RCV_TRAILER_SENDER 2
|
||||
#define MACH_RCV_TRAILER_AUDIT 3
|
||||
#define MACH_RCV_TRAILER_CTX 4
|
||||
#define MACH_RCV_TRAILER_AV 7
|
||||
#define MACH_RCV_TRAILER_LABELS 8
|
||||
|
||||
#define MACH_RCV_TRAILER_TYPE(x) (((x) & 0xf) << 28)
|
||||
#define MACH_RCV_TRAILER_ELEMENTS(x) (((x) & 0xf) << 24)
|
||||
#define MACH_RCV_TRAILER_MASK ((0xf << 24))
|
||||
|
||||
#define GET_RCV_ELEMENTS(y) (((y) >> 24) & 0xf)
|
||||
|
||||
|
||||
/*
|
||||
* XXXMAC: note that in the case of MACH_RCV_TRAILER_LABELS,
|
||||
* we just fall through to mach_msg_max_trailer_t.
|
||||
* This is correct behavior since mach_msg_max_trailer_t is defined as
|
||||
* mac_msg_mac_trailer_t which is used for the LABELS trailer.
|
||||
* It also makes things work properly if MACH_RCV_TRAILER_LABELS is ORed
|
||||
* with one of the other options.
|
||||
*/
|
||||
|
||||
#define REQUESTED_TRAILER_SIZE_NATIVE(y) \
|
||||
((mach_msg_trailer_size_t) \
|
||||
((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_NULL) ? \
|
||||
sizeof(mach_msg_trailer_t) : \
|
||||
((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_SEQNO) ? \
|
||||
sizeof(mach_msg_seqno_trailer_t) : \
|
||||
((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_SENDER) ? \
|
||||
sizeof(mach_msg_security_trailer_t) : \
|
||||
((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_AUDIT) ? \
|
||||
sizeof(mach_msg_audit_trailer_t) : \
|
||||
((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_CTX) ? \
|
||||
sizeof(mach_msg_context_trailer_t) : \
|
||||
((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_AV) ? \
|
||||
sizeof(mach_msg_mac_trailer_t) : \
|
||||
sizeof(mach_msg_max_trailer_t))))))))
|
||||
|
||||
|
||||
#define REQUESTED_TRAILER_SIZE(y) REQUESTED_TRAILER_SIZE_NATIVE(y)
|
||||
|
||||
/*
|
||||
* Much code assumes that mach_msg_return_t == kern_return_t.
|
||||
* This definition is useful for descriptive purposes.
|
||||
*
|
||||
* See <mach/error.h> for the format of error codes.
|
||||
* IPC errors are system 4. Send errors are subsystem 0;
|
||||
* receive errors are subsystem 1. The code field is always non-zero.
|
||||
* The high bits of the code field communicate extra information
|
||||
* for some error codes. MACH_MSG_MASK masks off these special bits.
|
||||
*/
|
||||
|
||||
typedef kern_return_t mach_msg_return_t;
|
||||
|
||||
#define MACH_MSG_SUCCESS 0x00000000
|
||||
|
||||
|
||||
#define MACH_MSG_MASK 0x00003e00
|
||||
/* All special error code bits defined below. */
|
||||
#define MACH_MSG_IPC_SPACE 0x00002000
|
||||
/* No room in IPC name space for another capability name. */
|
||||
#define MACH_MSG_VM_SPACE 0x00001000
|
||||
/* No room in VM address space for out-of-line memory. */
|
||||
#define MACH_MSG_IPC_KERNEL 0x00000800
|
||||
/* Kernel resource shortage handling an IPC capability. */
|
||||
#define MACH_MSG_VM_KERNEL 0x00000400
|
||||
/* Kernel resource shortage handling out-of-line memory. */
|
||||
|
||||
#define MACH_SEND_IN_PROGRESS 0x10000001
|
||||
/* Thread is waiting to send. (Internal use only.) */
|
||||
#define MACH_SEND_INVALID_DATA 0x10000002
|
||||
/* Bogus in-line data. */
|
||||
#define MACH_SEND_INVALID_DEST 0x10000003
|
||||
/* Bogus destination port. */
|
||||
#define MACH_SEND_TIMED_OUT 0x10000004
|
||||
/* Message not sent before timeout expired. */
|
||||
#define MACH_SEND_INVALID_VOUCHER 0x10000005
|
||||
/* Bogus voucher port. */
|
||||
#define MACH_SEND_INTERRUPTED 0x10000007
|
||||
/* Software interrupt. */
|
||||
#define MACH_SEND_MSG_TOO_SMALL 0x10000008
|
||||
/* Data doesn't contain a complete message. */
|
||||
#define MACH_SEND_INVALID_REPLY 0x10000009
|
||||
/* Bogus reply port. */
|
||||
#define MACH_SEND_INVALID_RIGHT 0x1000000a
|
||||
/* Bogus port rights in the message body. */
|
||||
#define MACH_SEND_INVALID_NOTIFY 0x1000000b
|
||||
/* Bogus notify port argument. */
|
||||
#define MACH_SEND_INVALID_MEMORY 0x1000000c
|
||||
/* Invalid out-of-line memory pointer. */
|
||||
#define MACH_SEND_NO_BUFFER 0x1000000d
|
||||
/* No message buffer is available. */
|
||||
#define MACH_SEND_TOO_LARGE 0x1000000e
|
||||
/* Send is too large for port */
|
||||
#define MACH_SEND_INVALID_TYPE 0x1000000f
|
||||
/* Invalid msg-type specification. */
|
||||
#define MACH_SEND_INVALID_HEADER 0x10000010
|
||||
/* A field in the header had a bad value. */
|
||||
#define MACH_SEND_INVALID_TRAILER 0x10000011
|
||||
/* The trailer to be sent does not match kernel format. */
|
||||
#define MACH_SEND_INVALID_CONTEXT 0x10000012
|
||||
/* The sending thread context did not match the context on the dest port */
|
||||
#define MACH_SEND_INVALID_RT_OOL_SIZE 0x10000015
|
||||
/* compatibility: no longer a returned error */
|
||||
#define MACH_SEND_NO_GRANT_DEST 0x10000016
|
||||
/* The destination port doesn't accept ports in body */
|
||||
#define MACH_SEND_MSG_FILTERED 0x10000017
|
||||
/* Message send was rejected by message filter */
|
||||
|
||||
#define MACH_RCV_IN_PROGRESS 0x10004001
|
||||
/* Thread is waiting for receive. (Internal use only.) */
|
||||
#define MACH_RCV_INVALID_NAME 0x10004002
|
||||
/* Bogus name for receive port/port-set. */
|
||||
#define MACH_RCV_TIMED_OUT 0x10004003
|
||||
/* Didn't get a message within the timeout value. */
|
||||
#define MACH_RCV_TOO_LARGE 0x10004004
|
||||
/* Message buffer is not large enough for inline data. */
|
||||
#define MACH_RCV_INTERRUPTED 0x10004005
|
||||
/* Software interrupt. */
|
||||
#define MACH_RCV_PORT_CHANGED 0x10004006
|
||||
/* compatibility: no longer a returned error */
|
||||
#define MACH_RCV_INVALID_NOTIFY 0x10004007
|
||||
/* Bogus notify port argument. */
|
||||
#define MACH_RCV_INVALID_DATA 0x10004008
|
||||
/* Bogus message buffer for inline data. */
|
||||
#define MACH_RCV_PORT_DIED 0x10004009
|
||||
/* Port/set was sent away/died during receive. */
|
||||
#define MACH_RCV_IN_SET 0x1000400a
|
||||
/* compatibility: no longer a returned error */
|
||||
#define MACH_RCV_HEADER_ERROR 0x1000400b
|
||||
/* Error receiving message header. See special bits. */
|
||||
#define MACH_RCV_BODY_ERROR 0x1000400c
|
||||
/* Error receiving message body. See special bits. */
|
||||
#define MACH_RCV_INVALID_TYPE 0x1000400d
|
||||
/* Invalid msg-type specification in scatter list. */
|
||||
#define MACH_RCV_SCATTER_SMALL 0x1000400e
|
||||
/* Out-of-line overwrite region is not large enough */
|
||||
#define MACH_RCV_INVALID_TRAILER 0x1000400f
|
||||
/* trailer type or number of trailer elements not supported */
|
||||
#define MACH_RCV_IN_PROGRESS_TIMED 0x10004011
|
||||
/* Waiting for receive with timeout. (Internal use only.) */
|
||||
#define MACH_RCV_INVALID_REPLY 0x10004012
|
||||
/* invalid reply port used in a STRICT_REPLY message */
|
||||
|
||||
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/*
|
||||
* Routine: mach_msg_overwrite
|
||||
* Purpose:
|
||||
* Send and/or receive a message. If the message operation
|
||||
* is interrupted, and the user did not request an indication
|
||||
* of that fact, then restart the appropriate parts of the
|
||||
* operation silently (trap version does not restart).
|
||||
*
|
||||
* Distinct send and receive buffers may be specified. If
|
||||
* no separate receive buffer is specified, the msg parameter
|
||||
* will be used for both send and receive operations.
|
||||
*
|
||||
* In addition to a distinct receive buffer, that buffer may
|
||||
* already contain scatter control information to direct the
|
||||
* receiving of the message.
|
||||
*/
|
||||
__WATCHOS_PROHIBITED __TVOS_PROHIBITED
|
||||
extern mach_msg_return_t mach_msg_overwrite(
|
||||
mach_msg_header_t *msg,
|
||||
mach_msg_option_t option,
|
||||
mach_msg_size_t send_size,
|
||||
mach_msg_size_t rcv_size,
|
||||
mach_port_name_t rcv_name,
|
||||
mach_msg_timeout_t timeout,
|
||||
mach_port_name_t notify,
|
||||
mach_msg_header_t *rcv_msg,
|
||||
mach_msg_size_t rcv_limit);
|
||||
|
||||
|
||||
/*
|
||||
* Routine: mach_msg
|
||||
* Purpose:
|
||||
* Send and/or receive a message. If the message operation
|
||||
* is interrupted, and the user did not request an indication
|
||||
* of that fact, then restart the appropriate parts of the
|
||||
* operation silently (trap version does not restart).
|
||||
*/
|
||||
__WATCHOS_PROHIBITED __TVOS_PROHIBITED
|
||||
extern mach_msg_return_t mach_msg(
|
||||
mach_msg_header_t *msg,
|
||||
mach_msg_option_t option,
|
||||
mach_msg_size_t send_size,
|
||||
mach_msg_size_t rcv_size,
|
||||
mach_port_name_t rcv_name,
|
||||
mach_msg_timeout_t timeout,
|
||||
mach_port_name_t notify);
|
||||
|
||||
/*
|
||||
* Routine: mach_voucher_deallocate
|
||||
* Purpose:
|
||||
* Deallocate a mach voucher created or received in a message. Drops
|
||||
* one (send right) reference to the voucher.
|
||||
*/
|
||||
__WATCHOS_PROHIBITED __TVOS_PROHIBITED
|
||||
extern kern_return_t mach_voucher_deallocate(
|
||||
mach_port_name_t voucher);
|
||||
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* _MACH_MESSAGE_H_ */
|
||||
180
lib/libc/include/any-macos.11-any/mach/mig.h
vendored
Normal file
180
lib/libc/include/any-macos.11-any/mach/mig.h
vendored
Normal file
@ -0,0 +1,180 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2007 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* @OSF_COPYRIGHT@
|
||||
*/
|
||||
|
||||
/*
|
||||
* Mach MIG Subsystem Interfaces
|
||||
*/
|
||||
|
||||
#ifndef _MACH_MIG_H_
|
||||
#define _MACH_MIG_H_
|
||||
|
||||
#include <stdint.h>
|
||||
#include <mach/port.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/vm_types.h>
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#if defined(MACH_KERNEL)
|
||||
|
||||
#if !defined(__MigTypeCheck)
|
||||
/* Turn MIG type checking on by default for kernel */
|
||||
#define __MigTypeCheck 1
|
||||
#endif
|
||||
|
||||
#define __MigKernelSpecificCode 1
|
||||
#define _MIG_KERNEL_SPECIFIC_CODE_ 1
|
||||
|
||||
#elif !defined(__MigTypeCheck)
|
||||
|
||||
#if defined(TypeCheck)
|
||||
/* use legacy setting (temporary) */
|
||||
#define __MigTypeCheck TypeCheck
|
||||
#else
|
||||
/* default MIG type checking on */
|
||||
#define __MigTypeCheck 1
|
||||
#endif
|
||||
|
||||
#endif /* !defined(MACH_KERNEL) && !defined(__MigTypeCheck) */
|
||||
|
||||
/*
|
||||
* Pack MIG message structs.
|
||||
* This is an indicator of the need to view shared structs in a
|
||||
* binary-compatible format - and MIG message structs are no different.
|
||||
*/
|
||||
#define __MigPackStructs 1
|
||||
|
||||
/*
|
||||
* Definition for MIG-generated server stub routines. These routines
|
||||
* unpack the request message, call the server procedure, and pack the
|
||||
* reply message.
|
||||
*/
|
||||
typedef void (*mig_stub_routine_t) (mach_msg_header_t *InHeadP,
|
||||
mach_msg_header_t *OutHeadP);
|
||||
|
||||
typedef mig_stub_routine_t mig_routine_t;
|
||||
|
||||
/*
|
||||
* Definition for MIG-generated server routine. This routine takes a
|
||||
* message, and returns the appropriate stub function for handling that
|
||||
* message.
|
||||
*/
|
||||
typedef mig_routine_t (*mig_server_routine_t) (mach_msg_header_t *InHeadP);
|
||||
|
||||
/*
|
||||
* Generic definition for implementation routines. These routines do
|
||||
* the real work associated with this request. This generic type is
|
||||
* used for keeping the pointers in the subsystem array.
|
||||
*/
|
||||
typedef kern_return_t (*mig_impl_routine_t)(void);
|
||||
|
||||
typedef mach_msg_type_descriptor_t routine_arg_descriptor;
|
||||
typedef mach_msg_type_descriptor_t *routine_arg_descriptor_t;
|
||||
typedef mach_msg_type_descriptor_t *mig_routine_arg_descriptor_t;
|
||||
|
||||
#define MIG_ROUTINE_ARG_DESCRIPTOR_NULL ((mig_routine_arg_descriptor_t)0)
|
||||
|
||||
struct routine_descriptor {
|
||||
mig_impl_routine_t impl_routine; /* Server work func pointer */
|
||||
mig_stub_routine_t stub_routine; /* Unmarshalling func pointer */
|
||||
unsigned int argc; /* Number of argument words */
|
||||
unsigned int descr_count; /* Number complex descriptors */
|
||||
routine_arg_descriptor_t
|
||||
arg_descr; /* pointer to descriptor array*/
|
||||
unsigned int max_reply_msg; /* Max size for reply msg */
|
||||
};
|
||||
typedef struct routine_descriptor *routine_descriptor_t;
|
||||
|
||||
typedef struct routine_descriptor mig_routine_descriptor;
|
||||
typedef mig_routine_descriptor *mig_routine_descriptor_t;
|
||||
|
||||
#define MIG_ROUTINE_DESCRIPTOR_NULL ((mig_routine_descriptor_t)0)
|
||||
|
||||
typedef struct mig_subsystem {
|
||||
mig_server_routine_t server; /* pointer to demux routine */
|
||||
mach_msg_id_t start; /* Min routine number */
|
||||
mach_msg_id_t end; /* Max routine number + 1 */
|
||||
mach_msg_size_t maxsize; /* Max reply message size */
|
||||
vm_address_t reserved; /* reserved for MIG use */
|
||||
mig_routine_descriptor
|
||||
routine[1]; /* Routine descriptor array */
|
||||
} *mig_subsystem_t;
|
||||
|
||||
#define MIG_SUBSYSTEM_NULL ((mig_subsystem_t)0)
|
||||
|
||||
typedef struct mig_symtab {
|
||||
char *ms_routine_name;
|
||||
int ms_routine_number;
|
||||
void (*ms_routine)(void); /* Since the functions in the
|
||||
* symbol table have unknown
|
||||
* signatures, this is the best
|
||||
* we can do...
|
||||
*/
|
||||
} mig_symtab_t;
|
||||
|
||||
/*
|
||||
* A compiler attribute for annotating all MIG server routines and other
|
||||
* functions that should behave similarly. Allows the compiler to perform
|
||||
* additional static bug-finding over them.
|
||||
*/
|
||||
#if __has_attribute(mig_server_routine)
|
||||
#define MIG_SERVER_ROUTINE __attribute__((mig_server_routine))
|
||||
#else
|
||||
#define MIG_SERVER_ROUTINE
|
||||
#endif
|
||||
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* Client side reply port allocate */
|
||||
extern mach_port_t mig_get_reply_port(void);
|
||||
|
||||
/* Client side reply port deallocate */
|
||||
extern void mig_dealloc_reply_port(mach_port_t reply_port);
|
||||
|
||||
/* Client side reply port "deallocation" */
|
||||
extern void mig_put_reply_port(mach_port_t reply_port);
|
||||
|
||||
/* Bounded string copy */
|
||||
extern int mig_strncpy(char *dest, const char *src, int len);
|
||||
extern int mig_strncpy_zerofill(char *dest, const char *src, int len);
|
||||
|
||||
|
||||
/* Allocate memory for out-of-line mig structures */
|
||||
extern void mig_allocate(vm_address_t *, vm_size_t);
|
||||
|
||||
/* Deallocate memory used for out-of-line mig structures */
|
||||
extern void mig_deallocate(vm_address_t, vm_size_t);
|
||||
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* _MACH_MIG_H_ */
|
||||
445
lib/libc/include/any-macos.11-any/mach/port.h
vendored
Normal file
445
lib/libc/include/any-macos.11-any/mach/port.h
vendored
Normal file
@ -0,0 +1,445 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* @OSF_COPYRIGHT@
|
||||
*/
|
||||
/*
|
||||
* Mach Operating System
|
||||
* Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission to use, copy, modify and distribute this software and its
|
||||
* documentation is hereby granted, provided that both the copyright
|
||||
* notice and this permission notice appear in all copies of the
|
||||
* software, derivative works or modified versions, and any portions
|
||||
* thereof, and that both notices appear in supporting documentation.
|
||||
*
|
||||
* CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
|
||||
* CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
|
||||
* ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
|
||||
*
|
||||
* Carnegie Mellon requests users of this software to return to
|
||||
*
|
||||
* Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
|
||||
* School of Computer Science
|
||||
* Carnegie Mellon University
|
||||
* Pittsburgh PA 15213-3890
|
||||
*
|
||||
* any improvements or extensions that they make and grant Carnegie Mellon
|
||||
* the rights to redistribute these changes.
|
||||
*/
|
||||
/*
|
||||
* NOTICE: This file was modified by McAfee Research in 2004 to introduce
|
||||
* support for mandatory and extensible security protections. This notice
|
||||
* is included in support of clause 2.2 (b) of the Apple Public License,
|
||||
* Version 2.0.
|
||||
*/
|
||||
/*
|
||||
*/
|
||||
/*
|
||||
* File: mach/port.h
|
||||
*
|
||||
* Definition of a Mach port
|
||||
*
|
||||
* Mach ports are the endpoints to Mach-implemented communications
|
||||
* channels (usually uni-directional message queues, but other types
|
||||
* also exist).
|
||||
*
|
||||
* Unique collections of these endpoints are maintained for each
|
||||
* Mach task. Each Mach port in the task's collection is given a
|
||||
* [task-local] name to identify it - and the the various "rights"
|
||||
* held by the task for that specific endpoint.
|
||||
*
|
||||
* This header defines the types used to identify these Mach ports
|
||||
* and the various rights associated with them. For more info see:
|
||||
*
|
||||
* <mach/mach_port.h> - manipulation of port rights in a given space
|
||||
* <mach/message.h> - message queue [and port right passing] mechanism
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MACH_PORT_H_
|
||||
#define _MACH_PORT_H_
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <stdint.h>
|
||||
#include <mach/boolean.h>
|
||||
#include <mach/machine/vm_types.h>
|
||||
|
||||
/*
|
||||
* mach_port_name_t - the local identity for a Mach port
|
||||
*
|
||||
* The name is Mach port namespace specific. It is used to
|
||||
* identify the rights held for that port by the task whose
|
||||
* namespace is implied [or specifically provided].
|
||||
*
|
||||
* Use of this type usually implies just a name - no rights.
|
||||
* See mach_port_t for a type that implies a "named right."
|
||||
*
|
||||
*/
|
||||
|
||||
typedef natural_t mach_port_name_t;
|
||||
typedef mach_port_name_t *mach_port_name_array_t;
|
||||
|
||||
|
||||
/*
|
||||
* mach_port_t - a named port right
|
||||
*
|
||||
* In user-space, "rights" are represented by the name of the
|
||||
* right in the Mach port namespace. Even so, this type is
|
||||
* presented as a unique one to more clearly denote the presence
|
||||
* of a right coming along with the name.
|
||||
*
|
||||
* Often, various rights for a port held in a single name space
|
||||
* will coalesce and are, therefore, be identified by a single name
|
||||
* [this is the case for send and receive rights]. But not
|
||||
* always [send-once rights currently get a unique name for
|
||||
* each right].
|
||||
*
|
||||
*/
|
||||
|
||||
#include <sys/_types.h>
|
||||
#include <sys/_types/_mach_port_t.h>
|
||||
|
||||
|
||||
typedef mach_port_t *mach_port_array_t;
|
||||
|
||||
/*
|
||||
* MACH_PORT_NULL is a legal value that can be carried in messages.
|
||||
* It indicates the absence of any port or port rights. (A port
|
||||
* argument keeps the message from being "simple", even if the
|
||||
* value is MACH_PORT_NULL.) The value MACH_PORT_DEAD is also a legal
|
||||
* value that can be carried in messages. It indicates
|
||||
* that a port right was present, but it died.
|
||||
*/
|
||||
|
||||
#define MACH_PORT_NULL 0 /* intentional loose typing */
|
||||
#define MACH_PORT_DEAD ((mach_port_name_t) ~0)
|
||||
#define MACH_PORT_VALID(name) \
|
||||
(((name) != MACH_PORT_NULL) && \
|
||||
((name) != MACH_PORT_DEAD))
|
||||
|
||||
|
||||
/*
|
||||
* For kernel-selected [assigned] port names, the name is
|
||||
* comprised of two parts: a generation number and an index.
|
||||
* This approach keeps the exact same name from being generated
|
||||
* and reused too quickly [to catch right/reference counting bugs].
|
||||
* The dividing line between the constituent parts is exposed so
|
||||
* that efficient "mach_port_name_t to data structure pointer"
|
||||
* conversion implementation can be made. But it is possible
|
||||
* for user-level code to assign their own names to Mach ports.
|
||||
* These are not required to participate in this algorithm. So
|
||||
* care should be taken before "assuming" this model.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef NO_PORT_GEN
|
||||
|
||||
#define MACH_PORT_INDEX(name) ((name) >> 8)
|
||||
#define MACH_PORT_GEN(name) (((name) & 0xff) << 24)
|
||||
#define MACH_PORT_MAKE(index, gen) \
|
||||
(((index) << 8) | (gen) >> 24)
|
||||
|
||||
#else /* NO_PORT_GEN */
|
||||
|
||||
#define MACH_PORT_INDEX(name) (name)
|
||||
#define MACH_PORT_GEN(name) (0)
|
||||
#define MACH_PORT_MAKE(index, gen) (index)
|
||||
|
||||
#endif /* NO_PORT_GEN */
|
||||
|
||||
|
||||
/*
|
||||
* These are the different rights a task may have for a port.
|
||||
* The MACH_PORT_RIGHT_* definitions are used as arguments
|
||||
* to mach_port_allocate, mach_port_get_refs, etc, to specify
|
||||
* a particular right to act upon. The mach_port_names and
|
||||
* mach_port_type calls return bitmasks using the MACH_PORT_TYPE_*
|
||||
* definitions. This is because a single name may denote
|
||||
* multiple rights.
|
||||
*/
|
||||
|
||||
typedef natural_t mach_port_right_t;
|
||||
|
||||
#define MACH_PORT_RIGHT_SEND ((mach_port_right_t) 0)
|
||||
#define MACH_PORT_RIGHT_RECEIVE ((mach_port_right_t) 1)
|
||||
#define MACH_PORT_RIGHT_SEND_ONCE ((mach_port_right_t) 2)
|
||||
#define MACH_PORT_RIGHT_PORT_SET ((mach_port_right_t) 3)
|
||||
#define MACH_PORT_RIGHT_DEAD_NAME ((mach_port_right_t) 4)
|
||||
#define MACH_PORT_RIGHT_LABELH ((mach_port_right_t) 5) /* obsolete right */
|
||||
#define MACH_PORT_RIGHT_NUMBER ((mach_port_right_t) 6) /* right not implemented */
|
||||
|
||||
|
||||
typedef natural_t mach_port_type_t;
|
||||
typedef mach_port_type_t *mach_port_type_array_t;
|
||||
|
||||
#define MACH_PORT_TYPE(right) \
|
||||
((mach_port_type_t)(((mach_port_type_t) 1) \
|
||||
<< ((right) + ((mach_port_right_t) 16))))
|
||||
#define MACH_PORT_TYPE_NONE ((mach_port_type_t) 0L)
|
||||
#define MACH_PORT_TYPE_SEND MACH_PORT_TYPE(MACH_PORT_RIGHT_SEND)
|
||||
#define MACH_PORT_TYPE_RECEIVE MACH_PORT_TYPE(MACH_PORT_RIGHT_RECEIVE)
|
||||
#define MACH_PORT_TYPE_SEND_ONCE MACH_PORT_TYPE(MACH_PORT_RIGHT_SEND_ONCE)
|
||||
#define MACH_PORT_TYPE_PORT_SET MACH_PORT_TYPE(MACH_PORT_RIGHT_PORT_SET)
|
||||
#define MACH_PORT_TYPE_DEAD_NAME MACH_PORT_TYPE(MACH_PORT_RIGHT_DEAD_NAME)
|
||||
#define MACH_PORT_TYPE_LABELH MACH_PORT_TYPE(MACH_PORT_RIGHT_LABELH) /* obsolete */
|
||||
|
||||
|
||||
/* Convenient combinations. */
|
||||
|
||||
#define MACH_PORT_TYPE_SEND_RECEIVE \
|
||||
(MACH_PORT_TYPE_SEND|MACH_PORT_TYPE_RECEIVE)
|
||||
#define MACH_PORT_TYPE_SEND_RIGHTS \
|
||||
(MACH_PORT_TYPE_SEND|MACH_PORT_TYPE_SEND_ONCE)
|
||||
#define MACH_PORT_TYPE_PORT_RIGHTS \
|
||||
(MACH_PORT_TYPE_SEND_RIGHTS|MACH_PORT_TYPE_RECEIVE)
|
||||
#define MACH_PORT_TYPE_PORT_OR_DEAD \
|
||||
(MACH_PORT_TYPE_PORT_RIGHTS|MACH_PORT_TYPE_DEAD_NAME)
|
||||
#define MACH_PORT_TYPE_ALL_RIGHTS \
|
||||
(MACH_PORT_TYPE_PORT_OR_DEAD|MACH_PORT_TYPE_PORT_SET)
|
||||
|
||||
/* Dummy type bits that mach_port_type/mach_port_names can return. */
|
||||
|
||||
#define MACH_PORT_TYPE_DNREQUEST 0x80000000
|
||||
#define MACH_PORT_TYPE_SPREQUEST 0x40000000
|
||||
#define MACH_PORT_TYPE_SPREQUEST_DELAYED 0x20000000
|
||||
|
||||
/* User-references for capabilities. */
|
||||
|
||||
typedef natural_t mach_port_urefs_t;
|
||||
typedef integer_t mach_port_delta_t; /* change in urefs */
|
||||
|
||||
/* Attributes of ports. (See mach_port_get_receive_status.) */
|
||||
|
||||
typedef natural_t mach_port_seqno_t; /* sequence number */
|
||||
typedef natural_t mach_port_mscount_t; /* make-send count */
|
||||
typedef natural_t mach_port_msgcount_t; /* number of msgs */
|
||||
typedef natural_t mach_port_rights_t; /* number of rights */
|
||||
|
||||
/*
|
||||
* Are there outstanding send rights for a given port?
|
||||
*/
|
||||
#define MACH_PORT_SRIGHTS_NONE 0 /* no srights */
|
||||
#define MACH_PORT_SRIGHTS_PRESENT 1 /* srights */
|
||||
typedef unsigned int mach_port_srights_t; /* status of send rights */
|
||||
|
||||
typedef struct mach_port_status {
|
||||
mach_port_rights_t mps_pset; /* count of containing port sets */
|
||||
mach_port_seqno_t mps_seqno; /* sequence number */
|
||||
mach_port_mscount_t mps_mscount; /* make-send count */
|
||||
mach_port_msgcount_t mps_qlimit; /* queue limit */
|
||||
mach_port_msgcount_t mps_msgcount; /* number in the queue */
|
||||
mach_port_rights_t mps_sorights; /* how many send-once rights */
|
||||
boolean_t mps_srights; /* do send rights exist? */
|
||||
boolean_t mps_pdrequest; /* port-deleted requested? */
|
||||
boolean_t mps_nsrequest; /* no-senders requested? */
|
||||
natural_t mps_flags; /* port flags */
|
||||
} mach_port_status_t;
|
||||
|
||||
/* System-wide values for setting queue limits on a port */
|
||||
#define MACH_PORT_QLIMIT_ZERO (0)
|
||||
#define MACH_PORT_QLIMIT_BASIC (5)
|
||||
#define MACH_PORT_QLIMIT_SMALL (16)
|
||||
#define MACH_PORT_QLIMIT_LARGE (1024)
|
||||
#define MACH_PORT_QLIMIT_KERNEL (65534)
|
||||
#define MACH_PORT_QLIMIT_MIN MACH_PORT_QLIMIT_ZERO
|
||||
#define MACH_PORT_QLIMIT_DEFAULT MACH_PORT_QLIMIT_BASIC
|
||||
#define MACH_PORT_QLIMIT_MAX MACH_PORT_QLIMIT_LARGE
|
||||
|
||||
typedef struct mach_port_limits {
|
||||
mach_port_msgcount_t mpl_qlimit; /* number of msgs */
|
||||
} mach_port_limits_t;
|
||||
|
||||
/* Possible values for mps_flags (part of mach_port_status_t) */
|
||||
#define MACH_PORT_STATUS_FLAG_TEMPOWNER 0x01
|
||||
#define MACH_PORT_STATUS_FLAG_GUARDED 0x02
|
||||
#define MACH_PORT_STATUS_FLAG_STRICT_GUARD 0x04
|
||||
#define MACH_PORT_STATUS_FLAG_IMP_DONATION 0x08
|
||||
#define MACH_PORT_STATUS_FLAG_REVIVE 0x10
|
||||
#define MACH_PORT_STATUS_FLAG_TASKPTR 0x20
|
||||
#define MACH_PORT_STATUS_FLAG_GUARD_IMMOVABLE_RECEIVE 0x40
|
||||
#define MACH_PORT_STATUS_FLAG_NO_GRANT 0x80
|
||||
|
||||
typedef struct mach_port_info_ext {
|
||||
mach_port_status_t mpie_status;
|
||||
mach_port_msgcount_t mpie_boost_cnt;
|
||||
uint32_t reserved[6];
|
||||
} mach_port_info_ext_t;
|
||||
|
||||
typedef integer_t *mach_port_info_t; /* varying array of natural_t */
|
||||
|
||||
/* Flavors for mach_port_get/set_attributes() */
|
||||
typedef int mach_port_flavor_t;
|
||||
#define MACH_PORT_LIMITS_INFO 1 /* uses mach_port_limits_t */
|
||||
#define MACH_PORT_RECEIVE_STATUS 2 /* uses mach_port_status_t */
|
||||
#define MACH_PORT_DNREQUESTS_SIZE 3 /* info is int */
|
||||
#define MACH_PORT_TEMPOWNER 4 /* indicates receive right will be reassigned to another task */
|
||||
#define MACH_PORT_IMPORTANCE_RECEIVER 5 /* indicates recieve right accepts priority donation */
|
||||
#define MACH_PORT_DENAP_RECEIVER 6 /* indicates receive right accepts de-nap donation */
|
||||
#define MACH_PORT_INFO_EXT 7 /* uses mach_port_info_ext_t */
|
||||
|
||||
#define MACH_PORT_LIMITS_INFO_COUNT ((natural_t) \
|
||||
(sizeof(mach_port_limits_t)/sizeof(natural_t)))
|
||||
#define MACH_PORT_RECEIVE_STATUS_COUNT ((natural_t) \
|
||||
(sizeof(mach_port_status_t)/sizeof(natural_t)))
|
||||
#define MACH_PORT_DNREQUESTS_SIZE_COUNT 1
|
||||
#define MACH_PORT_INFO_EXT_COUNT ((natural_t) \
|
||||
(sizeof(mach_port_info_ext_t)/sizeof(natural_t)))
|
||||
/*
|
||||
* Structure used to pass information about port allocation requests.
|
||||
* Must be padded to 64-bits total length.
|
||||
*/
|
||||
typedef struct mach_port_qos {
|
||||
unsigned int name:1; /* name given */
|
||||
unsigned int prealloc:1; /* prealloced message */
|
||||
boolean_t pad1:30;
|
||||
natural_t len;
|
||||
} mach_port_qos_t;
|
||||
|
||||
/* Mach Port Guarding definitions */
|
||||
|
||||
/*
|
||||
* Flags for mach_port_options (used for
|
||||
* invocation of mach_port_construct).
|
||||
* Indicates attributes to be set for the newly
|
||||
* allocated port.
|
||||
*/
|
||||
#define MPO_CONTEXT_AS_GUARD 0x01 /* Add guard to the port */
|
||||
#define MPO_QLIMIT 0x02 /* Set qlimit for the port msg queue */
|
||||
#define MPO_TEMPOWNER 0x04 /* Set the tempowner bit of the port */
|
||||
#define MPO_IMPORTANCE_RECEIVER 0x08 /* Mark the port as importance receiver */
|
||||
#define MPO_INSERT_SEND_RIGHT 0x10 /* Insert a send right for the port */
|
||||
#define MPO_STRICT 0x20 /* Apply strict guarding for port */
|
||||
#define MPO_DENAP_RECEIVER 0x40 /* Mark the port as App de-nap receiver */
|
||||
#define MPO_IMMOVABLE_RECEIVE 0x80 /* Mark the port as immovable; protected by the guard context */
|
||||
#define MPO_FILTER_MSG 0x100 /* Allow message filtering */
|
||||
#define MPO_TG_BLOCK_TRACKING 0x200 /* Track blocking relationship for thread group during sync IPC */
|
||||
|
||||
/*
|
||||
* Structure to define optional attributes for a newly
|
||||
* constructed port.
|
||||
*/
|
||||
typedef struct mach_port_options {
|
||||
uint32_t flags; /* Flags defining attributes for port */
|
||||
mach_port_limits_t mpl; /* Message queue limit for port */
|
||||
union {
|
||||
uint64_t reserved[2]; /* Reserved */
|
||||
mach_port_name_t work_interval_port; /* Work interval port */
|
||||
};
|
||||
}mach_port_options_t;
|
||||
|
||||
typedef mach_port_options_t *mach_port_options_ptr_t;
|
||||
|
||||
/*
|
||||
* EXC_GUARD represents a guard violation for both
|
||||
* mach ports and file descriptors. GUARD_TYPE_ is used
|
||||
* to differentiate among them.
|
||||
*/
|
||||
#define GUARD_TYPE_MACH_PORT 0x1
|
||||
|
||||
/* Reasons for exception for a guarded mach port */
|
||||
enum mach_port_guard_exception_codes {
|
||||
kGUARD_EXC_DESTROY = 1u << 0,
|
||||
kGUARD_EXC_MOD_REFS = 1u << 1,
|
||||
kGUARD_EXC_SET_CONTEXT = 1u << 2,
|
||||
kGUARD_EXC_UNGUARDED = 1u << 3,
|
||||
kGUARD_EXC_INCORRECT_GUARD = 1u << 4,
|
||||
kGUARD_EXC_IMMOVABLE = 1u << 5,
|
||||
kGUARD_EXC_STRICT_REPLY = 1u << 6,
|
||||
kGUARD_EXC_MSG_FILTERED = 1u << 7,
|
||||
/* start of [optionally] non-fatal guards */
|
||||
kGUARD_EXC_INVALID_RIGHT = 1u << 8,
|
||||
kGUARD_EXC_INVALID_NAME = 1u << 9,
|
||||
kGUARD_EXC_INVALID_VALUE = 1u << 10,
|
||||
kGUARD_EXC_INVALID_ARGUMENT = 1u << 11,
|
||||
kGUARD_EXC_RIGHT_EXISTS = 1u << 12,
|
||||
kGUARD_EXC_KERN_NO_SPACE = 1u << 13,
|
||||
kGUARD_EXC_KERN_FAILURE = 1u << 14,
|
||||
kGUARD_EXC_KERN_RESOURCE = 1u << 15,
|
||||
kGUARD_EXC_SEND_INVALID_REPLY = 1u << 16,
|
||||
kGUARD_EXC_SEND_INVALID_VOUCHER = 1u << 17,
|
||||
kGUARD_EXC_SEND_INVALID_RIGHT = 1u << 18,
|
||||
kGUARD_EXC_RCV_INVALID_NAME = 1u << 19,
|
||||
kGUARD_EXC_RCV_GUARDED_DESC = 1u << 20, /* should never be fatal; for development only */
|
||||
kGUARD_EXC_MOD_REFS_NON_FATAL = 1u << 21,
|
||||
kGUARD_EXC_IMMOVABLE_NON_FATAL = 1u << 22,
|
||||
};
|
||||
|
||||
#define MAX_FATAL_kGUARD_EXC_CODE (1u << 7)
|
||||
|
||||
/*
|
||||
* Mach port guard flags.
|
||||
*/
|
||||
#define MPG_FLAGS_NONE (0x00ull)
|
||||
|
||||
/*
|
||||
* These flags are used as bits in the subcode of kGUARD_EXC_STRICT_REPLY exceptions.
|
||||
*/
|
||||
#define MPG_FLAGS_STRICT_REPLY_INVALID_REPLY_DISP (0x01ull << 56)
|
||||
#define MPG_FLAGS_STRICT_REPLY_INVALID_REPLY_PORT (0x02ull << 56)
|
||||
#define MPG_FLAGS_STRICT_REPLY_INVALID_VOUCHER (0x04ull << 56)
|
||||
#define MPG_FLAGS_STRICT_REPLY_NO_BANK_ATTR (0x08ull << 56)
|
||||
#define MPG_FLAGS_STRICT_REPLY_MISMATCHED_PERSONA (0x10ull << 56)
|
||||
#define MPG_FLAGS_STRICT_REPLY_MASK (0xffull << 56)
|
||||
|
||||
/*
|
||||
* These flags are used as bits in the subcode of kGUARD_EXC_MOD_REFS exceptions.
|
||||
*/
|
||||
#define MPG_FLAGS_MOD_REFS_PINNED_DEALLOC (0x01ull << 56)
|
||||
|
||||
/*
|
||||
* These flags are used as bits in the subcode of kGUARD_EXC_IMMOVABLE exceptions.
|
||||
*/
|
||||
#define MPG_FLAGS_IMMOVABLE_PINNED (0x01ull << 56)
|
||||
|
||||
/*
|
||||
* Flags for mach_port_guard_with_flags. These flags extend
|
||||
* the attributes associated with a guarded port.
|
||||
*/
|
||||
#define MPG_STRICT 0x01 /* Apply strict guarding for a port */
|
||||
#define MPG_IMMOVABLE_RECEIVE 0x02 /* Receive right cannot be moved out of the space */
|
||||
|
||||
#if !__DARWIN_UNIX03 && !defined(_NO_PORT_T_FROM_MACH)
|
||||
/*
|
||||
* Mach 3.0 renamed everything to have mach_ in front of it.
|
||||
* These types and macros are provided for backward compatibility
|
||||
* but are deprecated.
|
||||
*/
|
||||
typedef mach_port_t port_t;
|
||||
typedef mach_port_name_t port_name_t;
|
||||
typedef mach_port_name_t *port_name_array_t;
|
||||
|
||||
#define PORT_NULL ((port_t) 0)
|
||||
#define PORT_DEAD ((port_t) ~0)
|
||||
#define PORT_VALID(name) \
|
||||
((port_t)(name) != PORT_NULL && (port_t)(name) != PORT_DEAD)
|
||||
|
||||
#endif /* !__DARWIN_UNIX03 && !_NO_PORT_T_FROM_MACH */
|
||||
|
||||
#endif /* _MACH_PORT_H_ */
|
||||
360
lib/libc/include/any-macos.11-any/mach/processor.h
vendored
Normal file
360
lib/libc/include/any-macos.11-any/mach/processor.h
vendored
Normal file
@ -0,0 +1,360 @@
|
||||
#ifndef _processor_user_
|
||||
#define _processor_user_
|
||||
|
||||
/* Module processor */
|
||||
|
||||
#include <string.h>
|
||||
#include <mach/ndr.h>
|
||||
#include <mach/boolean.h>
|
||||
#include <mach/kern_return.h>
|
||||
#include <mach/notify.h>
|
||||
#include <mach/mach_types.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/mig_errors.h>
|
||||
#include <mach/port.h>
|
||||
|
||||
/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
|
||||
|
||||
#if defined(__has_include)
|
||||
#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
|
||||
#ifndef USING_MIG_STRNCPY_ZEROFILL
|
||||
#define USING_MIG_STRNCPY_ZEROFILL
|
||||
#endif
|
||||
#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
|
||||
#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
|
||||
#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
|
||||
#endif /* __has_include */
|
||||
|
||||
/* END MIG_STRNCPY_ZEROFILL CODE */
|
||||
|
||||
|
||||
#ifdef AUTOTEST
|
||||
#ifndef FUNCTION_PTR_T
|
||||
#define FUNCTION_PTR_T
|
||||
typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
|
||||
typedef struct {
|
||||
char *name;
|
||||
function_ptr_t function;
|
||||
} function_table_entry;
|
||||
typedef function_table_entry *function_table_t;
|
||||
#endif /* FUNCTION_PTR_T */
|
||||
#endif /* AUTOTEST */
|
||||
|
||||
#ifndef processor_MSG_COUNT
|
||||
#define processor_MSG_COUNT 6
|
||||
#endif /* processor_MSG_COUNT */
|
||||
|
||||
#include <mach/std_types.h>
|
||||
#include <mach/mig.h>
|
||||
#include <mach/mig.h>
|
||||
#include <mach/mach_types.h>
|
||||
|
||||
#ifdef __BeforeMigUserHeader
|
||||
__BeforeMigUserHeader
|
||||
#endif /* __BeforeMigUserHeader */
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
||||
/* Routine processor_start */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t processor_start
|
||||
(
|
||||
processor_t processor
|
||||
);
|
||||
|
||||
/* Routine processor_exit */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t processor_exit
|
||||
(
|
||||
processor_t processor
|
||||
);
|
||||
|
||||
/* Routine processor_info */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t processor_info
|
||||
(
|
||||
processor_t processor,
|
||||
processor_flavor_t flavor,
|
||||
host_t *host,
|
||||
processor_info_t processor_info_out,
|
||||
mach_msg_type_number_t *processor_info_outCnt
|
||||
);
|
||||
|
||||
/* Routine processor_control */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t processor_control
|
||||
(
|
||||
processor_t processor,
|
||||
processor_info_t processor_cmd,
|
||||
mach_msg_type_number_t processor_cmdCnt
|
||||
);
|
||||
|
||||
/* Routine processor_assign */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t processor_assign
|
||||
(
|
||||
processor_t processor,
|
||||
processor_set_t new_set,
|
||||
boolean_t wait
|
||||
);
|
||||
|
||||
/* Routine processor_get_assignment */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t processor_get_assignment
|
||||
(
|
||||
processor_t processor,
|
||||
processor_set_name_t *assigned_set
|
||||
);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
/********************** Caution **************************/
|
||||
/* The following data types should be used to calculate */
|
||||
/* maximum message sizes only. The actual message may be */
|
||||
/* smaller, and the position of the arguments within the */
|
||||
/* message layout may vary from what is presented here. */
|
||||
/* For example, if any of the arguments are variable- */
|
||||
/* sized, and less than the maximum is sent, the data */
|
||||
/* will be packed tight in the actual message to reduce */
|
||||
/* the presence of holes. */
|
||||
/********************** Caution **************************/
|
||||
|
||||
/* typedefs for all requests */
|
||||
|
||||
#ifndef __Request__processor_subsystem__defined
|
||||
#define __Request__processor_subsystem__defined
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
} __Request__processor_start_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
} __Request__processor_exit_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
processor_flavor_t flavor;
|
||||
mach_msg_type_number_t processor_info_outCnt;
|
||||
} __Request__processor_info_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
mach_msg_type_number_t processor_cmdCnt;
|
||||
integer_t processor_cmd[20];
|
||||
} __Request__processor_control_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
/* start of the kernel processed data */
|
||||
mach_msg_body_t msgh_body;
|
||||
mach_msg_port_descriptor_t new_set;
|
||||
/* end of the kernel processed data */
|
||||
NDR_record_t NDR;
|
||||
boolean_t wait;
|
||||
} __Request__processor_assign_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
} __Request__processor_get_assignment_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
#endif /* !__Request__processor_subsystem__defined */
|
||||
|
||||
/* union of all requests */
|
||||
|
||||
#ifndef __RequestUnion__processor_subsystem__defined
|
||||
#define __RequestUnion__processor_subsystem__defined
|
||||
union __RequestUnion__processor_subsystem {
|
||||
__Request__processor_start_t Request_processor_start;
|
||||
__Request__processor_exit_t Request_processor_exit;
|
||||
__Request__processor_info_t Request_processor_info;
|
||||
__Request__processor_control_t Request_processor_control;
|
||||
__Request__processor_assign_t Request_processor_assign;
|
||||
__Request__processor_get_assignment_t Request_processor_get_assignment;
|
||||
};
|
||||
#endif /* !__RequestUnion__processor_subsystem__defined */
|
||||
/* typedefs for all replies */
|
||||
|
||||
#ifndef __Reply__processor_subsystem__defined
|
||||
#define __Reply__processor_subsystem__defined
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__processor_start_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__processor_exit_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
/* start of the kernel processed data */
|
||||
mach_msg_body_t msgh_body;
|
||||
mach_msg_port_descriptor_t host;
|
||||
/* end of the kernel processed data */
|
||||
NDR_record_t NDR;
|
||||
mach_msg_type_number_t processor_info_outCnt;
|
||||
integer_t processor_info_out[20];
|
||||
} __Reply__processor_info_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__processor_control_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__processor_assign_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
/* start of the kernel processed data */
|
||||
mach_msg_body_t msgh_body;
|
||||
mach_msg_port_descriptor_t assigned_set;
|
||||
/* end of the kernel processed data */
|
||||
} __Reply__processor_get_assignment_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
#endif /* !__Reply__processor_subsystem__defined */
|
||||
|
||||
/* union of all replies */
|
||||
|
||||
#ifndef __ReplyUnion__processor_subsystem__defined
|
||||
#define __ReplyUnion__processor_subsystem__defined
|
||||
union __ReplyUnion__processor_subsystem {
|
||||
__Reply__processor_start_t Reply_processor_start;
|
||||
__Reply__processor_exit_t Reply_processor_exit;
|
||||
__Reply__processor_info_t Reply_processor_info;
|
||||
__Reply__processor_control_t Reply_processor_control;
|
||||
__Reply__processor_assign_t Reply_processor_assign;
|
||||
__Reply__processor_get_assignment_t Reply_processor_get_assignment;
|
||||
};
|
||||
#endif /* !__RequestUnion__processor_subsystem__defined */
|
||||
|
||||
#ifndef subsystem_to_name_map_processor
|
||||
#define subsystem_to_name_map_processor \
|
||||
{ "processor_start", 3000 },\
|
||||
{ "processor_exit", 3001 },\
|
||||
{ "processor_info", 3002 },\
|
||||
{ "processor_control", 3003 },\
|
||||
{ "processor_assign", 3004 },\
|
||||
{ "processor_get_assignment", 3005 }
|
||||
#endif
|
||||
|
||||
#ifdef __AfterMigUserHeader
|
||||
__AfterMigUserHeader
|
||||
#endif /* __AfterMigUserHeader */
|
||||
|
||||
#endif /* _processor_user_ */
|
||||
585
lib/libc/include/any-macos.11-any/mach/processor_set.h
vendored
Normal file
585
lib/libc/include/any-macos.11-any/mach/processor_set.h
vendored
Normal file
@ -0,0 +1,585 @@
|
||||
#ifndef _processor_set_user_
|
||||
#define _processor_set_user_
|
||||
|
||||
/* Module processor_set */
|
||||
|
||||
#include <string.h>
|
||||
#include <mach/ndr.h>
|
||||
#include <mach/boolean.h>
|
||||
#include <mach/kern_return.h>
|
||||
#include <mach/notify.h>
|
||||
#include <mach/mach_types.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/mig_errors.h>
|
||||
#include <mach/port.h>
|
||||
|
||||
/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
|
||||
|
||||
#if defined(__has_include)
|
||||
#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
|
||||
#ifndef USING_MIG_STRNCPY_ZEROFILL
|
||||
#define USING_MIG_STRNCPY_ZEROFILL
|
||||
#endif
|
||||
#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
|
||||
#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
|
||||
#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
|
||||
#endif /* __has_include */
|
||||
|
||||
/* END MIG_STRNCPY_ZEROFILL CODE */
|
||||
|
||||
|
||||
#ifdef AUTOTEST
|
||||
#ifndef FUNCTION_PTR_T
|
||||
#define FUNCTION_PTR_T
|
||||
typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
|
||||
typedef struct {
|
||||
char *name;
|
||||
function_ptr_t function;
|
||||
} function_table_entry;
|
||||
typedef function_table_entry *function_table_t;
|
||||
#endif /* FUNCTION_PTR_T */
|
||||
#endif /* AUTOTEST */
|
||||
|
||||
#ifndef processor_set_MSG_COUNT
|
||||
#define processor_set_MSG_COUNT 11
|
||||
#endif /* processor_set_MSG_COUNT */
|
||||
|
||||
#include <mach/std_types.h>
|
||||
#include <mach/mig.h>
|
||||
#include <mach/mig.h>
|
||||
#include <mach/mach_types.h>
|
||||
|
||||
#ifdef __BeforeMigUserHeader
|
||||
__BeforeMigUserHeader
|
||||
#endif /* __BeforeMigUserHeader */
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
||||
/* Routine processor_set_statistics */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t processor_set_statistics
|
||||
(
|
||||
processor_set_name_t pset,
|
||||
processor_set_flavor_t flavor,
|
||||
processor_set_info_t info_out,
|
||||
mach_msg_type_number_t *info_outCnt
|
||||
);
|
||||
|
||||
/* Routine processor_set_destroy */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t processor_set_destroy
|
||||
(
|
||||
processor_set_t set
|
||||
);
|
||||
|
||||
/* Routine processor_set_max_priority */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t processor_set_max_priority
|
||||
(
|
||||
processor_set_t processor_set,
|
||||
int max_priority,
|
||||
boolean_t change_threads
|
||||
);
|
||||
|
||||
/* Routine processor_set_policy_enable */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t processor_set_policy_enable
|
||||
(
|
||||
processor_set_t processor_set,
|
||||
int policy
|
||||
);
|
||||
|
||||
/* Routine processor_set_policy_disable */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t processor_set_policy_disable
|
||||
(
|
||||
processor_set_t processor_set,
|
||||
int policy,
|
||||
boolean_t change_threads
|
||||
);
|
||||
|
||||
/* Routine processor_set_tasks */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t processor_set_tasks
|
||||
(
|
||||
processor_set_t processor_set,
|
||||
task_array_t *task_list,
|
||||
mach_msg_type_number_t *task_listCnt
|
||||
);
|
||||
|
||||
/* Routine processor_set_threads */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t processor_set_threads
|
||||
(
|
||||
processor_set_t processor_set,
|
||||
thread_act_array_t *thread_list,
|
||||
mach_msg_type_number_t *thread_listCnt
|
||||
);
|
||||
|
||||
/* Routine processor_set_policy_control */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t processor_set_policy_control
|
||||
(
|
||||
processor_set_t pset,
|
||||
processor_set_flavor_t flavor,
|
||||
processor_set_info_t policy_info,
|
||||
mach_msg_type_number_t policy_infoCnt,
|
||||
boolean_t change
|
||||
);
|
||||
|
||||
/* Routine processor_set_stack_usage */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t processor_set_stack_usage
|
||||
(
|
||||
processor_set_t pset,
|
||||
unsigned *ltotal,
|
||||
vm_size_t *space,
|
||||
vm_size_t *resident,
|
||||
vm_size_t *maxusage,
|
||||
vm_offset_t *maxstack
|
||||
);
|
||||
|
||||
/* Routine processor_set_info */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t processor_set_info
|
||||
(
|
||||
processor_set_name_t set_name,
|
||||
int flavor,
|
||||
host_t *host,
|
||||
processor_set_info_t info_out,
|
||||
mach_msg_type_number_t *info_outCnt
|
||||
);
|
||||
|
||||
/* Routine processor_set_tasks_with_flavor */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t processor_set_tasks_with_flavor
|
||||
(
|
||||
processor_set_t processor_set,
|
||||
mach_task_flavor_t flavor,
|
||||
task_array_t *task_list,
|
||||
mach_msg_type_number_t *task_listCnt
|
||||
);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
/********************** Caution **************************/
|
||||
/* The following data types should be used to calculate */
|
||||
/* maximum message sizes only. The actual message may be */
|
||||
/* smaller, and the position of the arguments within the */
|
||||
/* message layout may vary from what is presented here. */
|
||||
/* For example, if any of the arguments are variable- */
|
||||
/* sized, and less than the maximum is sent, the data */
|
||||
/* will be packed tight in the actual message to reduce */
|
||||
/* the presence of holes. */
|
||||
/********************** Caution **************************/
|
||||
|
||||
/* typedefs for all requests */
|
||||
|
||||
#ifndef __Request__processor_set_subsystem__defined
|
||||
#define __Request__processor_set_subsystem__defined
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
processor_set_flavor_t flavor;
|
||||
mach_msg_type_number_t info_outCnt;
|
||||
} __Request__processor_set_statistics_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
} __Request__processor_set_destroy_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
int max_priority;
|
||||
boolean_t change_threads;
|
||||
} __Request__processor_set_max_priority_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
int policy;
|
||||
} __Request__processor_set_policy_enable_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
int policy;
|
||||
boolean_t change_threads;
|
||||
} __Request__processor_set_policy_disable_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
} __Request__processor_set_tasks_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
} __Request__processor_set_threads_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
processor_set_flavor_t flavor;
|
||||
mach_msg_type_number_t policy_infoCnt;
|
||||
integer_t policy_info[5];
|
||||
boolean_t change;
|
||||
} __Request__processor_set_policy_control_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
} __Request__processor_set_stack_usage_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
int flavor;
|
||||
mach_msg_type_number_t info_outCnt;
|
||||
} __Request__processor_set_info_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
mach_task_flavor_t flavor;
|
||||
} __Request__processor_set_tasks_with_flavor_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
#endif /* !__Request__processor_set_subsystem__defined */
|
||||
|
||||
/* union of all requests */
|
||||
|
||||
#ifndef __RequestUnion__processor_set_subsystem__defined
|
||||
#define __RequestUnion__processor_set_subsystem__defined
|
||||
union __RequestUnion__processor_set_subsystem {
|
||||
__Request__processor_set_statistics_t Request_processor_set_statistics;
|
||||
__Request__processor_set_destroy_t Request_processor_set_destroy;
|
||||
__Request__processor_set_max_priority_t Request_processor_set_max_priority;
|
||||
__Request__processor_set_policy_enable_t Request_processor_set_policy_enable;
|
||||
__Request__processor_set_policy_disable_t Request_processor_set_policy_disable;
|
||||
__Request__processor_set_tasks_t Request_processor_set_tasks;
|
||||
__Request__processor_set_threads_t Request_processor_set_threads;
|
||||
__Request__processor_set_policy_control_t Request_processor_set_policy_control;
|
||||
__Request__processor_set_stack_usage_t Request_processor_set_stack_usage;
|
||||
__Request__processor_set_info_t Request_processor_set_info;
|
||||
__Request__processor_set_tasks_with_flavor_t Request_processor_set_tasks_with_flavor;
|
||||
};
|
||||
#endif /* !__RequestUnion__processor_set_subsystem__defined */
|
||||
/* typedefs for all replies */
|
||||
|
||||
#ifndef __Reply__processor_set_subsystem__defined
|
||||
#define __Reply__processor_set_subsystem__defined
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
mach_msg_type_number_t info_outCnt;
|
||||
integer_t info_out[5];
|
||||
} __Reply__processor_set_statistics_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__processor_set_destroy_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__processor_set_max_priority_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__processor_set_policy_enable_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__processor_set_policy_disable_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
/* start of the kernel processed data */
|
||||
mach_msg_body_t msgh_body;
|
||||
mach_msg_ool_ports_descriptor_t task_list;
|
||||
/* end of the kernel processed data */
|
||||
NDR_record_t NDR;
|
||||
mach_msg_type_number_t task_listCnt;
|
||||
} __Reply__processor_set_tasks_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
/* start of the kernel processed data */
|
||||
mach_msg_body_t msgh_body;
|
||||
mach_msg_ool_ports_descriptor_t thread_list;
|
||||
/* end of the kernel processed data */
|
||||
NDR_record_t NDR;
|
||||
mach_msg_type_number_t thread_listCnt;
|
||||
} __Reply__processor_set_threads_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__processor_set_policy_control_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
unsigned ltotal;
|
||||
vm_size_t space;
|
||||
vm_size_t resident;
|
||||
vm_size_t maxusage;
|
||||
vm_offset_t maxstack;
|
||||
} __Reply__processor_set_stack_usage_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
/* start of the kernel processed data */
|
||||
mach_msg_body_t msgh_body;
|
||||
mach_msg_port_descriptor_t host;
|
||||
/* end of the kernel processed data */
|
||||
NDR_record_t NDR;
|
||||
mach_msg_type_number_t info_outCnt;
|
||||
integer_t info_out[5];
|
||||
} __Reply__processor_set_info_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
/* start of the kernel processed data */
|
||||
mach_msg_body_t msgh_body;
|
||||
mach_msg_ool_ports_descriptor_t task_list;
|
||||
/* end of the kernel processed data */
|
||||
NDR_record_t NDR;
|
||||
mach_msg_type_number_t task_listCnt;
|
||||
} __Reply__processor_set_tasks_with_flavor_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
#endif /* !__Reply__processor_set_subsystem__defined */
|
||||
|
||||
/* union of all replies */
|
||||
|
||||
#ifndef __ReplyUnion__processor_set_subsystem__defined
|
||||
#define __ReplyUnion__processor_set_subsystem__defined
|
||||
union __ReplyUnion__processor_set_subsystem {
|
||||
__Reply__processor_set_statistics_t Reply_processor_set_statistics;
|
||||
__Reply__processor_set_destroy_t Reply_processor_set_destroy;
|
||||
__Reply__processor_set_max_priority_t Reply_processor_set_max_priority;
|
||||
__Reply__processor_set_policy_enable_t Reply_processor_set_policy_enable;
|
||||
__Reply__processor_set_policy_disable_t Reply_processor_set_policy_disable;
|
||||
__Reply__processor_set_tasks_t Reply_processor_set_tasks;
|
||||
__Reply__processor_set_threads_t Reply_processor_set_threads;
|
||||
__Reply__processor_set_policy_control_t Reply_processor_set_policy_control;
|
||||
__Reply__processor_set_stack_usage_t Reply_processor_set_stack_usage;
|
||||
__Reply__processor_set_info_t Reply_processor_set_info;
|
||||
__Reply__processor_set_tasks_with_flavor_t Reply_processor_set_tasks_with_flavor;
|
||||
};
|
||||
#endif /* !__RequestUnion__processor_set_subsystem__defined */
|
||||
|
||||
#ifndef subsystem_to_name_map_processor_set
|
||||
#define subsystem_to_name_map_processor_set \
|
||||
{ "processor_set_statistics", 4000 },\
|
||||
{ "processor_set_destroy", 4001 },\
|
||||
{ "processor_set_max_priority", 4002 },\
|
||||
{ "processor_set_policy_enable", 4003 },\
|
||||
{ "processor_set_policy_disable", 4004 },\
|
||||
{ "processor_set_tasks", 4005 },\
|
||||
{ "processor_set_threads", 4006 },\
|
||||
{ "processor_set_policy_control", 4007 },\
|
||||
{ "processor_set_stack_usage", 4008 },\
|
||||
{ "processor_set_info", 4009 },\
|
||||
{ "processor_set_tasks_with_flavor", 4010 }
|
||||
#endif
|
||||
|
||||
#ifdef __AfterMigUserHeader
|
||||
__AfterMigUserHeader
|
||||
#endif /* __AfterMigUserHeader */
|
||||
|
||||
#endif /* _processor_set_user_ */
|
||||
49
lib/libc/include/any-macos.11-any/mach/sync_policy.h
vendored
Normal file
49
lib/libc/include/any-macos.11-any/mach/sync_policy.h
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* @OSF_COPYRIGHT@
|
||||
*/
|
||||
|
||||
#ifndef _MACH_SYNC_POLICY_H_
|
||||
#define _MACH_SYNC_POLICY_H_
|
||||
|
||||
typedef int sync_policy_t;
|
||||
|
||||
/*
|
||||
* These options define the wait ordering of the synchronizers
|
||||
*/
|
||||
#define SYNC_POLICY_FIFO 0x0
|
||||
#define SYNC_POLICY_FIXED_PRIORITY 0x1
|
||||
#define SYNC_POLICY_REVERSED 0x2
|
||||
#define SYNC_POLICY_ORDER_MASK 0x3
|
||||
#define SYNC_POLICY_LIFO (SYNC_POLICY_FIFO|SYNC_POLICY_REVERSED)
|
||||
|
||||
|
||||
#define SYNC_POLICY_MAX 0x7
|
||||
|
||||
#endif /* _MACH_SYNC_POLICY_H_ */
|
||||
154
lib/libc/include/any-macos.11-any/mach/task.h
vendored
154
lib/libc/include/any-macos.11-any/mach/task.h
vendored
@ -49,10 +49,9 @@ typedef function_table_entry *function_table_t;
|
||||
#endif /* AUTOTEST */
|
||||
|
||||
#ifndef task_MSG_COUNT
|
||||
#define task_MSG_COUNT 63
|
||||
#define task_MSG_COUNT 61
|
||||
#endif /* task_MSG_COUNT */
|
||||
|
||||
#include <Availability.h>
|
||||
#include <mach/std_types.h>
|
||||
#include <mach/mig.h>
|
||||
#include <mach/mig.h>
|
||||
@ -112,7 +111,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t mach_ports_register
|
||||
(
|
||||
task_t target_task,
|
||||
@ -126,7 +126,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t mach_ports_lookup
|
||||
(
|
||||
task_t target_task,
|
||||
@ -154,7 +155,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t task_set_info
|
||||
(
|
||||
task_t target_task,
|
||||
@ -169,7 +171,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t task_suspend
|
||||
(
|
||||
task_read_t target_task
|
||||
@ -181,7 +184,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t task_resume
|
||||
(
|
||||
task_read_t target_task
|
||||
@ -193,7 +197,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t task_get_special_port
|
||||
(
|
||||
task_inspect_t task,
|
||||
@ -207,7 +212,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t task_set_special_port
|
||||
(
|
||||
task_t task,
|
||||
@ -221,7 +227,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t thread_create
|
||||
(
|
||||
task_t parent_task,
|
||||
@ -234,7 +241,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t thread_create_running
|
||||
(
|
||||
task_t parent_task,
|
||||
@ -250,7 +258,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t task_set_exception_ports
|
||||
(
|
||||
task_t task,
|
||||
@ -266,7 +275,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t task_get_exception_ports
|
||||
(
|
||||
task_t task,
|
||||
@ -284,7 +294,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t task_swap_exception_ports
|
||||
(
|
||||
task_t task,
|
||||
@ -357,7 +368,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t task_policy_set
|
||||
(
|
||||
task_policy_set_t task,
|
||||
@ -372,7 +384,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t task_policy_get
|
||||
(
|
||||
task_policy_get_t task,
|
||||
@ -470,7 +483,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t task_zone_info
|
||||
(
|
||||
task_inspect_t target_task,
|
||||
@ -541,7 +555,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t task_get_state
|
||||
(
|
||||
task_read_t task,
|
||||
@ -556,7 +571,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t task_set_state
|
||||
(
|
||||
task_t task,
|
||||
@ -571,7 +587,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t task_set_phys_footprint_limit
|
||||
(
|
||||
task_t task,
|
||||
@ -585,7 +602,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t task_suspend2
|
||||
(
|
||||
task_read_t target_task,
|
||||
@ -598,7 +616,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t task_resume2
|
||||
(
|
||||
task_suspension_token_t suspend_token
|
||||
@ -622,7 +641,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t task_get_mach_voucher
|
||||
(
|
||||
task_read_t task,
|
||||
@ -636,7 +656,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t task_set_mach_voucher
|
||||
(
|
||||
task_t task,
|
||||
@ -649,7 +670,8 @@ mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
__TVOS_PROHIBITED __WATCHOS_PROHIBITED
|
||||
__WATCHOS_PROHIBITED
|
||||
__TVOS_PROHIBITED
|
||||
kern_return_t task_swap_mach_voucher
|
||||
(
|
||||
task_t task,
|
||||
@ -892,30 +914,6 @@ kern_return_t task_get_exception_ports_info
|
||||
exception_flavor_array_t old_flavors
|
||||
);
|
||||
|
||||
/* Routine task_test_sync_upcall */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t task_test_sync_upcall
|
||||
(
|
||||
task_t task,
|
||||
mach_port_t port
|
||||
);
|
||||
|
||||
/* Routine task_set_corpse_forking_behavior */
|
||||
#ifdef mig_external
|
||||
mig_external
|
||||
#else
|
||||
extern
|
||||
#endif /* mig_external */
|
||||
kern_return_t task_set_corpse_forking_behavior
|
||||
(
|
||||
task_t task,
|
||||
task_corpse_forking_behavior_t behavior
|
||||
);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
/********************** Caution **************************/
|
||||
@ -1714,32 +1712,6 @@ __END_DECLS
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
/* start of the kernel processed data */
|
||||
mach_msg_body_t msgh_body;
|
||||
mach_msg_port_descriptor_t port;
|
||||
/* end of the kernel processed data */
|
||||
} __Request__task_test_sync_upcall_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
task_corpse_forking_behavior_t behavior;
|
||||
} __Request__task_set_corpse_forking_behavior_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
#endif /* !__Request__task_subsystem__defined */
|
||||
|
||||
/* union of all requests */
|
||||
@ -1807,8 +1779,6 @@ union __RequestUnion__task_subsystem {
|
||||
__Request__task_identity_token_get_task_port_t Request_task_identity_token_get_task_port;
|
||||
__Request__task_dyld_process_info_notify_deregister_t Request_task_dyld_process_info_notify_deregister;
|
||||
__Request__task_get_exception_ports_info_t Request_task_get_exception_ports_info;
|
||||
__Request__task_test_sync_upcall_t Request_task_test_sync_upcall;
|
||||
__Request__task_set_corpse_forking_behavior_t Request_task_set_corpse_forking_behavior;
|
||||
};
|
||||
#endif /* !__RequestUnion__task_subsystem__defined */
|
||||
/* typedefs for all replies */
|
||||
@ -2622,30 +2592,6 @@ union __RequestUnion__task_subsystem {
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__task_test_sync_upcall_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(push, 4)
|
||||
#endif
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} __Reply__task_set_corpse_forking_behavior_t __attribute__((unused));
|
||||
#ifdef __MigPackStructs
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
#endif /* !__Reply__task_subsystem__defined */
|
||||
|
||||
/* union of all replies */
|
||||
@ -2713,8 +2659,6 @@ union __ReplyUnion__task_subsystem {
|
||||
__Reply__task_identity_token_get_task_port_t Reply_task_identity_token_get_task_port;
|
||||
__Reply__task_dyld_process_info_notify_deregister_t Reply_task_dyld_process_info_notify_deregister;
|
||||
__Reply__task_get_exception_ports_info_t Reply_task_get_exception_ports_info;
|
||||
__Reply__task_test_sync_upcall_t Reply_task_test_sync_upcall;
|
||||
__Reply__task_set_corpse_forking_behavior_t Reply_task_set_corpse_forking_behavior;
|
||||
};
|
||||
#endif /* !__RequestUnion__task_subsystem__defined */
|
||||
|
||||
@ -2779,9 +2723,7 @@ union __ReplyUnion__task_subsystem {
|
||||
{ "task_create_identity_token", 3457 },\
|
||||
{ "task_identity_token_get_task_port", 3458 },\
|
||||
{ "task_dyld_process_info_notify_deregister", 3459 },\
|
||||
{ "task_get_exception_ports_info", 3460 },\
|
||||
{ "task_test_sync_upcall", 3461 },\
|
||||
{ "task_set_corpse_forking_behavior", 3462 }
|
||||
{ "task_get_exception_ports_info", 3460 }
|
||||
#endif
|
||||
|
||||
#ifdef __AfterMigUserHeader
|
||||
|
||||
@ -494,7 +494,6 @@ typedef struct task_flags_info * task_flags_info_t;
|
||||
typedef uint32_t task_exc_guard_behavior_t;
|
||||
|
||||
/* EXC_GUARD optional delivery settings on a per-task basis */
|
||||
#define TASK_EXC_GUARD_NONE 0x00
|
||||
#define TASK_EXC_GUARD_VM_DELIVER 0x01 /* Deliver virtual memory EXC_GUARD exceptions */
|
||||
#define TASK_EXC_GUARD_VM_ONCE 0x02 /* Deliver them only once */
|
||||
#define TASK_EXC_GUARD_VM_CORPSE 0x04 /* Deliver them via a forked corpse */
|
||||
@ -510,15 +509,6 @@ typedef uint32_t task_exc_guard_behavior_t;
|
||||
#define TASK_EXC_GUARD_ALL 0xff /* All optional deliver settings */
|
||||
|
||||
|
||||
/*
|
||||
* Type to control corpse forking options for a task
|
||||
* via task_get/set_corpse_forking_behavior interface(s).
|
||||
*/
|
||||
typedef uint32_t task_corpse_forking_behavior_t;
|
||||
|
||||
#define TASK_CORPSE_FORKING_DISABLED_MEM_DIAG 0x01 /* Disable corpse forking because the task is running under a diagnostic tool */
|
||||
|
||||
|
||||
/*
|
||||
* Obsolete interfaces.
|
||||
*/
|
||||
|
||||
54
lib/libc/include/any-macos.11-any/mach/task_inspect.h
vendored
Normal file
54
lib/libc/include/any-macos.11-any/mach/task_inspect.h
vendored
Normal file
@ -0,0 +1,54 @@
|
||||
/*
|
||||
* Copyright (c) 2017 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#ifndef MACH_TASK_INSPECT_H
|
||||
#define MACH_TASK_INSPECT_H
|
||||
|
||||
/*
|
||||
* XXX These interfaces are still in development -- they are subject to change
|
||||
* without notice.
|
||||
*/
|
||||
|
||||
typedef natural_t task_inspect_flavor_t;
|
||||
|
||||
enum task_inspect_flavor {
|
||||
TASK_INSPECT_BASIC_COUNTS = 1,
|
||||
};
|
||||
|
||||
struct task_inspect_basic_counts {
|
||||
uint64_t instructions;
|
||||
uint64_t cycles;
|
||||
};
|
||||
#define TASK_INSPECT_BASIC_COUNTS_COUNT \
|
||||
(sizeof(struct task_inspect_basic_counts) / sizeof(natural_t))
|
||||
typedef struct task_inspect_basic_counts task_inspect_basic_counts_data_t;
|
||||
typedef struct task_inspect_basic_counts *task_inspect_basic_counts_t;
|
||||
|
||||
typedef integer_t *task_inspect_info_t;
|
||||
|
||||
#endif /* !defined(MACH_TASK_INSPECT_H) */
|
||||
135
lib/libc/include/any-macos.11-any/mach/task_special_ports.h
vendored
Normal file
135
lib/libc/include/any-macos.11-any/mach/task_special_ports.h
vendored
Normal file
@ -0,0 +1,135 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2010 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* @OSF_COPYRIGHT@
|
||||
*/
|
||||
/*
|
||||
* Mach Operating System
|
||||
* Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission to use, copy, modify and distribute this software and its
|
||||
* documentation is hereby granted, provided that both the copyright
|
||||
* notice and this permission notice appear in all copies of the
|
||||
* software, derivative works or modified versions, and any portions
|
||||
* thereof, and that both notices appear in supporting documentation.
|
||||
*
|
||||
* CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
|
||||
* CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
|
||||
* ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
|
||||
*
|
||||
* Carnegie Mellon requests users of this software to return to
|
||||
*
|
||||
* Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
|
||||
* School of Computer Science
|
||||
* Carnegie Mellon University
|
||||
* Pittsburgh PA 15213-3890
|
||||
*
|
||||
* any improvements or extensions that they make and grant Carnegie Mellon
|
||||
* the rights to redistribute these changes.
|
||||
*/
|
||||
/*
|
||||
*/
|
||||
/*
|
||||
* File: mach/task_special_ports.h
|
||||
*
|
||||
* Defines codes for special_purpose task ports. These are NOT
|
||||
* port identifiers - they are only used for the task_get_special_port
|
||||
* and task_set_special_port routines.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MACH_TASK_SPECIAL_PORTS_H_
|
||||
#define _MACH_TASK_SPECIAL_PORTS_H_
|
||||
|
||||
typedef int task_special_port_t;
|
||||
|
||||
#define TASK_KERNEL_PORT 1 /* The full task port for task. */
|
||||
|
||||
#define TASK_HOST_PORT 2 /* The host (priv) port for task. */
|
||||
|
||||
#define TASK_NAME_PORT 3 /* The name port for task. */
|
||||
|
||||
#define TASK_BOOTSTRAP_PORT 4 /* Bootstrap environment for task. */
|
||||
|
||||
#define TASK_INSPECT_PORT 5 /* The inspect port for task. */
|
||||
|
||||
#define TASK_READ_PORT 6 /* The read port for task. */
|
||||
|
||||
/*
|
||||
* Evolving and likely to change.
|
||||
*/
|
||||
|
||||
#define TASK_SEATBELT_PORT 7 /* Seatbelt compiler/DEM port for task. */
|
||||
|
||||
/* PORT 8 was the GSSD TASK PORT which transformed to a host port */
|
||||
|
||||
#define TASK_ACCESS_PORT 9 /* Permission check for task_for_pid. */
|
||||
|
||||
#define TASK_DEBUG_CONTROL_PORT 10 /* debug control port */
|
||||
|
||||
#define TASK_RESOURCE_NOTIFY_PORT 11 /* overrides host special RN port */
|
||||
|
||||
#define TASK_MAX_SPECIAL_PORT TASK_RESOURCE_NOTIFY_PORT
|
||||
|
||||
/*
|
||||
* Definitions for ease of use
|
||||
*/
|
||||
|
||||
#define task_get_kernel_port(task, port) \
|
||||
(task_get_special_port((task), TASK_KERNEL_PORT, (port)))
|
||||
|
||||
#define task_set_kernel_port(task, port) \
|
||||
(task_set_special_port((task), TASK_KERNEL_PORT, (port)))
|
||||
|
||||
#define task_get_host_port(task, port) \
|
||||
(task_get_special_port((task), TASK_HOST_PORT, (port)))
|
||||
|
||||
#define task_set_host_port(task, port) \
|
||||
(task_set_special_port((task), TASK_HOST_PORT, (port)))
|
||||
|
||||
#define task_get_bootstrap_port(task, port) \
|
||||
(task_get_special_port((task), TASK_BOOTSTRAP_PORT, (port)))
|
||||
|
||||
#define task_get_debug_control_port(task, port) \
|
||||
(task_get_special_port((task), TASK_DEBUG_CONTROL_PORT, (port)))
|
||||
|
||||
#define task_set_bootstrap_port(task, port) \
|
||||
(task_set_special_port((task), TASK_BOOTSTRAP_PORT, (port)))
|
||||
|
||||
#define task_get_task_access_port(task, port) \
|
||||
(task_get_special_port((task), TASK_ACCESS_PORT, (port)))
|
||||
|
||||
#define task_set_task_access_port(task, port) \
|
||||
(task_set_special_port((task), TASK_ACCESS_PORT, (port)))
|
||||
|
||||
#define task_set_task_debug_control_port(task, port) \
|
||||
(task_set_special_port((task), TASK_DEBUG_CONTROL_PORT, (port)))
|
||||
|
||||
|
||||
#endif /* _MACH_TASK_SPECIAL_PORTS_H_ */
|
||||
1435
lib/libc/include/any-macos.11-any/mach/thread_act.h
vendored
Normal file
1435
lib/libc/include/any-macos.11-any/mach/thread_act.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
266
lib/libc/include/any-macos.11-any/mach/thread_policy.h
vendored
Normal file
266
lib/libc/include/any-macos.11-any/mach/thread_policy.h
vendored
Normal file
@ -0,0 +1,266 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2007 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#ifndef _MACH_THREAD_POLICY_H_
|
||||
#define _MACH_THREAD_POLICY_H_
|
||||
|
||||
#include <mach/mach_types.h>
|
||||
|
||||
/*
|
||||
* These are the calls for accessing the policy parameters
|
||||
* of a particular thread.
|
||||
*
|
||||
* The extra 'get_default' parameter to the second call is
|
||||
* IN/OUT as follows:
|
||||
* 1) if asserted on the way in it indicates that the default
|
||||
* values should be returned, not the ones currently set, in
|
||||
* this case 'get_default' will always be asserted on return;
|
||||
* 2) if unasserted on the way in, the current settings are
|
||||
* desired and if still unasserted on return, then the info
|
||||
* returned reflects the current settings, otherwise if
|
||||
* 'get_default' returns asserted, it means that there are no
|
||||
* current settings due to other parameters taking precedence,
|
||||
* and the default ones are being returned instead.
|
||||
*/
|
||||
|
||||
typedef natural_t thread_policy_flavor_t;
|
||||
typedef integer_t *thread_policy_t;
|
||||
|
||||
/*
|
||||
* kern_return_t thread_policy_set(
|
||||
* thread_t thread,
|
||||
* thread_policy_flavor_t flavor,
|
||||
* thread_policy_t policy_info,
|
||||
* mach_msg_type_number_t count);
|
||||
*
|
||||
* kern_return_t thread_policy_get(
|
||||
* thread_t thread,
|
||||
* thread_policy_flavor_t flavor,
|
||||
* thread_policy_t policy_info,
|
||||
* mach_msg_type_number_t *count,
|
||||
* boolean_t *get_default);
|
||||
*/
|
||||
|
||||
/*
|
||||
* Defined flavors.
|
||||
*/
|
||||
/*
|
||||
* THREAD_STANDARD_POLICY:
|
||||
*
|
||||
* This is the standard (fair) scheduling mode, assigned to new
|
||||
* threads. The thread will be given processor time in a manner
|
||||
* which apportions approximately equal share to long running
|
||||
* computations.
|
||||
*
|
||||
* Parameters:
|
||||
* [none]
|
||||
*/
|
||||
|
||||
#define THREAD_STANDARD_POLICY 1
|
||||
|
||||
struct thread_standard_policy {
|
||||
natural_t no_data;
|
||||
};
|
||||
|
||||
typedef struct thread_standard_policy thread_standard_policy_data_t;
|
||||
typedef struct thread_standard_policy *thread_standard_policy_t;
|
||||
|
||||
#define THREAD_STANDARD_POLICY_COUNT 0
|
||||
|
||||
/*
|
||||
* THREAD_EXTENDED_POLICY:
|
||||
*
|
||||
* Extended form of THREAD_STANDARD_POLICY, which supplies a
|
||||
* hint indicating whether this is a long running computation.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* timeshare: TRUE (the default) results in identical scheduling
|
||||
* behavior as THREAD_STANDARD_POLICY.
|
||||
*/
|
||||
|
||||
#define THREAD_EXTENDED_POLICY 1
|
||||
|
||||
struct thread_extended_policy {
|
||||
boolean_t timeshare;
|
||||
};
|
||||
|
||||
typedef struct thread_extended_policy thread_extended_policy_data_t;
|
||||
typedef struct thread_extended_policy *thread_extended_policy_t;
|
||||
|
||||
#define THREAD_EXTENDED_POLICY_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof (thread_extended_policy_data_t) / sizeof (integer_t)))
|
||||
|
||||
/*
|
||||
* THREAD_TIME_CONSTRAINT_POLICY:
|
||||
*
|
||||
* This scheduling mode is for threads which have real time
|
||||
* constraints on their execution.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* period: This is the nominal amount of time between separate
|
||||
* processing arrivals, specified in absolute time units. A
|
||||
* value of 0 indicates that there is no inherent periodicity in
|
||||
* the computation.
|
||||
*
|
||||
* computation: This is the nominal amount of computation
|
||||
* time needed during a separate processing arrival, specified
|
||||
* in absolute time units.
|
||||
*
|
||||
* constraint: This is the maximum amount of real time that
|
||||
* may elapse from the start of a separate processing arrival
|
||||
* to the end of computation for logically correct functioning,
|
||||
* specified in absolute time units. Must be (>= computation).
|
||||
* Note that latency = (constraint - computation).
|
||||
*
|
||||
* preemptible: This indicates that the computation may be
|
||||
* interrupted, subject to the constraint specified above.
|
||||
*/
|
||||
|
||||
#define THREAD_TIME_CONSTRAINT_POLICY 2
|
||||
|
||||
struct thread_time_constraint_policy {
|
||||
uint32_t period;
|
||||
uint32_t computation;
|
||||
uint32_t constraint;
|
||||
boolean_t preemptible;
|
||||
};
|
||||
|
||||
typedef struct thread_time_constraint_policy \
|
||||
thread_time_constraint_policy_data_t;
|
||||
typedef struct thread_time_constraint_policy \
|
||||
*thread_time_constraint_policy_t;
|
||||
|
||||
#define THREAD_TIME_CONSTRAINT_POLICY_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof (thread_time_constraint_policy_data_t) / sizeof (integer_t)))
|
||||
|
||||
/*
|
||||
* THREAD_PRECEDENCE_POLICY:
|
||||
*
|
||||
* This may be used to indicate the relative value of the
|
||||
* computation compared to the other threads in the task.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* importance: The importance is specified as a signed value.
|
||||
*/
|
||||
|
||||
#define THREAD_PRECEDENCE_POLICY 3
|
||||
|
||||
struct thread_precedence_policy {
|
||||
integer_t importance;
|
||||
};
|
||||
|
||||
typedef struct thread_precedence_policy thread_precedence_policy_data_t;
|
||||
typedef struct thread_precedence_policy *thread_precedence_policy_t;
|
||||
|
||||
#define THREAD_PRECEDENCE_POLICY_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof (thread_precedence_policy_data_t) / sizeof (integer_t)))
|
||||
|
||||
/*
|
||||
* THREAD_AFFINITY_POLICY:
|
||||
*
|
||||
* This policy is experimental.
|
||||
* This may be used to express affinity relationships
|
||||
* between threads in the task. Threads with the same affinity tag will
|
||||
* be scheduled to share an L2 cache if possible. That is, affinity tags
|
||||
* are a hint to the scheduler for thread placement.
|
||||
*
|
||||
* The namespace of affinity tags is generally local to one task. However,
|
||||
* a child task created after the assignment of affinity tags by its parent
|
||||
* will share that namespace. In particular, a family of forked processes
|
||||
* may be created with a shared affinity namespace.
|
||||
*
|
||||
* Parameters:
|
||||
* tag: The affinity set identifier.
|
||||
*/
|
||||
|
||||
#define THREAD_AFFINITY_POLICY 4
|
||||
|
||||
struct thread_affinity_policy {
|
||||
integer_t affinity_tag;
|
||||
};
|
||||
|
||||
#define THREAD_AFFINITY_TAG_NULL 0
|
||||
|
||||
typedef struct thread_affinity_policy thread_affinity_policy_data_t;
|
||||
typedef struct thread_affinity_policy *thread_affinity_policy_t;
|
||||
|
||||
#define THREAD_AFFINITY_POLICY_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof (thread_affinity_policy_data_t) / sizeof (integer_t)))
|
||||
|
||||
/*
|
||||
* THREAD_BACKGROUND_POLICY:
|
||||
*/
|
||||
|
||||
#define THREAD_BACKGROUND_POLICY 5
|
||||
|
||||
struct thread_background_policy {
|
||||
integer_t priority;
|
||||
};
|
||||
|
||||
#define THREAD_BACKGROUND_POLICY_DARWIN_BG 0x1000
|
||||
|
||||
typedef struct thread_background_policy thread_background_policy_data_t;
|
||||
typedef struct thread_background_policy *thread_background_policy_t;
|
||||
|
||||
#define THREAD_BACKGROUND_POLICY_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof (thread_background_policy_data_t) / sizeof (integer_t)))
|
||||
|
||||
|
||||
#define THREAD_LATENCY_QOS_POLICY 7
|
||||
typedef integer_t thread_latency_qos_t;
|
||||
|
||||
struct thread_latency_qos_policy {
|
||||
thread_latency_qos_t thread_latency_qos_tier;
|
||||
};
|
||||
|
||||
typedef struct thread_latency_qos_policy thread_latency_qos_policy_data_t;
|
||||
typedef struct thread_latency_qos_policy *thread_latency_qos_policy_t;
|
||||
|
||||
#define THREAD_LATENCY_QOS_POLICY_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof (thread_latency_qos_policy_data_t) / sizeof (integer_t)))
|
||||
|
||||
#define THREAD_THROUGHPUT_QOS_POLICY 8
|
||||
typedef integer_t thread_throughput_qos_t;
|
||||
|
||||
struct thread_throughput_qos_policy {
|
||||
thread_throughput_qos_t thread_throughput_qos_tier;
|
||||
};
|
||||
|
||||
typedef struct thread_throughput_qos_policy thread_throughput_qos_policy_data_t;
|
||||
typedef struct thread_throughput_qos_policy *thread_throughput_qos_policy_t;
|
||||
|
||||
#define THREAD_THROUGHPUT_QOS_POLICY_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof (thread_throughput_qos_policy_data_t) / sizeof (integer_t)))
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* _MACH_THREAD_POLICY_H_ */
|
||||
63
lib/libc/include/any-macos.11-any/mach/thread_state.h
vendored
Normal file
63
lib/libc/include/any-macos.11-any/mach/thread_state.h
vendored
Normal file
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#ifndef _MACH_THREAD_STATE_H_
|
||||
#define _MACH_THREAD_STATE_H_
|
||||
|
||||
#include <Availability.h>
|
||||
#include <mach/mach.h>
|
||||
|
||||
#ifndef KERNEL
|
||||
/*
|
||||
* Gets all register values in the target thread with pointer-like contents.
|
||||
*
|
||||
* There is no guarantee that the returned values are valid pointers, but all
|
||||
* valid pointers will be returned. The order and count of the provided
|
||||
* register values is unspecified and may change; registers with values that
|
||||
* are not valid pointers may be omitted, so the number of pointers returned
|
||||
* may vary from call to call.
|
||||
*
|
||||
* sp is an out parameter that will contain the stack pointer.
|
||||
* length is an in/out parameter for the length of the values array.
|
||||
* values is an array of pointers.
|
||||
*
|
||||
* This may only be called on threads in the current task. If the current
|
||||
* platform defines a stack red zone, the stack pointer returned will be
|
||||
* adjusted to account for red zone.
|
||||
*
|
||||
* If length is insufficient, KERN_INSUFFICIENT_BUFFER_SIZE will be returned
|
||||
* and length set to the amount of memory required. Callers MUST NOT assume
|
||||
* that any particular size of buffer will be sufficient and should retry with
|
||||
* an appropriately sized buffer upon this error.
|
||||
*/
|
||||
__API_AVAILABLE(macosx(10.14), ios(12.0), tvos(9.0), watchos(5.0))
|
||||
kern_return_t thread_get_register_pointer_values(thread_t thread,
|
||||
uintptr_t *sp, size_t *length, uintptr_t *values);
|
||||
#endif
|
||||
|
||||
#endif /* _MACH_THREAD_STATE_H_ */
|
||||
1503
lib/libc/include/any-macos.11-any/mach/vm_map.h
vendored
Normal file
1503
lib/libc/include/any-macos.11-any/mach/vm_map.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
153
lib/libc/include/any-macos.11-any/mach/vm_prot.h
vendored
Normal file
153
lib/libc/include/any-macos.11-any/mach/vm_prot.h
vendored
Normal file
@ -0,0 +1,153 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* @OSF_COPYRIGHT@
|
||||
*/
|
||||
/*
|
||||
* Mach Operating System
|
||||
* Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission to use, copy, modify and distribute this software and its
|
||||
* documentation is hereby granted, provided that both the copyright
|
||||
* notice and this permission notice appear in all copies of the
|
||||
* software, derivative works or modified versions, and any portions
|
||||
* thereof, and that both notices appear in supporting documentation.
|
||||
*
|
||||
* CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
|
||||
* CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
|
||||
* ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
|
||||
*
|
||||
* Carnegie Mellon requests users of this software to return to
|
||||
*
|
||||
* Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
|
||||
* School of Computer Science
|
||||
* Carnegie Mellon University
|
||||
* Pittsburgh PA 15213-3890
|
||||
*
|
||||
* any improvements or extensions that they make and grant Carnegie Mellon
|
||||
* the rights to redistribute these changes.
|
||||
*/
|
||||
/*
|
||||
*/
|
||||
/*
|
||||
* File: mach/vm_prot.h
|
||||
* Author: Avadis Tevanian, Jr., Michael Wayne Young
|
||||
*
|
||||
* Virtual memory protection definitions.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MACH_VM_PROT_H_
|
||||
#define _MACH_VM_PROT_H_
|
||||
|
||||
/*
|
||||
* Types defined:
|
||||
*
|
||||
* vm_prot_t VM protection values.
|
||||
*/
|
||||
|
||||
typedef int vm_prot_t;
|
||||
|
||||
/*
|
||||
* Protection values, defined as bits within the vm_prot_t type
|
||||
*/
|
||||
|
||||
#define VM_PROT_NONE ((vm_prot_t) 0x00)
|
||||
|
||||
#define VM_PROT_READ ((vm_prot_t) 0x01) /* read permission */
|
||||
#define VM_PROT_WRITE ((vm_prot_t) 0x02) /* write permission */
|
||||
#define VM_PROT_EXECUTE ((vm_prot_t) 0x04) /* execute permission */
|
||||
|
||||
/*
|
||||
* The default protection for newly-created virtual memory
|
||||
*/
|
||||
|
||||
#define VM_PROT_DEFAULT (VM_PROT_READ|VM_PROT_WRITE)
|
||||
|
||||
/*
|
||||
* The maximum privileges possible, for parameter checking.
|
||||
*/
|
||||
|
||||
#define VM_PROT_ALL (VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE)
|
||||
|
||||
/*
|
||||
* An invalid protection value.
|
||||
* Used only by memory_object_lock_request to indicate no change
|
||||
* to page locks. Using -1 here is a bad idea because it
|
||||
* looks like VM_PROT_ALL and then some.
|
||||
*/
|
||||
|
||||
#define VM_PROT_NO_CHANGE ((vm_prot_t) 0x08)
|
||||
|
||||
/*
|
||||
* When a caller finds that he cannot obtain write permission on a
|
||||
* mapped entry, the following flag can be used. The entry will
|
||||
* be made "needs copy" effectively copying the object (using COW),
|
||||
* and write permission will be added to the maximum protections
|
||||
* for the associated entry.
|
||||
*/
|
||||
|
||||
#define VM_PROT_COPY ((vm_prot_t) 0x10)
|
||||
|
||||
|
||||
/*
|
||||
* Another invalid protection value.
|
||||
* Used only by memory_object_data_request upon an object
|
||||
* which has specified a copy_call copy strategy. It is used
|
||||
* when the kernel wants a page belonging to a copy of the
|
||||
* object, and is only asking the object as a result of
|
||||
* following a shadow chain. This solves the race between pages
|
||||
* being pushed up by the memory manager and the kernel
|
||||
* walking down the shadow chain.
|
||||
*/
|
||||
|
||||
#define VM_PROT_WANTS_COPY ((vm_prot_t) 0x10)
|
||||
|
||||
|
||||
/*
|
||||
* Another invalid protection value.
|
||||
* Indicates that the other protection bits are to be applied as a mask
|
||||
* against the actual protection bits of the map entry.
|
||||
*/
|
||||
#define VM_PROT_IS_MASK ((vm_prot_t) 0x40)
|
||||
|
||||
/*
|
||||
* Another invalid protection value to support execute-only protection.
|
||||
* VM_PROT_STRIP_READ is a special marker that tells mprotect to not
|
||||
* set VM_PROT_READ. We have to do it this way because existing code
|
||||
* expects the system to set VM_PROT_READ if VM_PROT_EXECUTE is set.
|
||||
* VM_PROT_EXECUTE_ONLY is just a convenience value to indicate that
|
||||
* the memory should be executable and explicitly not readable. It will
|
||||
* be ignored on platforms that do not support this type of protection.
|
||||
*/
|
||||
#define VM_PROT_STRIP_READ ((vm_prot_t) 0x80)
|
||||
#define VM_PROT_EXECUTE_ONLY (VM_PROT_EXECUTE|VM_PROT_STRIP_READ)
|
||||
|
||||
|
||||
#endif /* _MACH_VM_PROT_H_ */
|
||||
552
lib/libc/include/any-macos.11-any/mach/vm_statistics.h
vendored
Normal file
552
lib/libc/include/any-macos.11-any/mach/vm_statistics.h
vendored
Normal file
@ -0,0 +1,552 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2020 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* @OSF_COPYRIGHT@
|
||||
*/
|
||||
/*
|
||||
* Mach Operating System
|
||||
* Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission to use, copy, modify and distribute this software and its
|
||||
* documentation is hereby granted, provided that both the copyright
|
||||
* notice and this permission notice appear in all copies of the
|
||||
* software, derivative works or modified versions, and any portions
|
||||
* thereof, and that both notices appear in supporting documentation.
|
||||
*
|
||||
* CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
|
||||
* CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
|
||||
* ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
|
||||
*
|
||||
* Carnegie Mellon requests users of this software to return to
|
||||
*
|
||||
* Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
|
||||
* School of Computer Science
|
||||
* Carnegie Mellon University
|
||||
* Pittsburgh PA 15213-3890
|
||||
*
|
||||
* any improvements or extensions that they make and grant Carnegie Mellon
|
||||
* the rights to redistribute these changes.
|
||||
*/
|
||||
/*
|
||||
*/
|
||||
/*
|
||||
* File: mach/vm_statistics.h
|
||||
* Author: Avadis Tevanian, Jr., Michael Wayne Young, David Golub
|
||||
*
|
||||
* Virtual memory statistics structure.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MACH_VM_STATISTICS_H_
|
||||
#define _MACH_VM_STATISTICS_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <mach/machine/vm_types.h>
|
||||
#include <mach/machine/kern_return.h>
|
||||
|
||||
/*
|
||||
* vm_statistics
|
||||
*
|
||||
* History:
|
||||
* rev0 - original structure.
|
||||
* rev1 - added purgable info (purgable_count and purges).
|
||||
* rev2 - added speculative_count.
|
||||
*
|
||||
* Note: you cannot add any new fields to this structure. Add them below in
|
||||
* vm_statistics64.
|
||||
*/
|
||||
|
||||
struct vm_statistics {
|
||||
natural_t free_count; /* # of pages free */
|
||||
natural_t active_count; /* # of pages active */
|
||||
natural_t inactive_count; /* # of pages inactive */
|
||||
natural_t wire_count; /* # of pages wired down */
|
||||
natural_t zero_fill_count; /* # of zero fill pages */
|
||||
natural_t reactivations; /* # of pages reactivated */
|
||||
natural_t pageins; /* # of pageins */
|
||||
natural_t pageouts; /* # of pageouts */
|
||||
natural_t faults; /* # of faults */
|
||||
natural_t cow_faults; /* # of copy-on-writes */
|
||||
natural_t lookups; /* object cache lookups */
|
||||
natural_t hits; /* object cache hits */
|
||||
|
||||
/* added for rev1 */
|
||||
natural_t purgeable_count; /* # of pages purgeable */
|
||||
natural_t purges; /* # of pages purged */
|
||||
|
||||
/* added for rev2 */
|
||||
/*
|
||||
* NB: speculative pages are already accounted for in "free_count",
|
||||
* so "speculative_count" is the number of "free" pages that are
|
||||
* used to hold data that was read speculatively from disk but
|
||||
* haven't actually been used by anyone so far.
|
||||
*/
|
||||
natural_t speculative_count; /* # of pages speculative */
|
||||
};
|
||||
|
||||
/* Used by all architectures */
|
||||
typedef struct vm_statistics *vm_statistics_t;
|
||||
typedef struct vm_statistics vm_statistics_data_t;
|
||||
|
||||
/*
|
||||
* vm_statistics64
|
||||
*
|
||||
* History:
|
||||
* rev0 - original structure.
|
||||
* rev1 - added purgable info (purgable_count and purges).
|
||||
* rev2 - added speculative_count.
|
||||
* ----
|
||||
* rev3 - changed name to vm_statistics64.
|
||||
* changed some fields in structure to 64-bit on
|
||||
* arm, i386 and x86_64 architectures.
|
||||
* rev4 - require 64-bit alignment for efficient access
|
||||
* in the kernel. No change to reported data.
|
||||
*
|
||||
*/
|
||||
|
||||
struct vm_statistics64 {
|
||||
natural_t free_count; /* # of pages free */
|
||||
natural_t active_count; /* # of pages active */
|
||||
natural_t inactive_count; /* # of pages inactive */
|
||||
natural_t wire_count; /* # of pages wired down */
|
||||
uint64_t zero_fill_count; /* # of zero fill pages */
|
||||
uint64_t reactivations; /* # of pages reactivated */
|
||||
uint64_t pageins; /* # of pageins */
|
||||
uint64_t pageouts; /* # of pageouts */
|
||||
uint64_t faults; /* # of faults */
|
||||
uint64_t cow_faults; /* # of copy-on-writes */
|
||||
uint64_t lookups; /* object cache lookups */
|
||||
uint64_t hits; /* object cache hits */
|
||||
uint64_t purges; /* # of pages purged */
|
||||
natural_t purgeable_count; /* # of pages purgeable */
|
||||
/*
|
||||
* NB: speculative pages are already accounted for in "free_count",
|
||||
* so "speculative_count" is the number of "free" pages that are
|
||||
* used to hold data that was read speculatively from disk but
|
||||
* haven't actually been used by anyone so far.
|
||||
*/
|
||||
natural_t speculative_count; /* # of pages speculative */
|
||||
|
||||
/* added for rev1 */
|
||||
uint64_t decompressions; /* # of pages decompressed */
|
||||
uint64_t compressions; /* # of pages compressed */
|
||||
uint64_t swapins; /* # of pages swapped in (via compression segments) */
|
||||
uint64_t swapouts; /* # of pages swapped out (via compression segments) */
|
||||
natural_t compressor_page_count; /* # of pages used by the compressed pager to hold all the compressed data */
|
||||
natural_t throttled_count; /* # of pages throttled */
|
||||
natural_t external_page_count; /* # of pages that are file-backed (non-swap) */
|
||||
natural_t internal_page_count; /* # of pages that are anonymous */
|
||||
uint64_t total_uncompressed_pages_in_compressor; /* # of pages (uncompressed) held within the compressor. */
|
||||
} __attribute__((aligned(8)));
|
||||
|
||||
typedef struct vm_statistics64 *vm_statistics64_t;
|
||||
typedef struct vm_statistics64 vm_statistics64_data_t;
|
||||
|
||||
kern_return_t vm_stats(void *info, unsigned int *count);
|
||||
|
||||
/*
|
||||
* VM_STATISTICS_TRUNCATE_TO_32_BIT
|
||||
*
|
||||
* This is used by host_statistics() to truncate and peg the 64-bit in-kernel values from
|
||||
* vm_statistics64 to the 32-bit values of the older structure above (vm_statistics).
|
||||
*/
|
||||
#define VM_STATISTICS_TRUNCATE_TO_32_BIT(value) ((uint32_t)(((value) > UINT32_MAX ) ? UINT32_MAX : (value)))
|
||||
|
||||
/*
|
||||
* vm_extmod_statistics
|
||||
*
|
||||
* Structure to record modifications to a task by an
|
||||
* external agent.
|
||||
*
|
||||
* History:
|
||||
* rev0 - original structure.
|
||||
*/
|
||||
|
||||
struct vm_extmod_statistics {
|
||||
int64_t task_for_pid_count; /* # of times task port was looked up */
|
||||
int64_t task_for_pid_caller_count; /* # of times this task called task_for_pid */
|
||||
int64_t thread_creation_count; /* # of threads created in task */
|
||||
int64_t thread_creation_caller_count; /* # of threads created by task */
|
||||
int64_t thread_set_state_count; /* # of register state sets in task */
|
||||
int64_t thread_set_state_caller_count; /* # of register state sets by task */
|
||||
} __attribute__((aligned(8)));
|
||||
|
||||
typedef struct vm_extmod_statistics *vm_extmod_statistics_t;
|
||||
typedef struct vm_extmod_statistics vm_extmod_statistics_data_t;
|
||||
|
||||
typedef struct vm_purgeable_stat {
|
||||
uint64_t count;
|
||||
uint64_t size;
|
||||
}vm_purgeable_stat_t;
|
||||
|
||||
struct vm_purgeable_info {
|
||||
vm_purgeable_stat_t fifo_data[8];
|
||||
vm_purgeable_stat_t obsolete_data;
|
||||
vm_purgeable_stat_t lifo_data[8];
|
||||
};
|
||||
|
||||
typedef struct vm_purgeable_info *vm_purgeable_info_t;
|
||||
|
||||
/* included for the vm_map_page_query call */
|
||||
|
||||
#define VM_PAGE_QUERY_PAGE_PRESENT 0x1
|
||||
#define VM_PAGE_QUERY_PAGE_FICTITIOUS 0x2
|
||||
#define VM_PAGE_QUERY_PAGE_REF 0x4
|
||||
#define VM_PAGE_QUERY_PAGE_DIRTY 0x8
|
||||
#define VM_PAGE_QUERY_PAGE_PAGED_OUT 0x10
|
||||
#define VM_PAGE_QUERY_PAGE_COPIED 0x20
|
||||
#define VM_PAGE_QUERY_PAGE_SPECULATIVE 0x40
|
||||
#define VM_PAGE_QUERY_PAGE_EXTERNAL 0x80
|
||||
#define VM_PAGE_QUERY_PAGE_CS_VALIDATED 0x100
|
||||
#define VM_PAGE_QUERY_PAGE_CS_TAINTED 0x200
|
||||
#define VM_PAGE_QUERY_PAGE_CS_NX 0x400
|
||||
#define VM_PAGE_QUERY_PAGE_REUSABLE 0x800
|
||||
|
||||
|
||||
/*
|
||||
* VM allocation flags:
|
||||
*
|
||||
* VM_FLAGS_FIXED
|
||||
* (really the absence of VM_FLAGS_ANYWHERE)
|
||||
* Allocate new VM region at the specified virtual address, if possible.
|
||||
*
|
||||
* VM_FLAGS_ANYWHERE
|
||||
* Allocate new VM region anywhere it would fit in the address space.
|
||||
*
|
||||
* VM_FLAGS_PURGABLE
|
||||
* Create a purgable VM object for that new VM region.
|
||||
*
|
||||
* VM_FLAGS_4GB_CHUNK
|
||||
* The new VM region will be chunked up into 4GB sized pieces.
|
||||
*
|
||||
* VM_FLAGS_NO_PMAP_CHECK
|
||||
* (for DEBUG kernel config only, ignored for other configs)
|
||||
* Do not check that there is no stale pmap mapping for the new VM region.
|
||||
* This is useful for kernel memory allocations at bootstrap when building
|
||||
* the initial kernel address space while some memory is already in use.
|
||||
*
|
||||
* VM_FLAGS_OVERWRITE
|
||||
* The new VM region can replace existing VM regions if necessary
|
||||
* (to be used in combination with VM_FLAGS_FIXED).
|
||||
*
|
||||
* VM_FLAGS_NO_CACHE
|
||||
* Pages brought in to this VM region are placed on the speculative
|
||||
* queue instead of the active queue. In other words, they are not
|
||||
* cached so that they will be stolen first if memory runs low.
|
||||
*/
|
||||
|
||||
#define VM_FLAGS_FIXED 0x0000
|
||||
#define VM_FLAGS_ANYWHERE 0x0001
|
||||
#define VM_FLAGS_PURGABLE 0x0002
|
||||
#define VM_FLAGS_4GB_CHUNK 0x0004
|
||||
#define VM_FLAGS_RANDOM_ADDR 0x0008
|
||||
#define VM_FLAGS_NO_CACHE 0x0010
|
||||
#define VM_FLAGS_RESILIENT_CODESIGN 0x0020
|
||||
#define VM_FLAGS_RESILIENT_MEDIA 0x0040
|
||||
#define VM_FLAGS_PERMANENT 0x0080
|
||||
#define VM_FLAGS_OVERWRITE 0x4000 /* delete any existing mappings first */
|
||||
/*
|
||||
* VM_FLAGS_SUPERPAGE_MASK
|
||||
* 3 bits that specify whether large pages should be used instead of
|
||||
* base pages (!=0), as well as the requested page size.
|
||||
*/
|
||||
#define VM_FLAGS_SUPERPAGE_MASK 0x70000 /* bits 0x10000, 0x20000, 0x40000 */
|
||||
#define VM_FLAGS_RETURN_DATA_ADDR 0x100000 /* Return address of target data, rather than base of page */
|
||||
#define VM_FLAGS_RETURN_4K_DATA_ADDR 0x800000 /* Return 4K aligned address of target data */
|
||||
#define VM_FLAGS_ALIAS_MASK 0xFF000000
|
||||
#define VM_GET_FLAGS_ALIAS(flags, alias) \
|
||||
(alias) = ((flags) & VM_FLAGS_ALIAS_MASK) >> 24
|
||||
#define VM_SET_FLAGS_ALIAS(flags, alias) \
|
||||
(flags) = (((flags) & ~VM_FLAGS_ALIAS_MASK) | \
|
||||
(((alias) & ~VM_FLAGS_ALIAS_MASK) << 24))
|
||||
|
||||
/* These are the flags that we accept from user-space */
|
||||
#define VM_FLAGS_USER_ALLOCATE (VM_FLAGS_FIXED | \
|
||||
VM_FLAGS_ANYWHERE | \
|
||||
VM_FLAGS_PURGABLE | \
|
||||
VM_FLAGS_4GB_CHUNK | \
|
||||
VM_FLAGS_RANDOM_ADDR | \
|
||||
VM_FLAGS_NO_CACHE | \
|
||||
VM_FLAGS_PERMANENT | \
|
||||
VM_FLAGS_OVERWRITE | \
|
||||
VM_FLAGS_SUPERPAGE_MASK | \
|
||||
VM_FLAGS_ALIAS_MASK)
|
||||
#define VM_FLAGS_USER_MAP (VM_FLAGS_USER_ALLOCATE | \
|
||||
VM_FLAGS_RETURN_4K_DATA_ADDR | \
|
||||
VM_FLAGS_RETURN_DATA_ADDR)
|
||||
#define VM_FLAGS_USER_REMAP (VM_FLAGS_FIXED | \
|
||||
VM_FLAGS_ANYWHERE | \
|
||||
VM_FLAGS_RANDOM_ADDR | \
|
||||
VM_FLAGS_OVERWRITE| \
|
||||
VM_FLAGS_RETURN_DATA_ADDR | \
|
||||
VM_FLAGS_RESILIENT_CODESIGN | \
|
||||
VM_FLAGS_RESILIENT_MEDIA)
|
||||
|
||||
#define VM_FLAGS_SUPERPAGE_SHIFT 16
|
||||
#define SUPERPAGE_NONE 0 /* no superpages, if all bits are 0 */
|
||||
#define SUPERPAGE_SIZE_ANY 1
|
||||
#define VM_FLAGS_SUPERPAGE_NONE (SUPERPAGE_NONE << VM_FLAGS_SUPERPAGE_SHIFT)
|
||||
#define VM_FLAGS_SUPERPAGE_SIZE_ANY (SUPERPAGE_SIZE_ANY << VM_FLAGS_SUPERPAGE_SHIFT)
|
||||
#define SUPERPAGE_SIZE_2MB 2
|
||||
#define VM_FLAGS_SUPERPAGE_SIZE_2MB (SUPERPAGE_SIZE_2MB<<VM_FLAGS_SUPERPAGE_SHIFT)
|
||||
|
||||
/*
|
||||
* EXC_GUARD definitions for virtual memory.
|
||||
*/
|
||||
#define GUARD_TYPE_VIRT_MEMORY 0x5
|
||||
|
||||
/* Reasons for exception for virtual memory */
|
||||
enum virtual_memory_guard_exception_codes {
|
||||
kGUARD_EXC_DEALLOC_GAP = 1u << 0
|
||||
};
|
||||
|
||||
|
||||
/* current accounting postmark */
|
||||
#define __VM_LEDGER_ACCOUNTING_POSTMARK 2019032600
|
||||
|
||||
/* discrete values: */
|
||||
#define VM_LEDGER_TAG_NONE 0x00000000
|
||||
#define VM_LEDGER_TAG_DEFAULT 0x00000001
|
||||
#define VM_LEDGER_TAG_NETWORK 0x00000002
|
||||
#define VM_LEDGER_TAG_MEDIA 0x00000003
|
||||
#define VM_LEDGER_TAG_GRAPHICS 0x00000004
|
||||
#define VM_LEDGER_TAG_NEURAL 0x00000005
|
||||
#define VM_LEDGER_TAG_MAX 0x00000005
|
||||
/* individual bits: */
|
||||
#define VM_LEDGER_FLAG_NO_FOOTPRINT 0x00000001
|
||||
#define VM_LEDGER_FLAGS (VM_LEDGER_FLAG_NO_FOOTPRINT)
|
||||
|
||||
|
||||
#define VM_MEMORY_MALLOC 1
|
||||
#define VM_MEMORY_MALLOC_SMALL 2
|
||||
#define VM_MEMORY_MALLOC_LARGE 3
|
||||
#define VM_MEMORY_MALLOC_HUGE 4
|
||||
#define VM_MEMORY_SBRK 5// uninteresting -- no one should call
|
||||
#define VM_MEMORY_REALLOC 6
|
||||
#define VM_MEMORY_MALLOC_TINY 7
|
||||
#define VM_MEMORY_MALLOC_LARGE_REUSABLE 8
|
||||
#define VM_MEMORY_MALLOC_LARGE_REUSED 9
|
||||
|
||||
#define VM_MEMORY_ANALYSIS_TOOL 10
|
||||
|
||||
#define VM_MEMORY_MALLOC_NANO 11
|
||||
#define VM_MEMORY_MALLOC_MEDIUM 12
|
||||
#define VM_MEMORY_MALLOC_PGUARD 13
|
||||
|
||||
#define VM_MEMORY_MACH_MSG 20
|
||||
#define VM_MEMORY_IOKIT 21
|
||||
#define VM_MEMORY_STACK 30
|
||||
#define VM_MEMORY_GUARD 31
|
||||
#define VM_MEMORY_SHARED_PMAP 32
|
||||
/* memory containing a dylib */
|
||||
#define VM_MEMORY_DYLIB 33
|
||||
#define VM_MEMORY_OBJC_DISPATCHERS 34
|
||||
|
||||
/* Was a nested pmap (VM_MEMORY_SHARED_PMAP) which has now been unnested */
|
||||
#define VM_MEMORY_UNSHARED_PMAP 35
|
||||
|
||||
|
||||
// Placeholders for now -- as we analyze the libraries and find how they
|
||||
// use memory, we can make these labels more specific.
|
||||
#define VM_MEMORY_APPKIT 40
|
||||
#define VM_MEMORY_FOUNDATION 41
|
||||
#define VM_MEMORY_COREGRAPHICS 42
|
||||
#define VM_MEMORY_CORESERVICES 43
|
||||
#define VM_MEMORY_CARBON VM_MEMORY_CORESERVICES
|
||||
#define VM_MEMORY_JAVA 44
|
||||
#define VM_MEMORY_COREDATA 45
|
||||
#define VM_MEMORY_COREDATA_OBJECTIDS 46
|
||||
#define VM_MEMORY_ATS 50
|
||||
#define VM_MEMORY_LAYERKIT 51
|
||||
#define VM_MEMORY_CGIMAGE 52
|
||||
#define VM_MEMORY_TCMALLOC 53
|
||||
|
||||
/* private raster data (i.e. layers, some images, QGL allocator) */
|
||||
#define VM_MEMORY_COREGRAPHICS_DATA 54
|
||||
|
||||
/* shared image and font caches */
|
||||
#define VM_MEMORY_COREGRAPHICS_SHARED 55
|
||||
|
||||
/* Memory used for virtual framebuffers, shadowing buffers, etc... */
|
||||
#define VM_MEMORY_COREGRAPHICS_FRAMEBUFFERS 56
|
||||
|
||||
/* Window backing stores, custom shadow data, and compressed backing stores */
|
||||
#define VM_MEMORY_COREGRAPHICS_BACKINGSTORES 57
|
||||
|
||||
/* x-alloc'd memory */
|
||||
#define VM_MEMORY_COREGRAPHICS_XALLOC 58
|
||||
|
||||
/* catch-all for other uses, such as the read-only shared data page */
|
||||
#define VM_MEMORY_COREGRAPHICS_MISC VM_MEMORY_COREGRAPHICS
|
||||
|
||||
/* memory allocated by the dynamic loader for itself */
|
||||
#define VM_MEMORY_DYLD 60
|
||||
/* malloc'd memory created by dyld */
|
||||
#define VM_MEMORY_DYLD_MALLOC 61
|
||||
|
||||
/* Used for sqlite page cache */
|
||||
#define VM_MEMORY_SQLITE 62
|
||||
|
||||
/* JavaScriptCore heaps */
|
||||
#define VM_MEMORY_JAVASCRIPT_CORE 63
|
||||
#define VM_MEMORY_WEBASSEMBLY VM_MEMORY_JAVASCRIPT_CORE
|
||||
/* memory allocated for the JIT */
|
||||
#define VM_MEMORY_JAVASCRIPT_JIT_EXECUTABLE_ALLOCATOR 64
|
||||
#define VM_MEMORY_JAVASCRIPT_JIT_REGISTER_FILE 65
|
||||
|
||||
/* memory allocated for GLSL */
|
||||
#define VM_MEMORY_GLSL 66
|
||||
|
||||
/* memory allocated for OpenCL.framework */
|
||||
#define VM_MEMORY_OPENCL 67
|
||||
|
||||
/* memory allocated for QuartzCore.framework */
|
||||
#define VM_MEMORY_COREIMAGE 68
|
||||
|
||||
/* memory allocated for WebCore Purgeable Buffers */
|
||||
#define VM_MEMORY_WEBCORE_PURGEABLE_BUFFERS 69
|
||||
|
||||
/* ImageIO memory */
|
||||
#define VM_MEMORY_IMAGEIO 70
|
||||
|
||||
/* CoreProfile memory */
|
||||
#define VM_MEMORY_COREPROFILE 71
|
||||
|
||||
/* assetsd / MobileSlideShow memory */
|
||||
#define VM_MEMORY_ASSETSD 72
|
||||
|
||||
/* libsystem_kernel os_once_alloc */
|
||||
#define VM_MEMORY_OS_ALLOC_ONCE 73
|
||||
|
||||
/* libdispatch internal allocator */
|
||||
#define VM_MEMORY_LIBDISPATCH 74
|
||||
|
||||
/* Accelerate.framework image backing stores */
|
||||
#define VM_MEMORY_ACCELERATE 75
|
||||
|
||||
/* CoreUI image block data */
|
||||
#define VM_MEMORY_COREUI 76
|
||||
|
||||
/* CoreUI image file */
|
||||
#define VM_MEMORY_COREUIFILE 77
|
||||
|
||||
/* Genealogy buffers */
|
||||
#define VM_MEMORY_GENEALOGY 78
|
||||
|
||||
/* RawCamera VM allocated memory */
|
||||
#define VM_MEMORY_RAWCAMERA 79
|
||||
|
||||
/* corpse info for dead process */
|
||||
#define VM_MEMORY_CORPSEINFO 80
|
||||
|
||||
/* Apple System Logger (ASL) messages */
|
||||
#define VM_MEMORY_ASL 81
|
||||
|
||||
/* Swift runtime */
|
||||
#define VM_MEMORY_SWIFT_RUNTIME 82
|
||||
|
||||
/* Swift metadata */
|
||||
#define VM_MEMORY_SWIFT_METADATA 83
|
||||
|
||||
/* DHMM data */
|
||||
#define VM_MEMORY_DHMM 84
|
||||
|
||||
|
||||
/* memory allocated by SceneKit.framework */
|
||||
#define VM_MEMORY_SCENEKIT 86
|
||||
|
||||
/* memory allocated by skywalk networking */
|
||||
#define VM_MEMORY_SKYWALK 87
|
||||
|
||||
#define VM_MEMORY_IOSURFACE 88
|
||||
|
||||
#define VM_MEMORY_LIBNETWORK 89
|
||||
|
||||
#define VM_MEMORY_AUDIO 90
|
||||
|
||||
#define VM_MEMORY_VIDEOBITSTREAM 91
|
||||
|
||||
/* memory allocated by CoreMedia */
|
||||
#define VM_MEMORY_CM_XPC 92
|
||||
|
||||
#define VM_MEMORY_CM_RPC 93
|
||||
|
||||
#define VM_MEMORY_CM_MEMORYPOOL 94
|
||||
|
||||
#define VM_MEMORY_CM_READCACHE 95
|
||||
|
||||
#define VM_MEMORY_CM_CRABS 96
|
||||
|
||||
/* memory allocated for QuickLookThumbnailing */
|
||||
#define VM_MEMORY_QUICKLOOK_THUMBNAILS 97
|
||||
|
||||
/* memory allocated by Accounts framework */
|
||||
#define VM_MEMORY_ACCOUNTS 98
|
||||
|
||||
/* memory allocated by Sanitizer runtime libraries */
|
||||
#define VM_MEMORY_SANITIZER 99
|
||||
|
||||
/* Differentiate memory needed by GPU drivers and frameworks from generic IOKit allocations */
|
||||
#define VM_MEMORY_IOACCELERATOR 100
|
||||
|
||||
/* memory allocated by CoreMedia for global image registration of frames */
|
||||
#define VM_MEMORY_CM_REGWARP 101
|
||||
|
||||
/* memory allocated by EmbeddedAcousticRecognition for speech decoder */
|
||||
#define VM_MEMORY_EAR_DECODER 102
|
||||
|
||||
/* CoreUI cached image data */
|
||||
#define VM_MEMORY_COREUI_CACHED_IMAGE_DATA 103
|
||||
|
||||
/* Reserve 230-239 for Rosetta */
|
||||
#define VM_MEMORY_ROSETTA 230
|
||||
#define VM_MEMORY_ROSETTA_THREAD_CONTEXT 231
|
||||
#define VM_MEMORY_ROSETTA_INDIRECT_BRANCH_MAP 232
|
||||
#define VM_MEMORY_ROSETTA_RETURN_STACK 233
|
||||
#define VM_MEMORY_ROSETTA_EXECUTABLE_HEAP 234
|
||||
#define VM_MEMORY_ROSETTA_USER_LDT 235
|
||||
#define VM_MEMORY_ROSETTA_ARENA 236
|
||||
#define VM_MEMORY_ROSETTA_10 239
|
||||
|
||||
/* Reserve 240-255 for application */
|
||||
#define VM_MEMORY_APPLICATION_SPECIFIC_1 240
|
||||
#define VM_MEMORY_APPLICATION_SPECIFIC_16 255
|
||||
|
||||
#define VM_MAKE_TAG(tag) ((tag) << 24)
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _MACH_VM_STATISTICS_H_ */
|
||||
97
lib/libc/include/any-macos.11-any/mach/vm_types.h
vendored
Normal file
97
lib/libc/include/any-macos.11-any/mach/vm_types.h
vendored
Normal file
@ -0,0 +1,97 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2018 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* @OSF_COPYRIGHT@
|
||||
*
|
||||
*/
|
||||
#ifndef _MACH_VM_TYPES_H_
|
||||
#define _MACH_VM_TYPES_H_
|
||||
|
||||
#include <mach/port.h>
|
||||
#include <mach/machine/vm_types.h>
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
typedef vm_offset_t pointer_t;
|
||||
typedef vm_offset_t vm_address_t;
|
||||
|
||||
/*
|
||||
* We use addr64_t for 64-bit addresses that are used on both
|
||||
* 32 and 64-bit machines. On PPC, they are passed and returned as
|
||||
* two adjacent 32-bit GPRs. We use addr64_t in places where
|
||||
* common code must be useable both on 32 and 64-bit machines.
|
||||
*/
|
||||
typedef uint64_t addr64_t; /* Basic effective address */
|
||||
|
||||
/*
|
||||
* We use reg64_t for addresses that are 32 bits on a 32-bit
|
||||
* machine, and 64 bits on a 64-bit machine, but are always
|
||||
* passed and returned in a single GPR on PPC. This type
|
||||
* cannot be used in generic 32-bit c, since on a 64-bit
|
||||
* machine the upper half of the register will be ignored
|
||||
* by the c compiler in 32-bit mode. In c, we can only use the
|
||||
* type in prototypes of functions that are written in and called
|
||||
* from assembly language. This type is basically a comment.
|
||||
*/
|
||||
typedef uint32_t reg64_t;
|
||||
|
||||
/*
|
||||
* To minimize the use of 64-bit fields, we keep some physical
|
||||
* addresses (that are page aligned) as 32-bit page numbers.
|
||||
* This limits the physical address space to 16TB of RAM.
|
||||
*/
|
||||
typedef uint32_t ppnum_t; /* Physical page number */
|
||||
#define PPNUM_MAX UINT32_MAX
|
||||
|
||||
|
||||
|
||||
typedef mach_port_t vm_map_t, vm_map_read_t, vm_map_inspect_t;
|
||||
|
||||
|
||||
#define VM_MAP_NULL ((vm_map_t) 0)
|
||||
#define VM_MAP_INSPECT_NULL ((vm_map_inspect_t) 0)
|
||||
#define VM_MAP_READ_NULL ((vm_map_read_t) 0)
|
||||
|
||||
/*
|
||||
* Evolving definitions, likely to change.
|
||||
*/
|
||||
|
||||
typedef uint64_t vm_object_offset_t;
|
||||
typedef uint64_t vm_object_size_t;
|
||||
|
||||
|
||||
|
||||
|
||||
typedef mach_port_t upl_t;
|
||||
typedef mach_port_t vm_named_entry_t;
|
||||
|
||||
|
||||
#define UPL_NULL ((upl_t) 0)
|
||||
#define VM_NAMED_ENTRY_NULL ((vm_named_entry_t) 0)
|
||||
|
||||
#endif /* _MACH_VM_TYPES_H_ */
|
||||
95
lib/libc/include/any-macos.11-any/mach_debug/mach_debug_types.h
vendored
Normal file
95
lib/libc/include/any-macos.11-any/mach_debug/mach_debug_types.h
vendored
Normal file
@ -0,0 +1,95 @@
|
||||
/*
|
||||
* Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* @OSF_COPYRIGHT@
|
||||
*/
|
||||
/*
|
||||
* Mach Operating System
|
||||
* Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission to use, copy, modify and distribute this software and its
|
||||
* documentation is hereby granted, provided that both the copyright
|
||||
* notice and this permission notice appear in all copies of the
|
||||
* software, derivative works or modified versions, and any portions
|
||||
* thereof, and that both notices appear in supporting documentation.
|
||||
*
|
||||
* CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
|
||||
* CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
|
||||
* ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
|
||||
*
|
||||
* Carnegie Mellon requests users of this software to return to
|
||||
*
|
||||
* Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
|
||||
* School of Computer Science
|
||||
* Carnegie Mellon University
|
||||
* Pittsburgh PA 15213-3890
|
||||
*
|
||||
* any improvements or extensions that they make and grant Carnegie Mellon
|
||||
* the rights to redistribute these changes.
|
||||
*/
|
||||
/*
|
||||
*/
|
||||
/*
|
||||
* Mach kernel debugging interface type declarations
|
||||
*/
|
||||
|
||||
#ifndef _MACH_DEBUG_MACH_DEBUG_TYPES_H_
|
||||
#define _MACH_DEBUG_MACH_DEBUG_TYPES_H_
|
||||
|
||||
#include <mach_debug/ipc_info.h>
|
||||
#include <mach_debug/vm_info.h>
|
||||
#include <mach_debug/zone_info.h>
|
||||
#include <mach_debug/page_info.h>
|
||||
#include <mach_debug/hash_info.h>
|
||||
#include <mach_debug/lockgroup_info.h>
|
||||
|
||||
#define MACH_CORE_FILEHEADER_SIGNATURE 0x0063614d20646152ULL
|
||||
#define MACH_CORE_FILEHEADER_MAXFILES 16
|
||||
#define MACH_CORE_FILEHEADER_NAMELEN 16
|
||||
|
||||
typedef char symtab_name_t[32];
|
||||
|
||||
struct mach_core_details {
|
||||
uint64_t gzip_offset;
|
||||
uint64_t gzip_length;
|
||||
char core_name[MACH_CORE_FILEHEADER_NAMELEN];
|
||||
};
|
||||
|
||||
struct mach_core_fileheader {
|
||||
uint64_t signature;
|
||||
uint64_t log_offset;
|
||||
uint64_t log_length;
|
||||
uint64_t num_files;
|
||||
struct mach_core_details files[MACH_CORE_FILEHEADER_MAXFILES];
|
||||
};
|
||||
|
||||
#define KOBJECT_DESCRIPTION_LENGTH 512
|
||||
typedef char kobject_description_t[KOBJECT_DESCRIPTION_LENGTH];
|
||||
|
||||
#endif /* _MACH_DEBUG_MACH_DEBUG_TYPES_H_ */
|
||||
34
lib/libc/include/any-macos.11-any/machine/_mcontext.h
vendored
Normal file
34
lib/libc/include/any-macos.11-any/machine/_mcontext.h
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* Copyright (c) 2003-2012 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
#if defined (__i386__) || defined (__x86_64__)
|
||||
#include "i386/_mcontext.h"
|
||||
#elif defined (__arm__) || defined (__arm64__)
|
||||
#include "arm/_mcontext.h"
|
||||
#else
|
||||
#error architecture not supported
|
||||
#endif
|
||||
34
lib/libc/include/any-macos.11-any/machine/_param.h
vendored
Normal file
34
lib/libc/include/any-macos.11-any/machine/_param.h
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* Copyright (c) 2004-2007 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
#if defined (__i386__) || defined (__x86_64__)
|
||||
#include <i386/_param.h>
|
||||
#elif defined (__arm__) || defined (__arm64__)
|
||||
#include <arm/_param.h>
|
||||
#else
|
||||
#error architecture not supported
|
||||
#endif
|
||||
11
lib/libc/include/any-macos.11-any/machine/limits.h
vendored
Normal file
11
lib/libc/include/any-macos.11-any/machine/limits.h
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
/* This is the `system' limits.h, independent of any particular
|
||||
* compiler. GCC provides its own limits.h which can be found in
|
||||
* /usr/lib/gcc, although it is not very informative.
|
||||
* This file is public domain. */
|
||||
#if defined (__i386__) || defined(__x86_64__)
|
||||
#include <i386/limits.h>
|
||||
#elif defined (__arm__) || defined (__arm64__)
|
||||
#include <arm/limits.h>
|
||||
#else
|
||||
#error architecture not supported
|
||||
#endif
|
||||
314
lib/libc/include/any-macos.11-any/malloc/malloc.h
vendored
Normal file
314
lib/libc/include/any-macos.11-any/malloc/malloc.h
vendored
Normal file
@ -0,0 +1,314 @@
|
||||
/*
|
||||
* Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#ifndef _MALLOC_MALLOC_H_
|
||||
#define _MALLOC_MALLOC_H_
|
||||
|
||||
#include <stddef.h>
|
||||
#include <mach/mach_types.h>
|
||||
#include <sys/cdefs.h>
|
||||
#include <Availability.h>
|
||||
|
||||
#if __has_feature(ptrauth_calls)
|
||||
#include <ptrauth.h>
|
||||
|
||||
// Zone function pointer, type-diversified but not address-diversified (because
|
||||
// the zone can be copied). Process-independent because the zone structure may
|
||||
// be in the shared library cache.
|
||||
#define MALLOC_ZONE_FN_PTR(fn) __ptrauth(ptrauth_key_process_independent_code, \
|
||||
FALSE, ptrauth_string_discriminator("malloc_zone_fn." #fn)) fn
|
||||
|
||||
// Introspection function pointer, address- and type-diversified.
|
||||
// Process-independent because the malloc_introspection_t structure that contains
|
||||
// these pointers may be in the shared library cache.
|
||||
#define MALLOC_INTROSPECT_FN_PTR(fn) __ptrauth(ptrauth_key_process_independent_code, \
|
||||
TRUE, ptrauth_string_discriminator("malloc_introspect_fn." #fn)) fn
|
||||
|
||||
// Pointer to the introspection pointer table, type-diversified but not
|
||||
// address-diversified (because the zone can be copied).
|
||||
// Process-independent because the table pointer may be in the shared library cache.
|
||||
#define MALLOC_INTROSPECT_TBL_PTR(ptr) __ptrauth(ptrauth_key_process_independent_data,\
|
||||
FALSE, ptrauth_string_discriminator("malloc_introspect_tbl")) ptr
|
||||
|
||||
#endif // __has_feature(ptrauth_calls)
|
||||
|
||||
#ifndef MALLOC_ZONE_FN_PTR
|
||||
#define MALLOC_ZONE_FN_PTR(fn) fn
|
||||
#define MALLOC_INTROSPECT_FN_PTR(fn) fn
|
||||
#define MALLOC_INTROSPECT_TBL_PTR(ptr) ptr
|
||||
#endif // MALLOC_ZONE_FN_PTR
|
||||
|
||||
__BEGIN_DECLS
|
||||
/********* Type definitions ************/
|
||||
|
||||
typedef struct _malloc_zone_t {
|
||||
/* Only zone implementors should depend on the layout of this structure;
|
||||
Regular callers should use the access functions below */
|
||||
void *reserved1; /* RESERVED FOR CFAllocator DO NOT USE */
|
||||
void *reserved2; /* RESERVED FOR CFAllocator DO NOT USE */
|
||||
size_t (* MALLOC_ZONE_FN_PTR(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 */
|
||||
void *(* MALLOC_ZONE_FN_PTR(malloc))(struct _malloc_zone_t *zone, size_t size);
|
||||
void *(* MALLOC_ZONE_FN_PTR(calloc))(struct _malloc_zone_t *zone, size_t num_items, size_t size); /* same as malloc, but block returned is set to zero */
|
||||
void *(* MALLOC_ZONE_FN_PTR(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 */
|
||||
void (* MALLOC_ZONE_FN_PTR(free))(struct _malloc_zone_t *zone, void *ptr);
|
||||
void *(* MALLOC_ZONE_FN_PTR(realloc))(struct _malloc_zone_t *zone, void *ptr, size_t size);
|
||||
void (* MALLOC_ZONE_FN_PTR(destroy))(struct _malloc_zone_t *zone); /* zone is destroyed and all memory reclaimed */
|
||||
const char *zone_name;
|
||||
|
||||
/* Optional batch callbacks; these may be NULL */
|
||||
unsigned (* MALLOC_ZONE_FN_PTR(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) */
|
||||
void (* MALLOC_ZONE_FN_PTR(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 */
|
||||
|
||||
struct malloc_introspection_t * MALLOC_INTROSPECT_TBL_PTR(introspect);
|
||||
unsigned version;
|
||||
|
||||
/* aligned memory allocation. The callback may be NULL. Present in version >= 5. */
|
||||
void *(* MALLOC_ZONE_FN_PTR(memalign))(struct _malloc_zone_t *zone, size_t alignment, size_t size);
|
||||
|
||||
/* free a pointer known to be in zone and known to have the given size. The callback may be NULL. Present in version >= 6.*/
|
||||
void (* MALLOC_ZONE_FN_PTR(free_definite_size))(struct _malloc_zone_t *zone, void *ptr, size_t size);
|
||||
|
||||
/* Empty out caches in the face of memory pressure. The callback may be NULL. Present in version >= 8. */
|
||||
size_t (* MALLOC_ZONE_FN_PTR(pressure_relief))(struct _malloc_zone_t *zone, size_t goal);
|
||||
|
||||
/*
|
||||
* Checks whether an address might belong to the zone. May be NULL. Present in version >= 10.
|
||||
* False positives are allowed (e.g. the pointer was freed, or it's in zone space that has
|
||||
* not yet been allocated. False negatives are not allowed.
|
||||
*/
|
||||
boolean_t (* MALLOC_ZONE_FN_PTR(claimed_address))(struct _malloc_zone_t *zone, void *ptr);
|
||||
} malloc_zone_t;
|
||||
|
||||
/********* Creation and destruction ************/
|
||||
|
||||
extern malloc_zone_t *malloc_default_zone(void);
|
||||
/* The initial zone */
|
||||
|
||||
extern malloc_zone_t *malloc_create_zone(vm_size_t start_size, unsigned flags);
|
||||
/* Creates a new zone with default behavior and registers it */
|
||||
|
||||
extern void malloc_destroy_zone(malloc_zone_t *zone);
|
||||
/* Destroys zone and everything it allocated */
|
||||
|
||||
/********* Block creation and manipulation ************/
|
||||
|
||||
extern void *malloc_zone_malloc(malloc_zone_t *zone, size_t size) __alloc_size(2);
|
||||
/* Allocates a new pointer of size size; zone must be non-NULL */
|
||||
|
||||
extern void *malloc_zone_calloc(malloc_zone_t *zone, size_t num_items, size_t size) __alloc_size(2,3);
|
||||
/* Allocates a new pointer of size num_items * size; block is cleared; zone must be non-NULL */
|
||||
|
||||
extern void *malloc_zone_valloc(malloc_zone_t *zone, size_t size) __alloc_size(2);
|
||||
/* Allocates a new pointer of size size; zone must be non-NULL; Pointer is guaranteed to be page-aligned and block is cleared */
|
||||
|
||||
extern void malloc_zone_free(malloc_zone_t *zone, void *ptr);
|
||||
/* Frees pointer in zone; zone must be non-NULL */
|
||||
|
||||
extern void *malloc_zone_realloc(malloc_zone_t *zone, void *ptr, size_t size) __alloc_size(3);
|
||||
/* Enlarges block if necessary; zone must be non-NULL */
|
||||
|
||||
extern malloc_zone_t *malloc_zone_from_ptr(const void *ptr);
|
||||
/* Returns the zone for a pointer, or NULL if not in any zone.
|
||||
The ptr must have been returned from a malloc or realloc call. */
|
||||
|
||||
extern size_t malloc_size(const void *ptr);
|
||||
/* Returns size of given ptr */
|
||||
|
||||
extern size_t malloc_good_size(size_t size);
|
||||
/* Returns number of bytes greater than or equal to size that can be allocated without padding */
|
||||
|
||||
extern void *malloc_zone_memalign(malloc_zone_t *zone, size_t alignment, size_t size) __alloc_size(3) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
|
||||
/*
|
||||
* Allocates a new pointer of size size whose address is an exact multiple of alignment.
|
||||
* alignment must be a power of two and at least as large as sizeof(void *).
|
||||
* zone must be non-NULL.
|
||||
*/
|
||||
|
||||
/********* Batch methods ************/
|
||||
|
||||
extern unsigned malloc_zone_batch_malloc(malloc_zone_t *zone, size_t size, void **results, unsigned num_requested);
|
||||
/* Allocates num blocks of the same size; Returns the number truly allocated (may be 0) */
|
||||
|
||||
extern void malloc_zone_batch_free(malloc_zone_t *zone, void **to_be_freed, unsigned num);
|
||||
/* frees all the pointers in to_be_freed; note that to_be_freed may be overwritten during the process; This function will always free even if the zone has no batch callback */
|
||||
|
||||
/********* Functions for libcache ************/
|
||||
|
||||
extern malloc_zone_t *malloc_default_purgeable_zone(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
|
||||
/* Returns a pointer to the default purgeable_zone. */
|
||||
|
||||
extern void malloc_make_purgeable(void *ptr) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
|
||||
/* Make an allocation from the purgeable zone purgeable if possible. */
|
||||
|
||||
extern int malloc_make_nonpurgeable(void *ptr) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
|
||||
/* Makes an allocation from the purgeable zone nonpurgeable.
|
||||
* Returns zero if the contents were not purged since the last
|
||||
* call to malloc_make_purgeable, else returns non-zero. */
|
||||
|
||||
/********* Functions for zone implementors ************/
|
||||
|
||||
extern void malloc_zone_register(malloc_zone_t *zone);
|
||||
/* Registers a custom malloc zone; Should typically be called after a
|
||||
* malloc_zone_t has been filled in with custom methods by a client. See
|
||||
* malloc_create_zone for creating additional malloc zones with the
|
||||
* default allocation and free behavior. */
|
||||
|
||||
extern void malloc_zone_unregister(malloc_zone_t *zone);
|
||||
/* De-registers a zone
|
||||
Should typically be called before calling the zone destruction routine */
|
||||
|
||||
extern void malloc_set_zone_name(malloc_zone_t *zone, const char *name);
|
||||
/* Sets the name of a zone */
|
||||
|
||||
extern const char *malloc_get_zone_name(malloc_zone_t *zone);
|
||||
/* Returns the name of a zone */
|
||||
|
||||
size_t malloc_zone_pressure_relief(malloc_zone_t *zone, size_t goal) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
|
||||
/* malloc_zone_pressure_relief() advises the malloc subsystem that the process is under memory pressure and
|
||||
* that the subsystem should make its best effort towards releasing (i.e. munmap()-ing) "goal" bytes from "zone".
|
||||
* If "goal" is passed as zero, the malloc subsystem will attempt to achieve maximal pressure relief in "zone".
|
||||
* If "zone" is passed as NULL, all zones are examined for pressure relief opportunities.
|
||||
* malloc_zone_pressure_relief() returns the number of bytes released.
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
vm_address_t address;
|
||||
vm_size_t size;
|
||||
} vm_range_t;
|
||||
|
||||
typedef struct malloc_statistics_t {
|
||||
unsigned blocks_in_use;
|
||||
size_t size_in_use;
|
||||
size_t max_size_in_use; /* high water mark of touched memory */
|
||||
size_t size_allocated; /* reserved in memory */
|
||||
} malloc_statistics_t;
|
||||
|
||||
typedef kern_return_t memory_reader_t(task_t remote_task, vm_address_t remote_address, vm_size_t size, void **local_memory);
|
||||
/* given a task, "reads" the memory at the given address and size
|
||||
local_memory: set to a contiguous chunk of memory; validity of local_memory is assumed to be limited (until next call) */
|
||||
|
||||
#define MALLOC_PTR_IN_USE_RANGE_TYPE 1 /* for allocated pointers */
|
||||
#define MALLOC_PTR_REGION_RANGE_TYPE 2 /* for region containing pointers */
|
||||
#define MALLOC_ADMIN_REGION_RANGE_TYPE 4 /* for region used internally */
|
||||
#define MALLOC_ZONE_SPECIFIC_FLAGS 0xff00 /* bits reserved for zone-specific purposes */
|
||||
|
||||
typedef void vm_range_recorder_t(task_t, void *, unsigned type, vm_range_t *, unsigned);
|
||||
/* given a task and context, "records" the specified addresses */
|
||||
|
||||
/* Print function for the print_task() operation. */
|
||||
typedef void print_task_printer_t(const char *fmt, ...) __printflike(1,2);
|
||||
|
||||
typedef struct malloc_introspection_t {
|
||||
kern_return_t (* MALLOC_INTROSPECT_FN_PTR(enumerator))(task_t task, void *, unsigned type_mask, vm_address_t zone_address, memory_reader_t reader, vm_range_recorder_t recorder); /* enumerates all the malloc pointers in use */
|
||||
size_t (* MALLOC_INTROSPECT_FN_PTR(good_size))(malloc_zone_t *zone, size_t size);
|
||||
boolean_t (* MALLOC_INTROSPECT_FN_PTR(check))(malloc_zone_t *zone); /* Consistency checker */
|
||||
void (* MALLOC_INTROSPECT_FN_PTR(print))(malloc_zone_t *zone, boolean_t verbose); /* Prints zone */
|
||||
void (* MALLOC_INTROSPECT_FN_PTR(log))(malloc_zone_t *zone, void *address); /* Enables logging of activity */
|
||||
void (* MALLOC_INTROSPECT_FN_PTR(force_lock))(malloc_zone_t *zone); /* Forces locking zone */
|
||||
void (* MALLOC_INTROSPECT_FN_PTR(force_unlock))(malloc_zone_t *zone); /* Forces unlocking zone */
|
||||
void (* MALLOC_INTROSPECT_FN_PTR(statistics))(malloc_zone_t *zone, malloc_statistics_t *stats); /* Fills statistics */
|
||||
boolean_t (* MALLOC_INTROSPECT_FN_PTR(zone_locked))(malloc_zone_t *zone); /* Are any zone locks held */
|
||||
|
||||
/* Discharge checking. Present in version >= 7. */
|
||||
boolean_t (* MALLOC_INTROSPECT_FN_PTR(enable_discharge_checking))(malloc_zone_t *zone);
|
||||
void (* MALLOC_INTROSPECT_FN_PTR(disable_discharge_checking))(malloc_zone_t *zone);
|
||||
void (* MALLOC_INTROSPECT_FN_PTR(discharge))(malloc_zone_t *zone, void *memory);
|
||||
#ifdef __BLOCKS__
|
||||
void (* MALLOC_INTROSPECT_FN_PTR(enumerate_discharged_pointers))(malloc_zone_t *zone, void (^report_discharged)(void *memory, void *info));
|
||||
#else
|
||||
void *enumerate_unavailable_without_blocks;
|
||||
#endif /* __BLOCKS__ */
|
||||
void (* MALLOC_INTROSPECT_FN_PTR(reinit_lock))(malloc_zone_t *zone); /* Reinitialize zone locks, called only from atfork_child handler. Present in version >= 9. */
|
||||
void (* MALLOC_INTROSPECT_FN_PTR(print_task))(task_t task, unsigned level, vm_address_t zone_address, memory_reader_t reader, print_task_printer_t printer); /* debug print for another process. Present in version >= 11. */
|
||||
void (* MALLOC_INTROSPECT_FN_PTR(task_statistics))(task_t task, vm_address_t zone_address, memory_reader_t reader, malloc_statistics_t *stats); /* Present in version >= 12 */
|
||||
} malloc_introspection_t;
|
||||
|
||||
// The value of "level" when passed to print_task() that corresponds to
|
||||
// verbose passed to print()
|
||||
#define MALLOC_VERBOSE_PRINT_LEVEL 2
|
||||
|
||||
extern void malloc_printf(const char *format, ...);
|
||||
/* Convenience for logging errors and warnings;
|
||||
No allocation is performed during execution of this function;
|
||||
Only understands usual %p %d %s formats, and %y that expresses a number of bytes (5b,10KB,1MB...)
|
||||
*/
|
||||
|
||||
/********* Functions for performance tools ************/
|
||||
|
||||
extern kern_return_t malloc_get_all_zones(task_t task, memory_reader_t reader, vm_address_t **addresses, unsigned *count);
|
||||
/* Fills addresses and count with the addresses of the zones in task;
|
||||
Note that the validity of the addresses returned correspond to the validity of the memory returned by reader */
|
||||
|
||||
/********* Debug helpers ************/
|
||||
|
||||
extern void malloc_zone_print_ptr_info(void *ptr);
|
||||
/* print to stdout if this pointer is in the malloc heap, free status, and size */
|
||||
|
||||
extern boolean_t malloc_zone_check(malloc_zone_t *zone);
|
||||
/* Checks zone is well formed; if !zone, checks all zones */
|
||||
|
||||
extern void malloc_zone_print(malloc_zone_t *zone, boolean_t verbose);
|
||||
/* Prints summary on zone; if !zone, prints all zones */
|
||||
|
||||
extern void malloc_zone_statistics(malloc_zone_t *zone, malloc_statistics_t *stats);
|
||||
/* Fills statistics for zone; if !zone, sums up all zones */
|
||||
|
||||
extern void malloc_zone_log(malloc_zone_t *zone, void *address);
|
||||
/* Controls logging of all activity; if !zone, for all zones;
|
||||
If address==0 nothing is logged;
|
||||
If address==-1 all activity is logged;
|
||||
Else only the activity regarding address is logged */
|
||||
|
||||
struct mstats {
|
||||
size_t bytes_total;
|
||||
size_t chunks_used;
|
||||
size_t bytes_used;
|
||||
size_t chunks_free;
|
||||
size_t bytes_free;
|
||||
};
|
||||
|
||||
extern struct mstats mstats(void);
|
||||
|
||||
extern boolean_t malloc_zone_enable_discharge_checking(malloc_zone_t *zone) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
|
||||
/* Increment the discharge checking enabled counter for a zone. Returns true if the zone supports checking, false if it does not. */
|
||||
|
||||
extern void malloc_zone_disable_discharge_checking(malloc_zone_t *zone) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
|
||||
/* Decrement the discharge checking enabled counter for a zone. */
|
||||
|
||||
extern void malloc_zone_discharge(malloc_zone_t *zone, void *memory) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
|
||||
/* Register memory that the programmer expects to be freed soon.
|
||||
zone may be NULL in which case the zone is determined using malloc_zone_from_ptr().
|
||||
If discharge checking is off for the zone this function is a no-op. */
|
||||
|
||||
#ifdef __BLOCKS__
|
||||
extern void malloc_zone_enumerate_discharged_pointers(malloc_zone_t *zone, void (^report_discharged)(void *memory, void *info)) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
|
||||
/* Calls report_discharged for each block that was registered using malloc_zone_discharge() but has not yet been freed.
|
||||
info is used to provide zone defined information about the memory block.
|
||||
If zone is NULL then the enumeration covers all zones. */
|
||||
#else
|
||||
extern void malloc_zone_enumerate_discharged_pointers(malloc_zone_t *zone, void *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
|
||||
#endif /* __BLOCKS__ */
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* _MALLOC_MALLOC_H_ */
|
||||
13
lib/libc/include/any-macos.11-any/net/if.h
vendored
13
lib/libc/include/any-macos.11-any/net/if.h
vendored
@ -63,24 +63,21 @@
|
||||
#ifndef _NET_IF_H_
|
||||
#define _NET_IF_H_
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <net/net_kev.h>
|
||||
|
||||
#define IF_NAMESIZE 16
|
||||
|
||||
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/appleapiopts.h>
|
||||
#ifdef __APPLE__
|
||||
|
||||
#include <net/if_var.h>
|
||||
#include <net/net_kev.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef IFNAMSIZ
|
||||
#define IFNAMSIZ IF_NAMESIZE
|
||||
#endif
|
||||
|
||||
struct if_clonereq {
|
||||
int ifcr_total; /* total cloners (out) */
|
||||
int ifcr_count; /* room for this many in user buffer */
|
||||
@ -288,6 +285,9 @@ struct ifkpi {
|
||||
* remainder may be interface specific.
|
||||
*/
|
||||
struct ifreq {
|
||||
#ifndef IFNAMSIZ
|
||||
#define IFNAMSIZ IF_NAMESIZE
|
||||
#endif
|
||||
char ifr_name[IFNAMSIZ]; /* if name, e.g. "en0" */
|
||||
union {
|
||||
struct sockaddr ifru_addr;
|
||||
@ -371,6 +371,7 @@ struct ifmediareq {
|
||||
#pragma pack()
|
||||
|
||||
|
||||
|
||||
#pragma pack(4)
|
||||
struct ifdrv {
|
||||
char ifd_name[IFNAMSIZ]; /* if name, e.g. "en0" */
|
||||
|
||||
120
lib/libc/include/any-macos.11-any/net/if_var.h
vendored
120
lib/libc/include/any-macos.11-any/net/if_var.h
vendored
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2021 Apple Inc. All rights reserved.
|
||||
* Copyright (c) 2000-2020 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
@ -222,124 +222,6 @@ struct if_data64 {
|
||||
};
|
||||
|
||||
|
||||
#if defined (PRIVATE) || defined (DRIVERKIT_PRIVATE)
|
||||
/*
|
||||
* This structure is used to define the parameters for advisory notifications
|
||||
* on an interface.
|
||||
*/
|
||||
#pragma pack(push, 1)
|
||||
struct ifnet_interface_advisory {
|
||||
/* The current structure version */
|
||||
uint8_t version;
|
||||
#define IF_INTERFACE_ADVISORY_VERSION_1 0x1
|
||||
#define IF_INTERFACE_ADVISORY_VERSION_CURRENT IF_INTERFACE_ADVISORY_VERSION_1
|
||||
/* Specifies if the advisory is for transmit or receive path */
|
||||
uint8_t direction;
|
||||
#define IF_INTERFACE_ADVISORY_DIRECTION_TX 0x1
|
||||
#define IF_INTERFACE_ADVISORY_DIRECTION_RX 0x2
|
||||
/* reserved for future use */
|
||||
uint16_t _reserved;
|
||||
/*
|
||||
* suggestion for data rate change to keep the latency low.
|
||||
* unit: bits per second (bps)
|
||||
* NOTE: if the interface cannot provide suggestions in terms of bps,
|
||||
* it should use the following values:
|
||||
* INT32_MAX : ramp up
|
||||
* INT32_MIN : ramp down
|
||||
* 0 : neutral
|
||||
*/
|
||||
#define IF_INTERFACE_ADVISORY_RATE_SUGGESTION_RAMP_UP INT32_MAX
|
||||
#define IF_INTERFACE_ADVISORY_RATE_SUGGESTION_RAMP_DOWN INT32_MIN
|
||||
#define IF_INTERFACE_ADVISORY_RATE_SUGGESTION_RAMP_NEUTRAL 0
|
||||
int32_t rate_trend_suggestion;
|
||||
/*
|
||||
* Time of the issue of advisory.
|
||||
* Timestamp should be in the host domain.
|
||||
* unit: mach absolute time
|
||||
*/
|
||||
uint64_t timestamp;
|
||||
/*
|
||||
* Maximum theoretical bandwidth of the interface.
|
||||
* unit: bits per second (bps)
|
||||
*/
|
||||
uint64_t max_bandwidth;
|
||||
/*
|
||||
* Total bytes sent or received on the interface.
|
||||
* wrap around possible and the application should account for that.
|
||||
* unit: byte
|
||||
*/
|
||||
uint64_t total_byte_count;
|
||||
/*
|
||||
* average throughput observed at the driver stack.
|
||||
* unit: bits per second (bps)
|
||||
*/
|
||||
uint64_t average_throughput;
|
||||
/*
|
||||
* flushable queue size at the driver.
|
||||
* should be set to UINT32_MAX if not available.
|
||||
* unit: byte
|
||||
*/
|
||||
uint32_t flushable_queue_size;
|
||||
/*
|
||||
* non flushable queue size at the driver.
|
||||
* should be set to UINT32_MAX if not available.
|
||||
* unit: byte
|
||||
*/
|
||||
uint32_t non_flushable_queue_size;
|
||||
/*
|
||||
* average delay observed at the interface.
|
||||
* unit: milliseconds (ms)
|
||||
*/
|
||||
uint32_t average_delay;
|
||||
/*
|
||||
* Current frequency band (enumeration).
|
||||
*/
|
||||
#define IF_INTERFACE_ADVISORY_FREQ_BAND_NOT_AVAIL 0
|
||||
#define IF_INTERFACE_ADVISORY_FREQ_BAND_WIFI_24GHZ 1
|
||||
#define IF_INTERFACE_ADVISORY_FREQ_BAND_WIFI_5GHZ 2
|
||||
#define IF_INTERFACE_ADVISORY_FREQ_BAND_WIFI_6GHZ 3
|
||||
uint8_t frequency_band;
|
||||
/*
|
||||
* Intermittent WiFi state [true(1)/false(0)]
|
||||
*/
|
||||
uint8_t intermittent_state;
|
||||
/*
|
||||
* Estimated period for which intermittent state is expected to last.
|
||||
* 1 tick -> 1 ms UNDEF => UINT16_MAX
|
||||
*/
|
||||
uint16_t estimated_intermittent_period;
|
||||
/*
|
||||
* Expected wifi outage period during intermittent state
|
||||
* 1 tick -> 1 ms UNDEF => UINT16_MAX
|
||||
*/
|
||||
uint16_t single_outage_period;
|
||||
|
||||
/*
|
||||
* WiFi-BT coexistence, 1-ON, 0-OFF
|
||||
*/
|
||||
uint8_t bt_coex;
|
||||
/*
|
||||
* on scale of 1 to 5
|
||||
*/
|
||||
uint8_t quality_score_delay;
|
||||
/*
|
||||
* on scale of 1 to 5
|
||||
*/
|
||||
uint8_t quality_score_loss;
|
||||
/*
|
||||
* on scale of 1 to 5
|
||||
*/
|
||||
uint8_t quality_score_channel;
|
||||
} __attribute__((aligned(sizeof(uint64_t))));
|
||||
#pragma pack(pop)
|
||||
|
||||
#else
|
||||
|
||||
struct ifnet_interface_advisory;
|
||||
|
||||
#endif /* defined (PRIVATE) || defined (DRIVERKIT_PRIVATE) */
|
||||
|
||||
|
||||
#pragma pack()
|
||||
|
||||
/*
|
||||
|
||||
98
lib/libc/include/any-macos.11-any/net/net_kev.h
vendored
Normal file
98
lib/libc/include/any-macos.11-any/net/net_kev.h
vendored
Normal file
@ -0,0 +1,98 @@
|
||||
/*
|
||||
* Copyright (c) 2016-2018 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#ifndef _NET_NETKEV_H_
|
||||
#define _NET_NETKEV_H_
|
||||
|
||||
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
|
||||
|
||||
/* Kernel event subclass identifiers for KEV_NETWORK_CLASS */
|
||||
#define KEV_INET_SUBCLASS 1 /* inet subclass */
|
||||
/* KEV_INET_SUBCLASS event codes */
|
||||
#define KEV_INET_NEW_ADDR 1 /* Userland configured IP address */
|
||||
#define KEV_INET_CHANGED_ADDR 2 /* Address changed event */
|
||||
#define KEV_INET_ADDR_DELETED 3 /* IPv6 address was deleted */
|
||||
#define KEV_INET_SIFDSTADDR 4 /* Dest. address was set */
|
||||
#define KEV_INET_SIFBRDADDR 5 /* Broadcast address was set */
|
||||
#define KEV_INET_SIFNETMASK 6 /* Netmask was set */
|
||||
#define KEV_INET_ARPCOLLISION 7 /* ARP collision detected */
|
||||
#ifdef __APPLE_API_PRIVATE
|
||||
#define KEV_INET_PORTINUSE 8 /* use ken_in_portinuse */
|
||||
#endif
|
||||
#define KEV_INET_ARPRTRFAILURE 9 /* ARP resolution failed for router */
|
||||
#define KEV_INET_ARPRTRALIVE 10 /* ARP resolution succeeded for router */
|
||||
|
||||
#define KEV_DL_SUBCLASS 2 /* Data Link subclass */
|
||||
/*
|
||||
* Define Data-Link event subclass, and associated
|
||||
* events.
|
||||
*/
|
||||
#define KEV_DL_SIFFLAGS 1
|
||||
#define KEV_DL_SIFMETRICS 2
|
||||
#define KEV_DL_SIFMTU 3
|
||||
#define KEV_DL_SIFPHYS 4
|
||||
#define KEV_DL_SIFMEDIA 5
|
||||
#define KEV_DL_SIFGENERIC 6
|
||||
#define KEV_DL_ADDMULTI 7
|
||||
#define KEV_DL_DELMULTI 8
|
||||
#define KEV_DL_IF_ATTACHED 9
|
||||
#define KEV_DL_IF_DETACHING 10
|
||||
#define KEV_DL_IF_DETACHED 11
|
||||
#define KEV_DL_LINK_OFF 12
|
||||
#define KEV_DL_LINK_ON 13
|
||||
#define KEV_DL_PROTO_ATTACHED 14
|
||||
#define KEV_DL_PROTO_DETACHED 15
|
||||
#define KEV_DL_LINK_ADDRESS_CHANGED 16
|
||||
#define KEV_DL_WAKEFLAGS_CHANGED 17
|
||||
#define KEV_DL_IF_IDLE_ROUTE_REFCNT 18
|
||||
#define KEV_DL_IFCAP_CHANGED 19
|
||||
#define KEV_DL_LINK_QUALITY_METRIC_CHANGED 20
|
||||
#define KEV_DL_NODE_PRESENCE 21
|
||||
#define KEV_DL_NODE_ABSENCE 22
|
||||
#define KEV_DL_MASTER_ELECTED 23
|
||||
#define KEV_DL_ISSUES 24
|
||||
#define KEV_DL_IFDELEGATE_CHANGED 25
|
||||
#define KEV_DL_AWDL_RESTRICTED 26
|
||||
#define KEV_DL_AWDL_UNRESTRICTED 27
|
||||
#define KEV_DL_RRC_STATE_CHANGED 28
|
||||
#define KEV_DL_QOS_MODE_CHANGED 29
|
||||
#define KEV_DL_LOW_POWER_MODE_CHANGED 30
|
||||
|
||||
|
||||
#define KEV_INET6_SUBCLASS 6 /* inet6 subclass */
|
||||
/* KEV_INET6_SUBCLASS event codes */
|
||||
#define KEV_INET6_NEW_USER_ADDR 1 /* Userland configured IPv6 address */
|
||||
#define KEV_INET6_CHANGED_ADDR 2 /* Address changed event (future) */
|
||||
#define KEV_INET6_ADDR_DELETED 3 /* IPv6 address was deleted */
|
||||
#define KEV_INET6_NEW_LL_ADDR 4 /* Autoconf LL address appeared */
|
||||
#define KEV_INET6_NEW_RTADV_ADDR 5 /* Autoconf address has appeared */
|
||||
#define KEV_INET6_DEFROUTER 6 /* Default router detected */
|
||||
#define KEV_INET6_REQUEST_NAT64_PREFIX 7 /* Asking for the NAT64-prefix */
|
||||
|
||||
#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
|
||||
#endif /* _NET_NETKEV_H_ */
|
||||
681
lib/libc/include/any-macos.11-any/netinet6/in6.h
vendored
Normal file
681
lib/libc/include/any-macos.11-any/netinet6/in6.h
vendored
Normal file
@ -0,0 +1,681 @@
|
||||
/*
|
||||
* Copyright (c) 2008-2020 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. The rights granted to you under the License
|
||||
* may not be used to create, or enable the creation or redistribution of,
|
||||
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||
* circumvent, violate, or enable the circumvention or violation of, any
|
||||
* terms of an Apple operating system software license agreement.
|
||||
*
|
||||
* Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the project nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (c) 1982, 1986, 1990, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)in.h 8.3 (Berkeley) 1/3/94
|
||||
*/
|
||||
|
||||
#ifndef __KAME_NETINET_IN_H_INCLUDED_
|
||||
#error "do not include netinet6/in6.h directly, include netinet/in.h. " \
|
||||
" see RFC2553"
|
||||
#endif
|
||||
|
||||
#ifndef _NETINET6_IN6_H_
|
||||
#define _NETINET6_IN6_H_
|
||||
#include <sys/appleapiopts.h>
|
||||
|
||||
#include <sys/_types.h>
|
||||
#include <sys/_types/_sa_family_t.h>
|
||||
|
||||
/*
|
||||
* Identification of the network protocol stack
|
||||
* for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
|
||||
* has the table of implementation/integration differences.
|
||||
*/
|
||||
#define __KAME__
|
||||
#define __KAME_VERSION "2009/apple-darwin"
|
||||
|
||||
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
|
||||
/*
|
||||
* Local port number conventions:
|
||||
*
|
||||
* Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
|
||||
* unless a kernel is compiled with IPNOPRIVPORTS defined.
|
||||
*
|
||||
* When a user does a bind(2) or connect(2) with a port number of zero,
|
||||
* a non-conflicting local port address is chosen.
|
||||
*
|
||||
* The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
|
||||
* that is settable by sysctl(3); net.inet.ip.anonportmin and
|
||||
* net.inet.ip.anonportmax respectively.
|
||||
*
|
||||
* A user may set the IPPROTO_IP option IP_PORTRANGE to change this
|
||||
* default assignment range.
|
||||
*
|
||||
* The value IP_PORTRANGE_DEFAULT causes the default behavior.
|
||||
*
|
||||
* The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
|
||||
* and exists only for FreeBSD compatibility purposes.
|
||||
*
|
||||
* The value IP_PORTRANGE_LOW changes the range to the "low" are
|
||||
* that is (by convention) restricted to privileged processes.
|
||||
* This convention is based on "vouchsafe" principles only.
|
||||
* It is only secure if you trust the remote host to restrict these ports.
|
||||
* The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
|
||||
*/
|
||||
|
||||
#define IPV6PORT_RESERVED 1024
|
||||
#define IPV6PORT_ANONMIN 49152
|
||||
#define IPV6PORT_ANONMAX 65535
|
||||
#define IPV6PORT_RESERVEDMIN 600
|
||||
#define IPV6PORT_RESERVEDMAX (IPV6PORT_RESERVED-1)
|
||||
#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
|
||||
|
||||
/*
|
||||
* IPv6 address
|
||||
*/
|
||||
typedef struct in6_addr {
|
||||
union {
|
||||
__uint8_t __u6_addr8[16];
|
||||
__uint16_t __u6_addr16[8];
|
||||
__uint32_t __u6_addr32[4];
|
||||
} __u6_addr; /* 128-bit IP6 address */
|
||||
} in6_addr_t;
|
||||
|
||||
#define s6_addr __u6_addr.__u6_addr8
|
||||
|
||||
#define INET6_ADDRSTRLEN 46
|
||||
|
||||
/*
|
||||
* Socket address for IPv6
|
||||
*/
|
||||
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
|
||||
#define SIN6_LEN
|
||||
#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
|
||||
struct sockaddr_in6 {
|
||||
__uint8_t sin6_len; /* length of this struct(sa_family_t) */
|
||||
sa_family_t sin6_family; /* AF_INET6 (sa_family_t) */
|
||||
in_port_t sin6_port; /* Transport layer port # (in_port_t) */
|
||||
__uint32_t sin6_flowinfo; /* IP6 flow information */
|
||||
struct in6_addr sin6_addr; /* IP6 address */
|
||||
__uint32_t sin6_scope_id; /* scope zone index */
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Definition of some useful macros to handle IP6 addresses
|
||||
*/
|
||||
#define IN6ADDR_ANY_INIT \
|
||||
{{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }}}
|
||||
#define IN6ADDR_LOOPBACK_INIT \
|
||||
{{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}}
|
||||
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
|
||||
#define IN6ADDR_NODELOCAL_ALLNODES_INIT \
|
||||
{{{ 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}}
|
||||
#define IN6ADDR_INTFACELOCAL_ALLNODES_INIT \
|
||||
{{{ 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}}
|
||||
#define IN6ADDR_LINKLOCAL_ALLNODES_INIT \
|
||||
{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}}
|
||||
#define IN6ADDR_LINKLOCAL_ALLROUTERS_INIT \
|
||||
{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 }}}
|
||||
#define IN6ADDR_LINKLOCAL_ALLV2ROUTERS_INIT \
|
||||
{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16 }}}
|
||||
#define IN6ADDR_V4MAPPED_INIT \
|
||||
{{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }}}
|
||||
#define IN6ADDR_MULTICAST_PREFIX IN6MASK8
|
||||
#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
|
||||
|
||||
extern const struct in6_addr in6addr_any;
|
||||
extern const struct in6_addr in6addr_loopback;
|
||||
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
|
||||
extern const struct in6_addr in6addr_nodelocal_allnodes;
|
||||
extern const struct in6_addr in6addr_linklocal_allnodes;
|
||||
extern const struct in6_addr in6addr_linklocal_allrouters;
|
||||
extern const struct in6_addr in6addr_linklocal_allv2routers;
|
||||
#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
|
||||
|
||||
/*
|
||||
* Equality
|
||||
* NOTE: Some of kernel programming environment (for example, openbsd/sparc)
|
||||
* does not supply memcmp(). For userland memcmp() is preferred as it is
|
||||
* in ANSI standard.
|
||||
*/
|
||||
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
|
||||
#define IN6_ARE_ADDR_EQUAL(a, b) \
|
||||
(memcmp(&(a)->s6_addr[0], &(b)->s6_addr[0], sizeof (struct in6_addr)) \
|
||||
== 0)
|
||||
#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
|
||||
|
||||
|
||||
/*
|
||||
* Unspecified
|
||||
*/
|
||||
#define IN6_IS_ADDR_UNSPECIFIED(a) \
|
||||
((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
|
||||
(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
|
||||
(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \
|
||||
(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) == 0))
|
||||
|
||||
/*
|
||||
* Loopback
|
||||
*/
|
||||
#define IN6_IS_ADDR_LOOPBACK(a) \
|
||||
((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
|
||||
(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
|
||||
(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \
|
||||
(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) == ntohl(1)))
|
||||
|
||||
/*
|
||||
* IPv4 compatible
|
||||
*/
|
||||
#define IN6_IS_ADDR_V4COMPAT(a) \
|
||||
((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
|
||||
(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
|
||||
(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \
|
||||
(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) != 0) && \
|
||||
(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) != ntohl(1)))
|
||||
|
||||
/*
|
||||
* Mapped
|
||||
*/
|
||||
#define IN6_IS_ADDR_V4MAPPED(a) \
|
||||
((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
|
||||
(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
|
||||
(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == \
|
||||
ntohl(0x0000ffff)))
|
||||
|
||||
/*
|
||||
* 6to4
|
||||
*/
|
||||
#define IN6_IS_ADDR_6TO4(x) (ntohs((x)->s6_addr16[0]) == 0x2002)
|
||||
|
||||
/*
|
||||
* KAME Scope Values
|
||||
*/
|
||||
|
||||
#define __IPV6_ADDR_SCOPE_NODELOCAL 0x01
|
||||
#define __IPV6_ADDR_SCOPE_INTFACELOCAL 0x01
|
||||
#define __IPV6_ADDR_SCOPE_LINKLOCAL 0x02
|
||||
#define __IPV6_ADDR_SCOPE_SITELOCAL 0x05
|
||||
#define __IPV6_ADDR_SCOPE_ORGLOCAL 0x08 /* just used in this file */
|
||||
#define __IPV6_ADDR_SCOPE_GLOBAL 0x0e
|
||||
|
||||
/*
|
||||
* Unicast Scope
|
||||
* Note that we must check topmost 10 bits only, not 16 bits (see RFC2373).
|
||||
*/
|
||||
#define IN6_IS_ADDR_LINKLOCAL(a) \
|
||||
(((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0x80))
|
||||
#define IN6_IS_ADDR_SITELOCAL(a) \
|
||||
(((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0xc0))
|
||||
|
||||
/*
|
||||
* Multicast
|
||||
*/
|
||||
#define IN6_IS_ADDR_MULTICAST(a) ((a)->s6_addr[0] == 0xff)
|
||||
|
||||
#define IPV6_ADDR_MC_FLAGS(a) ((a)->s6_addr[1] & 0xf0)
|
||||
|
||||
#define IPV6_ADDR_MC_FLAGS_TRANSIENT 0x10
|
||||
#define IPV6_ADDR_MC_FLAGS_PREFIX 0x20
|
||||
#define IPV6_ADDR_MC_FLAGS_UNICAST_BASED (IPV6_ADDR_MC_FLAGS_TRANSIENT | IPV6_ADDR_MC_FLAGS_PREFIX)
|
||||
|
||||
#define IN6_IS_ADDR_UNICAST_BASED_MULTICAST(a) \
|
||||
(IN6_IS_ADDR_MULTICAST(a) && \
|
||||
(IPV6_ADDR_MC_FLAGS(a) == IPV6_ADDR_MC_FLAGS_UNICAST_BASED))
|
||||
|
||||
/*
|
||||
* Unique Local IPv6 Unicast Addresses (per RFC 4193)
|
||||
*/
|
||||
#define IN6_IS_ADDR_UNIQUE_LOCAL(a) \
|
||||
(((a)->s6_addr[0] == 0xfc) || ((a)->s6_addr[0] == 0xfd))
|
||||
|
||||
#define __IPV6_ADDR_MC_SCOPE(a) ((a)->s6_addr[1] & 0x0f)
|
||||
|
||||
/*
|
||||
* Multicast Scope
|
||||
*/
|
||||
#define IN6_IS_ADDR_MC_NODELOCAL(a) \
|
||||
(IN6_IS_ADDR_MULTICAST(a) && \
|
||||
(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_NODELOCAL))
|
||||
#define IN6_IS_ADDR_MC_LINKLOCAL(a) \
|
||||
(IN6_IS_ADDR_MULTICAST(a) && \
|
||||
(IPV6_ADDR_MC_FLAGS(a) != IPV6_ADDR_MC_FLAGS_UNICAST_BASED) && \
|
||||
(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_LINKLOCAL))
|
||||
#define IN6_IS_ADDR_MC_SITELOCAL(a) \
|
||||
(IN6_IS_ADDR_MULTICAST(a) && \
|
||||
(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_SITELOCAL))
|
||||
#define IN6_IS_ADDR_MC_ORGLOCAL(a) \
|
||||
(IN6_IS_ADDR_MULTICAST(a) && \
|
||||
(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_ORGLOCAL))
|
||||
#define IN6_IS_ADDR_MC_GLOBAL(a) \
|
||||
(IN6_IS_ADDR_MULTICAST(a) && \
|
||||
(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_GLOBAL))
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Options for use with [gs]etsockopt at the IPV6 level.
|
||||
* First word of comment is data type; bool is stored in int.
|
||||
*/
|
||||
/* no hdrincl */
|
||||
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
|
||||
/*
|
||||
* RFC 3542 define the following socket options in a manner incompatible
|
||||
* with RFC 2292:
|
||||
* IPV6_PKTINFO
|
||||
* IPV6_HOPLIMIT
|
||||
* IPV6_NEXTHOP
|
||||
* IPV6_HOPOPTS
|
||||
* IPV6_DSTOPTS
|
||||
* IPV6_RTHDR
|
||||
*
|
||||
* To use the new IPv6 Sockets options introduced by RFC 3542
|
||||
* the constant __APPLE_USE_RFC_3542 must be defined before
|
||||
* including <netinet/in.h>
|
||||
*
|
||||
* To use the old IPv6 Sockets options from RFC 2292
|
||||
* the constant __APPLE_USE_RFC_2292 must be defined before
|
||||
* including <netinet/in.h>
|
||||
*
|
||||
* Note that eventually RFC 3542 is going to be the
|
||||
* default and RFC 2292 will be obsolete.
|
||||
*/
|
||||
|
||||
#if defined(__APPLE_USE_RFC_3542) && defined(__APPLE_USE_RFC_2292)
|
||||
#error "__APPLE_USE_RFC_3542 and __APPLE_USE_RFC_2292 cannot be both defined"
|
||||
#endif
|
||||
|
||||
#if 0 /* the followings are relic in IPv4 and hence are disabled */
|
||||
#define IPV6_OPTIONS 1 /* buf/ip6_opts; set/get IP6 options */
|
||||
#define IPV6_RECVOPTS 5 /* bool; receive all IP6 opts w/dgram */
|
||||
#define IPV6_RECVRETOPTS 6 /* bool; receive IP6 opts for response */
|
||||
#define IPV6_RECVDSTADDR 7 /* bool; receive IP6 dst addr w/dgram */
|
||||
#define IPV6_RETOPTS 8 /* ip6_opts; set/get IP6 options */
|
||||
#endif /* 0 */
|
||||
#define IPV6_SOCKOPT_RESERVED1 3 /* reserved for future use */
|
||||
#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
|
||||
#define IPV6_UNICAST_HOPS 4 /* int; IP6 hops */
|
||||
#define IPV6_MULTICAST_IF 9 /* u_int; set/get IP6 multicast i/f */
|
||||
#define IPV6_MULTICAST_HOPS 10 /* int; set/get IP6 multicast hops */
|
||||
#define IPV6_MULTICAST_LOOP 11 /* u_int; set/get IP6 mcast loopback */
|
||||
#define IPV6_JOIN_GROUP 12 /* ip6_mreq; join a group membership */
|
||||
#define IPV6_LEAVE_GROUP 13 /* ip6_mreq; leave a group membership */
|
||||
|
||||
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
|
||||
#define IPV6_PORTRANGE 14 /* int; range to choose for unspec port */
|
||||
#define ICMP6_FILTER 18 /* icmp6_filter; icmp6 filter */
|
||||
#define IPV6_2292PKTINFO 19 /* bool; send/recv if, src/dst addr */
|
||||
#define IPV6_2292HOPLIMIT 20 /* bool; hop limit */
|
||||
#define IPV6_2292NEXTHOP 21 /* bool; next hop addr */
|
||||
#define IPV6_2292HOPOPTS 22 /* bool; hop-by-hop option */
|
||||
#define IPV6_2292DSTOPTS 23 /* bool; destinaion option */
|
||||
#define IPV6_2292RTHDR 24 /* ip6_rthdr: routing header */
|
||||
|
||||
/* buf/cmsghdr; set/get IPv6 options [obsoleted by RFC3542] */
|
||||
#define IPV6_2292PKTOPTIONS 25
|
||||
|
||||
#ifdef __APPLE_USE_RFC_2292
|
||||
#define IPV6_PKTINFO IPV6_2292PKTINFO
|
||||
#define IPV6_HOPLIMIT IPV6_2292HOPLIMIT
|
||||
#define IPV6_NEXTHOP IPV6_2292NEXTHOP
|
||||
#define IPV6_HOPOPTS IPV6_2292HOPOPTS
|
||||
#define IPV6_DSTOPTS IPV6_2292DSTOPTS
|
||||
#define IPV6_RTHDR IPV6_2292RTHDR
|
||||
#define IPV6_PKTOPTIONS IPV6_2292PKTOPTIONS
|
||||
#endif /* __APPLE_USE_RFC_2292 */
|
||||
|
||||
#define IPV6_CHECKSUM 26 /* int; checksum offset for raw socket */
|
||||
#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
|
||||
#define IPV6_V6ONLY 27 /* bool; only bind INET6 at wildcard bind */
|
||||
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
|
||||
#define IPV6_BINDV6ONLY IPV6_V6ONLY
|
||||
|
||||
|
||||
#if 1 /* IPSEC */
|
||||
#define IPV6_IPSEC_POLICY 28 /* struct; get/set security policy */
|
||||
#endif /* 1 */
|
||||
#define IPV6_FAITH 29 /* deprecated */
|
||||
|
||||
#if 1 /* IPV6FIREWALL */
|
||||
#define IPV6_FW_ADD 30 /* add a firewall rule to chain */
|
||||
#define IPV6_FW_DEL 31 /* delete a firewall rule from chain */
|
||||
#define IPV6_FW_FLUSH 32 /* flush firewall rule chain */
|
||||
#define IPV6_FW_ZERO 33 /* clear single/all firewall counter(s) */
|
||||
#define IPV6_FW_GET 34 /* get entire firewall rule chain */
|
||||
#endif /* 1 */
|
||||
|
||||
/*
|
||||
* APPLE: NOTE the value of those 2 options is kept unchanged from
|
||||
* previous version of darwin/OS X for binary compatibility reasons
|
||||
* and differ from FreeBSD (values 57 and 61). See below.
|
||||
*/
|
||||
#define IPV6_RECVTCLASS 35 /* bool; recv traffic class values */
|
||||
#define IPV6_TCLASS 36 /* int; send traffic class value */
|
||||
|
||||
#ifdef __APPLE_USE_RFC_3542
|
||||
/* new socket options introduced in RFC3542 */
|
||||
/*
|
||||
* ip6_dest; send dst option before rthdr
|
||||
* APPLE: Value purposely different than FreeBSD (35) to avoid
|
||||
* collision with definition of IPV6_RECVTCLASS in previous
|
||||
* darwin implementations
|
||||
*/
|
||||
#define IPV6_RTHDRDSTOPTS 57
|
||||
|
||||
/*
|
||||
* bool; recv if, dst addr
|
||||
* APPLE: Value purposely different than FreeBSD(36) to avoid
|
||||
* collision with definition of IPV6_TCLASS in previous
|
||||
* darwin implementations
|
||||
*/
|
||||
#define IPV6_RECVPKTINFO 61
|
||||
|
||||
#define IPV6_RECVHOPLIMIT 37 /* bool; recv hop limit */
|
||||
#define IPV6_RECVRTHDR 38 /* bool; recv routing header */
|
||||
#define IPV6_RECVHOPOPTS 39 /* bool; recv hop-by-hop option */
|
||||
#define IPV6_RECVDSTOPTS 40 /* bool; recv dst option after rthdr */
|
||||
|
||||
#define IPV6_USE_MIN_MTU 42 /* bool; send packets at the minimum MTU */
|
||||
#define IPV6_RECVPATHMTU 43 /* bool; notify an according MTU */
|
||||
|
||||
/*
|
||||
* mtuinfo; get the current path MTU (sopt), 4 bytes int;
|
||||
* MTU notification (cmsg)
|
||||
*/
|
||||
#define IPV6_PATHMTU 44
|
||||
|
||||
#if 0 /* obsoleted during 2292bis -> 3542 */
|
||||
/* no data; ND reachability confirm (cmsg only/not in of RFC3542) */
|
||||
#define IPV6_REACHCONF 45
|
||||
#endif
|
||||
/* more new socket options introduced in RFC3542 */
|
||||
#define IPV6_3542PKTINFO 46 /* in6_pktinfo; send if, src addr */
|
||||
#define IPV6_3542HOPLIMIT 47 /* int; send hop limit */
|
||||
#define IPV6_3542NEXTHOP 48 /* sockaddr; next hop addr */
|
||||
#define IPV6_3542HOPOPTS 49 /* ip6_hbh; send hop-by-hop option */
|
||||
#define IPV6_3542DSTOPTS 50 /* ip6_dest; send dst option befor rthdr */
|
||||
#define IPV6_3542RTHDR 51 /* ip6_rthdr; send routing header */
|
||||
|
||||
#define IPV6_PKTINFO IPV6_3542PKTINFO
|
||||
#define IPV6_HOPLIMIT IPV6_3542HOPLIMIT
|
||||
#define IPV6_NEXTHOP IPV6_3542NEXTHOP
|
||||
#define IPV6_HOPOPTS IPV6_3542HOPOPTS
|
||||
#define IPV6_DSTOPTS IPV6_3542DSTOPTS
|
||||
#define IPV6_RTHDR IPV6_3542RTHDR
|
||||
|
||||
#define IPV6_AUTOFLOWLABEL 59 /* bool; attach flowlabel automagically */
|
||||
|
||||
#define IPV6_DONTFRAG 62 /* bool; disable IPv6 fragmentation */
|
||||
|
||||
/* int; prefer temporary addresses as the source address. */
|
||||
#define IPV6_PREFER_TEMPADDR 63
|
||||
|
||||
/*
|
||||
* The following option is private; do not use it from user applications.
|
||||
* It is deliberately defined to the same value as IP_MSFILTER.
|
||||
*/
|
||||
#define IPV6_MSFILTER 74 /* struct __msfilterreq; */
|
||||
#endif /* __APPLE_USE_RFC_3542 */
|
||||
|
||||
#define IPV6_BOUND_IF 125 /* int; set/get bound interface */
|
||||
|
||||
|
||||
/* to define items, should talk with KAME guys first, for *BSD compatibility */
|
||||
|
||||
#define IPV6_RTHDR_LOOSE 0 /* this hop need not be a neighbor. */
|
||||
#define IPV6_RTHDR_STRICT 1 /* this hop must be a neighbor. */
|
||||
#define IPV6_RTHDR_TYPE_0 0 /* IPv6 routing header type 0 */
|
||||
|
||||
/*
|
||||
* Defaults and limits for options
|
||||
*/
|
||||
#define IPV6_DEFAULT_MULTICAST_HOPS 1 /* normally limit m'casts to 1 hop */
|
||||
#define IPV6_DEFAULT_MULTICAST_LOOP 1 /* normally hear sends if a member */
|
||||
|
||||
/*
|
||||
* The im6o_membership vector for each socket is now dynamically allocated at
|
||||
* run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
|
||||
* according to a power-of-two increment.
|
||||
*/
|
||||
#define IPV6_MIN_MEMBERSHIPS 31
|
||||
#define IPV6_MAX_MEMBERSHIPS 4095
|
||||
|
||||
/*
|
||||
* Default resource limits for IPv6 multicast source filtering.
|
||||
* These may be modified by sysctl.
|
||||
*/
|
||||
#define IPV6_MAX_GROUP_SRC_FILTER 512 /* sources per group */
|
||||
#define IPV6_MAX_SOCK_SRC_FILTER 128 /* sources per socket/group */
|
||||
|
||||
/*
|
||||
* Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
|
||||
*/
|
||||
struct ipv6_mreq {
|
||||
struct in6_addr ipv6mr_multiaddr;
|
||||
unsigned int ipv6mr_interface;
|
||||
};
|
||||
|
||||
/*
|
||||
* IPV6_2292PKTINFO: Packet information(RFC2292 sec 5)
|
||||
*/
|
||||
struct in6_pktinfo {
|
||||
struct in6_addr ipi6_addr; /* src/dst IPv6 address */
|
||||
unsigned int ipi6_ifindex; /* send/recv interface index */
|
||||
};
|
||||
|
||||
/*
|
||||
* Control structure for IPV6_RECVPATHMTU socket option.
|
||||
*/
|
||||
struct ip6_mtuinfo {
|
||||
struct sockaddr_in6 ip6m_addr; /* or sockaddr_storage? */
|
||||
uint32_t ip6m_mtu;
|
||||
};
|
||||
|
||||
/*
|
||||
* Argument for IPV6_PORTRANGE:
|
||||
* - which range to search when port is unspecified at bind() or connect()
|
||||
*/
|
||||
#define IPV6_PORTRANGE_DEFAULT 0 /* default range */
|
||||
#define IPV6_PORTRANGE_HIGH 1 /* "high" - request firewall bypass */
|
||||
#define IPV6_PORTRANGE_LOW 2 /* "low" - vouchsafe security */
|
||||
|
||||
/*
|
||||
* Definitions for inet6 sysctl operations.
|
||||
*
|
||||
* Third level is protocol number.
|
||||
* Fourth level is desired variable within that protocol.
|
||||
*/
|
||||
#define IPV6PROTO_MAXID (IPPROTO_PIM + 1) /* don't list to IPV6PROTO_MAX */
|
||||
|
||||
/*
|
||||
* Names for IP sysctl objects
|
||||
*/
|
||||
#define IPV6CTL_FORWARDING 1 /* act as router */
|
||||
#define IPV6CTL_SENDREDIRECTS 2 /* may send redirects when forwarding */
|
||||
#define IPV6CTL_DEFHLIM 3 /* default Hop-Limit */
|
||||
#ifdef notyet
|
||||
#define IPV6CTL_DEFMTU 4 /* default MTU */
|
||||
#endif
|
||||
#define IPV6CTL_FORWSRCRT 5 /* forward source-routed dgrams */
|
||||
#define IPV6CTL_STATS 6 /* stats */
|
||||
#define IPV6CTL_MRTSTATS 7 /* multicast forwarding stats */
|
||||
#define IPV6CTL_MRTPROTO 8 /* multicast routing protocol */
|
||||
#define IPV6CTL_MAXFRAGPACKETS 9 /* max packets reassembly queue */
|
||||
#define IPV6CTL_SOURCECHECK 10 /* verify source route and intf */
|
||||
#define IPV6CTL_SOURCECHECK_LOGINT 11 /* minimume logging interval */
|
||||
#define IPV6CTL_ACCEPT_RTADV 12
|
||||
#define IPV6CTL_KEEPFAITH 13 /* deprecated */
|
||||
#define IPV6CTL_LOG_INTERVAL 14
|
||||
#define IPV6CTL_HDRNESTLIMIT 15
|
||||
#define IPV6CTL_DAD_COUNT 16
|
||||
#define IPV6CTL_AUTO_FLOWLABEL 17
|
||||
#define IPV6CTL_DEFMCASTHLIM 18
|
||||
#define IPV6CTL_GIF_HLIM 19 /* default HLIM for gif encap packet */
|
||||
#define IPV6CTL_KAME_VERSION 20
|
||||
#define IPV6CTL_USE_DEPRECATED 21 /* use deprec addr (RFC2462 5.5.4) */
|
||||
#define IPV6CTL_RR_PRUNE 22 /* walk timer for router renumbering */
|
||||
#if 0 /* obsolete */
|
||||
#define IPV6CTL_MAPPED_ADDR 23
|
||||
#endif
|
||||
#define IPV6CTL_V6ONLY 24
|
||||
#define IPV6CTL_RTEXPIRE 25 /* cloned route expiration time */
|
||||
#define IPV6CTL_RTMINEXPIRE 26 /* min value for expiration time */
|
||||
#define IPV6CTL_RTMAXCACHE 27 /* trigger level for dynamic expire */
|
||||
|
||||
#define IPV6CTL_USETEMPADDR 32 /* use temporary addresses [RFC 4941] */
|
||||
#define IPV6CTL_TEMPPLTIME 33 /* preferred lifetime for tmpaddrs */
|
||||
#define IPV6CTL_TEMPVLTIME 34 /* valid lifetime for tmpaddrs */
|
||||
#define IPV6CTL_AUTO_LINKLOCAL 35 /* automatic link-local addr assign */
|
||||
#define IPV6CTL_RIP6STATS 36 /* raw_ip6 stats */
|
||||
#define IPV6CTL_PREFER_TEMPADDR 37 /* prefer temporary addr as src */
|
||||
#define IPV6CTL_ADDRCTLPOLICY 38 /* get/set address selection policy */
|
||||
#define IPV6CTL_USE_DEFAULTZONE 39 /* use default scope zone */
|
||||
|
||||
#define IPV6CTL_MAXFRAGS 41 /* max fragments */
|
||||
#define IPV6CTL_MCAST_PMTU 44 /* enable pMTU discovery for mcast? */
|
||||
|
||||
#define IPV6CTL_NEIGHBORGCTHRESH 46
|
||||
#define IPV6CTL_MAXIFPREFIXES 47
|
||||
#define IPV6CTL_MAXIFDEFROUTERS 48
|
||||
#define IPV6CTL_MAXDYNROUTES 49
|
||||
#define ICMPV6CTL_ND6_ONLINKNSRFC4861 50
|
||||
|
||||
/* New entries should be added here from current IPV6CTL_MAXID value. */
|
||||
/* to define items, should talk with KAME guys first, for *BSD compatibility */
|
||||
#define IPV6CTL_MAXID 51
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
__BEGIN_DECLS
|
||||
struct cmsghdr;
|
||||
|
||||
extern int inet6_option_space(int);
|
||||
extern int inet6_option_init(void *, struct cmsghdr **, int);
|
||||
extern int inet6_option_append(struct cmsghdr *, const __uint8_t *, int, int);
|
||||
extern __uint8_t *inet6_option_alloc(struct cmsghdr *, int, int, int);
|
||||
extern int inet6_option_next(const struct cmsghdr *, __uint8_t **);
|
||||
extern int inet6_option_find(const struct cmsghdr *, __uint8_t **, int);
|
||||
|
||||
extern size_t inet6_rthdr_space(int, int);
|
||||
extern struct cmsghdr *inet6_rthdr_init(void *, int);
|
||||
extern int inet6_rthdr_add(struct cmsghdr *, const struct in6_addr *,
|
||||
unsigned int);
|
||||
extern int inet6_rthdr_lasthop(struct cmsghdr *, unsigned int);
|
||||
#if 0 /* not implemented yet */
|
||||
extern int inet6_rthdr_reverse(const struct cmsghdr *, struct cmsghdr *);
|
||||
#endif
|
||||
extern int inet6_rthdr_segments(const struct cmsghdr *);
|
||||
extern struct in6_addr *inet6_rthdr_getaddr(struct cmsghdr *, int);
|
||||
extern int inet6_rthdr_getflags(const struct cmsghdr *, int);
|
||||
|
||||
extern int inet6_opt_init(void *, socklen_t);
|
||||
extern int inet6_opt_append(void *, socklen_t, int, __uint8_t, socklen_t,
|
||||
__uint8_t, void **);
|
||||
extern int inet6_opt_finish(void *, socklen_t, int);
|
||||
extern int inet6_opt_set_val(void *, int, void *, socklen_t);
|
||||
|
||||
extern int inet6_opt_next(void *, socklen_t, int, __uint8_t *, socklen_t *,
|
||||
void **);
|
||||
extern int inet6_opt_find(void *, socklen_t, int, __uint8_t, socklen_t *,
|
||||
void **);
|
||||
extern int inet6_opt_get_val(void *, int, void *, socklen_t);
|
||||
extern socklen_t inet6_rth_space(int, int);
|
||||
extern void *inet6_rth_init(void *, socklen_t, int, int);
|
||||
extern int inet6_rth_add(void *, const struct in6_addr *);
|
||||
extern int inet6_rth_reverse(const void *, void *);
|
||||
extern int inet6_rth_segments(const void *);
|
||||
extern struct in6_addr *inet6_rth_getaddr(const void *, int);
|
||||
|
||||
__END_DECLS
|
||||
#endif /* PLATFORM_DriverKit */
|
||||
#endif /* !_NETINET6_IN6_H_ */
|
||||
33
lib/libc/include/any-macos.11-any/objc/NSObjCRuntime.h
vendored
Normal file
33
lib/libc/include/any-macos.11-any/objc/NSObjCRuntime.h
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
/* NSObjCRuntime.h
|
||||
Copyright (c) 1994-2012, Apple Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _OBJC_NSOBJCRUNTIME_H_
|
||||
#define _OBJC_NSOBJCRUNTIME_H_
|
||||
|
||||
#include <TargetConditionals.h>
|
||||
#include <objc/objc.h>
|
||||
|
||||
#if __LP64__ || 0 || NS_BUILD_32_LIKE_64
|
||||
typedef long NSInteger;
|
||||
typedef unsigned long NSUInteger;
|
||||
#else
|
||||
typedef int NSInteger;
|
||||
typedef unsigned int NSUInteger;
|
||||
#endif
|
||||
|
||||
#define NSIntegerMax LONG_MAX
|
||||
#define NSIntegerMin LONG_MIN
|
||||
#define NSUIntegerMax ULONG_MAX
|
||||
|
||||
#define NSINTEGER_DEFINED 1
|
||||
|
||||
#ifndef NS_DESIGNATED_INITIALIZER
|
||||
#if __has_attribute(objc_designated_initializer)
|
||||
#define NS_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
|
||||
#else
|
||||
#define NS_DESIGNATED_INITIALIZER
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
388
lib/libc/include/any-macos.11-any/objc/message.h
vendored
Normal file
388
lib/libc/include/any-macos.11-any/objc/message.h
vendored
Normal file
@ -0,0 +1,388 @@
|
||||
/*
|
||||
* Copyright (c) 1999-2007 Apple Inc. All Rights Reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#ifndef _OBJC_MESSAGE_H
|
||||
#define _OBJC_MESSAGE_H
|
||||
|
||||
#include <objc/objc.h>
|
||||
#include <objc/runtime.h>
|
||||
|
||||
#ifndef OBJC_SUPER
|
||||
#define OBJC_SUPER
|
||||
|
||||
/// Specifies the superclass of an instance.
|
||||
struct objc_super {
|
||||
/// Specifies an instance of a class.
|
||||
__unsafe_unretained _Nonnull id receiver;
|
||||
|
||||
/// Specifies the particular superclass of the instance to message.
|
||||
#if !defined(__cplusplus) && !__OBJC2__
|
||||
/* For compatibility with old objc-runtime.h header */
|
||||
__unsafe_unretained _Nonnull Class class;
|
||||
#else
|
||||
__unsafe_unretained _Nonnull Class super_class;
|
||||
#endif
|
||||
/* super_class is the first class to search */
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
/* Basic Messaging Primitives
|
||||
*
|
||||
* On some architectures, use objc_msgSend_stret for some struct return types.
|
||||
* On some architectures, use objc_msgSend_fpret for some float return types.
|
||||
* On some architectures, use objc_msgSend_fp2ret for some float return types.
|
||||
*
|
||||
* These functions must be cast to an appropriate function pointer type
|
||||
* before being called.
|
||||
*/
|
||||
#if !OBJC_OLD_DISPATCH_PROTOTYPES
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wincompatible-library-redeclaration"
|
||||
OBJC_EXPORT void
|
||||
objc_msgSend(void /* id self, SEL op, ... */ )
|
||||
OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
|
||||
|
||||
OBJC_EXPORT void
|
||||
objc_msgSendSuper(void /* struct objc_super *super, SEL op, ... */ )
|
||||
OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
|
||||
#pragma clang diagnostic pop
|
||||
#else
|
||||
/**
|
||||
* Sends a message with a simple return value to an instance of a class.
|
||||
*
|
||||
* @param self A pointer to the instance of the class that is to receive the message.
|
||||
* @param op The selector of the method that handles the message.
|
||||
* @param ...
|
||||
* A variable argument list containing the arguments to the method.
|
||||
*
|
||||
* @return The return value of the method.
|
||||
*
|
||||
* @note When it encounters a method call, the compiler generates a call to one of the
|
||||
* functions \c objc_msgSend, \c objc_msgSend_stret, \c objc_msgSendSuper, or \c objc_msgSendSuper_stret.
|
||||
* Messages sent to an object’s superclass (using the \c super keyword) are sent using \c objc_msgSendSuper;
|
||||
* other messages are sent using \c objc_msgSend. Methods that have data structures as return values
|
||||
* are sent using \c objc_msgSendSuper_stret and \c objc_msgSend_stret.
|
||||
*/
|
||||
OBJC_EXPORT id _Nullable
|
||||
objc_msgSend(id _Nullable self, SEL _Nonnull op, ...)
|
||||
OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
|
||||
/**
|
||||
* Sends a message with a simple return value to the superclass of an instance of a class.
|
||||
*
|
||||
* @param super A pointer to an \c objc_super data structure. Pass values identifying the
|
||||
* context the message was sent to, including the instance of the class that is to receive the
|
||||
* message and the superclass at which to start searching for the method implementation.
|
||||
* @param op A pointer of type SEL. Pass the selector of the method that will handle the message.
|
||||
* @param ...
|
||||
* A variable argument list containing the arguments to the method.
|
||||
*
|
||||
* @return The return value of the method identified by \e op.
|
||||
*
|
||||
* @see objc_msgSend
|
||||
*/
|
||||
OBJC_EXPORT id _Nullable
|
||||
objc_msgSendSuper(struct objc_super * _Nonnull super, SEL _Nonnull op, ...)
|
||||
OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
|
||||
#endif
|
||||
|
||||
|
||||
/* Struct-returning Messaging Primitives
|
||||
*
|
||||
* Use these functions to call methods that return structs on the stack.
|
||||
* On some architectures, some structures are returned in registers.
|
||||
* Consult your local function call ABI documentation for details.
|
||||
*
|
||||
* These functions must be cast to an appropriate function pointer type
|
||||
* before being called.
|
||||
*/
|
||||
#if !OBJC_OLD_DISPATCH_PROTOTYPES
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wincompatible-library-redeclaration"
|
||||
OBJC_EXPORT void
|
||||
objc_msgSend_stret(void /* id self, SEL op, ... */ )
|
||||
OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
|
||||
OBJC_ARM64_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT void
|
||||
objc_msgSendSuper_stret(void /* struct objc_super *super, SEL op, ... */ )
|
||||
OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
|
||||
OBJC_ARM64_UNAVAILABLE;
|
||||
#pragma clang diagnostic pop
|
||||
#else
|
||||
/**
|
||||
* Sends a message with a data-structure return value to an instance of a class.
|
||||
*
|
||||
* @see objc_msgSend
|
||||
*/
|
||||
OBJC_EXPORT void
|
||||
objc_msgSend_stret(id _Nullable self, SEL _Nonnull op, ...)
|
||||
OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
|
||||
OBJC_ARM64_UNAVAILABLE;
|
||||
|
||||
/**
|
||||
* Sends a message with a data-structure return value to the superclass of an instance of a class.
|
||||
*
|
||||
* @see objc_msgSendSuper
|
||||
*/
|
||||
OBJC_EXPORT void
|
||||
objc_msgSendSuper_stret(struct objc_super * _Nonnull super,
|
||||
SEL _Nonnull op, ...)
|
||||
OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
|
||||
OBJC_ARM64_UNAVAILABLE;
|
||||
#endif
|
||||
|
||||
|
||||
/* Floating-point-returning Messaging Primitives
|
||||
*
|
||||
* Use these functions to call methods that return floating-point values
|
||||
* on the stack.
|
||||
* Consult your local function call ABI documentation for details.
|
||||
*
|
||||
* arm: objc_msgSend_fpret not used
|
||||
* i386: objc_msgSend_fpret used for `float`, `double`, `long double`.
|
||||
* x86-64: objc_msgSend_fpret used for `long double`.
|
||||
*
|
||||
* arm: objc_msgSend_fp2ret not used
|
||||
* i386: objc_msgSend_fp2ret not used
|
||||
* x86-64: objc_msgSend_fp2ret used for `_Complex long double`.
|
||||
*
|
||||
* These functions must be cast to an appropriate function pointer type
|
||||
* before being called.
|
||||
*/
|
||||
#if !OBJC_OLD_DISPATCH_PROTOTYPES
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wincompatible-library-redeclaration"
|
||||
|
||||
# if defined(__i386__)
|
||||
|
||||
OBJC_EXPORT void
|
||||
objc_msgSend_fpret(void /* id self, SEL op, ... */ )
|
||||
OBJC_AVAILABLE(10.4, 2.0, 9.0, 1.0, 2.0);
|
||||
|
||||
# elif defined(__x86_64__)
|
||||
|
||||
OBJC_EXPORT void
|
||||
objc_msgSend_fpret(void /* id self, SEL op, ... */ )
|
||||
OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
|
||||
|
||||
OBJC_EXPORT void
|
||||
objc_msgSend_fp2ret(void /* id self, SEL op, ... */ )
|
||||
OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
|
||||
|
||||
#pragma clang diagnostic pop
|
||||
# endif
|
||||
|
||||
// !OBJC_OLD_DISPATCH_PROTOTYPES
|
||||
#else
|
||||
// OBJC_OLD_DISPATCH_PROTOTYPES
|
||||
# if defined(__i386__)
|
||||
|
||||
/**
|
||||
* Sends a message with a floating-point return value to an instance of a class.
|
||||
*
|
||||
* @see objc_msgSend
|
||||
* @note On the i386 platform, the ABI for functions returning a floating-point value is
|
||||
* incompatible with that for functions returning an integral type. On the i386 platform, therefore,
|
||||
* you must use \c objc_msgSend_fpret for functions returning non-integral type. For \c float or
|
||||
* \c long \c double return types, cast the function to an appropriate function pointer type first.
|
||||
*/
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wincompatible-library-redeclaration"
|
||||
OBJC_EXPORT double
|
||||
objc_msgSend_fpret(id _Nullable self, SEL _Nonnull op, ...)
|
||||
OBJC_AVAILABLE(10.4, 2.0, 9.0, 1.0, 2.0);
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
/* Use objc_msgSendSuper() for fp-returning messages to super. */
|
||||
/* See also objc_msgSendv_fpret() below. */
|
||||
|
||||
# elif defined(__x86_64__)
|
||||
/**
|
||||
* Sends a message with a floating-point return value to an instance of a class.
|
||||
*
|
||||
* @see objc_msgSend
|
||||
*/
|
||||
OBJC_EXPORT long double
|
||||
objc_msgSend_fpret(id _Nullable self, SEL _Nonnull op, ...)
|
||||
OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
|
||||
|
||||
# if __STDC_VERSION__ >= 199901L
|
||||
OBJC_EXPORT _Complex long double
|
||||
objc_msgSend_fp2ret(id _Nullable self, SEL _Nonnull op, ...)
|
||||
OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
|
||||
# else
|
||||
OBJC_EXPORT void objc_msgSend_fp2ret(id _Nullable self, SEL _Nonnull op, ...)
|
||||
OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
|
||||
# endif
|
||||
|
||||
/* Use objc_msgSendSuper() for fp-returning messages to super. */
|
||||
/* See also objc_msgSendv_fpret() below. */
|
||||
|
||||
# endif
|
||||
|
||||
// OBJC_OLD_DISPATCH_PROTOTYPES
|
||||
#endif
|
||||
|
||||
|
||||
/* Direct Method Invocation Primitives
|
||||
* Use these functions to call the implementation of a given Method.
|
||||
* This is faster than calling method_getImplementation() and method_getName().
|
||||
*
|
||||
* The receiver must not be nil.
|
||||
*
|
||||
* These functions must be cast to an appropriate function pointer type
|
||||
* before being called.
|
||||
*/
|
||||
#if !OBJC_OLD_DISPATCH_PROTOTYPES
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wincompatible-library-redeclaration"
|
||||
OBJC_EXPORT void
|
||||
method_invoke(void /* id receiver, Method m, ... */ )
|
||||
OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
|
||||
|
||||
OBJC_EXPORT void
|
||||
method_invoke_stret(void /* id receiver, Method m, ... */ )
|
||||
OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0)
|
||||
OBJC_ARM64_UNAVAILABLE;
|
||||
#pragma clang diagnostic pop
|
||||
#else
|
||||
OBJC_EXPORT id _Nullable
|
||||
method_invoke(id _Nullable receiver, Method _Nonnull m, ...)
|
||||
OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
|
||||
|
||||
OBJC_EXPORT void
|
||||
method_invoke_stret(id _Nullable receiver, Method _Nonnull m, ...)
|
||||
OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0)
|
||||
OBJC_ARM64_UNAVAILABLE;
|
||||
#endif
|
||||
|
||||
|
||||
/* Message Forwarding Primitives
|
||||
* Use these functions to forward a message as if the receiver did not
|
||||
* respond to it.
|
||||
*
|
||||
* The receiver must not be nil.
|
||||
*
|
||||
* class_getMethodImplementation() may return (IMP)_objc_msgForward.
|
||||
* class_getMethodImplementation_stret() may return (IMP)_objc_msgForward_stret
|
||||
*
|
||||
* These functions must be cast to an appropriate function pointer type
|
||||
* before being called.
|
||||
*
|
||||
* Before Mac OS X 10.6, _objc_msgForward must not be called directly
|
||||
* but may be compared to other IMP values.
|
||||
*/
|
||||
#if !OBJC_OLD_DISPATCH_PROTOTYPES
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wincompatible-library-redeclaration"
|
||||
OBJC_EXPORT void
|
||||
_objc_msgForward(void /* id receiver, SEL sel, ... */ )
|
||||
OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
|
||||
|
||||
OBJC_EXPORT void
|
||||
_objc_msgForward_stret(void /* id receiver, SEL sel, ... */ )
|
||||
OBJC_AVAILABLE(10.6, 3.0, 9.0, 1.0, 2.0)
|
||||
OBJC_ARM64_UNAVAILABLE;
|
||||
#pragma clang diagnostic pop
|
||||
#else
|
||||
OBJC_EXPORT id _Nullable
|
||||
_objc_msgForward(id _Nonnull receiver, SEL _Nonnull sel, ...)
|
||||
OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
|
||||
|
||||
OBJC_EXPORT void
|
||||
_objc_msgForward_stret(id _Nonnull receiver, SEL _Nonnull sel, ...)
|
||||
OBJC_AVAILABLE(10.6, 3.0, 9.0, 1.0, 2.0)
|
||||
OBJC_ARM64_UNAVAILABLE;
|
||||
#endif
|
||||
|
||||
|
||||
/* Variable-argument Messaging Primitives
|
||||
*
|
||||
* Use these functions to call methods with a list of arguments, such
|
||||
* as the one passed to forward:: .
|
||||
*
|
||||
* The contents of the argument list are architecture-specific.
|
||||
* Consult your local function call ABI documentation for details.
|
||||
*
|
||||
* These functions must be cast to an appropriate function pointer type
|
||||
* before being called, except for objc_msgSendv_stret() which must not
|
||||
* be cast to a struct-returning type.
|
||||
*/
|
||||
|
||||
typedef void* marg_list;
|
||||
|
||||
OBJC_EXPORT id _Nullable
|
||||
objc_msgSendv(id _Nullable self, SEL _Nonnull op, size_t arg_size,
|
||||
marg_list _Nonnull arg_frame)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT void
|
||||
objc_msgSendv_stret(void * _Nonnull stretAddr, id _Nullable self,
|
||||
SEL _Nonnull op, size_t arg_size,
|
||||
marg_list _Nullable arg_frame)
|
||||
OBJC2_UNAVAILABLE;
|
||||
/* Note that objc_msgSendv_stret() does not return a structure type,
|
||||
* and should not be cast to do so. This is unlike objc_msgSend_stret()
|
||||
* and objc_msgSendSuper_stret().
|
||||
*/
|
||||
#if defined(__i386__)
|
||||
OBJC_EXPORT double
|
||||
objc_msgSendv_fpret(id _Nullable self, SEL _Nonnull op,
|
||||
unsigned arg_size, marg_list _Nullable arg_frame)
|
||||
OBJC2_UNAVAILABLE;
|
||||
#endif
|
||||
|
||||
|
||||
/* The following marg_list macros are of marginal utility. They
|
||||
* are included for compatibility with the old objc-class.h header. */
|
||||
|
||||
#if !__OBJC2__
|
||||
|
||||
#define marg_prearg_size 0
|
||||
|
||||
#define marg_malloc(margs, method) \
|
||||
do { \
|
||||
margs = (marg_list *)malloc (marg_prearg_size + ((7 + method_getSizeOfArguments(method)) & ~7)); \
|
||||
} while (0)
|
||||
|
||||
#define marg_free(margs) \
|
||||
do { \
|
||||
free(margs); \
|
||||
} while (0)
|
||||
|
||||
#define marg_adjustedOffset(method, offset) \
|
||||
(marg_prearg_size + offset)
|
||||
|
||||
#define marg_getRef(margs, offset, type) \
|
||||
( (type *)((char *)margs + marg_adjustedOffset(method,offset) ) )
|
||||
|
||||
#define marg_getValue(margs, offset, type) \
|
||||
( *marg_getRef(margs, offset, type) )
|
||||
|
||||
#define marg_setValue(margs, offset, type, value) \
|
||||
( marg_getValue(margs, offset, type) = (value) )
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
304
lib/libc/include/any-macos.11-any/objc/objc-api.h
vendored
Normal file
304
lib/libc/include/any-macos.11-any/objc/objc-api.h
vendored
Normal file
@ -0,0 +1,304 @@
|
||||
/*
|
||||
* Copyright (c) 1999-2006 Apple Inc. All Rights Reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
// Copyright 1988-1996 NeXT Software, Inc.
|
||||
|
||||
#ifndef _OBJC_OBJC_API_H_
|
||||
#define _OBJC_OBJC_API_H_
|
||||
|
||||
#include <Availability.h>
|
||||
#include <AvailabilityMacros.h>
|
||||
#include <TargetConditionals.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifndef __has_feature
|
||||
# define __has_feature(x) 0
|
||||
#endif
|
||||
|
||||
#ifndef __has_extension
|
||||
# define __has_extension __has_feature
|
||||
#endif
|
||||
|
||||
#ifndef __has_attribute
|
||||
# define __has_attribute(x) 0
|
||||
#endif
|
||||
|
||||
#if !__has_feature(nullability)
|
||||
# ifndef _Nullable
|
||||
# define _Nullable
|
||||
# endif
|
||||
# ifndef _Nonnull
|
||||
# define _Nonnull
|
||||
# endif
|
||||
# ifndef _Null_unspecified
|
||||
# define _Null_unspecified
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* OBJC_API_VERSION 0 or undef: Tiger and earlier API only
|
||||
* OBJC_API_VERSION 2: Leopard and later API available
|
||||
*/
|
||||
#if !defined(OBJC_API_VERSION)
|
||||
# if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_5
|
||||
# define OBJC_API_VERSION 0
|
||||
# else
|
||||
# define OBJC_API_VERSION 2
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* OBJC_NO_GC 1: GC is not supported
|
||||
* OBJC_NO_GC undef: GC is supported. This SDK no longer supports this mode.
|
||||
*
|
||||
* OBJC_NO_GC_API undef: Libraries must export any symbols that
|
||||
* dual-mode code may links to.
|
||||
* OBJC_NO_GC_API 1: Libraries need not export GC-related symbols.
|
||||
*/
|
||||
#if defined(__OBJC_GC__)
|
||||
# error Objective-C garbage collection is not supported.
|
||||
#elif TARGET_OS_OSX
|
||||
/* GC is unsupported. GC API symbols are exported. */
|
||||
# define OBJC_NO_GC 1
|
||||
# undef OBJC_NO_GC_API
|
||||
#else
|
||||
/* GC is unsupported. GC API symbols are not exported. */
|
||||
# define OBJC_NO_GC 1
|
||||
# define OBJC_NO_GC_API 1
|
||||
#endif
|
||||
|
||||
|
||||
/* NS_ENFORCE_NSOBJECT_DESIGNATED_INITIALIZER == 1
|
||||
* marks -[NSObject init] as a designated initializer. */
|
||||
#if !defined(NS_ENFORCE_NSOBJECT_DESIGNATED_INITIALIZER)
|
||||
# define NS_ENFORCE_NSOBJECT_DESIGNATED_INITIALIZER 1
|
||||
#endif
|
||||
|
||||
/* The arm64 ABI requires proper casting to ensure arguments are passed
|
||||
* * correctly. */
|
||||
#if defined(__arm64__) && !__swift__
|
||||
# undef OBJC_OLD_DISPATCH_PROTOTYPES
|
||||
# define OBJC_OLD_DISPATCH_PROTOTYPES 0
|
||||
#endif
|
||||
|
||||
/* OBJC_OLD_DISPATCH_PROTOTYPES == 0 enforces the rule that the dispatch
|
||||
* functions must be cast to an appropriate function pointer type. */
|
||||
#if !defined(OBJC_OLD_DISPATCH_PROTOTYPES)
|
||||
# if __swift__
|
||||
// Existing Swift code expects IMP to be Comparable.
|
||||
// Variadic IMP is comparable via OpaquePointer; non-variadic IMP isn't.
|
||||
# define OBJC_OLD_DISPATCH_PROTOTYPES 1
|
||||
# else
|
||||
# define OBJC_OLD_DISPATCH_PROTOTYPES 0
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
/* OBJC_AVAILABLE: shorthand for all-OS availability */
|
||||
|
||||
# if !defined(OBJC_AVAILABLE)
|
||||
# define OBJC_AVAILABLE(x, i, t, w, b) \
|
||||
__OSX_AVAILABLE(x) __IOS_AVAILABLE(i) __TVOS_AVAILABLE(t) \
|
||||
__WATCHOS_AVAILABLE(w)
|
||||
# endif
|
||||
|
||||
|
||||
|
||||
/* OBJC_OSX_DEPRECATED_OTHERS_UNAVAILABLE: Deprecated on OS X,
|
||||
* unavailable everywhere else. */
|
||||
|
||||
# if !defined(OBJC_OSX_DEPRECATED_OTHERS_UNAVAILABLE)
|
||||
# define OBJC_OSX_DEPRECATED_OTHERS_UNAVAILABLE(_start, _dep, _msg) \
|
||||
__OSX_DEPRECATED(_start, _dep, _msg) \
|
||||
__IOS_UNAVAILABLE __TVOS_UNAVAILABLE \
|
||||
__WATCHOS_UNAVAILABLE
|
||||
# endif
|
||||
|
||||
|
||||
|
||||
/* OBJC_OSX_AVAILABLE_OTHERS_UNAVAILABLE: Available on OS X,
|
||||
* unavailable everywhere else. */
|
||||
|
||||
# if !defined(OBJC_OSX_AVAILABLE_OTHERS_UNAVAILABLE)
|
||||
# define OBJC_OSX_AVAILABLE_OTHERS_UNAVAILABLE(vers) \
|
||||
__OSX_AVAILABLE(vers) \
|
||||
__IOS_UNAVAILABLE __TVOS_UNAVAILABLE \
|
||||
__WATCHOS_UNAVAILABLE
|
||||
# endif
|
||||
|
||||
|
||||
|
||||
/* OBJC_ISA_AVAILABILITY: `isa` will be deprecated or unavailable
|
||||
* in the future */
|
||||
#if !defined(OBJC_ISA_AVAILABILITY)
|
||||
# if __OBJC2__
|
||||
# define OBJC_ISA_AVAILABILITY __attribute__((deprecated))
|
||||
# else
|
||||
# define OBJC_ISA_AVAILABILITY /* still available */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
/* OBJC2_UNAVAILABLE: unavailable in objc 2.0, deprecated in Leopard */
|
||||
#if !defined(OBJC2_UNAVAILABLE)
|
||||
# if __OBJC2__
|
||||
# define OBJC2_UNAVAILABLE UNAVAILABLE_ATTRIBUTE
|
||||
# else
|
||||
/* plain C code also falls here, but this is close enough */
|
||||
# define OBJC2_UNAVAILABLE \
|
||||
__OSX_DEPRECATED(10.5, 10.5, "not available in __OBJC2__") \
|
||||
__IOS_DEPRECATED(2.0, 2.0, "not available in __OBJC2__") \
|
||||
__TVOS_UNAVAILABLE __WATCHOS_UNAVAILABLE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* OBJC_UNAVAILABLE: unavailable, with a message where supported */
|
||||
#if !defined(OBJC_UNAVAILABLE)
|
||||
# if __has_extension(attribute_unavailable_with_message)
|
||||
# define OBJC_UNAVAILABLE(_msg) __attribute__((unavailable(_msg)))
|
||||
# else
|
||||
# define OBJC_UNAVAILABLE(_msg) __attribute__((unavailable))
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* OBJC_DEPRECATED: deprecated, with a message where supported */
|
||||
#if !defined(OBJC_DEPRECATED)
|
||||
# if __has_extension(attribute_deprecated_with_message)
|
||||
# define OBJC_DEPRECATED(_msg) __attribute__((deprecated(_msg)))
|
||||
# else
|
||||
# define OBJC_DEPRECATED(_msg) __attribute__((deprecated))
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* OBJC_ARC_UNAVAILABLE: unavailable with -fobjc-arc */
|
||||
#if !defined(OBJC_ARC_UNAVAILABLE)
|
||||
# if __has_feature(objc_arc)
|
||||
# define OBJC_ARC_UNAVAILABLE OBJC_UNAVAILABLE("not available in automatic reference counting mode")
|
||||
# else
|
||||
# define OBJC_ARC_UNAVAILABLE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* OBJC_SWIFT_UNAVAILABLE: unavailable in Swift */
|
||||
#if !defined(OBJC_SWIFT_UNAVAILABLE)
|
||||
# if __has_feature(attribute_availability_swift)
|
||||
# define OBJC_SWIFT_UNAVAILABLE(_msg) __attribute__((availability(swift, unavailable, message=_msg)))
|
||||
# else
|
||||
# define OBJC_SWIFT_UNAVAILABLE(_msg)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* OBJC_ARM64_UNAVAILABLE: unavailable on arm64 (i.e. stret dispatch) */
|
||||
#if !defined(OBJC_ARM64_UNAVAILABLE)
|
||||
# if defined(__arm64__)
|
||||
# define OBJC_ARM64_UNAVAILABLE OBJC_UNAVAILABLE("not available in arm64")
|
||||
# else
|
||||
# define OBJC_ARM64_UNAVAILABLE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* OBJC_GC_UNAVAILABLE: unavailable with -fobjc-gc or -fobjc-gc-only */
|
||||
#if !defined(OBJC_GC_UNAVAILABLE)
|
||||
# define OBJC_GC_UNAVAILABLE
|
||||
#endif
|
||||
|
||||
#if !defined(OBJC_EXTERN)
|
||||
# if defined(__cplusplus)
|
||||
# define OBJC_EXTERN extern "C"
|
||||
# else
|
||||
# define OBJC_EXTERN extern
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if !defined(OBJC_VISIBLE)
|
||||
|
||||
# define OBJC_VISIBLE __attribute__((visibility("default")))
|
||||
|
||||
#endif
|
||||
|
||||
#if !defined(OBJC_EXPORT)
|
||||
# define OBJC_EXPORT OBJC_EXTERN OBJC_VISIBLE
|
||||
#endif
|
||||
|
||||
#if !defined(OBJC_IMPORT)
|
||||
# define OBJC_IMPORT extern
|
||||
#endif
|
||||
|
||||
#if !defined(OBJC_ROOT_CLASS)
|
||||
# if __has_attribute(objc_root_class)
|
||||
# define OBJC_ROOT_CLASS __attribute__((objc_root_class))
|
||||
# else
|
||||
# define OBJC_ROOT_CLASS
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef __DARWIN_NULL
|
||||
#define __DARWIN_NULL NULL
|
||||
#endif
|
||||
|
||||
#if !defined(OBJC_INLINE)
|
||||
# define OBJC_INLINE __inline
|
||||
#endif
|
||||
|
||||
// Declares an enum type or option bits type as appropriate for each language.
|
||||
#if (__cplusplus && __cplusplus >= 201103L && (__has_extension(cxx_strong_enums) || __has_feature(objc_fixed_enum))) || (!__cplusplus && __has_feature(objc_fixed_enum))
|
||||
#define OBJC_ENUM(_type, _name) enum _name : _type _name; enum _name : _type
|
||||
#if (__cplusplus)
|
||||
#define OBJC_OPTIONS(_type, _name) _type _name; enum : _type
|
||||
#else
|
||||
#define OBJC_OPTIONS(_type, _name) enum _name : _type _name; enum _name : _type
|
||||
#endif
|
||||
#else
|
||||
#define OBJC_ENUM(_type, _name) _type _name; enum
|
||||
#define OBJC_OPTIONS(_type, _name) _type _name; enum
|
||||
#endif
|
||||
|
||||
#if !defined(OBJC_RETURNS_RETAINED)
|
||||
# if __OBJC__ && __has_attribute(ns_returns_retained)
|
||||
# define OBJC_RETURNS_RETAINED __attribute__((ns_returns_retained))
|
||||
# else
|
||||
# define OBJC_RETURNS_RETAINED
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* OBJC_COLD: very rarely called, e.g. on error path */
|
||||
#if !defined(OBJC_COLD)
|
||||
# if __OBJC__ && __has_attribute(cold)
|
||||
# define OBJC_COLD __attribute__((cold))
|
||||
# else
|
||||
# define OBJC_COLD
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* OBJC_NORETURN: does not return normally, but may throw */
|
||||
#if !defined(OBJC_NORETURN)
|
||||
# if __OBJC__ && __has_attribute(noreturn)
|
||||
# define OBJC_NORETURN __attribute__((noreturn))
|
||||
# else
|
||||
# define OBJC_NORETURN
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
263
lib/libc/include/any-macos.11-any/objc/runtime.h
vendored
263
lib/libc/include/any-macos.11-any/objc/runtime.h
vendored
@ -52,6 +52,24 @@ typedef struct objc_category *Category;
|
||||
/// An opaque type that represents an Objective-C declared property.
|
||||
typedef struct objc_property *objc_property_t;
|
||||
|
||||
struct objc_class {
|
||||
Class _Nonnull isa OBJC_ISA_AVAILABILITY;
|
||||
|
||||
#if !__OBJC2__
|
||||
Class _Nullable super_class OBJC2_UNAVAILABLE;
|
||||
const char * _Nonnull name OBJC2_UNAVAILABLE;
|
||||
long version OBJC2_UNAVAILABLE;
|
||||
long info OBJC2_UNAVAILABLE;
|
||||
long instance_size OBJC2_UNAVAILABLE;
|
||||
struct objc_ivar_list * _Nullable ivars OBJC2_UNAVAILABLE;
|
||||
struct objc_method_list * _Nullable * _Nullable methodLists OBJC2_UNAVAILABLE;
|
||||
struct objc_cache * _Nonnull cache OBJC2_UNAVAILABLE;
|
||||
struct objc_protocol_list * _Nullable protocols OBJC2_UNAVAILABLE;
|
||||
#endif
|
||||
|
||||
} OBJC2_UNAVAILABLE;
|
||||
/* Use `Class` instead of `struct objc_class *` */
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef __OBJC__
|
||||
@ -1859,8 +1877,154 @@ _objc_realizeClassFromSwift(Class _Nullable cls, void * _Nullable previously)
|
||||
#define _C_VECTOR '!'
|
||||
#define _C_CONST 'r'
|
||||
|
||||
|
||||
/* Obsolete types */
|
||||
|
||||
#if !__OBJC2__
|
||||
|
||||
#define CLS_GETINFO(cls,infomask) ((cls)->info & (infomask))
|
||||
#define CLS_SETINFO(cls,infomask) ((cls)->info |= (infomask))
|
||||
|
||||
// class is not a metaclass
|
||||
#define CLS_CLASS 0x1
|
||||
// class is a metaclass
|
||||
#define CLS_META 0x2
|
||||
// class's +initialize method has completed
|
||||
#define CLS_INITIALIZED 0x4
|
||||
// class is posing
|
||||
#define CLS_POSING 0x8
|
||||
// unused
|
||||
#define CLS_MAPPED 0x10
|
||||
// class and subclasses need cache flush during image loading
|
||||
#define CLS_FLUSH_CACHE 0x20
|
||||
// method cache should grow when full
|
||||
#define CLS_GROW_CACHE 0x40
|
||||
// unused
|
||||
#define CLS_NEED_BIND 0x80
|
||||
// methodLists is array of method lists
|
||||
#define CLS_METHOD_ARRAY 0x100
|
||||
// the JavaBridge constructs classes with these markers
|
||||
#define CLS_JAVA_HYBRID 0x200
|
||||
#define CLS_JAVA_CLASS 0x400
|
||||
// thread-safe +initialize
|
||||
#define CLS_INITIALIZING 0x800
|
||||
// bundle unloading
|
||||
#define CLS_FROM_BUNDLE 0x1000
|
||||
// C++ ivar support
|
||||
#define CLS_HAS_CXX_STRUCTORS 0x2000
|
||||
// Lazy method list arrays
|
||||
#define CLS_NO_METHOD_ARRAY 0x4000
|
||||
// +load implementation
|
||||
#define CLS_HAS_LOAD_METHOD 0x8000
|
||||
// objc_allocateClassPair API
|
||||
#define CLS_CONSTRUCTING 0x10000
|
||||
// class compiled with bigger class structure
|
||||
#define CLS_EXT 0x20000
|
||||
|
||||
|
||||
struct objc_method_description_list {
|
||||
int count;
|
||||
struct objc_method_description list[1];
|
||||
};
|
||||
|
||||
|
||||
struct objc_protocol_list {
|
||||
struct objc_protocol_list * _Nullable next;
|
||||
long count;
|
||||
__unsafe_unretained Protocol * _Nullable list[1];
|
||||
};
|
||||
|
||||
|
||||
struct objc_category {
|
||||
char * _Nonnull category_name OBJC2_UNAVAILABLE;
|
||||
char * _Nonnull class_name OBJC2_UNAVAILABLE;
|
||||
struct objc_method_list * _Nullable instance_methods OBJC2_UNAVAILABLE;
|
||||
struct objc_method_list * _Nullable class_methods OBJC2_UNAVAILABLE;
|
||||
struct objc_protocol_list * _Nullable protocols OBJC2_UNAVAILABLE;
|
||||
} OBJC2_UNAVAILABLE;
|
||||
|
||||
|
||||
struct objc_ivar {
|
||||
char * _Nullable ivar_name OBJC2_UNAVAILABLE;
|
||||
char * _Nullable ivar_type OBJC2_UNAVAILABLE;
|
||||
int ivar_offset OBJC2_UNAVAILABLE;
|
||||
#ifdef __LP64__
|
||||
int space OBJC2_UNAVAILABLE;
|
||||
#endif
|
||||
} OBJC2_UNAVAILABLE;
|
||||
|
||||
struct objc_ivar_list {
|
||||
int ivar_count OBJC2_UNAVAILABLE;
|
||||
#ifdef __LP64__
|
||||
int space OBJC2_UNAVAILABLE;
|
||||
#endif
|
||||
/* variable length structure */
|
||||
struct objc_ivar ivar_list[1] OBJC2_UNAVAILABLE;
|
||||
} OBJC2_UNAVAILABLE;
|
||||
|
||||
|
||||
struct objc_method {
|
||||
SEL _Nonnull method_name OBJC2_UNAVAILABLE;
|
||||
char * _Nullable method_types OBJC2_UNAVAILABLE;
|
||||
IMP _Nonnull method_imp OBJC2_UNAVAILABLE;
|
||||
} OBJC2_UNAVAILABLE;
|
||||
|
||||
struct objc_method_list {
|
||||
struct objc_method_list * _Nullable obsolete OBJC2_UNAVAILABLE;
|
||||
|
||||
int method_count OBJC2_UNAVAILABLE;
|
||||
#ifdef __LP64__
|
||||
int space OBJC2_UNAVAILABLE;
|
||||
#endif
|
||||
/* variable length structure */
|
||||
struct objc_method method_list[1] OBJC2_UNAVAILABLE;
|
||||
} OBJC2_UNAVAILABLE;
|
||||
|
||||
|
||||
typedef struct objc_symtab *Symtab OBJC2_UNAVAILABLE;
|
||||
|
||||
struct objc_symtab {
|
||||
unsigned long sel_ref_cnt OBJC2_UNAVAILABLE;
|
||||
SEL _Nonnull * _Nullable refs OBJC2_UNAVAILABLE;
|
||||
unsigned short cls_def_cnt OBJC2_UNAVAILABLE;
|
||||
unsigned short cat_def_cnt OBJC2_UNAVAILABLE;
|
||||
void * _Nullable defs[1] /* variable size */ OBJC2_UNAVAILABLE;
|
||||
} OBJC2_UNAVAILABLE;
|
||||
|
||||
|
||||
typedef struct objc_cache *Cache OBJC2_UNAVAILABLE;
|
||||
|
||||
#define CACHE_BUCKET_NAME(B) ((B)->method_name)
|
||||
#define CACHE_BUCKET_IMP(B) ((B)->method_imp)
|
||||
#define CACHE_BUCKET_VALID(B) (B)
|
||||
#ifndef __LP64__
|
||||
#define CACHE_HASH(sel, mask) (((uintptr_t)(sel)>>2) & (mask))
|
||||
#else
|
||||
#define CACHE_HASH(sel, mask) (((unsigned int)((uintptr_t)(sel)>>3)) & (mask))
|
||||
#endif
|
||||
struct objc_cache {
|
||||
unsigned int mask /* total = mask + 1 */ OBJC2_UNAVAILABLE;
|
||||
unsigned int occupied OBJC2_UNAVAILABLE;
|
||||
Method _Nullable buckets[1] OBJC2_UNAVAILABLE;
|
||||
};
|
||||
|
||||
|
||||
typedef struct objc_module *Module OBJC2_UNAVAILABLE;
|
||||
|
||||
struct objc_module {
|
||||
unsigned long version OBJC2_UNAVAILABLE;
|
||||
unsigned long size OBJC2_UNAVAILABLE;
|
||||
const char * _Nullable name OBJC2_UNAVAILABLE;
|
||||
Symtab _Nullable symtab OBJC2_UNAVAILABLE;
|
||||
} OBJC2_UNAVAILABLE;
|
||||
|
||||
#else
|
||||
|
||||
struct objc_method_list;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* Obsolete functions */
|
||||
|
||||
OBJC_EXPORT IMP _Nullable
|
||||
@ -1893,9 +2057,108 @@ OBJC_EXPORT id _Nullable
|
||||
object_copyFromZone(id _Nullable anObject, size_t nBytes, void * _Nullable z)
|
||||
OBJC_OSX_DEPRECATED_OTHERS_UNAVAILABLE(10.0, 10.5, "use object_copy instead");
|
||||
|
||||
OBJC_EXPORT id _Nullable
|
||||
object_realloc(id _Nullable anObject, size_t nBytes)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT id _Nullable
|
||||
object_reallocFromZone(id _Nullable anObject, size_t nBytes, void * _Nullable z)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
#define OBSOLETE_OBJC_GETCLASSES 1
|
||||
OBJC_EXPORT void * _Nonnull
|
||||
objc_getClasses(void)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT void
|
||||
objc_addClass(Class _Nonnull myClass)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT void
|
||||
objc_setClassHandler(int (* _Nullable )(const char * _Nonnull))
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT void
|
||||
objc_setMultithreaded(BOOL flag)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT id _Nullable
|
||||
class_createInstanceFromZone(Class _Nullable, size_t idxIvars,
|
||||
void * _Nullable z)
|
||||
OBJC_OSX_DEPRECATED_OTHERS_UNAVAILABLE(10.0, 10.5, "use class_createInstance instead");
|
||||
|
||||
OBJC_EXPORT void
|
||||
class_addMethods(Class _Nullable, struct objc_method_list * _Nonnull)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT void
|
||||
class_removeMethods(Class _Nullable, struct objc_method_list * _Nonnull)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT void
|
||||
_objc_resolve_categories_for_class(Class _Nonnull cls)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT Class _Nonnull
|
||||
class_poseAs(Class _Nonnull imposter, Class _Nonnull original)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT unsigned int
|
||||
method_getSizeOfArguments(Method _Nonnull m)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT unsigned
|
||||
method_getArgumentInfo(struct objc_method * _Nonnull m, int arg,
|
||||
const char * _Nullable * _Nonnull type,
|
||||
int * _Nonnull offset)
|
||||
UNAVAILABLE_ATTRIBUTE // This function was accidentally deleted in 10.9.
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT Class _Nullable
|
||||
objc_getOrigClass(const char * _Nonnull name)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
#define OBJC_NEXT_METHOD_LIST 1
|
||||
OBJC_EXPORT struct objc_method_list * _Nullable
|
||||
class_nextMethodList(Class _Nullable, void * _Nullable * _Nullable)
|
||||
OBJC2_UNAVAILABLE;
|
||||
// usage for nextMethodList
|
||||
//
|
||||
// void *iterator = 0;
|
||||
// struct objc_method_list *mlist;
|
||||
// while ( mlist = class_nextMethodList( cls, &iterator ) )
|
||||
// ;
|
||||
|
||||
OBJC_EXPORT id _Nullable
|
||||
(* _Nonnull _alloc)(Class _Nullable, size_t)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT id _Nullable
|
||||
(* _Nonnull _copy)(id _Nullable, size_t)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT id _Nullable
|
||||
(* _Nonnull _realloc)(id _Nullable, size_t)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT id _Nullable
|
||||
(* _Nonnull _dealloc)(id _Nullable)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT id _Nullable
|
||||
(* _Nonnull _zoneAlloc)(Class _Nullable, size_t, void * _Nullable)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT id _Nullable
|
||||
(* _Nonnull _zoneRealloc)(id _Nullable, size_t, void * _Nullable)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT id _Nullable
|
||||
(* _Nonnull _zoneCopy)(id _Nullable, size_t, void * _Nullable)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
OBJC_EXPORT void
|
||||
(* _Nonnull _error)(id _Nullable, const char * _Nonnull, va_list)
|
||||
OBJC2_UNAVAILABLE;
|
||||
|
||||
#endif
|
||||
322
lib/libc/include/any-macos.11-any/os/base.h
vendored
Normal file
322
lib/libc/include/any-macos.11-any/os/base.h
vendored
Normal file
@ -0,0 +1,322 @@
|
||||
/*
|
||||
* Copyright (c) 2008-2020 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 __OS_BASE__
|
||||
#define __OS_BASE__
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
|
||||
#ifndef __has_builtin
|
||||
#define __has_builtin(x) 0
|
||||
#endif
|
||||
#ifndef __has_include
|
||||
#define __has_include(x) 0
|
||||
#endif
|
||||
#ifndef __has_feature
|
||||
#define __has_feature(x) 0
|
||||
#endif
|
||||
#ifndef __has_attribute
|
||||
#define __has_attribute(x) 0
|
||||
#endif
|
||||
#ifndef __has_extension
|
||||
#define __has_extension(x) 0
|
||||
#endif
|
||||
|
||||
#undef OS_INLINE // <sys/_types/_os_inline.h>
|
||||
#if __GNUC__
|
||||
#define OS_NORETURN __attribute__((__noreturn__))
|
||||
#define OS_NOTHROW __attribute__((__nothrow__))
|
||||
#define OS_NONNULL1 __attribute__((__nonnull__(1)))
|
||||
#define OS_NONNULL2 __attribute__((__nonnull__(2)))
|
||||
#define OS_NONNULL3 __attribute__((__nonnull__(3)))
|
||||
#define OS_NONNULL4 __attribute__((__nonnull__(4)))
|
||||
#define OS_NONNULL5 __attribute__((__nonnull__(5)))
|
||||
#define OS_NONNULL6 __attribute__((__nonnull__(6)))
|
||||
#define OS_NONNULL7 __attribute__((__nonnull__(7)))
|
||||
#define OS_NONNULL8 __attribute__((__nonnull__(8)))
|
||||
#define OS_NONNULL9 __attribute__((__nonnull__(9)))
|
||||
#define OS_NONNULL10 __attribute__((__nonnull__(10)))
|
||||
#define OS_NONNULL11 __attribute__((__nonnull__(11)))
|
||||
#define OS_NONNULL12 __attribute__((__nonnull__(12)))
|
||||
#define OS_NONNULL13 __attribute__((__nonnull__(13)))
|
||||
#define OS_NONNULL14 __attribute__((__nonnull__(14)))
|
||||
#define OS_NONNULL15 __attribute__((__nonnull__(15)))
|
||||
#define OS_NONNULL_ALL __attribute__((__nonnull__))
|
||||
#define OS_SENTINEL __attribute__((__sentinel__))
|
||||
#define OS_PURE __attribute__((__pure__))
|
||||
#define OS_CONST __attribute__((__const__))
|
||||
#define OS_WARN_RESULT __attribute__((__warn_unused_result__))
|
||||
#define OS_MALLOC __attribute__((__malloc__))
|
||||
#define OS_USED __attribute__((__used__))
|
||||
#define OS_UNUSED __attribute__((__unused__))
|
||||
#define OS_COLD __attribute__((__cold__))
|
||||
#define OS_WEAK __attribute__((__weak__))
|
||||
#define OS_WEAK_IMPORT __attribute__((__weak_import__))
|
||||
#define OS_NOINLINE __attribute__((__noinline__))
|
||||
#define OS_ALWAYS_INLINE __attribute__((__always_inline__))
|
||||
#define OS_TRANSPARENT_UNION __attribute__((__transparent_union__))
|
||||
#define OS_ALIGNED(n) __attribute__((__aligned__((n))))
|
||||
#define OS_FORMAT_PRINTF(x, y) __attribute__((__format__(printf,x,y)))
|
||||
#define OS_EXPORT extern __attribute__((__visibility__("default")))
|
||||
#define OS_INLINE static __inline__
|
||||
#define OS_EXPECT(x, v) __builtin_expect((x), (v))
|
||||
#else
|
||||
#define OS_NORETURN
|
||||
#define OS_NOTHROW
|
||||
#define OS_NONNULL1
|
||||
#define OS_NONNULL2
|
||||
#define OS_NONNULL3
|
||||
#define OS_NONNULL4
|
||||
#define OS_NONNULL5
|
||||
#define OS_NONNULL6
|
||||
#define OS_NONNULL7
|
||||
#define OS_NONNULL8
|
||||
#define OS_NONNULL9
|
||||
#define OS_NONNULL10
|
||||
#define OS_NONNULL11
|
||||
#define OS_NONNULL12
|
||||
#define OS_NONNULL13
|
||||
#define OS_NONNULL14
|
||||
#define OS_NONNULL15
|
||||
#define OS_NONNULL_ALL
|
||||
#define OS_SENTINEL
|
||||
#define OS_PURE
|
||||
#define OS_CONST
|
||||
#define OS_WARN_RESULT
|
||||
#define OS_MALLOC
|
||||
#define OS_USED
|
||||
#define OS_UNUSED
|
||||
#define OS_COLD
|
||||
#define OS_WEAK
|
||||
#define OS_WEAK_IMPORT
|
||||
#define OS_NOINLINE
|
||||
#define OS_ALWAYS_INLINE
|
||||
#define OS_TRANSPARENT_UNION
|
||||
#define OS_ALIGNED(n)
|
||||
#define OS_FORMAT_PRINTF(x, y)
|
||||
#define OS_EXPORT extern
|
||||
#define OS_INLINE static inline
|
||||
#define OS_EXPECT(x, v) (x)
|
||||
#endif
|
||||
|
||||
#if __has_attribute(noescape)
|
||||
#define OS_NOESCAPE __attribute__((__noescape__))
|
||||
#else
|
||||
#define OS_NOESCAPE
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus) && defined(__clang__)
|
||||
#define OS_FALLTHROUGH [[clang::fallthrough]]
|
||||
#elif __has_attribute(fallthrough)
|
||||
#define OS_FALLTHROUGH __attribute__((__fallthrough__))
|
||||
#else
|
||||
#define OS_FALLTHROUGH
|
||||
#endif
|
||||
|
||||
#if __has_feature(assume_nonnull)
|
||||
#define OS_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin")
|
||||
#define OS_ASSUME_NONNULL_END _Pragma("clang assume_nonnull end")
|
||||
#else
|
||||
#define OS_ASSUME_NONNULL_BEGIN
|
||||
#define OS_ASSUME_NONNULL_END
|
||||
#endif
|
||||
|
||||
#if __has_builtin(__builtin_assume)
|
||||
#define OS_COMPILER_CAN_ASSUME(expr) __builtin_assume(expr)
|
||||
#else
|
||||
#define OS_COMPILER_CAN_ASSUME(expr) ((void)(expr))
|
||||
#endif
|
||||
|
||||
#if __has_extension(attribute_overloadable)
|
||||
#define OS_OVERLOADABLE __attribute__((__overloadable__))
|
||||
#else
|
||||
#define OS_OVERLOADABLE
|
||||
#endif
|
||||
|
||||
#if __has_attribute(enum_extensibility)
|
||||
#define __OS_ENUM_ATTR __attribute__((enum_extensibility(open)))
|
||||
#define __OS_ENUM_ATTR_CLOSED __attribute__((enum_extensibility(closed)))
|
||||
#else
|
||||
#define __OS_ENUM_ATTR
|
||||
#define __OS_ENUM_ATTR_CLOSED
|
||||
#endif // __has_attribute(enum_extensibility)
|
||||
|
||||
#if __has_attribute(flag_enum)
|
||||
/*!
|
||||
* Compile with -Wflag-enum and -Wassign-enum to enforce at definition and
|
||||
* assignment, respectively, i.e. -Wflag-enum prevents you from creating new
|
||||
* enumeration values from illegal values within the enum definition, and
|
||||
* -Wassign-enum prevents you from assigning illegal values to a variable of the
|
||||
* enum type.
|
||||
*/
|
||||
#define __OS_OPTIONS_ATTR __attribute__((flag_enum))
|
||||
#else
|
||||
#define __OS_OPTIONS_ATTR
|
||||
#endif // __has_attribute(flag_enum)
|
||||
|
||||
#if __has_feature(objc_fixed_enum) || __has_extension(cxx_fixed_enum) || \
|
||||
__has_extension(cxx_strong_enums)
|
||||
#define OS_ENUM(_name, _type, ...) \
|
||||
typedef enum : _type { __VA_ARGS__ } _name##_t
|
||||
#define OS_CLOSED_ENUM(_name, _type, ...) \
|
||||
typedef enum : _type { __VA_ARGS__ } __OS_ENUM_ATTR_CLOSED _name##_t
|
||||
#define OS_OPTIONS(_name, _type, ...) \
|
||||
typedef enum : _type { __VA_ARGS__ } __OS_ENUM_ATTR __OS_OPTIONS_ATTR _name##_t
|
||||
#define OS_CLOSED_OPTIONS(_name, _type, ...) \
|
||||
typedef enum : _type { __VA_ARGS__ } __OS_ENUM_ATTR_CLOSED __OS_OPTIONS_ATTR _name##_t
|
||||
#else
|
||||
/*!
|
||||
* There is unfortunately no good way in plain C to have both fixed-type enums
|
||||
* and enforcement for clang's enum_extensibility extensions. The primary goal
|
||||
* of these macros is to allow you to define an enum and specify its width in a
|
||||
* single statement, and for plain C that is accomplished by defining an
|
||||
* anonymous enum and then separately typedef'ing the requested type name to the
|
||||
* requested underlying integer type. So the type emitted actually has no
|
||||
* relationship at all to the enum, and therefore while the compiler could
|
||||
* enforce enum extensibility if you used the enum type, it cannot do so if you
|
||||
* use the "_t" type resulting from this expression.
|
||||
*
|
||||
* But we still define a named enum type and decorate it appropriately for you,
|
||||
* so if you really want the enum extensibility enforcement, you can use the
|
||||
* enum type yourself, i.e. when compiling with a C compiler:
|
||||
*
|
||||
* OS_CLOSED_ENUM(my_type, uint64_t,
|
||||
* FOO,
|
||||
* BAR,
|
||||
* BAZ,
|
||||
* );
|
||||
*
|
||||
* my_type_t mt = 98; // legal
|
||||
* enum my_type emt = 98; // illegal
|
||||
*
|
||||
* But be aware that the underlying enum type's width is subject only to the C
|
||||
* language's guarantees -- namely that it will be compatible with int, char,
|
||||
* and unsigned char. It is not safe to rely on the size of this type.
|
||||
*
|
||||
* When compiling in ObjC or C++, both of the above assignments are illegal.
|
||||
*/
|
||||
#define __OS_ENUM_C_FALLBACK(_name, _type, ...) \
|
||||
typedef _type _name##_t; enum _name { __VA_ARGS__ }
|
||||
|
||||
#define OS_ENUM(_name, _type, ...) \
|
||||
typedef _type _name##_t; enum { __VA_ARGS__ }
|
||||
#define OS_CLOSED_ENUM(_name, _type, ...) \
|
||||
__OS_ENUM_C_FALLBACK(_name, _type, ## __VA_ARGS__) \
|
||||
__OS_ENUM_ATTR_CLOSED
|
||||
#define OS_OPTIONS(_name, _type, ...) \
|
||||
__OS_ENUM_C_FALLBACK(_name, _type, ## __VA_ARGS__) \
|
||||
__OS_ENUM_ATTR __OS_OPTIONS_ATTR
|
||||
#define OS_CLOSED_OPTIONS(_name, _type, ...) \
|
||||
__OS_ENUM_C_FALLBACK(_name, _type, ## __VA_ARGS__) \
|
||||
__OS_ENUM_ATTR_CLOSED __OS_OPTIONS_ATTR
|
||||
#endif // __has_feature(objc_fixed_enum) || __has_extension(cxx_strong_enums)
|
||||
|
||||
#if __has_feature(attribute_availability_swift)
|
||||
// equivalent to __SWIFT_UNAVAILABLE from Availability.h
|
||||
#define OS_SWIFT_UNAVAILABLE(_msg) \
|
||||
__attribute__((__availability__(swift, unavailable, message=_msg)))
|
||||
#else
|
||||
#define OS_SWIFT_UNAVAILABLE(_msg)
|
||||
#endif
|
||||
|
||||
#if __has_attribute(swift_private)
|
||||
# define OS_REFINED_FOR_SWIFT __attribute__((__swift_private__))
|
||||
#else
|
||||
# define OS_REFINED_FOR_SWIFT
|
||||
#endif
|
||||
|
||||
#if __has_attribute(swift_name)
|
||||
# define OS_SWIFT_NAME(_name) __attribute__((__swift_name__(#_name)))
|
||||
#else
|
||||
# define OS_SWIFT_NAME(_name)
|
||||
#endif
|
||||
|
||||
#define __OS_STRINGIFY(s) #s
|
||||
#define OS_STRINGIFY(s) __OS_STRINGIFY(s)
|
||||
#define __OS_CONCAT(x, y) x ## y
|
||||
#define OS_CONCAT(x, y) __OS_CONCAT(x, y)
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define os_prevent_tail_call_optimization() __asm__("")
|
||||
#define os_is_compile_time_constant(expr) __builtin_constant_p(expr)
|
||||
#define os_compiler_barrier() __asm__ __volatile__("" ::: "memory")
|
||||
#else
|
||||
#define os_prevent_tail_call_optimization() do { } while (0)
|
||||
#define os_is_compile_time_constant(expr) 0
|
||||
#define os_compiler_barrier() do { } while (0)
|
||||
#endif
|
||||
|
||||
#if __has_attribute(not_tail_called)
|
||||
#define OS_NOT_TAIL_CALLED __attribute__((__not_tail_called__))
|
||||
#else
|
||||
#define OS_NOT_TAIL_CALLED
|
||||
#endif
|
||||
|
||||
|
||||
typedef void (*os_function_t)(void *_Nullable);
|
||||
|
||||
#ifdef __BLOCKS__
|
||||
/*!
|
||||
* @typedef os_block_t
|
||||
*
|
||||
* @abstract
|
||||
* Generic type for a block taking no arguments and returning no value.
|
||||
*
|
||||
* @discussion
|
||||
* When not building with Objective-C ARC, a block object allocated on or
|
||||
* copied to the heap must be released with a -[release] message or the
|
||||
* Block_release() function.
|
||||
*
|
||||
* The declaration of a block literal allocates storage on the stack.
|
||||
* Therefore, this is an invalid construct:
|
||||
* <code>
|
||||
* os_block_t block;
|
||||
* if (x) {
|
||||
* block = ^{ printf("true\n"); };
|
||||
* } else {
|
||||
* block = ^{ printf("false\n"); };
|
||||
* }
|
||||
* block(); // unsafe!!!
|
||||
* </code>
|
||||
*
|
||||
* What is happening behind the scenes:
|
||||
* <code>
|
||||
* if (x) {
|
||||
* struct Block __tmp_1 = ...; // setup details
|
||||
* block = &__tmp_1;
|
||||
* } else {
|
||||
* struct Block __tmp_2 = ...; // setup details
|
||||
* block = &__tmp_2;
|
||||
* }
|
||||
* </code>
|
||||
*
|
||||
* As the example demonstrates, the address of a stack variable is escaping the
|
||||
* scope in which it is allocated. That is a classic C bug.
|
||||
*
|
||||
* Instead, the block literal must be copied to the heap with the Block_copy()
|
||||
* function or by sending it a -[copy] message.
|
||||
*/
|
||||
typedef void (^os_block_t)(void);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#endif // __OS_BASE__
|
||||
592
lib/libc/include/any-macos.11-any/pthread.h
vendored
Normal file
592
lib/libc/include/any-macos.11-any/pthread.h
vendored
Normal file
@ -0,0 +1,592 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2012 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* Copyright 1996 1995 by Open Software Foundation, Inc. 1997 1996 1995 1994 1993 1992 1991
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software and
|
||||
* its documentation for any purpose and without fee is hereby granted,
|
||||
* provided that the above copyright notice appears in all copies and
|
||||
* that both the copyright notice and this permission notice appear in
|
||||
* supporting documentation.
|
||||
*
|
||||
* OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
|
||||
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
|
||||
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
* LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
|
||||
* NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
*/
|
||||
/*
|
||||
* MkLinux
|
||||
*/
|
||||
|
||||
/*
|
||||
* POSIX Threads - IEEE 1003.1c
|
||||
*/
|
||||
|
||||
#ifndef _PTHREAD_H
|
||||
#define _PTHREAD_H
|
||||
|
||||
#include <_types.h>
|
||||
#include <pthread/sched.h>
|
||||
#include <time.h>
|
||||
#include <sys/_pthread/_pthread_types.h>
|
||||
#include <sys/_pthread/_pthread_attr_t.h>
|
||||
#include <sys/_pthread/_pthread_cond_t.h>
|
||||
#include <sys/_pthread/_pthread_condattr_t.h>
|
||||
#include <sys/_pthread/_pthread_key_t.h>
|
||||
#include <sys/_pthread/_pthread_mutex_t.h>
|
||||
#include <sys/_pthread/_pthread_mutexattr_t.h>
|
||||
#include <sys/_pthread/_pthread_once_t.h>
|
||||
#include <sys/_pthread/_pthread_rwlock_t.h>
|
||||
#include <sys/_pthread/_pthread_rwlockattr_t.h>
|
||||
#include <sys/_pthread/_pthread_t.h>
|
||||
|
||||
#include <pthread/qos.h>
|
||||
|
||||
#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) || defined(__cplusplus)
|
||||
|
||||
#include <sys/_types/_mach_port_t.h>
|
||||
#include <sys/_types/_sigset_t.h>
|
||||
|
||||
#endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE || __cplusplus */
|
||||
|
||||
/*
|
||||
* These symbols indicate which [optional] features are available
|
||||
* They can be tested at compile time via '#ifdef XXX'
|
||||
* The way to check for pthreads is like so:
|
||||
|
||||
* #include <unistd.h>
|
||||
* #ifdef _POSIX_THREADS
|
||||
* #include <pthread.h>
|
||||
* #endif
|
||||
|
||||
*/
|
||||
|
||||
/* These will be moved to unistd.h */
|
||||
|
||||
/*
|
||||
* Note: These data structures are meant to be opaque. Only enough
|
||||
* structure is exposed to support initializers.
|
||||
* All of the typedefs will be moved to <sys/types.h>
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <Availability.h>
|
||||
|
||||
#if __has_feature(assume_nonnull)
|
||||
_Pragma("clang assume_nonnull begin")
|
||||
#endif
|
||||
__BEGIN_DECLS
|
||||
/*
|
||||
* Threads
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* Cancel cleanup handler management. Note, since these are implemented as macros,
|
||||
* they *MUST* occur in matched pairs!
|
||||
*/
|
||||
|
||||
#define pthread_cleanup_push(func, val) \
|
||||
{ \
|
||||
struct __darwin_pthread_handler_rec __handler; \
|
||||
pthread_t __self = pthread_self(); \
|
||||
__handler.__routine = func; \
|
||||
__handler.__arg = val; \
|
||||
__handler.__next = __self->__cleanup_stack; \
|
||||
__self->__cleanup_stack = &__handler;
|
||||
|
||||
#define pthread_cleanup_pop(execute) \
|
||||
/* Note: 'handler' must be in this same lexical context! */ \
|
||||
__self->__cleanup_stack = __handler.__next; \
|
||||
if (execute) (__handler.__routine)(__handler.__arg); \
|
||||
}
|
||||
|
||||
/*
|
||||
* Thread attributes
|
||||
*/
|
||||
|
||||
#define PTHREAD_CREATE_JOINABLE 1
|
||||
#define PTHREAD_CREATE_DETACHED 2
|
||||
|
||||
#define PTHREAD_INHERIT_SCHED 1
|
||||
#define PTHREAD_EXPLICIT_SCHED 2
|
||||
|
||||
#define PTHREAD_CANCEL_ENABLE 0x01 /* Cancel takes place at next cancellation point */
|
||||
#define PTHREAD_CANCEL_DISABLE 0x00 /* Cancel postponed */
|
||||
#define PTHREAD_CANCEL_DEFERRED 0x02 /* Cancel waits until cancellation point */
|
||||
#define PTHREAD_CANCEL_ASYNCHRONOUS 0x00 /* Cancel occurs immediately */
|
||||
|
||||
/* Value returned from pthread_join() when a thread is canceled */
|
||||
#define PTHREAD_CANCELED ((void *) 1)
|
||||
|
||||
/* We only support PTHREAD_SCOPE_SYSTEM */
|
||||
#define PTHREAD_SCOPE_SYSTEM 1
|
||||
#define PTHREAD_SCOPE_PROCESS 2
|
||||
|
||||
#define PTHREAD_PROCESS_SHARED 1
|
||||
#define PTHREAD_PROCESS_PRIVATE 2
|
||||
|
||||
/*
|
||||
* Mutex protocol attributes
|
||||
*/
|
||||
#define PTHREAD_PRIO_NONE 0
|
||||
#define PTHREAD_PRIO_INHERIT 1
|
||||
#define PTHREAD_PRIO_PROTECT 2
|
||||
|
||||
/*
|
||||
* Mutex type attributes
|
||||
*/
|
||||
#define PTHREAD_MUTEX_NORMAL 0
|
||||
#define PTHREAD_MUTEX_ERRORCHECK 1
|
||||
#define PTHREAD_MUTEX_RECURSIVE 2
|
||||
#define PTHREAD_MUTEX_DEFAULT PTHREAD_MUTEX_NORMAL
|
||||
|
||||
/*
|
||||
* Mutex policy attributes
|
||||
*/
|
||||
#define PTHREAD_MUTEX_POLICY_FAIRSHARE_NP 1
|
||||
#define PTHREAD_MUTEX_POLICY_FIRSTFIT_NP 3
|
||||
|
||||
/*
|
||||
* RWLock variables
|
||||
*/
|
||||
#define PTHREAD_RWLOCK_INITIALIZER {_PTHREAD_RWLOCK_SIG_init, {0}}
|
||||
|
||||
/*
|
||||
* Mutex variables
|
||||
*/
|
||||
#define PTHREAD_MUTEX_INITIALIZER {_PTHREAD_MUTEX_SIG_init, {0}}
|
||||
|
||||
/* <rdar://problem/10854763> */
|
||||
#if ((__MAC_OS_X_VERSION_MIN_REQUIRED && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070) || (__IPHONE_OS_VERSION_MIN_REQUIRED && __IPHONE_OS_VERSION_MIN_REQUIRED >= 50000)) || defined(__DRIVERKIT_VERSION_MIN_REQUIRED)
|
||||
# if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE)
|
||||
# define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER {_PTHREAD_ERRORCHECK_MUTEX_SIG_init, {0}}
|
||||
# define PTHREAD_RECURSIVE_MUTEX_INITIALIZER {_PTHREAD_RECURSIVE_MUTEX_SIG_init, {0}}
|
||||
# endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE */
|
||||
#endif
|
||||
|
||||
/* <rdar://problem/25944576> */
|
||||
#define _PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT \
|
||||
defined(SWIFT_CLASS_EXTRA) && (!defined(SWIFT_SDK_OVERLAY_PTHREAD_EPOCH) || (SWIFT_SDK_OVERLAY_PTHREAD_EPOCH < 1))
|
||||
|
||||
/*
|
||||
* Condition variable attributes
|
||||
*/
|
||||
|
||||
/*
|
||||
* Condition variables
|
||||
*/
|
||||
|
||||
#define PTHREAD_COND_INITIALIZER {_PTHREAD_COND_SIG_init, {0}}
|
||||
|
||||
/*
|
||||
* Initialization control (once) variables
|
||||
*/
|
||||
|
||||
#define PTHREAD_ONCE_INIT {_PTHREAD_ONCE_SIG_init, {0}}
|
||||
|
||||
/*
|
||||
* Prototypes for all PTHREAD interfaces
|
||||
*/
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_atfork(void (* _Nullable)(void), void (* _Nullable)(void),
|
||||
void (* _Nullable)(void));
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_destroy(pthread_attr_t *);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_getdetachstate(const pthread_attr_t *, int *);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_getguardsize(const pthread_attr_t * __restrict, size_t * __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_getinheritsched(const pthread_attr_t * __restrict, int * __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_getschedparam(const pthread_attr_t * __restrict,
|
||||
struct sched_param * __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_getschedpolicy(const pthread_attr_t * __restrict, int * __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_getscope(const pthread_attr_t * __restrict, int * __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_getstack(const pthread_attr_t * __restrict,
|
||||
void * _Nullable * _Nonnull __restrict, size_t * __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_getstackaddr(const pthread_attr_t * __restrict,
|
||||
void * _Nullable * _Nonnull __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_getstacksize(const pthread_attr_t * __restrict, size_t * __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_init(pthread_attr_t *);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_setdetachstate(pthread_attr_t *, int);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_setguardsize(pthread_attr_t *, size_t);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_setinheritsched(pthread_attr_t *, int);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_setschedparam(pthread_attr_t * __restrict,
|
||||
const struct sched_param * __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_setschedpolicy(pthread_attr_t *, int);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_setscope(pthread_attr_t *, int);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_setstack(pthread_attr_t *, void *, size_t);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_setstackaddr(pthread_attr_t *, void *);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_attr_setstacksize(pthread_attr_t *, size_t);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_cancel(pthread_t) __DARWIN_ALIAS(pthread_cancel);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_cond_broadcast(pthread_cond_t *);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_cond_destroy(pthread_cond_t *);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_cond_init(
|
||||
pthread_cond_t * __restrict,
|
||||
const pthread_condattr_t * _Nullable __restrict)
|
||||
__DARWIN_ALIAS(pthread_cond_init);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_cond_signal(pthread_cond_t *);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_cond_timedwait(
|
||||
pthread_cond_t * __restrict, pthread_mutex_t * __restrict,
|
||||
const struct timespec * _Nullable __restrict)
|
||||
__DARWIN_ALIAS_C(pthread_cond_timedwait);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_cond_wait(pthread_cond_t * __restrict,
|
||||
pthread_mutex_t * __restrict) __DARWIN_ALIAS_C(pthread_cond_wait);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_condattr_destroy(pthread_condattr_t *);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_condattr_init(pthread_condattr_t *);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_condattr_getpshared(const pthread_condattr_t * __restrict,
|
||||
int * __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_condattr_setpshared(pthread_condattr_t *, int);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
#if !_PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT
|
||||
int pthread_create(pthread_t _Nullable * _Nonnull __restrict,
|
||||
const pthread_attr_t * _Nullable __restrict,
|
||||
void * _Nullable (* _Nonnull)(void * _Nullable),
|
||||
void * _Nullable __restrict);
|
||||
#else
|
||||
int pthread_create(pthread_t * __restrict,
|
||||
const pthread_attr_t * _Nullable __restrict,
|
||||
void *(* _Nonnull)(void *), void * _Nullable __restrict);
|
||||
#endif // _PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_detach(pthread_t);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_equal(pthread_t _Nullable, pthread_t _Nullable);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
void pthread_exit(void * _Nullable) __dead2;
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_getconcurrency(void);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_getschedparam(pthread_t , int * _Nullable __restrict,
|
||||
struct sched_param * _Nullable __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
void* _Nullable pthread_getspecific(pthread_key_t);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_join(pthread_t , void * _Nullable * _Nullable)
|
||||
__DARWIN_ALIAS_C(pthread_join);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_key_create(pthread_key_t *, void (* _Nullable)(void *));
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_key_delete(pthread_key_t);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_mutex_destroy(pthread_mutex_t *);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_mutex_getprioceiling(const pthread_mutex_t * __restrict,
|
||||
int * __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_mutex_init(pthread_mutex_t * __restrict,
|
||||
const pthread_mutexattr_t * _Nullable __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_mutex_lock(pthread_mutex_t *);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_mutex_setprioceiling(pthread_mutex_t * __restrict, int,
|
||||
int * __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_mutex_trylock(pthread_mutex_t *);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_mutex_unlock(pthread_mutex_t *);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_mutexattr_destroy(pthread_mutexattr_t *) __DARWIN_ALIAS(pthread_mutexattr_destroy);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t * __restrict,
|
||||
int * __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_mutexattr_getprotocol(const pthread_mutexattr_t * __restrict,
|
||||
int * __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_mutexattr_getpshared(const pthread_mutexattr_t * __restrict,
|
||||
int * __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_mutexattr_gettype(const pthread_mutexattr_t * __restrict,
|
||||
int * __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.13.4), ios(11.3), watchos(4.3), tvos(11.3))
|
||||
int pthread_mutexattr_getpolicy_np(const pthread_mutexattr_t * __restrict,
|
||||
int * __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_mutexattr_init(pthread_mutexattr_t *);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, int);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_mutexattr_settype(pthread_mutexattr_t *, int);
|
||||
|
||||
__API_AVAILABLE(macos(10.7), ios(5.0))
|
||||
int pthread_mutexattr_setpolicy_np(pthread_mutexattr_t *, int);
|
||||
|
||||
__SWIFT_UNAVAILABLE_MSG("Use lazily initialized globals instead")
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_once(pthread_once_t *, void (* _Nonnull)(void));
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_rwlock_destroy(pthread_rwlock_t * ) __DARWIN_ALIAS(pthread_rwlock_destroy);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_rwlock_init(pthread_rwlock_t * __restrict,
|
||||
const pthread_rwlockattr_t * _Nullable __restrict)
|
||||
__DARWIN_ALIAS(pthread_rwlock_init);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_rwlock_rdlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_rdlock);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_rwlock_tryrdlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_tryrdlock);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_rwlock_trywrlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_trywrlock);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_rwlock_wrlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_wrlock);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_rwlock_unlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_unlock);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_rwlockattr_destroy(pthread_rwlockattr_t *);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t * __restrict,
|
||||
int * __restrict);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_rwlockattr_init(pthread_rwlockattr_t *);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
pthread_t pthread_self(void);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_setcancelstate(int , int * _Nullable)
|
||||
__DARWIN_ALIAS(pthread_setcancelstate);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_setcanceltype(int , int * _Nullable)
|
||||
__DARWIN_ALIAS(pthread_setcanceltype);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_setconcurrency(int);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_setschedparam(pthread_t, int, const struct sched_param *);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_setspecific(pthread_key_t , const void * _Nullable);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
void pthread_testcancel(void) __DARWIN_ALIAS(pthread_testcancel);
|
||||
|
||||
#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) || defined(__cplusplus)
|
||||
|
||||
/* returns non-zero if pthread_create or cthread_fork have been called */
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_is_threaded_np(void);
|
||||
|
||||
__API_AVAILABLE(macos(10.6), ios(3.2))
|
||||
int pthread_threadid_np(pthread_t _Nullable,__uint64_t* _Nullable);
|
||||
|
||||
/*SPI to set and get pthread name*/
|
||||
__API_AVAILABLE(macos(10.6), ios(3.2))
|
||||
int pthread_getname_np(pthread_t,char*,size_t);
|
||||
|
||||
__API_AVAILABLE(macos(10.6), ios(3.2))
|
||||
int pthread_setname_np(const char*);
|
||||
|
||||
/* returns non-zero if the current thread is the main thread */
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_main_np(void);
|
||||
|
||||
/* return the mach thread bound to the pthread */
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
mach_port_t pthread_mach_thread_np(pthread_t);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
size_t pthread_get_stacksize_np(pthread_t);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
void* pthread_get_stackaddr_np(pthread_t);
|
||||
|
||||
/* Like pthread_cond_signal(), but only wake up the specified pthread */
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_cond_signal_thread_np(pthread_cond_t *, pthread_t _Nullable);
|
||||
|
||||
/* Like pthread_cond_timedwait, but use a relative timeout */
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_cond_timedwait_relative_np(pthread_cond_t *, pthread_mutex_t *,
|
||||
const struct timespec * _Nullable);
|
||||
|
||||
/* Like pthread_create(), but leaves the thread suspended */
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
#if !_PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT
|
||||
int pthread_create_suspended_np(
|
||||
pthread_t _Nullable * _Nonnull, const pthread_attr_t * _Nullable,
|
||||
void * _Nullable (* _Nonnull)(void * _Nullable), void * _Nullable);
|
||||
#else
|
||||
int pthread_create_suspended_np(pthread_t *, const pthread_attr_t * _Nullable,
|
||||
void *(* _Nonnull)(void *), void * _Nullable);
|
||||
#endif
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_kill(pthread_t, int);
|
||||
|
||||
__API_AVAILABLE(macos(10.5), ios(2.0))
|
||||
_Nullable pthread_t pthread_from_mach_thread_np(mach_port_t);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
int pthread_sigmask(int, const sigset_t * _Nullable, sigset_t * _Nullable)
|
||||
__DARWIN_ALIAS(pthread_sigmask);
|
||||
|
||||
__API_AVAILABLE(macos(10.4), ios(2.0))
|
||||
void pthread_yield_np(void);
|
||||
|
||||
__API_AVAILABLE(macos(11.0))
|
||||
__API_UNAVAILABLE(ios, tvos, watchos, driverkit)
|
||||
void pthread_jit_write_protect_np(int enabled);
|
||||
|
||||
__API_AVAILABLE(macos(11.0))
|
||||
__API_UNAVAILABLE(ios, tvos, watchos, driverkit)
|
||||
int pthread_jit_write_protect_supported_np(void);
|
||||
|
||||
/*!
|
||||
* @function pthread_cpu_number_np
|
||||
*
|
||||
* @param cpu_number_out
|
||||
* The CPU number that the thread was running on at the time of query.
|
||||
* This cpu number is in the interval [0, ncpus) (from sysctlbyname("hw.ncpu"))
|
||||
*
|
||||
* @result
|
||||
* This function returns 0 or the value of errno if an error occurred.
|
||||
*
|
||||
* @note
|
||||
* Optimizations of per-CPU datastructures based on the result of this function
|
||||
* still require synchronization since it is not guaranteed that the thread will
|
||||
* still be on the same CPU by the time the function returns.
|
||||
*/
|
||||
__API_AVAILABLE(macos(11.0), ios(14.2), tvos(14.2), watchos(7.1))
|
||||
int
|
||||
pthread_cpu_number_np(size_t *cpu_number_out);
|
||||
|
||||
#endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE || __cplusplus */
|
||||
__END_DECLS
|
||||
#if __has_feature(assume_nonnull)
|
||||
_Pragma("clang assume_nonnull end")
|
||||
#endif
|
||||
|
||||
#endif /* _PTHREAD_H */
|
||||
122
lib/libc/include/any-macos.11-any/simd/base.h
vendored
Normal file
122
lib/libc/include/any-macos.11-any/simd/base.h
vendored
Normal file
@ -0,0 +1,122 @@
|
||||
/*! @header
|
||||
* This header defines macros used in the implementation of <simd/simd.h>
|
||||
* types and functions. Even though they are exposed in a public header,
|
||||
* the macros defined in this header are implementation details, and you
|
||||
* should not use or rely on them. They may be changed or removed entirely
|
||||
* in a future release.
|
||||
*
|
||||
* @copyright 2016-2017 Apple, Inc. All rights reserved.
|
||||
* @unsorted */
|
||||
|
||||
#ifndef SIMD_BASE
|
||||
#define SIMD_BASE
|
||||
|
||||
/* Define __has_attribute and __has_include if they aren't available */
|
||||
# ifndef __has_attribute
|
||||
# define __has_attribute(__x) 0
|
||||
# endif
|
||||
# ifndef __has_include
|
||||
# define __has_include(__x) 0
|
||||
# endif
|
||||
# ifndef __has_feature
|
||||
# define __has_feature(__x) 0
|
||||
# endif
|
||||
|
||||
# if __has_attribute(__ext_vector_type__) && __has_attribute(__overloadable__)
|
||||
# define SIMD_COMPILER_HAS_REQUIRED_FEATURES 1
|
||||
# else
|
||||
/* Your compiler is missing one or more features that are hard requirements
|
||||
* for any <simd/simd.h> support. None of the types or functions defined by
|
||||
* the simd headers will be available. */
|
||||
# define SIMD_COMPILER_HAS_REQUIRED_FEATURES 0
|
||||
# endif
|
||||
|
||||
# if SIMD_COMPILER_HAS_REQUIRED_FEATURES
|
||||
# if __has_include(<Availability.h>)
|
||||
# include <Availability.h>
|
||||
/* A number of new features are added in newer releases; most of these are
|
||||
* inline in the header, which makes them available even when targeting older
|
||||
* OS versions. Those that make external calls, however, are only available
|
||||
* when targeting the release in which they became available. Because of the
|
||||
* way in which simd functions are overloaded, the usual weak-linking tricks
|
||||
* do not work; these functions are simply unavailable when targeting older
|
||||
* versions of the library. */
|
||||
# if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_13 || \
|
||||
__IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_11_0 || \
|
||||
__WATCH_OS_VERSION_MIN_REQUIRED >= __WATCHOS_4_0 || \
|
||||
__TV_OS_VERSION_MIN_REQUIRED >= __TVOS_11_0 || \
|
||||
__DRIVERKIT_VERSION_MIN_REQUIRED >= __DRIVERKIT_19_0
|
||||
# define SIMD_LIBRARY_VERSION 3
|
||||
# elif __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_12 || \
|
||||
__IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_10_0 || \
|
||||
__WATCH_OS_VERSION_MIN_REQUIRED >= __WATCHOS_3_0 || \
|
||||
__TV_OS_VERSION_MIN_REQUIRED >= __TVOS_10_0
|
||||
# define SIMD_LIBRARY_VERSION 2
|
||||
# elif __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_10 || \
|
||||
__IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
|
||||
# define SIMD_LIBRARY_VERSION 1
|
||||
# else
|
||||
# define SIMD_LIBRARY_VERSION 0
|
||||
# endif
|
||||
# else /* !__has_include(<Availability.h>) */
|
||||
# define SIMD_LIBRARY_VERSION 3
|
||||
# define __API_AVAILABLE(...) /* Nothing */
|
||||
# endif
|
||||
|
||||
/* The simd types interoperate with the native simd intrinsic types for each
|
||||
* architecture; the headers that define those types and operations are
|
||||
* automatically included with simd.h */
|
||||
# if defined __ARM_NEON__
|
||||
# include <arm_neon.h>
|
||||
# elif defined __i386__ || defined __x86_64__
|
||||
# include <immintrin.h>
|
||||
# endif
|
||||
|
||||
/* Define a number of function attributes used by the simd functions. */
|
||||
# if __has_attribute(__always_inline__)
|
||||
# define SIMD_INLINE __attribute__((__always_inline__))
|
||||
# else
|
||||
# define SIMD_INLINE inline
|
||||
# endif
|
||||
|
||||
# if __has_attribute(__const__)
|
||||
# define SIMD_CONST __attribute__((__const__))
|
||||
# else
|
||||
# define SIMD_CONST /* nothing */
|
||||
# endif
|
||||
|
||||
# if __has_attribute(__nodebug__)
|
||||
# define SIMD_NODEBUG __attribute__((__nodebug__))
|
||||
# else
|
||||
# define SIMD_NODEBUG /* nothing */
|
||||
# endif
|
||||
|
||||
# if __has_attribute(__deprecated__)
|
||||
# define SIMD_DEPRECATED(message) __attribute__((__deprecated__(message)))
|
||||
# else
|
||||
# define SIMD_DEPRECATED(message) /* nothing */
|
||||
# endif
|
||||
|
||||
#define SIMD_OVERLOAD __attribute__((__overloadable__))
|
||||
#define SIMD_CPPFUNC SIMD_INLINE SIMD_CONST SIMD_NODEBUG
|
||||
#define SIMD_CFUNC SIMD_CPPFUNC SIMD_OVERLOAD
|
||||
#define SIMD_NOINLINE SIMD_CONST SIMD_NODEBUG SIMD_OVERLOAD
|
||||
#define SIMD_NONCONST SIMD_INLINE SIMD_NODEBUG SIMD_OVERLOAD
|
||||
#define __SIMD_INLINE__ SIMD_CPPFUNC
|
||||
#define __SIMD_ATTRIBUTES__ SIMD_CFUNC
|
||||
#define __SIMD_OVERLOAD__ SIMD_OVERLOAD
|
||||
|
||||
#if defined __cplusplus
|
||||
/*! @abstract A boolean scalar. */
|
||||
typedef bool simd_bool;
|
||||
#else
|
||||
/*! @abstract A boolean scalar. */
|
||||
typedef _Bool simd_bool;
|
||||
#endif
|
||||
/*! @abstract A boolean scalar.
|
||||
* @discussion This type is deprecated; In C or Objective-C sources, use
|
||||
* `_Bool` instead. In C++ sources, use `bool`. */
|
||||
typedef simd_bool __SIMD_BOOLEAN_TYPE__;
|
||||
|
||||
# endif /* SIMD_COMPILER_HAS_REQUIRED_FEATURES */
|
||||
#endif /* defined SIMD_BASE */
|
||||
4458
lib/libc/include/any-macos.11-any/simd/common.h
vendored
Normal file
4458
lib/libc/include/any-macos.11-any/simd/common.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1966
lib/libc/include/any-macos.11-any/simd/conversion.h
vendored
Normal file
1966
lib/libc/include/any-macos.11-any/simd/conversion.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
5380
lib/libc/include/any-macos.11-any/simd/math.h
vendored
Normal file
5380
lib/libc/include/any-macos.11-any/simd/math.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1786
lib/libc/include/any-macos.11-any/simd/matrix.h
vendored
Normal file
1786
lib/libc/include/any-macos.11-any/simd/matrix.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user