mirror of
https://github.com/ziglang/zig.git
synced 2026-02-21 16:54:52 +00:00
macos libc headers: add more
these new files are generated by recursively including: sysexits.h mach/mach.h sys/attr.h sys/mount.h crt_externs.h execinfo.h all of which are depended on by LLVM libraries.
This commit is contained in:
parent
cd221b9df9
commit
b0cbd0ad2d
47
lib/libc/include/x86_64-macos-gnu/crt_externs.h
Normal file
47
lib/libc/include/x86_64-macos-gnu/crt_externs.h
Normal file
@ -0,0 +1,47 @@
|
||||
/*
|
||||
* 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@
|
||||
*/
|
||||
/*
|
||||
* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
|
||||
*/
|
||||
|
||||
/*
|
||||
** Prototypes for the functions to get environment information in
|
||||
** the world of dynamic libraries. Lifted from .c file of same name.
|
||||
** Fri Jun 23 12:56:47 PDT 1995
|
||||
** AOF (afreier@next.com)
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
extern char ***_NSGetArgv(void);
|
||||
extern int *_NSGetArgc(void);
|
||||
extern char ***_NSGetEnviron(void);
|
||||
extern char **_NSGetProgname(void);
|
||||
#ifdef __LP64__
|
||||
extern struct mach_header_64 *
|
||||
#else /* !__LP64__ */
|
||||
extern struct mach_header *
|
||||
#endif /* __LP64__ */
|
||||
_NSGetMachExecuteHeader(void);
|
||||
__END_DECLS
|
||||
63
lib/libc/include/x86_64-macos-gnu/execinfo.h
Normal file
63
lib/libc/include/x86_64-macos-gnu/execinfo.h
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_ */
|
||||
199
lib/libc/include/x86_64-macos-gnu/mach/clock_priv.h
Normal file
199
lib/libc/include/x86_64-macos-gnu/mach/clock_priv.h
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_ */
|
||||
127
lib/libc/include/x86_64-macos-gnu/mach/clock_types.h
Normal file
127
lib/libc/include/x86_64-macos-gnu/mach/clock_types.h
Normal file
@ -0,0 +1,127 @@
|
||||
/*
|
||||
* 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@
|
||||
*/
|
||||
/*
|
||||
* File: clock_types.h
|
||||
* Purpose: Clock facility header definitions. These
|
||||
* definitons are needed by both kernel and
|
||||
* user-level software.
|
||||
*/
|
||||
|
||||
/*
|
||||
* All interfaces defined here are obsolete.
|
||||
*/
|
||||
|
||||
#ifndef _MACH_CLOCK_TYPES_H_
|
||||
#define _MACH_CLOCK_TYPES_H_
|
||||
|
||||
#include <stdint.h>
|
||||
#include <mach/time_value.h>
|
||||
|
||||
/*
|
||||
* Type definitions.
|
||||
*/
|
||||
typedef int alarm_type_t; /* alarm time type */
|
||||
typedef int sleep_type_t; /* sleep time type */
|
||||
typedef int clock_id_t; /* clock identification type */
|
||||
typedef int clock_flavor_t; /* clock flavor type */
|
||||
typedef int *clock_attr_t; /* clock attribute type */
|
||||
typedef int clock_res_t; /* clock resolution type */
|
||||
|
||||
/*
|
||||
* Normal time specification used by the kernel clock facility.
|
||||
*/
|
||||
struct mach_timespec {
|
||||
unsigned int tv_sec; /* seconds */
|
||||
clock_res_t tv_nsec; /* nanoseconds */
|
||||
};
|
||||
typedef struct mach_timespec mach_timespec_t;
|
||||
|
||||
/*
|
||||
* Reserved clock id values for default clocks.
|
||||
*/
|
||||
#define SYSTEM_CLOCK 0
|
||||
#define CALENDAR_CLOCK 1
|
||||
|
||||
#define REALTIME_CLOCK 0
|
||||
|
||||
/*
|
||||
* Attribute names.
|
||||
*/
|
||||
#define CLOCK_GET_TIME_RES 1 /* get_time call resolution */
|
||||
/* 2 * was map_time call resolution */
|
||||
#define CLOCK_ALARM_CURRES 3 /* current alarm resolution */
|
||||
#define CLOCK_ALARM_MINRES 4 /* minimum alarm resolution */
|
||||
#define CLOCK_ALARM_MAXRES 5 /* maximum alarm resolution */
|
||||
|
||||
#define NSEC_PER_USEC 1000ull /* nanoseconds per microsecond */
|
||||
#define USEC_PER_SEC 1000000ull /* microseconds per second */
|
||||
#define NSEC_PER_SEC 1000000000ull /* nanoseconds per second */
|
||||
#define NSEC_PER_MSEC 1000000ull /* nanoseconds per millisecond */
|
||||
|
||||
#define BAD_MACH_TIMESPEC(t) \
|
||||
((t)->tv_nsec < 0 || (t)->tv_nsec >= (long)NSEC_PER_SEC)
|
||||
|
||||
/* t1 <=> t2, also (t1 - t2) in nsec with max of +- 1 sec */
|
||||
#define CMP_MACH_TIMESPEC(t1, t2) \
|
||||
((t1)->tv_sec > (t2)->tv_sec ? (long) +NSEC_PER_SEC : \
|
||||
((t1)->tv_sec < (t2)->tv_sec ? (long) -NSEC_PER_SEC : \
|
||||
(t1)->tv_nsec - (t2)->tv_nsec))
|
||||
|
||||
/* t1 += t2 */
|
||||
#define ADD_MACH_TIMESPEC(t1, t2) \
|
||||
do { \
|
||||
if (((t1)->tv_nsec += (t2)->tv_nsec) >= (long) NSEC_PER_SEC) { \
|
||||
(t1)->tv_nsec -= (long) NSEC_PER_SEC; \
|
||||
(t1)->tv_sec += 1; \
|
||||
} \
|
||||
(t1)->tv_sec += (t2)->tv_sec; \
|
||||
} while (0)
|
||||
|
||||
/* t1 -= t2 */
|
||||
#define SUB_MACH_TIMESPEC(t1, t2) \
|
||||
do { \
|
||||
if (((t1)->tv_nsec -= (t2)->tv_nsec) < 0) { \
|
||||
(t1)->tv_nsec += (long) NSEC_PER_SEC; \
|
||||
(t1)->tv_sec -= 1; \
|
||||
} \
|
||||
(t1)->tv_sec -= (t2)->tv_sec; \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* Alarm parameter defines.
|
||||
*/
|
||||
#define ALRMTYPE 0xff /* type (8-bit field) */
|
||||
#define TIME_ABSOLUTE 0x00 /* absolute time */
|
||||
#define TIME_RELATIVE 0x01 /* relative time */
|
||||
|
||||
#define BAD_ALRMTYPE(t) (((t) &~ TIME_RELATIVE) != 0)
|
||||
|
||||
#endif /* _MACH_CLOCK_TYPES_H_ */
|
||||
66
lib/libc/include/x86_64-macos-gnu/mach/dyld_kernel.h
Normal file
66
lib/libc/include/x86_64-macos-gnu/mach/dyld_kernel.h
Normal file
@ -0,0 +1,66 @@
|
||||
/*
|
||||
* Copyright (c) 2016 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_DYLIB_INFO_H_
|
||||
#define _MACH_DYLIB_INFO_H_
|
||||
|
||||
#include <mach/boolean.h>
|
||||
#include <stdint.h>
|
||||
#include <sys/_types/_fsid_t.h>
|
||||
#include <sys/_types/_u_int32_t.h>
|
||||
#include <sys/_types/_fsobj_id_t.h>
|
||||
#include <sys/_types/_uuid_t.h>
|
||||
|
||||
/* These definitions must be kept in sync with the ones in
|
||||
* osfmk/mach/mach_types.defs.
|
||||
*/
|
||||
|
||||
struct dyld_kernel_image_info {
|
||||
uuid_t uuid;
|
||||
fsobj_id_t fsobjid;
|
||||
fsid_t fsid;
|
||||
uint64_t load_addr;
|
||||
};
|
||||
|
||||
struct dyld_kernel_process_info {
|
||||
struct dyld_kernel_image_info cache_image_info;
|
||||
uint64_t timestamp; // mach_absolute_time of last time dyld change to image list
|
||||
uint32_t imageCount; // number of images currently loaded into process
|
||||
uint32_t initialImageCount; // number of images statically loaded into process (before any dlopen() calls)
|
||||
uint8_t dyldState; // one of dyld_process_state_* values
|
||||
boolean_t no_cache; // process is running without a dyld cache
|
||||
boolean_t private_cache; // process is using a private copy of its dyld cache
|
||||
};
|
||||
|
||||
/* typedefs so our MIG is sane */
|
||||
|
||||
typedef struct dyld_kernel_image_info dyld_kernel_image_info_t;
|
||||
typedef struct dyld_kernel_process_info dyld_kernel_process_info_t;
|
||||
typedef dyld_kernel_image_info_t *dyld_kernel_image_info_array_t;
|
||||
|
||||
#endif /* _MACH_DYLIB_INFO_H_ */
|
||||
114
lib/libc/include/x86_64-macos-gnu/mach/error.h
Normal file
114
lib/libc/include/x86_64-macos-gnu/mach/error.h
Normal file
@ -0,0 +1,114 @@
|
||||
/*
|
||||
* 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: mach/error.h
|
||||
* Purpose:
|
||||
* error module definitions
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MACH_ERROR_H_
|
||||
#define _MACH_ERROR_H_
|
||||
|
||||
#include <mach/kern_return.h>
|
||||
|
||||
/*
|
||||
* error number layout as follows:
|
||||
*
|
||||
* hi lo
|
||||
* | system(6) | subsystem(12) | code(14) |
|
||||
*/
|
||||
|
||||
|
||||
#define err_none (mach_error_t)0
|
||||
#define ERR_SUCCESS (mach_error_t)0
|
||||
#define ERR_ROUTINE_NIL (mach_error_fn_t)0
|
||||
|
||||
|
||||
#define err_system(x) ((signed)((((unsigned)(x))&0x3f)<<26))
|
||||
#define err_sub(x) (((x)&0xfff)<<14)
|
||||
|
||||
#define err_get_system(err) (((err)>>26)&0x3f)
|
||||
#define err_get_sub(err) (((err)>>14)&0xfff)
|
||||
#define err_get_code(err) ((err)&0x3fff)
|
||||
|
||||
#define system_emask (err_system(0x3f))
|
||||
#define sub_emask (err_sub(0xfff))
|
||||
#define code_emask (0x3fff)
|
||||
|
||||
|
||||
/* major error systems */
|
||||
#define err_kern err_system(0x0) /* kernel */
|
||||
#define err_us err_system(0x1) /* user space library */
|
||||
#define err_server err_system(0x2) /* user space servers */
|
||||
#define err_ipc err_system(0x3) /* old ipc errors */
|
||||
#define err_mach_ipc err_system(0x4) /* mach-ipc errors */
|
||||
#define err_dipc err_system(0x7) /* distributed ipc */
|
||||
#define err_local err_system(0x3e) /* user defined errors */
|
||||
#define err_ipc_compat err_system(0x3f) /* (compatibility) mach-ipc errors */
|
||||
|
||||
#define err_max_system 0x3f
|
||||
|
||||
|
||||
/* unix errors get lumped into one subsystem */
|
||||
#define unix_err(errno) (err_kern|err_sub(3)|errno)
|
||||
|
||||
typedef kern_return_t mach_error_t;
|
||||
typedef mach_error_t (* mach_error_fn_t)( void );
|
||||
|
||||
#endif /* _MACH_ERROR_H_ */
|
||||
260
lib/libc/include/x86_64-macos-gnu/mach/host_info.h
Normal file
260
lib/libc/include/x86_64-macos-gnu/mach/host_info.h
Normal file
@ -0,0 +1,260 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2015 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 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/host_info.h
|
||||
*
|
||||
* Definitions for host_info call.
|
||||
*/
|
||||
|
||||
#ifndef _MACH_HOST_INFO_H_
|
||||
#define _MACH_HOST_INFO_H_
|
||||
|
||||
#include <mach/message.h>
|
||||
#include <mach/vm_statistics.h>
|
||||
#include <mach/machine.h>
|
||||
#include <mach/machine/vm_types.h>
|
||||
#include <mach/time_value.h>
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
/*
|
||||
* Generic information structure to allow for expansion.
|
||||
*/
|
||||
typedef integer_t *host_info_t; /* varying array of int. */
|
||||
typedef integer_t *host_info64_t; /* varying array of int. */
|
||||
|
||||
#define HOST_INFO_MAX (1024) /* max array size */
|
||||
typedef integer_t host_info_data_t[HOST_INFO_MAX];
|
||||
|
||||
#define KERNEL_VERSION_MAX (512)
|
||||
typedef char kernel_version_t[KERNEL_VERSION_MAX];
|
||||
|
||||
#define KERNEL_BOOT_INFO_MAX (4096)
|
||||
typedef char kernel_boot_info_t[KERNEL_BOOT_INFO_MAX];
|
||||
|
||||
/*
|
||||
* Currently defined information.
|
||||
*/
|
||||
/* host_info() */
|
||||
typedef integer_t host_flavor_t;
|
||||
#define HOST_BASIC_INFO 1 /* basic info */
|
||||
#define HOST_SCHED_INFO 3 /* scheduling info */
|
||||
#define HOST_RESOURCE_SIZES 4 /* kernel struct sizes */
|
||||
#define HOST_PRIORITY_INFO 5 /* priority information */
|
||||
#define HOST_SEMAPHORE_TRAPS 7 /* Has semaphore traps */
|
||||
#define HOST_MACH_MSG_TRAP 8 /* Has mach_msg_trap */
|
||||
#define HOST_VM_PURGABLE 9 /* purg'e'able memory info */
|
||||
#define HOST_DEBUG_INFO_INTERNAL 10 /* Used for kernel internal development tests only */
|
||||
#define HOST_CAN_HAS_DEBUGGER 11
|
||||
#define HOST_PREFERRED_USER_ARCH 12 /* Get the preferred user-space architecture */
|
||||
|
||||
|
||||
struct host_can_has_debugger_info {
|
||||
boolean_t can_has_debugger;
|
||||
};
|
||||
typedef struct host_can_has_debugger_info host_can_has_debugger_info_data_t;
|
||||
typedef struct host_can_has_debugger_info *host_can_has_debugger_info_t;
|
||||
#define HOST_CAN_HAS_DEBUGGER_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(host_can_has_debugger_info_data_t)/sizeof(integer_t)))
|
||||
|
||||
#pragma pack(push, 4)
|
||||
|
||||
struct host_basic_info {
|
||||
integer_t max_cpus; /* max number of CPUs possible */
|
||||
integer_t avail_cpus; /* number of CPUs now available */
|
||||
natural_t memory_size; /* size of memory in bytes, capped at 2 GB */
|
||||
cpu_type_t cpu_type; /* cpu type */
|
||||
cpu_subtype_t cpu_subtype; /* cpu subtype */
|
||||
cpu_threadtype_t cpu_threadtype; /* cpu threadtype */
|
||||
integer_t physical_cpu; /* number of physical CPUs now available */
|
||||
integer_t physical_cpu_max; /* max number of physical CPUs possible */
|
||||
integer_t logical_cpu; /* number of logical cpu now available */
|
||||
integer_t logical_cpu_max; /* max number of physical CPUs possible */
|
||||
uint64_t max_mem; /* actual size of physical memory */
|
||||
};
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
typedef struct host_basic_info host_basic_info_data_t;
|
||||
typedef struct host_basic_info *host_basic_info_t;
|
||||
#define HOST_BASIC_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(host_basic_info_data_t)/sizeof(integer_t)))
|
||||
|
||||
struct host_sched_info {
|
||||
integer_t min_timeout; /* minimum timeout in milliseconds */
|
||||
integer_t min_quantum; /* minimum quantum in milliseconds */
|
||||
};
|
||||
|
||||
typedef struct host_sched_info host_sched_info_data_t;
|
||||
typedef struct host_sched_info *host_sched_info_t;
|
||||
#define HOST_SCHED_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(host_sched_info_data_t)/sizeof(integer_t)))
|
||||
|
||||
struct kernel_resource_sizes {
|
||||
natural_t task;
|
||||
natural_t thread;
|
||||
natural_t port;
|
||||
natural_t memory_region;
|
||||
natural_t memory_object;
|
||||
};
|
||||
|
||||
typedef struct kernel_resource_sizes kernel_resource_sizes_data_t;
|
||||
typedef struct kernel_resource_sizes *kernel_resource_sizes_t;
|
||||
#define HOST_RESOURCE_SIZES_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(kernel_resource_sizes_data_t)/sizeof(integer_t)))
|
||||
|
||||
struct host_priority_info {
|
||||
integer_t kernel_priority;
|
||||
integer_t system_priority;
|
||||
integer_t server_priority;
|
||||
integer_t user_priority;
|
||||
integer_t depress_priority;
|
||||
integer_t idle_priority;
|
||||
integer_t minimum_priority;
|
||||
integer_t maximum_priority;
|
||||
};
|
||||
|
||||
typedef struct host_priority_info host_priority_info_data_t;
|
||||
typedef struct host_priority_info *host_priority_info_t;
|
||||
#define HOST_PRIORITY_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(host_priority_info_data_t)/sizeof(integer_t)))
|
||||
|
||||
/* host_statistics() */
|
||||
#define HOST_LOAD_INFO 1 /* System loading stats */
|
||||
#define HOST_VM_INFO 2 /* Virtual memory stats */
|
||||
#define HOST_CPU_LOAD_INFO 3 /* CPU load stats */
|
||||
|
||||
/* host_statistics64() */
|
||||
#define HOST_VM_INFO64 4 /* 64-bit virtual memory stats */
|
||||
#define HOST_EXTMOD_INFO64 5 /* External modification stats */
|
||||
#define HOST_EXPIRED_TASK_INFO 6 /* Statistics for expired tasks */
|
||||
|
||||
|
||||
struct host_load_info {
|
||||
integer_t avenrun[3]; /* scaled by LOAD_SCALE */
|
||||
integer_t mach_factor[3]; /* scaled by LOAD_SCALE */
|
||||
};
|
||||
|
||||
typedef struct host_load_info host_load_info_data_t;
|
||||
typedef struct host_load_info *host_load_info_t;
|
||||
#define HOST_LOAD_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(host_load_info_data_t)/sizeof(integer_t)))
|
||||
|
||||
typedef struct vm_purgeable_info host_purgable_info_data_t;
|
||||
typedef struct vm_purgeable_info *host_purgable_info_t;
|
||||
#define HOST_VM_PURGABLE_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(host_purgable_info_data_t)/sizeof(integer_t)))
|
||||
|
||||
/* in <mach/vm_statistics.h> */
|
||||
/* vm_statistics64 */
|
||||
#define HOST_VM_INFO64_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(vm_statistics64_data_t)/sizeof(integer_t)))
|
||||
|
||||
/* size of the latest version of the structure */
|
||||
#define HOST_VM_INFO64_LATEST_COUNT HOST_VM_INFO64_COUNT
|
||||
#define HOST_VM_INFO64_REV1_COUNT HOST_VM_INFO64_LATEST_COUNT
|
||||
/* previous versions: adjust the size according to what was added each time */
|
||||
#define HOST_VM_INFO64_REV0_COUNT /* added compression and swapper info (14 ints) */ \
|
||||
((mach_msg_type_number_t) \
|
||||
(HOST_VM_INFO64_REV1_COUNT - 14))
|
||||
|
||||
/* in <mach/vm_statistics.h> */
|
||||
/* vm_extmod_statistics */
|
||||
#define HOST_EXTMOD_INFO64_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(vm_extmod_statistics_data_t)/sizeof(integer_t)))
|
||||
|
||||
/* size of the latest version of the structure */
|
||||
#define HOST_EXTMOD_INFO64_LATEST_COUNT HOST_EXTMOD_INFO64_COUNT
|
||||
|
||||
/* vm_statistics */
|
||||
#define HOST_VM_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(vm_statistics_data_t)/sizeof(integer_t)))
|
||||
|
||||
/* size of the latest version of the structure */
|
||||
#define HOST_VM_INFO_LATEST_COUNT HOST_VM_INFO_COUNT
|
||||
#define HOST_VM_INFO_REV2_COUNT HOST_VM_INFO_LATEST_COUNT
|
||||
/* previous versions: adjust the size according to what was added each time */
|
||||
#define HOST_VM_INFO_REV1_COUNT /* added "speculative_count" (1 int) */ \
|
||||
((mach_msg_type_number_t) \
|
||||
(HOST_VM_INFO_REV2_COUNT - 1))
|
||||
#define HOST_VM_INFO_REV0_COUNT /* added "purgable" info (2 ints) */ \
|
||||
((mach_msg_type_number_t) \
|
||||
(HOST_VM_INFO_REV1_COUNT - 2))
|
||||
|
||||
struct host_cpu_load_info { /* number of ticks while running... */
|
||||
natural_t cpu_ticks[CPU_STATE_MAX]; /* ... in the given mode */
|
||||
};
|
||||
|
||||
typedef struct host_cpu_load_info host_cpu_load_info_data_t;
|
||||
typedef struct host_cpu_load_info *host_cpu_load_info_t;
|
||||
#define HOST_CPU_LOAD_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof (host_cpu_load_info_data_t) / sizeof (integer_t)))
|
||||
|
||||
struct host_preferred_user_arch {
|
||||
cpu_type_t cpu_type; /* Preferred user-space cpu type */
|
||||
cpu_subtype_t cpu_subtype; /* Preferred user-space cpu subtype */
|
||||
};
|
||||
|
||||
typedef struct host_preferred_user_arch host_preferred_user_arch_data_t;
|
||||
typedef struct host_preferred_user_arch *host_preferred_user_arch_t;
|
||||
#define HOST_PREFERRED_USER_ARCH_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(host_preferred_user_arch_data_t)/sizeof(integer_t)))
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* _MACH_HOST_INFO_H_ */
|
||||
39
lib/libc/include/x86_64-macos-gnu/mach/host_notify.h
Normal file
39
lib/libc/include/x86_64-macos-gnu/mach/host_notify.h
Normal file
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright (c) 2003 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_HOST_NOTIFY_H_
|
||||
#define _MACH_HOST_NOTIFY_H_
|
||||
|
||||
#define HOST_NOTIFY_CALENDAR_CHANGE 0
|
||||
#define HOST_NOTIFY_CALENDAR_SET 1
|
||||
#define HOST_NOTIFY_TYPE_MAX 1
|
||||
|
||||
#define HOST_CALENDAR_CHANGED_REPLYID 950
|
||||
#define HOST_CALENDAR_SET_REPLYID 951
|
||||
|
||||
#endif /* _MACH_HOST_NOTIFY_H_ */
|
||||
1163
lib/libc/include/x86_64-macos-gnu/mach/host_priv.h
Normal file
1163
lib/libc/include/x86_64-macos-gnu/mach/host_priv.h
Normal file
File diff suppressed because it is too large
Load Diff
221
lib/libc/include/x86_64-macos-gnu/mach/host_security.h
Normal file
221
lib/libc/include/x86_64-macos-gnu/mach/host_security.h
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_ */
|
||||
281
lib/libc/include/x86_64-macos-gnu/mach/host_special_ports.h
Normal file
281
lib/libc/include/x86_64-macos-gnu/mach/host_special_ports.h
Normal file
@ -0,0 +1,281 @@
|
||||
/*
|
||||
* Copyright (c) 2003 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 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/host_special_ports.h
|
||||
*
|
||||
* Defines codes for access to host-wide special ports.
|
||||
*/
|
||||
|
||||
#ifndef _MACH_HOST_SPECIAL_PORTS_H_
|
||||
#define _MACH_HOST_SPECIAL_PORTS_H_
|
||||
|
||||
/*
|
||||
* Cannot be set or gotten from user space
|
||||
*/
|
||||
#define HOST_SECURITY_PORT 0
|
||||
|
||||
#define HOST_MIN_SPECIAL_PORT HOST_SECURITY_PORT
|
||||
|
||||
/*
|
||||
* Always provided by kernel (cannot be set from user-space).
|
||||
*/
|
||||
#define HOST_PORT 1
|
||||
#define HOST_PRIV_PORT 2
|
||||
#define HOST_IO_MASTER_PORT 3
|
||||
#define HOST_MAX_SPECIAL_KERNEL_PORT 7 /* room to grow */
|
||||
|
||||
#define HOST_LAST_SPECIAL_KERNEL_PORT HOST_IO_MASTER_PORT
|
||||
|
||||
/*
|
||||
* Not provided by kernel
|
||||
*/
|
||||
#define HOST_DYNAMIC_PAGER_PORT (1 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_AUDIT_CONTROL_PORT (2 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_USER_NOTIFICATION_PORT (3 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_AUTOMOUNTD_PORT (4 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_LOCKD_PORT (5 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_KTRACE_BACKGROUND_PORT (6 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_SEATBELT_PORT (7 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_KEXTD_PORT (8 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_LAUNCHCTL_PORT (9 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_UNFREED_PORT (10 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_AMFID_PORT (11 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_GSSD_PORT (12 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_TELEMETRY_PORT (13 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_ATM_NOTIFICATION_PORT (14 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_COALITION_PORT (15 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_SYSDIAGNOSE_PORT (16 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_XPC_EXCEPTION_PORT (17 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_CONTAINERD_PORT (18 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_NODE_PORT (19 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_RESOURCE_NOTIFY_PORT (20 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_CLOSURED_PORT (21 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_SYSPOLICYD_PORT (22 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_FILECOORDINATIOND_PORT (23 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
#define HOST_FAIRPLAYD_PORT (24 + HOST_MAX_SPECIAL_KERNEL_PORT)
|
||||
|
||||
#define HOST_MAX_SPECIAL_PORT HOST_FAIRPLAYD_PORT
|
||||
/* MAX = last since rdar://35861175 */
|
||||
|
||||
/* obsolete name */
|
||||
#define HOST_CHUD_PORT HOST_LAUNCHCTL_PORT
|
||||
|
||||
/*
|
||||
* Special node identifier to always represent the local node.
|
||||
*/
|
||||
#define HOST_LOCAL_NODE -1
|
||||
|
||||
/*
|
||||
* Definitions for ease of use.
|
||||
*
|
||||
* In the get call, the host parameter can be any host, but will generally
|
||||
* be the local node host port. In the set call, the host must the per-node
|
||||
* host port for the node being affected.
|
||||
*/
|
||||
#define host_get_host_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_PORT, (port)))
|
||||
#define host_set_host_port(host, port) (KERN_INVALID_ARGUMENT)
|
||||
|
||||
#define host_get_host_priv_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_PRIV_PORT, (port)))
|
||||
#define host_set_host_priv_port(host, port) (KERN_INVALID_ARGUMENT)
|
||||
|
||||
#define host_get_io_master_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_IO_MASTER_PORT, (port)))
|
||||
#define host_set_io_master_port(host, port) (KERN_INVALID_ARGUMENT)
|
||||
|
||||
/*
|
||||
* User-settable special ports.
|
||||
*/
|
||||
#define host_get_dynamic_pager_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_DYNAMIC_PAGER_PORT, (port)))
|
||||
#define host_set_dynamic_pager_port(host, port) \
|
||||
(host_set_special_port((host), HOST_DYNAMIC_PAGER_PORT, (port)))
|
||||
|
||||
#define host_get_audit_control_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_AUDIT_CONTROL_PORT, (port)))
|
||||
#define host_set_audit_control_port(host, port) \
|
||||
(host_set_special_port((host), HOST_AUDIT_CONTROL_PORT, (port)))
|
||||
|
||||
#define host_get_user_notification_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_USER_NOTIFICATION_PORT, (port)))
|
||||
#define host_set_user_notification_port(host, port) \
|
||||
(host_set_special_port((host), HOST_USER_NOTIFICATION_PORT, (port)))
|
||||
|
||||
#define host_get_automountd_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_AUTOMOUNTD_PORT, (port)))
|
||||
#define host_set_automountd_port(host, port) \
|
||||
(host_set_special_port((host), HOST_AUTOMOUNTD_PORT, (port)))
|
||||
|
||||
#define host_get_lockd_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_LOCKD_PORT, (port)))
|
||||
#define host_set_lockd_port(host, port) \
|
||||
(host_set_special_port((host), HOST_LOCKD_PORT, (port)))
|
||||
|
||||
#define host_get_ktrace_background_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_KTRACE_BACKGROUND_PORT, (port)))
|
||||
#define host_set_ktrace_background_port(host, port) \
|
||||
(host_set_special_port((host), HOST_KTRACE_BACKGROUND_PORT, (port)))
|
||||
|
||||
#define host_get_kextd_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_KEXTD_PORT, (port)))
|
||||
#define host_set_kextd_port(host, port) \
|
||||
(host_set_special_port((host), HOST_KEXTD_PORT, (port)))
|
||||
|
||||
#define host_get_launchctl_port(host, port) \
|
||||
(host_get_special_port((host), HOST_LOCAL_NODE, HOST_LAUNCHCTL_PORT, \
|
||||
(port)))
|
||||
#define host_set_launchctl_port(host, port) \
|
||||
(host_set_special_port((host), HOST_LAUNCHCTL_PORT, (port)))
|
||||
|
||||
#define host_get_chud_port(host, port) host_get_launchctl_port(host, port)
|
||||
#define host_set_chud_port(host, port) host_set_launchctl_port(host, port)
|
||||
|
||||
#define host_get_unfreed_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_UNFREED_PORT, (port)))
|
||||
#define host_set_unfreed_port(host, port) \
|
||||
(host_set_special_port((host), HOST_UNFREED_PORT, (port)))
|
||||
|
||||
#define host_get_amfid_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_AMFID_PORT, (port)))
|
||||
#define host_set_amfid_port(host, port) \
|
||||
(host_set_special_port((host), HOST_AMFID_PORT, (port)))
|
||||
|
||||
#define host_get_gssd_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_GSSD_PORT, (port)))
|
||||
#define host_set_gssd_port(host, port) \
|
||||
(host_set_special_port((host), HOST_GSSD_PORT, (port)))
|
||||
|
||||
#define host_get_telemetry_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_TELEMETRY_PORT, (port)))
|
||||
#define host_set_telemetry_port(host, port) \
|
||||
(host_set_special_port((host), HOST_TELEMETRY_PORT, (port)))
|
||||
|
||||
#define host_get_atm_notification_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_ATM_NOTIFICATION_PORT, (port)))
|
||||
#define host_set_atm_notification_port(host, port) \
|
||||
(host_set_special_port((host), HOST_ATM_NOTIFICATION_PORT, (port)))
|
||||
|
||||
#define host_get_coalition_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_COALITION_PORT, (port)))
|
||||
#define host_set_coalition_port(host, port) \
|
||||
(host_set_special_port((host), HOST_COALITION_PORT, (port)))
|
||||
|
||||
#define host_get_sysdiagnose_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_SYSDIAGNOSE_PORT, (port)))
|
||||
#define host_set_sysdiagnose_port(host, port) \
|
||||
(host_set_special_port((host), HOST_SYSDIAGNOSE_PORT, (port)))
|
||||
|
||||
#define host_get_container_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_CONTAINERD_PORT, (port)))
|
||||
#define host_set_container_port(host, port) \
|
||||
(host_set_special_port((host), HOST_CONTAINERD_PORT, (port)))
|
||||
|
||||
#define host_get_node_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_NODE_PORT, (port)))
|
||||
#define host_set_node_port(host, port) \
|
||||
(host_set_special_port((host), HOST_NODE_PORT, (port)))
|
||||
|
||||
#define host_get_closured_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_CLOSURED_PORT, (port)))
|
||||
#define host_set_closured_port(host, port) \
|
||||
(host_set_special_port((host), HOST_CLOSURED_PORT, (port)))
|
||||
|
||||
#define host_get_syspolicyd_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_SYSPOLICYD_PORT, (port)))
|
||||
#define host_set_syspolicyd_port(host, port) \
|
||||
(host_set_special_port((host), HOST_SYSPOLICYD_PORT, (port)))
|
||||
|
||||
#define host_get_filecoordinationd_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_FILECOORDINATIOND_PORT, (port)))
|
||||
#define host_set_filecoordinationd_port(host, port) \
|
||||
(host_set_special_port((host), HOST_FILECOORDINATIOND_PORT, (port)))
|
||||
|
||||
#define host_get_fairplayd_port(host, port) \
|
||||
(host_get_special_port((host), \
|
||||
HOST_LOCAL_NODE, HOST_FAIRPLAYD_PORT, (port)))
|
||||
#define host_set_fairplayd_port(host, port) \
|
||||
(host_set_special_port((host), HOST_FAIRPLAYD_PORT, (port)))
|
||||
|
||||
/* HOST_RESOURCE_NOTIFY_PORT doesn't #defines these conveniences.
|
||||
* All lookups go through send_resource_violation()
|
||||
*/
|
||||
|
||||
#endif /* _MACH_HOST_SPECIAL_PORTS_H_ */
|
||||
37
lib/libc/include/x86_64-macos-gnu/mach/i386/processor_info.h
Normal file
37
lib/libc/include/x86_64-macos-gnu/mach/i386/processor_info.h
Normal file
@ -0,0 +1,37 @@
|
||||
/*
|
||||
* 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@
|
||||
*/
|
||||
/*
|
||||
* File: mach/i386/processor_info.h
|
||||
*
|
||||
* Data structure definitions for i386 specific processor control
|
||||
*/
|
||||
|
||||
#ifndef _MACH_I386_PROCESSOR_INFO_H_
|
||||
#define _MACH_I386_PROCESSOR_INFO_H_
|
||||
|
||||
#endif /* _MACH_I386_PROCESSOR_INFO_H_ */
|
||||
35
lib/libc/include/x86_64-macos-gnu/mach/i386/rpc.h
Normal file
35
lib/libc/include/x86_64-macos-gnu/mach/i386/rpc.h
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright (c) 2002,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@
|
||||
*/
|
||||
|
||||
#ifndef _MACH_I386_RPC_H_
|
||||
#define _MACH_I386_RPC_H_
|
||||
|
||||
#endif /* _MACH_I386_RPC_H_ */
|
||||
180
lib/libc/include/x86_64-macos-gnu/mach/kmod.h
Normal file
180
lib/libc/include/x86_64-macos-gnu/mach/kmod.h
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@
|
||||
*/
|
||||
/*
|
||||
* NOTICE: This file was modified by SPARTA, Inc. in 2005 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.
|
||||
*/
|
||||
|
||||
#ifndef _MACH_KMOD_H_
|
||||
#define _MACH_KMOD_H_
|
||||
|
||||
#include <mach/kern_return.h>
|
||||
#include <mach/mach_types.h>
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
#if PRAGMA_MARK
|
||||
#pragma mark Basic macros & typedefs
|
||||
#endif
|
||||
/***********************************************************************
|
||||
* Basic macros & typedefs
|
||||
***********************************************************************/
|
||||
#define KMOD_MAX_NAME 64
|
||||
|
||||
#define KMOD_RETURN_SUCCESS KERN_SUCCESS
|
||||
#define KMOD_RETURN_FAILURE KERN_FAILURE
|
||||
|
||||
typedef int kmod_t;
|
||||
|
||||
struct kmod_info;
|
||||
typedef kern_return_t kmod_start_func_t(struct kmod_info * ki, void * data);
|
||||
typedef kern_return_t kmod_stop_func_t(struct kmod_info * ki, void * data);
|
||||
|
||||
#if PRAGMA_MARK
|
||||
#pragma mark Structure definitions
|
||||
#endif
|
||||
/***********************************************************************
|
||||
* Structure definitions
|
||||
*
|
||||
* All structures must be #pragma pack(4).
|
||||
***********************************************************************/
|
||||
#pragma pack(push, 4)
|
||||
|
||||
/* Run-time struct only; never saved to a file */
|
||||
typedef struct kmod_reference {
|
||||
struct kmod_reference * next;
|
||||
struct kmod_info * info;
|
||||
} kmod_reference_t;
|
||||
|
||||
/***********************************************************************
|
||||
* Warning: Any changes to the kmod_info structure affect the
|
||||
* KMOD_..._DECL macros below.
|
||||
***********************************************************************/
|
||||
|
||||
/* The kmod_info_t structure is only safe to use inside the running
|
||||
* kernel. If you need to work with a kmod_info_t structure outside
|
||||
* the kernel, please use the compatibility definitions below.
|
||||
*/
|
||||
typedef struct kmod_info {
|
||||
struct kmod_info * next;
|
||||
int32_t info_version; // version of this structure
|
||||
uint32_t id;
|
||||
char name[KMOD_MAX_NAME];
|
||||
char version[KMOD_MAX_NAME];
|
||||
int32_t reference_count; // # linkage refs to this
|
||||
kmod_reference_t * reference_list; // who this refs (links on)
|
||||
vm_address_t address; // starting address
|
||||
vm_size_t size; // total size
|
||||
vm_size_t hdr_size; // unwired hdr size
|
||||
kmod_start_func_t * start;
|
||||
kmod_stop_func_t * stop;
|
||||
} kmod_info_t;
|
||||
|
||||
/* A compatibility definition of kmod_info_t for 32-bit kexts.
|
||||
*/
|
||||
typedef struct kmod_info_32_v1 {
|
||||
uint32_t next_addr;
|
||||
int32_t info_version;
|
||||
uint32_t id;
|
||||
uint8_t name[KMOD_MAX_NAME];
|
||||
uint8_t version[KMOD_MAX_NAME];
|
||||
int32_t reference_count;
|
||||
uint32_t reference_list_addr;
|
||||
uint32_t address;
|
||||
uint32_t size;
|
||||
uint32_t hdr_size;
|
||||
uint32_t start_addr;
|
||||
uint32_t stop_addr;
|
||||
} kmod_info_32_v1_t;
|
||||
|
||||
/* A compatibility definition of kmod_info_t for 64-bit kexts.
|
||||
*/
|
||||
typedef struct kmod_info_64_v1 {
|
||||
uint64_t next_addr;
|
||||
int32_t info_version;
|
||||
uint32_t id;
|
||||
uint8_t name[KMOD_MAX_NAME];
|
||||
uint8_t version[KMOD_MAX_NAME];
|
||||
int32_t reference_count;
|
||||
uint64_t reference_list_addr;
|
||||
uint64_t address;
|
||||
uint64_t size;
|
||||
uint64_t hdr_size;
|
||||
uint64_t start_addr;
|
||||
uint64_t stop_addr;
|
||||
} kmod_info_64_v1_t;
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
#if PRAGMA_MARK
|
||||
#pragma mark Kmod structure declaration macros
|
||||
#endif
|
||||
/***********************************************************************
|
||||
* Kmod structure declaration macros
|
||||
***********************************************************************/
|
||||
#define KMOD_INFO_NAME kmod_info
|
||||
#define KMOD_INFO_VERSION 1
|
||||
|
||||
#define KMOD_DECL(name, version) \
|
||||
static kmod_start_func_t name ## _module_start; \
|
||||
static kmod_stop_func_t name ## _module_stop; \
|
||||
kmod_info_t KMOD_INFO_NAME = { 0, KMOD_INFO_VERSION, -1U, \
|
||||
{ #name }, { version }, -1, 0, 0, 0, 0, \
|
||||
name ## _module_start, \
|
||||
name ## _module_stop };
|
||||
|
||||
#define KMOD_EXPLICIT_DECL(name, version, start, stop) \
|
||||
kmod_info_t KMOD_INFO_NAME = { 0, KMOD_INFO_VERSION, -1U, \
|
||||
{ #name }, { version }, -1, 0, 0, 0, 0, \
|
||||
start, stop };
|
||||
|
||||
#if PRAGMA_MARK
|
||||
#pragma mark Kernel private declarations
|
||||
#endif
|
||||
/***********************************************************************
|
||||
* Kernel private declarations.
|
||||
***********************************************************************/
|
||||
|
||||
|
||||
#if PRAGMA_MARK
|
||||
#pragma mark Obsolete kmod stuff
|
||||
#endif
|
||||
/***********************************************************************
|
||||
* These 3 should be dropped but they're referenced by MIG declarations.
|
||||
***********************************************************************/
|
||||
typedef void * kmod_args_t;
|
||||
typedef int kmod_control_flavor_t;
|
||||
typedef kmod_info_t * kmod_info_array_t;
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* _MACH_KMOD_H_ */
|
||||
350
lib/libc/include/x86_64-macos-gnu/mach/lock_set.h
Normal file
350
lib/libc/include/x86_64-macos-gnu/mach/lock_set.h
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/x86_64-macos-gnu/mach/mach.h
Normal file
245
lib/libc/include/x86_64-macos-gnu/mach/mach.h
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_ */
|
||||
93
lib/libc/include/x86_64-macos-gnu/mach/mach_error.h
Normal file
93
lib/libc/include/x86_64-macos-gnu/mach/mach_error.h
Normal file
@ -0,0 +1,93 @@
|
||||
/*
|
||||
* Copyright (c) 1999 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
|
||||
* 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 the
|
||||
* rights to redistribute these changes.
|
||||
*/
|
||||
|
||||
/*
|
||||
* File: mach_error.h
|
||||
* Author: Douglas Orr, Carnegie Mellon University
|
||||
* Date: Mar. 1988
|
||||
*
|
||||
* Definitions of routines in mach_error.c
|
||||
*/
|
||||
|
||||
#ifndef _MACH_ERROR_
|
||||
#define _MACH_ERROR_ 1
|
||||
|
||||
#include <mach/error.h>
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
char *mach_error_string(
|
||||
/*
|
||||
* Returns a string appropriate to the error argument given
|
||||
*/
|
||||
mach_error_t error_value
|
||||
);
|
||||
|
||||
void mach_error(
|
||||
/*
|
||||
* Prints an appropriate message on the standard error stream
|
||||
*/
|
||||
const char *str,
|
||||
mach_error_t error_value
|
||||
);
|
||||
|
||||
char *mach_error_type(
|
||||
/*
|
||||
* Returns a string with the error system, subsystem and code
|
||||
*/
|
||||
mach_error_t error_value
|
||||
);
|
||||
__END_DECLS
|
||||
|
||||
#endif /* _MACH_ERROR_ */
|
||||
1295
lib/libc/include/x86_64-macos-gnu/mach/mach_host.h
Normal file
1295
lib/libc/include/x86_64-macos-gnu/mach/mach_host.h
Normal file
File diff suppressed because it is too large
Load Diff
110
lib/libc/include/x86_64-macos-gnu/mach/mach_init.h
Normal file
110
lib/libc/include/x86_64-macos-gnu/mach/mach_init.h
Normal file
@ -0,0 +1,110 @@
|
||||
/*
|
||||
* Copyright (c) 1999 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,1986 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Items provided by the Mach environment initialization.
|
||||
*/
|
||||
|
||||
#ifndef _MACH_INIT_
|
||||
#define _MACH_INIT_ 1
|
||||
|
||||
#include <mach/mach_types.h>
|
||||
#include <mach/vm_page_size.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
/*
|
||||
* Kernel-related ports; how a task/thread controls itself
|
||||
*/
|
||||
|
||||
__BEGIN_DECLS
|
||||
extern mach_port_t mach_host_self(void);
|
||||
extern mach_port_t mach_thread_self(void);
|
||||
extern kern_return_t host_page_size(host_t, vm_size_t *);
|
||||
|
||||
extern mach_port_t mach_task_self_;
|
||||
#define mach_task_self() mach_task_self_
|
||||
#define current_task() mach_task_self()
|
||||
|
||||
__END_DECLS
|
||||
#include <mach/mach_traps.h>
|
||||
__BEGIN_DECLS
|
||||
|
||||
/*
|
||||
* Other important ports in the Mach user environment
|
||||
*/
|
||||
|
||||
extern mach_port_t bootstrap_port;
|
||||
|
||||
/*
|
||||
* Where these ports occur in the "mach_ports_register"
|
||||
* collection... only servers or the runtime library need know.
|
||||
*/
|
||||
|
||||
#define NAME_SERVER_SLOT 0
|
||||
#define ENVIRONMENT_SLOT 1
|
||||
#define SERVICE_SLOT 2
|
||||
|
||||
#define MACH_PORTS_SLOTS_USED 3
|
||||
|
||||
/*
|
||||
* fprintf_stderr uses vprintf_stderr_func to produce
|
||||
* error messages, this can be overridden by a user
|
||||
* application to point to a user-specified output function
|
||||
*/
|
||||
extern int (*vprintf_stderr_func)(const char *format, va_list ap);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* _MACH_INIT_ */
|
||||
53
lib/libc/include/x86_64-macos-gnu/mach/mach_interface.h
Normal file
53
lib/libc/include/x86_64-macos-gnu/mach/mach_interface.h
Normal file
@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright (c) 2003 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) Apple Computer 1998
|
||||
* ALL Rights Reserved
|
||||
*/
|
||||
/*
|
||||
* This file represents the interfaces that used to come
|
||||
* from creating the user headers from the mach.defs file.
|
||||
* Because mach.defs was decomposed, this file now just
|
||||
* wraps up all the new interface headers generated from
|
||||
* each of the new .defs resulting from that decomposition.
|
||||
*/
|
||||
#ifndef _MACH_INTERFACE_H_
|
||||
#define _MACH_INTERFACE_H_
|
||||
|
||||
#include <mach/clock_priv.h>
|
||||
#include <mach/host_priv.h>
|
||||
#include <mach/host_security.h>
|
||||
#include <mach/lock_set.h>
|
||||
#include <mach/processor.h>
|
||||
#include <mach/processor_set.h>
|
||||
#include <mach/semaphore.h>
|
||||
#include <mach/task.h>
|
||||
#include <mach/thread_act.h>
|
||||
#include <mach/vm_map.h>
|
||||
|
||||
#endif /* _MACH_INTERFACE_H_ */
|
||||
1808
lib/libc/include/x86_64-macos-gnu/mach/mach_port.h
Normal file
1808
lib/libc/include/x86_64-macos-gnu/mach/mach_port.h
Normal file
File diff suppressed because it is too large
Load Diff
303
lib/libc/include/x86_64-macos-gnu/mach/mach_traps.h
Normal file
303
lib/libc/include/x86_64-macos-gnu/mach/mach_traps.h
Normal file
@ -0,0 +1,303 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2019 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.
|
||||
*/
|
||||
/*
|
||||
*/
|
||||
/*
|
||||
* Definitions of general Mach system traps.
|
||||
*
|
||||
* These are the definitions as seen from user-space.
|
||||
* The kernel definitions are in <mach/syscall_sw.h>.
|
||||
* Kernel RPC functions are defined in <mach/mach_interface.h>.
|
||||
*/
|
||||
|
||||
#ifndef _MACH_MACH_TRAPS_H_
|
||||
#define _MACH_MACH_TRAPS_H_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include <mach/std_types.h>
|
||||
#include <mach/mach_types.h>
|
||||
#include <mach/kern_return.h>
|
||||
#include <mach/port.h>
|
||||
#include <mach/vm_types.h>
|
||||
#include <mach/clock_types.h>
|
||||
|
||||
#include <machine/endian.h>
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
||||
|
||||
extern kern_return_t clock_sleep_trap(
|
||||
mach_port_name_t clock_name,
|
||||
sleep_type_t sleep_type,
|
||||
int sleep_sec,
|
||||
int sleep_nsec,
|
||||
mach_timespec_t *wakeup_time);
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_vm_allocate_trap(
|
||||
mach_port_name_t target,
|
||||
mach_vm_offset_t *addr,
|
||||
mach_vm_size_t size,
|
||||
int flags);
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_vm_deallocate_trap(
|
||||
mach_port_name_t target,
|
||||
mach_vm_address_t address,
|
||||
mach_vm_size_t size
|
||||
);
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_vm_protect_trap(
|
||||
mach_port_name_t target,
|
||||
mach_vm_address_t address,
|
||||
mach_vm_size_t size,
|
||||
boolean_t set_maximum,
|
||||
vm_prot_t new_protection
|
||||
);
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_vm_map_trap(
|
||||
mach_port_name_t target,
|
||||
mach_vm_offset_t *address,
|
||||
mach_vm_size_t size,
|
||||
mach_vm_offset_t mask,
|
||||
int flags,
|
||||
vm_prot_t cur_protection
|
||||
);
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_vm_purgable_control_trap(
|
||||
mach_port_name_t target,
|
||||
mach_vm_offset_t address,
|
||||
vm_purgable_t control,
|
||||
int *state);
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_port_allocate_trap(
|
||||
mach_port_name_t target,
|
||||
mach_port_right_t right,
|
||||
mach_port_name_t *name
|
||||
);
|
||||
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_port_destroy_trap(
|
||||
mach_port_name_t target,
|
||||
mach_port_name_t name
|
||||
);
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_port_deallocate_trap(
|
||||
mach_port_name_t target,
|
||||
mach_port_name_t name
|
||||
);
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_port_mod_refs_trap(
|
||||
mach_port_name_t target,
|
||||
mach_port_name_t name,
|
||||
mach_port_right_t right,
|
||||
mach_port_delta_t delta
|
||||
);
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_port_move_member_trap(
|
||||
mach_port_name_t target,
|
||||
mach_port_name_t member,
|
||||
mach_port_name_t after
|
||||
);
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_port_insert_right_trap(
|
||||
mach_port_name_t target,
|
||||
mach_port_name_t name,
|
||||
mach_port_name_t poly,
|
||||
mach_msg_type_name_t polyPoly
|
||||
);
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_port_get_attributes_trap(
|
||||
mach_port_name_t target,
|
||||
mach_port_name_t name,
|
||||
mach_port_flavor_t flavor,
|
||||
mach_port_info_t port_info_out,
|
||||
mach_msg_type_number_t *port_info_outCnt
|
||||
);
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_port_insert_member_trap(
|
||||
mach_port_name_t target,
|
||||
mach_port_name_t name,
|
||||
mach_port_name_t pset
|
||||
);
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_port_extract_member_trap(
|
||||
mach_port_name_t target,
|
||||
mach_port_name_t name,
|
||||
mach_port_name_t pset
|
||||
);
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_port_construct_trap(
|
||||
mach_port_name_t target,
|
||||
mach_port_options_t *options,
|
||||
uint64_t context,
|
||||
mach_port_name_t *name
|
||||
);
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_port_destruct_trap(
|
||||
mach_port_name_t target,
|
||||
mach_port_name_t name,
|
||||
mach_port_delta_t srdelta,
|
||||
uint64_t guard
|
||||
);
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_port_guard_trap(
|
||||
mach_port_name_t target,
|
||||
mach_port_name_t name,
|
||||
uint64_t guard,
|
||||
boolean_t strict
|
||||
);
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_port_unguard_trap(
|
||||
mach_port_name_t target,
|
||||
mach_port_name_t name,
|
||||
uint64_t guard
|
||||
);
|
||||
|
||||
extern kern_return_t mach_generate_activity_id(
|
||||
mach_port_name_t target,
|
||||
int count,
|
||||
uint64_t *activity_id
|
||||
);
|
||||
|
||||
extern kern_return_t macx_swapon(
|
||||
uint64_t filename,
|
||||
int flags,
|
||||
int size,
|
||||
int priority);
|
||||
|
||||
extern kern_return_t macx_swapoff(
|
||||
uint64_t filename,
|
||||
int flags);
|
||||
|
||||
extern kern_return_t macx_triggers(
|
||||
int hi_water,
|
||||
int low_water,
|
||||
int flags,
|
||||
mach_port_t alert_port);
|
||||
|
||||
extern kern_return_t macx_backing_store_suspend(
|
||||
boolean_t suspend);
|
||||
|
||||
extern kern_return_t macx_backing_store_recovery(
|
||||
int pid);
|
||||
|
||||
extern boolean_t swtch_pri(int pri);
|
||||
|
||||
extern boolean_t swtch(void);
|
||||
|
||||
extern kern_return_t thread_switch(
|
||||
mach_port_name_t thread_name,
|
||||
int option,
|
||||
mach_msg_timeout_t option_time);
|
||||
|
||||
extern mach_port_name_t task_self_trap(void);
|
||||
|
||||
extern kern_return_t host_create_mach_voucher_trap(
|
||||
mach_port_name_t host,
|
||||
mach_voucher_attr_raw_recipe_array_t recipes,
|
||||
int recipes_size,
|
||||
mach_port_name_t *voucher);
|
||||
|
||||
extern kern_return_t mach_voucher_extract_attr_recipe_trap(
|
||||
mach_port_name_t voucher_name,
|
||||
mach_voucher_attr_key_t key,
|
||||
mach_voucher_attr_raw_recipe_t recipe,
|
||||
mach_msg_type_number_t *recipe_size);
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_port_type_trap(
|
||||
ipc_space_t task,
|
||||
mach_port_name_t name,
|
||||
mach_port_type_t *ptype);
|
||||
|
||||
extern kern_return_t _kernelrpc_mach_port_request_notification_trap(
|
||||
ipc_space_t task,
|
||||
mach_port_name_t name,
|
||||
mach_msg_id_t msgid,
|
||||
mach_port_mscount_t sync,
|
||||
mach_port_name_t notify,
|
||||
mach_msg_type_name_t notifyPoly,
|
||||
mach_port_name_t *previous);
|
||||
|
||||
/*
|
||||
* Obsolete interfaces.
|
||||
*/
|
||||
|
||||
extern kern_return_t task_for_pid(
|
||||
mach_port_name_t target_tport,
|
||||
int pid,
|
||||
mach_port_name_t *t);
|
||||
|
||||
extern kern_return_t task_name_for_pid(
|
||||
mach_port_name_t target_tport,
|
||||
int pid,
|
||||
mach_port_name_t *tn);
|
||||
|
||||
extern kern_return_t pid_for_task(
|
||||
mach_port_name_t t,
|
||||
int *x);
|
||||
|
||||
extern kern_return_t debug_control_port_for_pid(
|
||||
mach_port_name_t target_tport,
|
||||
int pid,
|
||||
mach_port_name_t *t);
|
||||
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* _MACH_MACH_TRAPS_H_ */
|
||||
254
lib/libc/include/x86_64-macos-gnu/mach/mach_types.h
Normal file
254
lib/libc/include/x86_64-macos-gnu/mach/mach_types.h
Normal file
@ -0,0 +1,254 @@
|
||||
/*
|
||||
* 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@
|
||||
*/
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
/*
|
||||
*/
|
||||
/*
|
||||
* NOTICE: This file was modified by SPARTA, Inc. in 2005 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/mach_types.h
|
||||
* Author: Avadis Tevanian, Jr., Michael Wayne Young
|
||||
* Date: 1986
|
||||
*
|
||||
* Mach external interface definitions.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MACH_MACH_TYPES_H_
|
||||
#define _MACH_MACH_TYPES_H_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#include <mach/host_info.h>
|
||||
#include <mach/host_notify.h>
|
||||
#include <mach/host_special_ports.h>
|
||||
#include <mach/machine.h>
|
||||
#include <mach/machine/vm_types.h>
|
||||
#include <mach/memory_object_types.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/exception_types.h>
|
||||
#include <mach/port.h>
|
||||
#include <mach/mach_voucher_types.h>
|
||||
#include <mach/processor_info.h>
|
||||
#include <mach/task_info.h>
|
||||
#include <mach/task_inspect.h>
|
||||
#include <mach/task_policy.h>
|
||||
#include <mach/task_special_ports.h>
|
||||
#include <mach/thread_info.h>
|
||||
#include <mach/thread_policy.h>
|
||||
#include <mach/thread_special_ports.h>
|
||||
#include <mach/thread_status.h>
|
||||
#include <mach/time_value.h>
|
||||
#include <mach/clock_types.h>
|
||||
#include <mach/vm_attributes.h>
|
||||
#include <mach/vm_inherit.h>
|
||||
#include <mach/vm_purgable.h>
|
||||
#include <mach/vm_behavior.h>
|
||||
#include <mach/vm_prot.h>
|
||||
#include <mach/vm_statistics.h>
|
||||
#include <mach/vm_sync.h>
|
||||
#include <mach/vm_types.h>
|
||||
#include <mach/vm_region.h>
|
||||
#include <mach/kmod.h>
|
||||
#include <mach/dyld_kernel.h>
|
||||
|
||||
|
||||
/*
|
||||
* If we are not in the kernel, then these will all be represented by
|
||||
* ports at user-space.
|
||||
*/
|
||||
typedef mach_port_t task_t;
|
||||
typedef mach_port_t task_name_t;
|
||||
typedef mach_port_t task_inspect_t;
|
||||
typedef mach_port_t task_suspension_token_t;
|
||||
typedef mach_port_t thread_t;
|
||||
typedef mach_port_t thread_act_t;
|
||||
typedef mach_port_t thread_inspect_t;
|
||||
typedef mach_port_t ipc_space_t;
|
||||
typedef mach_port_t ipc_space_inspect_t;
|
||||
typedef mach_port_t coalition_t;
|
||||
typedef mach_port_t host_t;
|
||||
typedef mach_port_t host_priv_t;
|
||||
typedef mach_port_t host_security_t;
|
||||
typedef mach_port_t processor_t;
|
||||
typedef mach_port_t processor_set_t;
|
||||
typedef mach_port_t processor_set_control_t;
|
||||
typedef mach_port_t semaphore_t;
|
||||
typedef mach_port_t lock_set_t;
|
||||
typedef mach_port_t ledger_t;
|
||||
typedef mach_port_t alarm_t;
|
||||
typedef mach_port_t clock_serv_t;
|
||||
typedef mach_port_t clock_ctrl_t;
|
||||
typedef mach_port_t arcade_register_t;
|
||||
typedef mach_port_t suid_cred_t;
|
||||
|
||||
|
||||
/*
|
||||
* These aren't really unique types. They are just called
|
||||
* out as unique types at one point in history. So we list
|
||||
* them here for compatibility.
|
||||
*/
|
||||
typedef processor_set_t processor_set_name_t;
|
||||
|
||||
/*
|
||||
* These types are just hard-coded as ports
|
||||
*/
|
||||
typedef mach_port_t clock_reply_t;
|
||||
typedef mach_port_t bootstrap_t;
|
||||
typedef mach_port_t mem_entry_name_port_t;
|
||||
typedef mach_port_t exception_handler_t;
|
||||
typedef exception_handler_t *exception_handler_array_t;
|
||||
typedef mach_port_t vm_task_entry_t;
|
||||
typedef mach_port_t io_master_t;
|
||||
typedef mach_port_t UNDServerRef;
|
||||
|
||||
/*
|
||||
* Mig doesn't translate the components of an array.
|
||||
* For example, Mig won't use the thread_t translations
|
||||
* to translate a thread_array_t argument. So, these definitions
|
||||
* are not completely accurate at the moment for other kernel
|
||||
* components.
|
||||
*/
|
||||
typedef task_t *task_array_t;
|
||||
typedef thread_t *thread_array_t;
|
||||
typedef processor_set_t *processor_set_array_t;
|
||||
typedef processor_set_t *processor_set_name_array_t;
|
||||
typedef processor_t *processor_array_t;
|
||||
typedef thread_act_t *thread_act_array_t;
|
||||
typedef ledger_t *ledger_array_t;
|
||||
|
||||
/*
|
||||
* However the real mach_types got declared, we also have to declare
|
||||
* types with "port" in the name for compatability with the way OSF
|
||||
* had declared the user interfaces at one point. Someday these should
|
||||
* go away.
|
||||
*/
|
||||
typedef task_t task_port_t;
|
||||
typedef task_array_t task_port_array_t;
|
||||
typedef thread_t thread_port_t;
|
||||
typedef thread_array_t thread_port_array_t;
|
||||
typedef ipc_space_t ipc_space_port_t;
|
||||
typedef host_t host_name_t;
|
||||
typedef host_t host_name_port_t;
|
||||
typedef processor_set_t processor_set_port_t;
|
||||
typedef processor_set_t processor_set_name_port_t;
|
||||
typedef processor_set_array_t processor_set_name_port_array_t;
|
||||
typedef processor_set_t processor_set_control_port_t;
|
||||
typedef processor_t processor_port_t;
|
||||
typedef processor_array_t processor_port_array_t;
|
||||
typedef thread_act_t thread_act_port_t;
|
||||
typedef thread_act_array_t thread_act_port_array_t;
|
||||
typedef semaphore_t semaphore_port_t;
|
||||
typedef lock_set_t lock_set_port_t;
|
||||
typedef ledger_t ledger_port_t;
|
||||
typedef ledger_array_t ledger_port_array_t;
|
||||
typedef alarm_t alarm_port_t;
|
||||
typedef clock_serv_t clock_serv_port_t;
|
||||
typedef clock_ctrl_t clock_ctrl_port_t;
|
||||
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 suid_cred_path_t[1024];
|
||||
typedef uint32_t suid_cred_uid_t;
|
||||
|
||||
#define TASK_NULL ((task_t) 0)
|
||||
#define TASK_NAME_NULL ((task_name_t) 0)
|
||||
#define TASK_INSPECT_NULL ((task_inspect_t) 0)
|
||||
#define THREAD_NULL ((thread_t) 0)
|
||||
#define THREAD_INSPECT_NULL ((thread_inspect_t) 0)
|
||||
#define TID_NULL ((uint64_t) 0)
|
||||
#define THR_ACT_NULL ((thread_act_t) 0)
|
||||
#define IPC_SPACE_NULL ((ipc_space_t) 0)
|
||||
#define IPC_SPACE_INSPECT_NULL ((ipc_space_inspect_t) 0)
|
||||
#define COALITION_NULL ((coalition_t) 0)
|
||||
#define HOST_NULL ((host_t) 0)
|
||||
#define HOST_PRIV_NULL ((host_priv_t) 0)
|
||||
#define HOST_SECURITY_NULL ((host_security_t) 0)
|
||||
#define PROCESSOR_SET_NULL ((processor_set_t) 0)
|
||||
#define PROCESSOR_NULL ((processor_t) 0)
|
||||
#define SEMAPHORE_NULL ((semaphore_t) 0)
|
||||
#define LOCK_SET_NULL ((lock_set_t) 0)
|
||||
#define LEDGER_NULL ((ledger_t) 0)
|
||||
#define ALARM_NULL ((alarm_t) 0)
|
||||
#define CLOCK_NULL ((clock_t) 0)
|
||||
#define UND_SERVER_NULL ((UNDServerRef) 0)
|
||||
#define ARCADE_REG_NULL ((arcade_register_t) 0)
|
||||
#define SUID_CRED_NULL ((suid_cred_t) 0)
|
||||
|
||||
/* DEPRECATED */
|
||||
typedef natural_t ledger_item_t;
|
||||
#define LEDGER_ITEM_INFINITY ((ledger_item_t) (~0))
|
||||
|
||||
typedef int64_t ledger_amount_t;
|
||||
#define LEDGER_LIMIT_INFINITY ((ledger_amount_t)((1ULL << 63) - 1))
|
||||
|
||||
typedef mach_vm_offset_t *emulation_vector_t;
|
||||
typedef char *user_subsystem_t;
|
||||
|
||||
typedef char *labelstr_t;
|
||||
/*
|
||||
* Backwards compatibility, for those programs written
|
||||
* before mach/{std,mach}_types.{defs,h} were set up.
|
||||
*/
|
||||
#include <mach/std_types.h>
|
||||
|
||||
#endif /* _MACH_MACH_TYPES_H_ */
|
||||
245
lib/libc/include/x86_64-macos-gnu/mach/mach_voucher_types.h
Normal file
245
lib/libc/include/x86_64-macos-gnu/mach/mach_voucher_types.h
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_ */
|
||||
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* 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_PROCESSOR_INFO_H_
|
||||
#define _MACH_MACHINE_PROCESSOR_INFO_H_
|
||||
|
||||
#if defined (__i386__) || defined(__x86_64__)
|
||||
#include "mach/i386/processor_info.h"
|
||||
#else
|
||||
#error architecture not supported
|
||||
#endif
|
||||
|
||||
#endif /* _MACH_MACHINE_PROCESSOR_INFO_H_ */
|
||||
38
lib/libc/include/x86_64-macos-gnu/mach/machine/rpc.h
Normal file
38
lib/libc/include/x86_64-macos-gnu/mach/machine/rpc.h
Normal file
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* 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_RPC_H_
|
||||
#define _MACH_MACHINE_RPC_H_
|
||||
|
||||
#if defined (__i386__) || defined(__x86_64__)
|
||||
#include "mach/i386/rpc.h"
|
||||
#else
|
||||
#error architecture not supported
|
||||
#endif
|
||||
|
||||
#endif /* _MACH_MACHINE_RPC_H_ */
|
||||
38
lib/libc/include/x86_64-macos-gnu/mach/machine/vm_param.h
Normal file
38
lib/libc/include/x86_64-macos-gnu/mach/machine/vm_param.h
Normal file
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* 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_VM_PARAM_H_
|
||||
#define _MACH_MACHINE_VM_PARAM_H_
|
||||
|
||||
#if defined (__i386__) || defined(__x86_64__)
|
||||
#include "mach/i386/vm_param.h"
|
||||
#else
|
||||
#error architecture not supported
|
||||
#endif
|
||||
|
||||
#endif /* _MACH_MACHINE_VM_PARAM_H_ */
|
||||
299
lib/libc/include/x86_64-macos-gnu/mach/memory_object_types.h
Normal file
299
lib/libc/include/x86_64-macos-gnu/mach/memory_object_types.h
Normal file
@ -0,0 +1,299 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2016 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.
|
||||
*/
|
||||
/*
|
||||
*/
|
||||
/*
|
||||
* File: memory_object.h
|
||||
* Author: Michael Wayne Young
|
||||
*
|
||||
* External memory management interface definition.
|
||||
*/
|
||||
|
||||
#ifndef _MACH_MEMORY_OBJECT_TYPES_H_
|
||||
#define _MACH_MEMORY_OBJECT_TYPES_H_
|
||||
|
||||
/*
|
||||
* User-visible types used in the external memory
|
||||
* management interface:
|
||||
*/
|
||||
|
||||
#include <mach/port.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/vm_prot.h>
|
||||
#include <mach/vm_sync.h>
|
||||
#include <mach/vm_types.h>
|
||||
#include <mach/machine/vm_types.h>
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#define VM_64_BIT_DATA_OBJECTS
|
||||
|
||||
typedef unsigned long long memory_object_offset_t;
|
||||
typedef unsigned long long memory_object_size_t;
|
||||
typedef natural_t memory_object_cluster_size_t;
|
||||
typedef natural_t * memory_object_fault_info_t;
|
||||
|
||||
typedef unsigned long long vm_object_id_t;
|
||||
|
||||
|
||||
/*
|
||||
* Temporary until real EMMI version gets re-implemented
|
||||
*/
|
||||
|
||||
|
||||
typedef mach_port_t memory_object_t;
|
||||
typedef mach_port_t memory_object_control_t;
|
||||
|
||||
|
||||
typedef memory_object_t *memory_object_array_t;
|
||||
/* A memory object ... */
|
||||
/* Used by the kernel to retrieve */
|
||||
/* or store data */
|
||||
|
||||
typedef mach_port_t memory_object_name_t;
|
||||
/* Used to describe the memory ... */
|
||||
/* object in vm_regions() calls */
|
||||
|
||||
typedef mach_port_t memory_object_default_t;
|
||||
/* Registered with the host ... */
|
||||
/* for creating new internal objects */
|
||||
|
||||
#define MEMORY_OBJECT_NULL ((memory_object_t) 0)
|
||||
#define MEMORY_OBJECT_CONTROL_NULL ((memory_object_control_t) 0)
|
||||
#define MEMORY_OBJECT_NAME_NULL ((memory_object_name_t) 0)
|
||||
#define MEMORY_OBJECT_DEFAULT_NULL ((memory_object_default_t) 0)
|
||||
|
||||
|
||||
typedef int memory_object_copy_strategy_t;
|
||||
/* How memory manager handles copy: */
|
||||
#define MEMORY_OBJECT_COPY_NONE 0
|
||||
/* ... No special support */
|
||||
#define MEMORY_OBJECT_COPY_CALL 1
|
||||
/* ... Make call on memory manager */
|
||||
#define MEMORY_OBJECT_COPY_DELAY 2
|
||||
/* ... Memory manager doesn't
|
||||
* change data externally.
|
||||
*/
|
||||
#define MEMORY_OBJECT_COPY_TEMPORARY 3
|
||||
/* ... Memory manager doesn't
|
||||
* change data externally, and
|
||||
* doesn't need to see changes.
|
||||
*/
|
||||
#define MEMORY_OBJECT_COPY_SYMMETRIC 4
|
||||
/* ... Memory manager doesn't
|
||||
* change data externally,
|
||||
* doesn't need to see changes,
|
||||
* and object will not be
|
||||
* multiply mapped.
|
||||
*
|
||||
* XXX
|
||||
* Not yet safe for non-kernel use.
|
||||
*/
|
||||
|
||||
#define MEMORY_OBJECT_COPY_INVALID 5
|
||||
/* ... An invalid copy strategy,
|
||||
* for external objects which
|
||||
* have not been initialized.
|
||||
* Allows copy_strategy to be
|
||||
* examined without also
|
||||
* examining pager_ready and
|
||||
* internal.
|
||||
*/
|
||||
|
||||
typedef int memory_object_return_t;
|
||||
/* Which pages to return to manager
|
||||
* this time (lock_request) */
|
||||
#define MEMORY_OBJECT_RETURN_NONE 0
|
||||
/* ... don't return any. */
|
||||
#define MEMORY_OBJECT_RETURN_DIRTY 1
|
||||
/* ... only dirty pages. */
|
||||
#define MEMORY_OBJECT_RETURN_ALL 2
|
||||
/* ... dirty and precious pages. */
|
||||
#define MEMORY_OBJECT_RETURN_ANYTHING 3
|
||||
/* ... any resident page. */
|
||||
|
||||
/*
|
||||
* Data lock request flags
|
||||
*/
|
||||
|
||||
#define MEMORY_OBJECT_DATA_FLUSH 0x1
|
||||
#define MEMORY_OBJECT_DATA_NO_CHANGE 0x2
|
||||
#define MEMORY_OBJECT_DATA_PURGE 0x4
|
||||
#define MEMORY_OBJECT_COPY_SYNC 0x8
|
||||
#define MEMORY_OBJECT_DATA_SYNC 0x10
|
||||
#define MEMORY_OBJECT_IO_SYNC 0x20
|
||||
#define MEMORY_OBJECT_DATA_FLUSH_ALL 0x40
|
||||
|
||||
/*
|
||||
* Types for the memory object flavor interfaces
|
||||
*/
|
||||
|
||||
#define MEMORY_OBJECT_INFO_MAX (1024)
|
||||
typedef int *memory_object_info_t;
|
||||
typedef int memory_object_flavor_t;
|
||||
typedef int memory_object_info_data_t[MEMORY_OBJECT_INFO_MAX];
|
||||
|
||||
|
||||
#define MEMORY_OBJECT_PERFORMANCE_INFO 11
|
||||
#define MEMORY_OBJECT_ATTRIBUTE_INFO 14
|
||||
#define MEMORY_OBJECT_BEHAVIOR_INFO 15
|
||||
|
||||
|
||||
struct memory_object_perf_info {
|
||||
memory_object_cluster_size_t cluster_size;
|
||||
boolean_t may_cache;
|
||||
};
|
||||
|
||||
struct memory_object_attr_info {
|
||||
memory_object_copy_strategy_t copy_strategy;
|
||||
memory_object_cluster_size_t cluster_size;
|
||||
boolean_t may_cache_object;
|
||||
boolean_t temporary;
|
||||
};
|
||||
|
||||
struct memory_object_behave_info {
|
||||
memory_object_copy_strategy_t copy_strategy;
|
||||
boolean_t temporary;
|
||||
boolean_t invalidate;
|
||||
boolean_t silent_overwrite;
|
||||
boolean_t advisory_pageout;
|
||||
};
|
||||
|
||||
|
||||
typedef struct memory_object_behave_info *memory_object_behave_info_t;
|
||||
typedef struct memory_object_behave_info memory_object_behave_info_data_t;
|
||||
|
||||
typedef struct memory_object_perf_info *memory_object_perf_info_t;
|
||||
typedef struct memory_object_perf_info memory_object_perf_info_data_t;
|
||||
|
||||
typedef struct memory_object_attr_info *memory_object_attr_info_t;
|
||||
typedef struct memory_object_attr_info memory_object_attr_info_data_t;
|
||||
|
||||
#define MEMORY_OBJECT_BEHAVE_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(memory_object_behave_info_data_t)/sizeof(int)))
|
||||
#define MEMORY_OBJECT_PERF_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(memory_object_perf_info_data_t)/sizeof(int)))
|
||||
#define MEMORY_OBJECT_ATTR_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(memory_object_attr_info_data_t)/sizeof(int)))
|
||||
|
||||
#define invalid_memory_object_flavor(f) \
|
||||
(f != MEMORY_OBJECT_ATTRIBUTE_INFO && \
|
||||
f != MEMORY_OBJECT_PERFORMANCE_INFO && \
|
||||
f != OLD_MEMORY_OBJECT_BEHAVIOR_INFO && \
|
||||
f != MEMORY_OBJECT_BEHAVIOR_INFO && \
|
||||
f != OLD_MEMORY_OBJECT_ATTRIBUTE_INFO)
|
||||
|
||||
|
||||
/*
|
||||
* Used to support options on memory_object_release_name call
|
||||
*/
|
||||
#define MEMORY_OBJECT_TERMINATE_IDLE 0x1
|
||||
#define MEMORY_OBJECT_RESPECT_CACHE 0x2
|
||||
#define MEMORY_OBJECT_RELEASE_NO_OP 0x4
|
||||
|
||||
|
||||
/* named entry processor mapping options */
|
||||
/* enumerated */
|
||||
#define MAP_MEM_NOOP 0
|
||||
#define MAP_MEM_COPYBACK 1
|
||||
#define MAP_MEM_IO 2
|
||||
#define MAP_MEM_WTHRU 3
|
||||
#define MAP_MEM_WCOMB 4 /* Write combining mode */
|
||||
/* aka store gather */
|
||||
#define MAP_MEM_INNERWBACK 5
|
||||
#define MAP_MEM_POSTED 6
|
||||
#define MAP_MEM_RT 7
|
||||
#define MAP_MEM_POSTED_REORDERED 8
|
||||
#define MAP_MEM_POSTED_COMBINED_REORDERED 9
|
||||
|
||||
#define GET_MAP_MEM(flags) \
|
||||
((((unsigned int)(flags)) >> 24) & 0xFF)
|
||||
|
||||
#define SET_MAP_MEM(caching, flags) \
|
||||
((flags) = ((((unsigned int)(caching)) << 24) \
|
||||
& 0xFF000000) | ((flags) & 0xFFFFFF));
|
||||
|
||||
/* leave room for vm_prot bits (0xFF ?) */
|
||||
#define MAP_MEM_LEDGER_TAGGED 0x002000 /* object owned by a specific task and ledger */
|
||||
#define MAP_MEM_PURGABLE_KERNEL_ONLY 0x004000 /* volatility controlled by kernel */
|
||||
#define MAP_MEM_GRAB_SECLUDED 0x008000 /* can grab secluded pages */
|
||||
#define MAP_MEM_ONLY 0x010000 /* change processor caching */
|
||||
#define MAP_MEM_NAMED_CREATE 0x020000 /* create extant object */
|
||||
#define MAP_MEM_PURGABLE 0x040000 /* create a purgable VM object */
|
||||
#define MAP_MEM_NAMED_REUSE 0x080000 /* reuse provided entry if identical */
|
||||
#define MAP_MEM_USE_DATA_ADDR 0x100000 /* preserve address of data, rather than base of page */
|
||||
#define MAP_MEM_VM_COPY 0x200000 /* make a copy of a VM range */
|
||||
#define MAP_MEM_VM_SHARE 0x400000 /* extract a VM range for remap */
|
||||
#define MAP_MEM_4K_DATA_ADDR 0x800000 /* preserve 4K aligned address of data */
|
||||
|
||||
#define MAP_MEM_FLAGS_MASK 0x00FFFF00
|
||||
#define MAP_MEM_FLAGS_USER ( \
|
||||
MAP_MEM_PURGABLE_KERNEL_ONLY | \
|
||||
MAP_MEM_GRAB_SECLUDED | \
|
||||
MAP_MEM_ONLY | \
|
||||
MAP_MEM_NAMED_CREATE | \
|
||||
MAP_MEM_PURGABLE | \
|
||||
MAP_MEM_NAMED_REUSE | \
|
||||
MAP_MEM_USE_DATA_ADDR | \
|
||||
MAP_MEM_VM_COPY | \
|
||||
MAP_MEM_VM_SHARE | \
|
||||
MAP_MEM_LEDGER_TAGGED | \
|
||||
MAP_MEM_4K_DATA_ADDR)
|
||||
#define MAP_MEM_FLAGS_ALL ( \
|
||||
MAP_MEM_FLAGS_USER)
|
||||
|
||||
|
||||
#endif /* _MACH_MEMORY_OBJECT_TYPES_H_ */
|
||||
180
lib/libc/include/x86_64-macos-gnu/mach/mig.h
Normal file
180
lib/libc/include/x86_64-macos-gnu/mach/mig.h
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_ */
|
||||
125
lib/libc/include/x86_64-macos-gnu/mach/mig_errors.h
Normal file
125
lib/libc/include/x86_64-macos-gnu/mach/mig_errors.h
Normal file
@ -0,0 +1,125 @@
|
||||
/*
|
||||
* 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 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.
|
||||
*/
|
||||
/*
|
||||
*/
|
||||
/*
|
||||
* Mach Interface Generator errors
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MACH_MIG_ERRORS_H_
|
||||
#define _MACH_MIG_ERRORS_H_
|
||||
|
||||
#include <mach/mig.h>
|
||||
#include <mach/ndr.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/kern_return.h>
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
/*
|
||||
* These error codes should be specified as system 4, subsytem 2.
|
||||
* But alas backwards compatibility makes that impossible.
|
||||
* The problem is old clients of new servers (eg, the kernel)
|
||||
* which get strange large error codes when there is a Mig problem
|
||||
* in the server. Unfortunately, the IPC system doesn't have
|
||||
* the knowledge to convert the codes in this situation.
|
||||
*/
|
||||
|
||||
#define MIG_TYPE_ERROR -300 /* client type check failure */
|
||||
#define MIG_REPLY_MISMATCH -301 /* wrong reply message ID */
|
||||
#define MIG_REMOTE_ERROR -302 /* server detected error */
|
||||
#define MIG_BAD_ID -303 /* bad request message ID */
|
||||
#define MIG_BAD_ARGUMENTS -304 /* server type check failure */
|
||||
#define MIG_NO_REPLY -305 /* no reply should be send */
|
||||
#define MIG_EXCEPTION -306 /* server raised exception */
|
||||
#define MIG_ARRAY_TOO_LARGE -307 /* array not large enough */
|
||||
#define MIG_SERVER_DIED -308 /* server died */
|
||||
#define MIG_TRAILER_ERROR -309 /* trailer has an unknown format */
|
||||
|
||||
/*
|
||||
* Whenever MIG detects an error, it sends back a generic
|
||||
* mig_reply_error_t format message. Clients must accept
|
||||
* these in addition to the expected reply message format.
|
||||
*/
|
||||
#pragma pack(4)
|
||||
typedef struct {
|
||||
mach_msg_header_t Head;
|
||||
NDR_record_t NDR;
|
||||
kern_return_t RetCode;
|
||||
} mig_reply_error_t;
|
||||
#pragma pack()
|
||||
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
#if !defined(__NDR_convert__mig_reply_error_t__defined)
|
||||
#define __NDR_convert__mig_reply_error_t__defined
|
||||
|
||||
static __inline__ void
|
||||
__NDR_convert__mig_reply_error_t(__unused mig_reply_error_t *x)
|
||||
{
|
||||
#if defined(__NDR_convert__int_rep__kern_return_t__defined)
|
||||
if (x->NDR.int_rep != NDR_record.int_rep) {
|
||||
__NDR_convert__int_rep__kern_return_t(&x->RetCode, x->NDR.int_rep);
|
||||
}
|
||||
#endif /* __NDR_convert__int_rep__kern_return_t__defined */
|
||||
}
|
||||
#endif /* !defined(__NDR_convert__mig_reply_error_t__defined) */
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* _MACH_MIG_ERRORS_H_ */
|
||||
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* 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@
|
||||
*/
|
||||
//This dummy header file is created for mig to check when to call mig_strncpy_zerofill.
|
||||
//Mig checks if this file is available to include and knows that Libsyscall has the new mig_strncpy_zerofill symbols to link to.
|
||||
//Do not delete this file, mig will stop calling mig_strncpy_zerofill.
|
||||
|
||||
#ifndef __MACH_MIG_STRNCPY_ZEROFILL_SUPPORT__
|
||||
#define __MACH_MIG_STRNCPY_ZEROFILL_SUPPORT__
|
||||
|
||||
#endif // __MACH_MIG_STRNCPY_ZEROFILL_SUPPORT__
|
||||
207
lib/libc/include/x86_64-macos-gnu/mach/ndr.h
Normal file
207
lib/libc/include/x86_64-macos-gnu/mach/ndr.h
Normal file
@ -0,0 +1,207 @@
|
||||
/*
|
||||
* 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@
|
||||
*/
|
||||
|
||||
#ifndef _MACH_NDR_H_
|
||||
#define _MACH_NDR_H_
|
||||
|
||||
#include <stdint.h>
|
||||
#include <sys/cdefs.h>
|
||||
#include <libkern/OSByteOrder.h>
|
||||
|
||||
|
||||
typedef struct {
|
||||
unsigned char mig_vers;
|
||||
unsigned char if_vers;
|
||||
unsigned char reserved1;
|
||||
unsigned char mig_encoding;
|
||||
unsigned char int_rep;
|
||||
unsigned char char_rep;
|
||||
unsigned char float_rep;
|
||||
unsigned char reserved2;
|
||||
} NDR_record_t;
|
||||
|
||||
/*
|
||||
* MIG supported protocols for Network Data Representation
|
||||
*/
|
||||
#define NDR_PROTOCOL_2_0 0
|
||||
|
||||
/*
|
||||
* NDR 2.0 format flag type definition and values.
|
||||
*/
|
||||
#define NDR_INT_BIG_ENDIAN 0
|
||||
#define NDR_INT_LITTLE_ENDIAN 1
|
||||
#define NDR_FLOAT_IEEE 0
|
||||
#define NDR_FLOAT_VAX 1
|
||||
#define NDR_FLOAT_CRAY 2
|
||||
#define NDR_FLOAT_IBM 3
|
||||
#define NDR_CHAR_ASCII 0
|
||||
#define NDR_CHAR_EBCDIC 1
|
||||
|
||||
extern NDR_record_t NDR_record;
|
||||
|
||||
/* NDR conversion off by default */
|
||||
|
||||
#if !defined(__NDR_convert__)
|
||||
#define __NDR_convert__ 0
|
||||
#endif /* !defined(__NDR_convert__) */
|
||||
|
||||
#ifndef __NDR_convert__int_rep__
|
||||
#define __NDR_convert__int_rep__ __NDR_convert__
|
||||
#endif /* __NDR_convert__int_rep__ */
|
||||
|
||||
#ifndef __NDR_convert__char_rep__
|
||||
#define __NDR_convert__char_rep__ 0
|
||||
#endif /* __NDR_convert__char_rep__ */
|
||||
|
||||
#ifndef __NDR_convert__float_rep__
|
||||
#define __NDR_convert__float_rep__ 0
|
||||
#endif /* __NDR_convert__float_rep__ */
|
||||
|
||||
#if __NDR_convert__
|
||||
|
||||
#define __NDR_convert__NOOP do ; while (0)
|
||||
#define __NDR_convert__UNKNOWN(s) __NDR_convert__NOOP
|
||||
#define __NDR_convert__SINGLE(a, f, r) do { r((a), (f)); } while (0)
|
||||
#define __NDR_convert__ARRAY(a, f, c, r) \
|
||||
do { int __i__, __C__ = (c); \
|
||||
for (__i__ = 0; __i__ < __C__; __i__++) \
|
||||
r(&(a)[__i__], f); } while (0)
|
||||
#define __NDR_convert__2DARRAY(a, f, s, c, r) \
|
||||
do { int __i__, __C__ = (c), __S__ = (s); \
|
||||
for (__i__ = 0; __i__ < __C__; __i__++) \
|
||||
r(&(a)[__i__ * __S__], f, __S__); } while (0)
|
||||
|
||||
#if __NDR_convert__int_rep__
|
||||
|
||||
#define __NDR_READSWAP_assign(a, rs) do { *(a) = rs(a); } while (0)
|
||||
|
||||
#define __NDR_READSWAP__uint16_t(a) OSReadSwapInt16((void *)a, 0)
|
||||
#define __NDR_READSWAP__int16_t(a) (int16_t)OSReadSwapInt16((void *)a, 0)
|
||||
#define __NDR_READSWAP__uint32_t(a) OSReadSwapInt32((void *)a, 0)
|
||||
#define __NDR_READSWAP__int32_t(a) (int32_t)OSReadSwapInt32((void *)a, 0)
|
||||
#define __NDR_READSWAP__uint64_t(a) OSReadSwapInt64((void *)a, 0)
|
||||
#define __NDR_READSWAP__int64_t(a) (int64_t)OSReadSwapInt64((void *)a, 0)
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
static __inline__ float
|
||||
__NDR_READSWAP__float(float *argp)
|
||||
{
|
||||
union {
|
||||
float sv;
|
||||
uint32_t ull;
|
||||
} result;
|
||||
result.ull = __NDR_READSWAP__uint32_t((uint32_t *)argp);
|
||||
return result.sv;
|
||||
}
|
||||
|
||||
static __inline__ double
|
||||
__NDR_READSWAP__double(double *argp)
|
||||
{
|
||||
union {
|
||||
double sv;
|
||||
uint64_t ull;
|
||||
} result;
|
||||
result.ull = __NDR_READSWAP__uint64_t((uint64_t *)argp);
|
||||
return result.sv;
|
||||
}
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#define __NDR_convert__int_rep__int16_t__defined
|
||||
#define __NDR_convert__int_rep__int16_t(v, f) \
|
||||
__NDR_READSWAP_assign(v, __NDR_READSWAP__int16_t)
|
||||
|
||||
#define __NDR_convert__int_rep__uint16_t__defined
|
||||
#define __NDR_convert__int_rep__uint16_t(v, f) \
|
||||
__NDR_READSWAP_assign(v, __NDR_READSWAP__uint16_t)
|
||||
|
||||
#define __NDR_convert__int_rep__int32_t__defined
|
||||
#define __NDR_convert__int_rep__int32_t(v, f) \
|
||||
__NDR_READSWAP_assign(v, __NDR_READSWAP__int32_t)
|
||||
|
||||
#define __NDR_convert__int_rep__uint32_t__defined
|
||||
#define __NDR_convert__int_rep__uint32_t(v, f) \
|
||||
__NDR_READSWAP_assign(v, __NDR_READSWAP__uint32_t)
|
||||
|
||||
#define __NDR_convert__int_rep__int64_t__defined
|
||||
#define __NDR_convert__int_rep__int64_t(v, f) \
|
||||
__NDR_READSWAP_assign(v, __NDR_READSWAP__int64_t)
|
||||
|
||||
#define __NDR_convert__int_rep__uint64_t__defined
|
||||
#define __NDR_convert__int_rep__uint64_t(v, f) \
|
||||
__NDR_READSWAP_assign(v, __NDR_READSWAP__uint64_t)
|
||||
|
||||
#define __NDR_convert__int_rep__float__defined
|
||||
#define __NDR_convert__int_rep__float(v, f) \
|
||||
__NDR_READSWAP_assign(v, __NDR_READSWAP__float)
|
||||
|
||||
#define __NDR_convert__int_rep__double__defined
|
||||
#define __NDR_convert__int_rep__double(v, f) \
|
||||
__NDR_READSWAP_assign(v, __NDR_READSWAP__double)
|
||||
|
||||
#define __NDR_convert__int_rep__boolean_t__defined
|
||||
#define __NDR_convert__int_rep__boolean_t(v, f) \
|
||||
__NDR_convert__int_rep__int32_t(v,f)
|
||||
|
||||
#define __NDR_convert__int_rep__kern_return_t__defined
|
||||
#define __NDR_convert__int_rep__kern_return_t(v, f) \
|
||||
__NDR_convert__int_rep__int32_t(v,f)
|
||||
|
||||
#define __NDR_convert__int_rep__mach_port_name_t__defined
|
||||
#define __NDR_convert__int_rep__mach_port_name_t(v, f) \
|
||||
__NDR_convert__int_rep__uint32_t(v,f)
|
||||
|
||||
#define __NDR_convert__int_rep__mach_msg_type_number_t__defined
|
||||
#define __NDR_convert__int_rep__mach_msg_type_number_t(v, f) \
|
||||
__NDR_convert__int_rep__uint32_t(v,f)
|
||||
|
||||
#endif /* __NDR_convert__int_rep__ */
|
||||
|
||||
#if __NDR_convert__char_rep__
|
||||
|
||||
#warning NDR character representation conversions not implemented yet!
|
||||
#define __NDR_convert__char_rep__char(v, f) __NDR_convert__NOOP
|
||||
#define __NDR_convert__char_rep__string(v, f, l) __NDR_convert__NOOP
|
||||
|
||||
#endif /* __NDR_convert__char_rep__ */
|
||||
|
||||
#if __NDR_convert__float_rep__
|
||||
|
||||
#warning NDR floating point representation conversions not implemented yet!
|
||||
#define __NDR_convert__float_rep__float(v, f) __NDR_convert__NOOP
|
||||
#define __NDR_convert__float_rep__double(v, f) __NDR_convert__NOOP
|
||||
|
||||
#endif /* __NDR_convert__float_rep__ */
|
||||
|
||||
#endif /* __NDR_convert__ */
|
||||
|
||||
#endif /* _MACH_NDR_H_ */
|
||||
141
lib/libc/include/x86_64-macos-gnu/mach/notify.h
Normal file
141
lib/libc/include/x86_64-macos-gnu/mach/notify.h
Normal file
@ -0,0 +1,141 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2003 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/notify.h
|
||||
*
|
||||
* Kernel notification message definitions.
|
||||
*/
|
||||
|
||||
#ifndef _MACH_NOTIFY_H_
|
||||
#define _MACH_NOTIFY_H_
|
||||
|
||||
#include <mach/port.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/ndr.h>
|
||||
|
||||
/*
|
||||
* An alternative specification of the notification interface
|
||||
* may be found in mach/notify.defs.
|
||||
*/
|
||||
|
||||
#define MACH_NOTIFY_FIRST 0100
|
||||
#define MACH_NOTIFY_PORT_DELETED (MACH_NOTIFY_FIRST + 001)
|
||||
/* A send or send-once right was deleted. */
|
||||
#define MACH_NOTIFY_SEND_POSSIBLE (MACH_NOTIFY_FIRST + 002)
|
||||
/* Now possible to send using specified right */
|
||||
#define MACH_NOTIFY_PORT_DESTROYED (MACH_NOTIFY_FIRST + 005)
|
||||
/* A receive right was (would have been) deallocated */
|
||||
#define MACH_NOTIFY_NO_SENDERS (MACH_NOTIFY_FIRST + 006)
|
||||
/* Receive right has no extant send rights */
|
||||
#define MACH_NOTIFY_SEND_ONCE (MACH_NOTIFY_FIRST + 007)
|
||||
/* An extant send-once right died */
|
||||
#define MACH_NOTIFY_DEAD_NAME (MACH_NOTIFY_FIRST + 010)
|
||||
/* Send or send-once right died, leaving a dead-name */
|
||||
#define MACH_NOTIFY_LAST (MACH_NOTIFY_FIRST + 015)
|
||||
|
||||
typedef mach_port_t notify_port_t;
|
||||
|
||||
/*
|
||||
* Hard-coded message structures for receiving Mach port notification
|
||||
* messages. However, they are not actual large enough to receive
|
||||
* the largest trailers current exported by Mach IPC (so they cannot
|
||||
* be used for space allocations in situations using these new larger
|
||||
* trailers). Instead, the MIG-generated server routines (and
|
||||
* related prototypes should be used).
|
||||
*/
|
||||
typedef struct {
|
||||
mach_msg_header_t not_header;
|
||||
NDR_record_t NDR;
|
||||
mach_port_name_t not_port;/* MACH_MSG_TYPE_PORT_NAME */
|
||||
mach_msg_format_0_trailer_t trailer;
|
||||
} mach_port_deleted_notification_t;
|
||||
|
||||
typedef struct {
|
||||
mach_msg_header_t not_header;
|
||||
NDR_record_t NDR;
|
||||
mach_port_name_t not_port;/* MACH_MSG_TYPE_PORT_NAME */
|
||||
mach_msg_format_0_trailer_t trailer;
|
||||
} mach_send_possible_notification_t;
|
||||
|
||||
typedef struct {
|
||||
mach_msg_header_t not_header;
|
||||
mach_msg_body_t not_body;
|
||||
mach_msg_port_descriptor_t not_port;/* MACH_MSG_TYPE_PORT_RECEIVE */
|
||||
mach_msg_format_0_trailer_t trailer;
|
||||
} mach_port_destroyed_notification_t;
|
||||
|
||||
typedef struct {
|
||||
mach_msg_header_t not_header;
|
||||
NDR_record_t NDR;
|
||||
mach_msg_type_number_t not_count;
|
||||
mach_msg_format_0_trailer_t trailer;
|
||||
} mach_no_senders_notification_t;
|
||||
|
||||
typedef struct {
|
||||
mach_msg_header_t not_header;
|
||||
mach_msg_format_0_trailer_t trailer;
|
||||
} mach_send_once_notification_t;
|
||||
|
||||
typedef struct {
|
||||
mach_msg_header_t not_header;
|
||||
NDR_record_t NDR;
|
||||
mach_port_name_t not_port;/* MACH_MSG_TYPE_PORT_NAME */
|
||||
mach_msg_format_0_trailer_t trailer;
|
||||
} mach_dead_name_notification_t;
|
||||
|
||||
#endif /* _MACH_NOTIFY_H_ */
|
||||
235
lib/libc/include/x86_64-macos-gnu/mach/policy.h
Normal file
235
lib/libc/include/x86_64-macos-gnu/mach/policy.h
Normal file
@ -0,0 +1,235 @@
|
||||
/*
|
||||
* 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 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_POLICY_H_
|
||||
#define _MACH_POLICY_H_
|
||||
|
||||
/*
|
||||
* mach/policy.h
|
||||
*
|
||||
* Definitions for scheduing policy.
|
||||
*/
|
||||
|
||||
/*
|
||||
* All interfaces defined here are obsolete.
|
||||
*/
|
||||
|
||||
#include <mach/boolean.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/vm_types.h>
|
||||
|
||||
/*
|
||||
* Old scheduling control interface
|
||||
*/
|
||||
typedef int policy_t;
|
||||
typedef integer_t *policy_info_t;
|
||||
typedef integer_t *policy_base_t;
|
||||
typedef integer_t *policy_limit_t;
|
||||
|
||||
/*
|
||||
* Policy definitions. Policies should be powers of 2,
|
||||
* but cannot be or'd together other than to test for a
|
||||
* policy 'class'.
|
||||
*/
|
||||
#define POLICY_NULL 0 /* none */
|
||||
#define POLICY_TIMESHARE 1 /* timesharing */
|
||||
#define POLICY_RR 2 /* fixed round robin */
|
||||
#define POLICY_FIFO 4 /* fixed fifo */
|
||||
|
||||
#define __NEW_SCHEDULING_FRAMEWORK__
|
||||
|
||||
/*
|
||||
* Check if policy is of 'class' fixed-priority.
|
||||
*/
|
||||
#define POLICYCLASS_FIXEDPRI (POLICY_RR | POLICY_FIFO)
|
||||
|
||||
/*
|
||||
* Check if policy is valid.
|
||||
*/
|
||||
#define invalid_policy(policy) \
|
||||
((policy) != POLICY_TIMESHARE && \
|
||||
(policy) != POLICY_RR && \
|
||||
(policy) != POLICY_FIFO)
|
||||
|
||||
|
||||
/*
|
||||
* Types for TIMESHARE policy
|
||||
*/
|
||||
struct policy_timeshare_base {
|
||||
integer_t base_priority;
|
||||
};
|
||||
struct policy_timeshare_limit {
|
||||
integer_t max_priority;
|
||||
};
|
||||
struct policy_timeshare_info {
|
||||
integer_t max_priority;
|
||||
integer_t base_priority;
|
||||
integer_t cur_priority;
|
||||
boolean_t depressed;
|
||||
integer_t depress_priority;
|
||||
};
|
||||
|
||||
typedef struct policy_timeshare_base *policy_timeshare_base_t;
|
||||
typedef struct policy_timeshare_limit *policy_timeshare_limit_t;
|
||||
typedef struct policy_timeshare_info *policy_timeshare_info_t;
|
||||
|
||||
typedef struct policy_timeshare_base policy_timeshare_base_data_t;
|
||||
typedef struct policy_timeshare_limit policy_timeshare_limit_data_t;
|
||||
typedef struct policy_timeshare_info policy_timeshare_info_data_t;
|
||||
|
||||
|
||||
#define POLICY_TIMESHARE_BASE_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(struct policy_timeshare_base)/sizeof(integer_t)))
|
||||
#define POLICY_TIMESHARE_LIMIT_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(struct policy_timeshare_limit)/sizeof(integer_t)))
|
||||
#define POLICY_TIMESHARE_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(struct policy_timeshare_info)/sizeof(integer_t)))
|
||||
|
||||
|
||||
/*
|
||||
* Types for the ROUND ROBIN (RR) policy
|
||||
*/
|
||||
struct policy_rr_base {
|
||||
integer_t base_priority;
|
||||
integer_t quantum;
|
||||
};
|
||||
struct policy_rr_limit {
|
||||
integer_t max_priority;
|
||||
};
|
||||
struct policy_rr_info {
|
||||
integer_t max_priority;
|
||||
integer_t base_priority;
|
||||
integer_t quantum;
|
||||
boolean_t depressed;
|
||||
integer_t depress_priority;
|
||||
};
|
||||
|
||||
typedef struct policy_rr_base *policy_rr_base_t;
|
||||
typedef struct policy_rr_limit *policy_rr_limit_t;
|
||||
typedef struct policy_rr_info *policy_rr_info_t;
|
||||
|
||||
typedef struct policy_rr_base policy_rr_base_data_t;
|
||||
typedef struct policy_rr_limit policy_rr_limit_data_t;
|
||||
typedef struct policy_rr_info policy_rr_info_data_t;
|
||||
|
||||
#define POLICY_RR_BASE_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(struct policy_rr_base)/sizeof(integer_t)))
|
||||
#define POLICY_RR_LIMIT_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(struct policy_rr_limit)/sizeof(integer_t)))
|
||||
#define POLICY_RR_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(struct policy_rr_info)/sizeof(integer_t)))
|
||||
|
||||
|
||||
/*
|
||||
* Types for the FIRST-IN-FIRST-OUT (FIFO) policy
|
||||
*/
|
||||
struct policy_fifo_base {
|
||||
integer_t base_priority;
|
||||
};
|
||||
struct policy_fifo_limit {
|
||||
integer_t max_priority;
|
||||
};
|
||||
struct policy_fifo_info {
|
||||
integer_t max_priority;
|
||||
integer_t base_priority;
|
||||
boolean_t depressed;
|
||||
integer_t depress_priority;
|
||||
};
|
||||
|
||||
typedef struct policy_fifo_base *policy_fifo_base_t;
|
||||
typedef struct policy_fifo_limit *policy_fifo_limit_t;
|
||||
typedef struct policy_fifo_info *policy_fifo_info_t;
|
||||
|
||||
typedef struct policy_fifo_base policy_fifo_base_data_t;
|
||||
typedef struct policy_fifo_limit policy_fifo_limit_data_t;
|
||||
typedef struct policy_fifo_info policy_fifo_info_data_t;
|
||||
|
||||
#define POLICY_FIFO_BASE_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(struct policy_fifo_base)/sizeof(integer_t)))
|
||||
#define POLICY_FIFO_LIMIT_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(struct policy_fifo_limit)/sizeof(integer_t)))
|
||||
#define POLICY_FIFO_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(struct policy_fifo_info)/sizeof(integer_t)))
|
||||
|
||||
/*
|
||||
* Aggregate policy types
|
||||
*/
|
||||
|
||||
struct policy_bases {
|
||||
policy_timeshare_base_data_t ts;
|
||||
policy_rr_base_data_t rr;
|
||||
policy_fifo_base_data_t fifo;
|
||||
};
|
||||
|
||||
struct policy_limits {
|
||||
policy_timeshare_limit_data_t ts;
|
||||
policy_rr_limit_data_t rr;
|
||||
policy_fifo_limit_data_t fifo;
|
||||
};
|
||||
|
||||
struct policy_infos {
|
||||
policy_timeshare_info_data_t ts;
|
||||
policy_rr_info_data_t rr;
|
||||
policy_fifo_info_data_t fifo;
|
||||
};
|
||||
|
||||
typedef struct policy_bases policy_base_data_t;
|
||||
typedef struct policy_limits policy_limit_data_t;
|
||||
typedef struct policy_infos policy_info_data_t;
|
||||
|
||||
#endif /* _MACH_POLICY_H_ */
|
||||
360
lib/libc/include/x86_64-macos-gnu/mach/processor.h
Normal file
360
lib/libc/include/x86_64-macos-gnu/mach/processor.h
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_ */
|
||||
153
lib/libc/include/x86_64-macos-gnu/mach/processor_info.h
Normal file
153
lib/libc/include/x86_64-macos-gnu/mach/processor_info.h
Normal file
@ -0,0 +1,153 @@
|
||||
/*
|
||||
* 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 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/processor_info.h
|
||||
* Author: David L. Black
|
||||
* Date: 1988
|
||||
*
|
||||
* Data structure definitions for processor_info, processor_set_info
|
||||
*/
|
||||
|
||||
#ifndef _MACH_PROCESSOR_INFO_H_
|
||||
#define _MACH_PROCESSOR_INFO_H_
|
||||
|
||||
#include <mach/message.h>
|
||||
#include <mach/machine.h>
|
||||
#include <mach/machine/processor_info.h>
|
||||
|
||||
/*
|
||||
* Generic information structure to allow for expansion.
|
||||
*/
|
||||
typedef integer_t *processor_info_t; /* varying array of int. */
|
||||
typedef integer_t *processor_info_array_t; /* varying array of int */
|
||||
|
||||
#define PROCESSOR_INFO_MAX (1024) /* max array size */
|
||||
typedef integer_t processor_info_data_t[PROCESSOR_INFO_MAX];
|
||||
|
||||
|
||||
typedef integer_t *processor_set_info_t; /* varying array of int. */
|
||||
|
||||
#define PROCESSOR_SET_INFO_MAX (1024) /* max array size */
|
||||
typedef integer_t processor_set_info_data_t[PROCESSOR_SET_INFO_MAX];
|
||||
|
||||
/*
|
||||
* Currently defined information.
|
||||
*/
|
||||
typedef int processor_flavor_t;
|
||||
#define PROCESSOR_BASIC_INFO 1 /* basic information */
|
||||
#define PROCESSOR_CPU_LOAD_INFO 2 /* cpu load information */
|
||||
#define PROCESSOR_PM_REGS_INFO 0x10000001 /* performance monitor register info */
|
||||
#define PROCESSOR_TEMPERATURE 0x10000002 /* Processor core temperature */
|
||||
|
||||
struct processor_basic_info {
|
||||
cpu_type_t cpu_type; /* type of cpu */
|
||||
cpu_subtype_t cpu_subtype; /* subtype of cpu */
|
||||
boolean_t running; /* is processor running */
|
||||
int slot_num; /* slot number */
|
||||
boolean_t is_master; /* is this the master processor */
|
||||
};
|
||||
|
||||
typedef struct processor_basic_info processor_basic_info_data_t;
|
||||
typedef struct processor_basic_info *processor_basic_info_t;
|
||||
#define PROCESSOR_BASIC_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(processor_basic_info_data_t)/sizeof(natural_t)))
|
||||
|
||||
struct processor_cpu_load_info { /* number of ticks while running... */
|
||||
unsigned int cpu_ticks[CPU_STATE_MAX]; /* ... in the given mode */
|
||||
};
|
||||
|
||||
typedef struct processor_cpu_load_info processor_cpu_load_info_data_t;
|
||||
typedef struct processor_cpu_load_info *processor_cpu_load_info_t;
|
||||
#define PROCESSOR_CPU_LOAD_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(processor_cpu_load_info_data_t)/sizeof(natural_t)))
|
||||
|
||||
/*
|
||||
* Scaling factor for load_average, mach_factor.
|
||||
*/
|
||||
#define LOAD_SCALE 1000
|
||||
|
||||
typedef int processor_set_flavor_t;
|
||||
#define PROCESSOR_SET_BASIC_INFO 5 /* basic information */
|
||||
|
||||
struct processor_set_basic_info {
|
||||
int processor_count; /* How many processors */
|
||||
int default_policy; /* When others not enabled */
|
||||
};
|
||||
|
||||
typedef struct processor_set_basic_info processor_set_basic_info_data_t;
|
||||
typedef struct processor_set_basic_info *processor_set_basic_info_t;
|
||||
#define PROCESSOR_SET_BASIC_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(processor_set_basic_info_data_t)/sizeof(natural_t)))
|
||||
|
||||
#define PROCESSOR_SET_LOAD_INFO 4 /* scheduling statistics */
|
||||
|
||||
struct processor_set_load_info {
|
||||
int task_count; /* How many tasks */
|
||||
int thread_count; /* How many threads */
|
||||
integer_t load_average; /* Scaled */
|
||||
integer_t mach_factor; /* Scaled */
|
||||
};
|
||||
|
||||
typedef struct processor_set_load_info processor_set_load_info_data_t;
|
||||
typedef struct processor_set_load_info *processor_set_load_info_t;
|
||||
#define PROCESSOR_SET_LOAD_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(processor_set_load_info_data_t)/sizeof(natural_t)))
|
||||
|
||||
|
||||
#endif /* _MACH_PROCESSOR_INFO_H_ */
|
||||
540
lib/libc/include/x86_64-macos-gnu/mach/processor_set.h
Normal file
540
lib/libc/include/x86_64-macos-gnu/mach/processor_set.h
Normal file
@ -0,0 +1,540 @@
|
||||
#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 10
|
||||
#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
|
||||
);
|
||||
|
||||
__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
|
||||
#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;
|
||||
};
|
||||
#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
|
||||
#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;
|
||||
};
|
||||
#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 }
|
||||
#endif
|
||||
|
||||
#ifdef __AfterMigUserHeader
|
||||
__AfterMigUserHeader
|
||||
#endif /* __AfterMigUserHeader */
|
||||
|
||||
#endif /* _processor_set_user_ */
|
||||
135
lib/libc/include/x86_64-macos-gnu/mach/rpc.h
Normal file
135
lib/libc/include/x86_64-macos-gnu/mach/rpc.h
Normal file
@ -0,0 +1,135 @@
|
||||
/*
|
||||
* Copyright (c) 2002,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 RPC Subsystem Interfaces
|
||||
*/
|
||||
|
||||
#ifndef _MACH_RPC_H_
|
||||
#define _MACH_RPC_H_
|
||||
|
||||
#include <mach/boolean.h>
|
||||
#include <mach/kern_return.h>
|
||||
#include <mach/port.h>
|
||||
#include <mach/vm_types.h>
|
||||
|
||||
#include <mach/mig.h>
|
||||
#include <mach/mig_errors.h>
|
||||
#include <mach/machine/rpc.h>
|
||||
#include <mach/thread_status.h>
|
||||
|
||||
/*
|
||||
* These are the types for RPC-specific variants of the MIG routine
|
||||
* descriptor and subsystem data types.
|
||||
*
|
||||
* THIS IS ONLY FOR COMPATIBILITY. WE WILL NOT BE IMPLEMENTING THIS.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Basic mach rpc types.
|
||||
*/
|
||||
typedef unsigned int routine_arg_type;
|
||||
typedef unsigned int routine_arg_offset;
|
||||
typedef unsigned int routine_arg_size;
|
||||
|
||||
/*
|
||||
* Definitions for a signature's argument and routine descriptor's.
|
||||
*/
|
||||
struct rpc_routine_arg_descriptor {
|
||||
routine_arg_type type; /* Port, Array, etc. */
|
||||
routine_arg_size size; /* element size in bytes */
|
||||
routine_arg_size count; /* number of elements */
|
||||
routine_arg_offset offset; /* Offset in list of routine args */
|
||||
};
|
||||
typedef struct rpc_routine_arg_descriptor *rpc_routine_arg_descriptor_t;
|
||||
|
||||
struct rpc_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 of complex argument */
|
||||
/* descriptors */
|
||||
rpc_routine_arg_descriptor_t
|
||||
arg_descr; /* Pointer to beginning of */
|
||||
/* the arg_descr array */
|
||||
unsigned int max_reply_msg; /* Max size for reply msg */
|
||||
};
|
||||
typedef struct rpc_routine_descriptor *rpc_routine_descriptor_t;
|
||||
|
||||
#define RPC_DESCR_SIZE(x) ((x)->descr_count * \
|
||||
sizeof(struct rpc_routine_arg_descriptor))
|
||||
|
||||
struct rpc_signature {
|
||||
struct rpc_routine_descriptor rd;
|
||||
struct rpc_routine_arg_descriptor rad[1];
|
||||
};
|
||||
|
||||
#define RPC_SIGBUF_SIZE 8
|
||||
|
||||
/*
|
||||
* A subsystem describes a set of server routines that can be invoked by
|
||||
* mach_rpc() on the ports that are registered with the subsystem. For
|
||||
* each routine, the routine number is given, along with the
|
||||
* address of the implementation function in the server and a
|
||||
* description of the arguments of the routine (it's "signature").
|
||||
*
|
||||
* This structure definition is only a template for what is really a
|
||||
* variable-length structure (generated by MIG for each subsystem).
|
||||
* The actual structures do not always have one entry in the routine
|
||||
* array, and also have a varying number of entries in the arg_descr
|
||||
* array. Each routine has an array of zero or more arg descriptors
|
||||
* one for each complex arg. These arrays are all catenated together
|
||||
* to form the arg_descr field of the subsystem struct. The
|
||||
* arg_descr field of each routine entry points to a unique sub-sequence
|
||||
* within this catenated array. The goal is to keep everything
|
||||
* contiguous.
|
||||
*/
|
||||
struct rpc_subsystem {
|
||||
void *reserved; /* Reserved for system use */
|
||||
|
||||
mach_msg_id_t start; /* Min routine number */
|
||||
mach_msg_id_t end; /* Max routine number + 1 */
|
||||
unsigned int maxsize; /* Max mach_msg size */
|
||||
vm_address_t base_addr; /* Address of this struct in user */
|
||||
|
||||
struct rpc_routine_descriptor /* Array of routine descriptors */
|
||||
routine[1 /* Actually, (start-end+1) */
|
||||
];
|
||||
|
||||
struct rpc_routine_arg_descriptor
|
||||
arg_descriptor[1 /* Actually, the sum of the descr_ */
|
||||
]; /* count fields for all routines */
|
||||
};
|
||||
typedef struct rpc_subsystem *rpc_subsystem_t;
|
||||
|
||||
#define RPC_SUBSYSTEM_NULL ((rpc_subsystem_t) 0)
|
||||
|
||||
#endif /* _MACH_RPC_H_ */
|
||||
78
lib/libc/include/x86_64-macos-gnu/mach/semaphore.h
Normal file
78
lib/libc/include/x86_64-macos-gnu/mach/semaphore.h
Normal file
@ -0,0 +1,78 @@
|
||||
/*
|
||||
* Copyright (c) 2000-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 _MACH_SEMAPHORE_H_
|
||||
#define _MACH_SEMAPHORE_H_
|
||||
|
||||
#include <mach/port.h>
|
||||
#include <mach/mach_types.h>
|
||||
#include <mach/kern_return.h>
|
||||
#include <mach/sync_policy.h>
|
||||
|
||||
/*
|
||||
* Forward Declarations
|
||||
*
|
||||
* The semaphore creation and deallocation routines are
|
||||
* defined with the Mach task APIs in <mach/task.h>.
|
||||
*
|
||||
* kern_return_t semaphore_create(task_t task,
|
||||
* semaphore_t *new_semaphore,
|
||||
* sync_policy_t policy,
|
||||
* int value);
|
||||
*
|
||||
* kern_return_t semaphore_destroy(task_t task,
|
||||
* semaphore_t semaphore);
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__BEGIN_DECLS
|
||||
|
||||
extern kern_return_t semaphore_signal(semaphore_t semaphore);
|
||||
extern kern_return_t semaphore_signal_all(semaphore_t semaphore);
|
||||
|
||||
extern kern_return_t semaphore_wait(semaphore_t semaphore);
|
||||
|
||||
|
||||
extern kern_return_t semaphore_timedwait(semaphore_t semaphore,
|
||||
mach_timespec_t wait_time);
|
||||
|
||||
extern kern_return_t semaphore_timedwait_signal(semaphore_t wait_semaphore,
|
||||
semaphore_t signal_semaphore,
|
||||
mach_timespec_t wait_time);
|
||||
|
||||
extern kern_return_t semaphore_wait_signal(semaphore_t wait_semaphore,
|
||||
semaphore_t signal_semaphore);
|
||||
|
||||
extern kern_return_t semaphore_signal_thread(semaphore_t semaphore,
|
||||
thread_t thread);
|
||||
|
||||
|
||||
__END_DECLS
|
||||
|
||||
|
||||
#endif /* _MACH_SEMAPHORE_H_ */
|
||||
75
lib/libc/include/x86_64-macos-gnu/mach/std_types.h
Normal file
75
lib/libc/include/x86_64-macos-gnu/mach/std_types.h
Normal file
@ -0,0 +1,75 @@
|
||||
/*
|
||||
* Copyright (c) 2002,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 standard external interface type definitions.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MACH_STD_TYPES_H_
|
||||
#define _MACH_STD_TYPES_H_
|
||||
|
||||
#include <stdint.h>
|
||||
#include <mach/boolean.h>
|
||||
#include <mach/kern_return.h>
|
||||
#include <mach/port.h>
|
||||
#include <mach/vm_types.h>
|
||||
|
||||
#include <sys/_types.h>
|
||||
#include <sys/_types/_uuid_t.h>
|
||||
|
||||
#endif /* _MACH_STD_TYPES_H_ */
|
||||
49
lib/libc/include/x86_64-macos-gnu/mach/sync_policy.h
Normal file
49
lib/libc/include/x86_64-macos-gnu/mach/sync_policy.h
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_ */
|
||||
2523
lib/libc/include/x86_64-macos-gnu/mach/task.h
Normal file
2523
lib/libc/include/x86_64-macos-gnu/mach/task.h
Normal file
File diff suppressed because it is too large
Load Diff
478
lib/libc/include/x86_64-macos-gnu/mach/task_info.h
Normal file
478
lib/libc/include/x86_64-macos-gnu/mach/task_info.h
Normal file
@ -0,0 +1,478 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2007, 2015 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.
|
||||
*/
|
||||
/*
|
||||
* Machine-independent task information structures and definitions.
|
||||
*
|
||||
* The definitions in this file are exported to the user. The kernel
|
||||
* will translate its internal data structures to these structures
|
||||
* as appropriate.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MACH_TASK_INFO_H_
|
||||
#define _MACH_TASK_INFO_H_
|
||||
|
||||
#include <mach/message.h>
|
||||
#include <mach/machine/vm_types.h>
|
||||
#include <mach/time_value.h>
|
||||
#include <mach/policy.h>
|
||||
#include <mach/vm_statistics.h> /* for vm_extmod_statistics_data_t */
|
||||
#include <Availability.h>
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
/*
|
||||
* Generic information structure to allow for expansion.
|
||||
*/
|
||||
typedef natural_t task_flavor_t;
|
||||
typedef integer_t *task_info_t; /* varying array of int */
|
||||
|
||||
/* Deprecated, use per structure _data_t's instead */
|
||||
#define TASK_INFO_MAX (1024) /* maximum array size */
|
||||
typedef integer_t task_info_data_t[TASK_INFO_MAX];
|
||||
|
||||
/*
|
||||
* Currently defined information structures.
|
||||
*/
|
||||
|
||||
#pragma pack(push, 4)
|
||||
|
||||
/* Don't use this, use MACH_TASK_BASIC_INFO instead */
|
||||
#define TASK_BASIC_INFO_32 4 /* basic information */
|
||||
#define TASK_BASIC2_INFO_32 6
|
||||
|
||||
struct task_basic_info_32 {
|
||||
integer_t suspend_count; /* suspend count for task */
|
||||
natural_t virtual_size; /* virtual memory size (bytes) */
|
||||
natural_t resident_size; /* resident memory size (bytes) */
|
||||
time_value_t user_time; /* total user run time for
|
||||
* terminated threads */
|
||||
time_value_t system_time; /* total system run time for
|
||||
* terminated threads */
|
||||
policy_t policy; /* default policy for new threads */
|
||||
};
|
||||
typedef struct task_basic_info_32 task_basic_info_32_data_t;
|
||||
typedef struct task_basic_info_32 *task_basic_info_32_t;
|
||||
#define TASK_BASIC_INFO_32_COUNT \
|
||||
(sizeof(task_basic_info_32_data_t) / sizeof(natural_t))
|
||||
|
||||
/* Don't use this, use MACH_TASK_BASIC_INFO instead */
|
||||
struct task_basic_info_64 {
|
||||
integer_t suspend_count; /* suspend count for task */
|
||||
mach_vm_size_t virtual_size; /* virtual memory size (bytes) */
|
||||
mach_vm_size_t resident_size; /* resident memory size (bytes) */
|
||||
time_value_t user_time; /* total user run time for
|
||||
* terminated threads */
|
||||
time_value_t system_time; /* total system run time for
|
||||
* terminated threads */
|
||||
policy_t policy; /* default policy for new threads */
|
||||
};
|
||||
typedef struct task_basic_info_64 task_basic_info_64_data_t;
|
||||
typedef struct task_basic_info_64 *task_basic_info_64_t;
|
||||
|
||||
#define TASK_BASIC_INFO_64 5 /* 64-bit capable basic info */
|
||||
#define TASK_BASIC_INFO_64_COUNT \
|
||||
(sizeof(task_basic_info_64_data_t) / sizeof(natural_t))
|
||||
|
||||
|
||||
/* localized structure - cannot be safely passed between tasks of differing sizes */
|
||||
/* Don't use this, use MACH_TASK_BASIC_INFO instead */
|
||||
struct task_basic_info {
|
||||
integer_t suspend_count; /* suspend count for task */
|
||||
vm_size_t virtual_size; /* virtual memory size (bytes) */
|
||||
vm_size_t resident_size; /* resident memory size (bytes) */
|
||||
time_value_t user_time; /* total user run time for
|
||||
* terminated threads */
|
||||
time_value_t system_time; /* total system run time for
|
||||
* terminated threads */
|
||||
policy_t policy; /* default policy for new threads */
|
||||
};
|
||||
|
||||
typedef struct task_basic_info task_basic_info_data_t;
|
||||
typedef struct task_basic_info *task_basic_info_t;
|
||||
#define TASK_BASIC_INFO_COUNT \
|
||||
(sizeof(task_basic_info_data_t) / sizeof(natural_t))
|
||||
#if !defined(__LP64__)
|
||||
#define TASK_BASIC_INFO TASK_BASIC_INFO_32
|
||||
#else
|
||||
#define TASK_BASIC_INFO TASK_BASIC_INFO_64
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#define TASK_EVENTS_INFO 2 /* various event counts */
|
||||
|
||||
struct task_events_info {
|
||||
integer_t faults; /* number of page faults */
|
||||
integer_t pageins; /* number of actual pageins */
|
||||
integer_t cow_faults; /* number of copy-on-write faults */
|
||||
integer_t messages_sent; /* number of messages sent */
|
||||
integer_t messages_received; /* number of messages received */
|
||||
integer_t syscalls_mach; /* number of mach system calls */
|
||||
integer_t syscalls_unix; /* number of unix system calls */
|
||||
integer_t csw; /* number of context switches */
|
||||
};
|
||||
typedef struct task_events_info task_events_info_data_t;
|
||||
typedef struct task_events_info *task_events_info_t;
|
||||
#define TASK_EVENTS_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(task_events_info_data_t) / sizeof(natural_t)))
|
||||
|
||||
#define TASK_THREAD_TIMES_INFO 3 /* total times for live threads -
|
||||
* only accurate if suspended */
|
||||
|
||||
struct task_thread_times_info {
|
||||
time_value_t user_time; /* total user run time for
|
||||
* live threads */
|
||||
time_value_t system_time; /* total system run time for
|
||||
* live threads */
|
||||
};
|
||||
|
||||
typedef struct task_thread_times_info task_thread_times_info_data_t;
|
||||
typedef struct task_thread_times_info *task_thread_times_info_t;
|
||||
#define TASK_THREAD_TIMES_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(task_thread_times_info_data_t) / sizeof(natural_t)))
|
||||
|
||||
#define TASK_ABSOLUTETIME_INFO 1
|
||||
|
||||
struct task_absolutetime_info {
|
||||
uint64_t total_user;
|
||||
uint64_t total_system;
|
||||
uint64_t threads_user; /* existing threads only */
|
||||
uint64_t threads_system;
|
||||
};
|
||||
|
||||
typedef struct task_absolutetime_info task_absolutetime_info_data_t;
|
||||
typedef struct task_absolutetime_info *task_absolutetime_info_t;
|
||||
#define TASK_ABSOLUTETIME_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof (task_absolutetime_info_data_t) / sizeof (natural_t)))
|
||||
|
||||
#define TASK_KERNELMEMORY_INFO 7
|
||||
|
||||
struct task_kernelmemory_info {
|
||||
uint64_t total_palloc; /* private kernel mem alloc'ed */
|
||||
uint64_t total_pfree; /* private kernel mem freed */
|
||||
uint64_t total_salloc; /* shared kernel mem alloc'ed */
|
||||
uint64_t total_sfree; /* shared kernel mem freed */
|
||||
};
|
||||
|
||||
typedef struct task_kernelmemory_info task_kernelmemory_info_data_t;
|
||||
typedef struct task_kernelmemory_info *task_kernelmemory_info_t;
|
||||
#define TASK_KERNELMEMORY_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof (task_kernelmemory_info_data_t) / sizeof (natural_t)))
|
||||
|
||||
#define TASK_SECURITY_TOKEN 13
|
||||
#define TASK_SECURITY_TOKEN_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(security_token_t) / sizeof(natural_t)))
|
||||
|
||||
#define TASK_AUDIT_TOKEN 15
|
||||
#define TASK_AUDIT_TOKEN_COUNT \
|
||||
(sizeof(audit_token_t) / sizeof(natural_t))
|
||||
|
||||
|
||||
#define TASK_AFFINITY_TAG_INFO 16 /* This is experimental. */
|
||||
|
||||
struct task_affinity_tag_info {
|
||||
integer_t set_count;
|
||||
integer_t min;
|
||||
integer_t max;
|
||||
integer_t task_count;
|
||||
};
|
||||
typedef struct task_affinity_tag_info task_affinity_tag_info_data_t;
|
||||
typedef struct task_affinity_tag_info *task_affinity_tag_info_t;
|
||||
#define TASK_AFFINITY_TAG_INFO_COUNT \
|
||||
(sizeof(task_affinity_tag_info_data_t) / sizeof(natural_t))
|
||||
|
||||
#define TASK_DYLD_INFO 17
|
||||
|
||||
struct task_dyld_info {
|
||||
mach_vm_address_t all_image_info_addr;
|
||||
mach_vm_size_t all_image_info_size;
|
||||
integer_t all_image_info_format;
|
||||
};
|
||||
typedef struct task_dyld_info task_dyld_info_data_t;
|
||||
typedef struct task_dyld_info *task_dyld_info_t;
|
||||
#define TASK_DYLD_INFO_COUNT \
|
||||
(sizeof(task_dyld_info_data_t) / sizeof(natural_t))
|
||||
#define TASK_DYLD_ALL_IMAGE_INFO_32 0 /* format value */
|
||||
#define TASK_DYLD_ALL_IMAGE_INFO_64 1 /* format value */
|
||||
|
||||
|
||||
#define TASK_EXTMOD_INFO 19
|
||||
|
||||
struct task_extmod_info {
|
||||
unsigned char task_uuid[16];
|
||||
vm_extmod_statistics_data_t extmod_statistics;
|
||||
};
|
||||
typedef struct task_extmod_info task_extmod_info_data_t;
|
||||
typedef struct task_extmod_info *task_extmod_info_t;
|
||||
#define TASK_EXTMOD_INFO_COUNT \
|
||||
(sizeof(task_extmod_info_data_t) / sizeof(natural_t))
|
||||
|
||||
|
||||
#define MACH_TASK_BASIC_INFO 20 /* always 64-bit basic info */
|
||||
struct mach_task_basic_info {
|
||||
mach_vm_size_t virtual_size; /* virtual memory size (bytes) */
|
||||
mach_vm_size_t resident_size; /* resident memory size (bytes) */
|
||||
mach_vm_size_t resident_size_max; /* maximum resident memory size (bytes) */
|
||||
time_value_t user_time; /* total user run time for
|
||||
* terminated threads */
|
||||
time_value_t system_time; /* total system run time for
|
||||
* terminated threads */
|
||||
policy_t policy; /* default policy for new threads */
|
||||
integer_t suspend_count; /* suspend count for task */
|
||||
};
|
||||
typedef struct mach_task_basic_info mach_task_basic_info_data_t;
|
||||
typedef struct mach_task_basic_info *mach_task_basic_info_t;
|
||||
#define MACH_TASK_BASIC_INFO_COUNT \
|
||||
(sizeof(mach_task_basic_info_data_t) / sizeof(natural_t))
|
||||
|
||||
|
||||
#define TASK_POWER_INFO 21
|
||||
|
||||
struct task_power_info {
|
||||
uint64_t total_user;
|
||||
uint64_t total_system;
|
||||
uint64_t task_interrupt_wakeups;
|
||||
uint64_t task_platform_idle_wakeups;
|
||||
uint64_t task_timer_wakeups_bin_1;
|
||||
uint64_t task_timer_wakeups_bin_2;
|
||||
};
|
||||
|
||||
typedef struct task_power_info task_power_info_data_t;
|
||||
typedef struct task_power_info *task_power_info_t;
|
||||
#define TASK_POWER_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof (task_power_info_data_t) / sizeof (natural_t)))
|
||||
|
||||
|
||||
|
||||
#define TASK_VM_INFO 22
|
||||
#define TASK_VM_INFO_PURGEABLE 23
|
||||
struct task_vm_info {
|
||||
mach_vm_size_t virtual_size; /* virtual memory size (bytes) */
|
||||
integer_t region_count; /* number of memory regions */
|
||||
integer_t page_size;
|
||||
mach_vm_size_t resident_size; /* resident memory size (bytes) */
|
||||
mach_vm_size_t resident_size_peak; /* peak resident size (bytes) */
|
||||
|
||||
mach_vm_size_t device;
|
||||
mach_vm_size_t device_peak;
|
||||
mach_vm_size_t internal;
|
||||
mach_vm_size_t internal_peak;
|
||||
mach_vm_size_t external;
|
||||
mach_vm_size_t external_peak;
|
||||
mach_vm_size_t reusable;
|
||||
mach_vm_size_t reusable_peak;
|
||||
mach_vm_size_t purgeable_volatile_pmap;
|
||||
mach_vm_size_t purgeable_volatile_resident;
|
||||
mach_vm_size_t purgeable_volatile_virtual;
|
||||
mach_vm_size_t compressed;
|
||||
mach_vm_size_t compressed_peak;
|
||||
mach_vm_size_t compressed_lifetime;
|
||||
|
||||
/* added for rev1 */
|
||||
mach_vm_size_t phys_footprint;
|
||||
|
||||
/* added for rev2 */
|
||||
mach_vm_address_t min_address;
|
||||
mach_vm_address_t max_address;
|
||||
|
||||
/* added for rev3 */
|
||||
int64_t ledger_phys_footprint_peak;
|
||||
int64_t ledger_purgeable_nonvolatile;
|
||||
int64_t ledger_purgeable_novolatile_compressed;
|
||||
int64_t ledger_purgeable_volatile;
|
||||
int64_t ledger_purgeable_volatile_compressed;
|
||||
int64_t ledger_tag_network_nonvolatile;
|
||||
int64_t ledger_tag_network_nonvolatile_compressed;
|
||||
int64_t ledger_tag_network_volatile;
|
||||
int64_t ledger_tag_network_volatile_compressed;
|
||||
int64_t ledger_tag_media_footprint;
|
||||
int64_t ledger_tag_media_footprint_compressed;
|
||||
int64_t ledger_tag_media_nofootprint;
|
||||
int64_t ledger_tag_media_nofootprint_compressed;
|
||||
int64_t ledger_tag_graphics_footprint;
|
||||
int64_t ledger_tag_graphics_footprint_compressed;
|
||||
int64_t ledger_tag_graphics_nofootprint;
|
||||
int64_t ledger_tag_graphics_nofootprint_compressed;
|
||||
int64_t ledger_tag_neural_footprint;
|
||||
int64_t ledger_tag_neural_footprint_compressed;
|
||||
int64_t ledger_tag_neural_nofootprint;
|
||||
int64_t ledger_tag_neural_nofootprint_compressed;
|
||||
|
||||
/* added for rev4 */
|
||||
uint64_t limit_bytes_remaining;
|
||||
|
||||
/* added for rev5 */
|
||||
integer_t decompressions;
|
||||
};
|
||||
typedef struct task_vm_info task_vm_info_data_t;
|
||||
typedef struct task_vm_info *task_vm_info_t;
|
||||
#define TASK_VM_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof (task_vm_info_data_t) / sizeof (natural_t)))
|
||||
#define TASK_VM_INFO_REV5_COUNT TASK_VM_INFO_COUNT
|
||||
#define TASK_VM_INFO_REV4_COUNT /* doesn't include decompressions */ \
|
||||
((mach_msg_type_number_t) (TASK_VM_INFO_REV5_COUNT - 1))
|
||||
#define TASK_VM_INFO_REV3_COUNT /* doesn't include limit bytes */ \
|
||||
((mach_msg_type_number_t) (TASK_VM_INFO_REV4_COUNT - 2))
|
||||
#define TASK_VM_INFO_REV2_COUNT /* doesn't include extra ledgers info */ \
|
||||
((mach_msg_type_number_t) (TASK_VM_INFO_REV3_COUNT - 42))
|
||||
#define TASK_VM_INFO_REV1_COUNT /* doesn't include min and max address */ \
|
||||
((mach_msg_type_number_t) (TASK_VM_INFO_REV2_COUNT - 4))
|
||||
#define TASK_VM_INFO_REV0_COUNT /* doesn't include phys_footprint */ \
|
||||
((mach_msg_type_number_t) (TASK_VM_INFO_REV1_COUNT - 2))
|
||||
|
||||
typedef struct vm_purgeable_info task_purgable_info_t;
|
||||
|
||||
|
||||
#define TASK_TRACE_MEMORY_INFO 24
|
||||
struct task_trace_memory_info {
|
||||
uint64_t user_memory_address; /* address of start of trace memory buffer */
|
||||
uint64_t buffer_size; /* size of buffer in bytes */
|
||||
uint64_t mailbox_array_size; /* size of mailbox area in bytes */
|
||||
};
|
||||
typedef struct task_trace_memory_info task_trace_memory_info_data_t;
|
||||
typedef struct task_trace_memory_info * task_trace_memory_info_t;
|
||||
#define TASK_TRACE_MEMORY_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(task_trace_memory_info_data_t) / sizeof(natural_t)))
|
||||
|
||||
#define TASK_WAIT_STATE_INFO 25 /* deprecated. */
|
||||
struct task_wait_state_info {
|
||||
uint64_t total_wait_state_time; /* Time that all threads past and present have been in a wait state */
|
||||
uint64_t total_wait_sfi_state_time; /* Time that threads have been in SFI wait (should be a subset of total wait state time */
|
||||
uint32_t _reserved[4];
|
||||
};
|
||||
typedef struct task_wait_state_info task_wait_state_info_data_t;
|
||||
typedef struct task_wait_state_info * task_wait_state_info_t;
|
||||
#define TASK_WAIT_STATE_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(task_wait_state_info_data_t) / sizeof(natural_t)))
|
||||
|
||||
#define TASK_POWER_INFO_V2 26
|
||||
|
||||
typedef struct {
|
||||
uint64_t task_gpu_utilisation;
|
||||
uint64_t task_gpu_stat_reserved0;
|
||||
uint64_t task_gpu_stat_reserved1;
|
||||
uint64_t task_gpu_stat_reserved2;
|
||||
} gpu_energy_data;
|
||||
|
||||
typedef gpu_energy_data *gpu_energy_data_t;
|
||||
struct task_power_info_v2 {
|
||||
task_power_info_data_t cpu_energy;
|
||||
gpu_energy_data gpu_energy;
|
||||
uint64_t task_ptime;
|
||||
uint64_t task_pset_switches;
|
||||
};
|
||||
|
||||
typedef struct task_power_info_v2 task_power_info_v2_data_t;
|
||||
typedef struct task_power_info_v2 *task_power_info_v2_t;
|
||||
#define TASK_POWER_INFO_V2_COUNT_OLD \
|
||||
((mach_msg_type_number_t) (sizeof (task_power_info_v2_data_t) - sizeof(uint64_t)*2) / sizeof (natural_t))
|
||||
#define TASK_POWER_INFO_V2_COUNT \
|
||||
((mach_msg_type_number_t) (sizeof (task_power_info_v2_data_t) / sizeof (natural_t)))
|
||||
|
||||
#define TASK_VM_INFO_PURGEABLE_ACCOUNT 27 /* Used for xnu purgeable vm unit tests */
|
||||
|
||||
|
||||
#define TASK_FLAGS_INFO 28 /* return t_flags field */
|
||||
struct task_flags_info {
|
||||
uint32_t flags; /* task flags */
|
||||
};
|
||||
typedef struct task_flags_info task_flags_info_data_t;
|
||||
typedef struct task_flags_info * task_flags_info_t;
|
||||
#define TASK_FLAGS_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(task_flags_info_data_t) / sizeof (natural_t)))
|
||||
|
||||
#define TF_LP64 0x00000001 /* task has 64-bit addressing */
|
||||
#define TF_64B_DATA 0x00000002 /* task has 64-bit data registers */
|
||||
|
||||
#define TASK_DEBUG_INFO_INTERNAL 29 /* Used for kernel internal development tests. */
|
||||
|
||||
|
||||
/*
|
||||
* Type to control EXC_GUARD delivery options for a task
|
||||
* via task_get/set_exc_guard_behavior interface(s).
|
||||
*/
|
||||
typedef uint32_t task_exc_guard_behavior_t;
|
||||
|
||||
/* EXC_GUARD optional delivery settings on a per-task basis */
|
||||
#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 */
|
||||
#define TASK_EXC_GUARD_VM_FATAL 0x08 /* Virtual Memory EXC_GUARD delivery is fatal */
|
||||
#define TASK_EXC_GUARD_VM_ALL 0x0f
|
||||
|
||||
#define TASK_EXC_GUARD_MP_DELIVER 0x10 /* Deliver mach port EXC_GUARD exceptions */
|
||||
#define TASK_EXC_GUARD_MP_ONCE 0x20 /* Deliver them only once */
|
||||
#define TASK_EXC_GUARD_MP_CORPSE 0x40 /* Deliver them via a forked corpse */
|
||||
#define TASK_EXC_GUARD_MP_FATAL 0x80 /* mach port EXC_GUARD delivery is fatal */
|
||||
#define TASK_EXC_GUARD_MP_ALL 0xf0
|
||||
|
||||
#define TASK_EXC_GUARD_ALL 0xff /* All optional deliver settings */
|
||||
|
||||
|
||||
/*
|
||||
* Obsolete interfaces.
|
||||
*/
|
||||
|
||||
#define TASK_SCHED_TIMESHARE_INFO 10
|
||||
#define TASK_SCHED_RR_INFO 11
|
||||
#define TASK_SCHED_FIFO_INFO 12
|
||||
|
||||
#define TASK_SCHED_INFO 14
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
#endif /* _MACH_TASK_INFO_H_ */
|
||||
54
lib/libc/include/x86_64-macos-gnu/mach/task_inspect.h
Normal file
54
lib/libc/include/x86_64-macos-gnu/mach/task_inspect.h
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) */
|
||||
189
lib/libc/include/x86_64-macos-gnu/mach/task_policy.h
Normal file
189
lib/libc/include/x86_64-macos-gnu/mach/task_policy.h
Normal file
@ -0,0 +1,189 @@
|
||||
/*
|
||||
* 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@
|
||||
*/
|
||||
|
||||
#ifndef _MACH_TASK_POLICY_H_
|
||||
#define _MACH_TASK_POLICY_H_
|
||||
|
||||
#include <mach/mach_types.h>
|
||||
|
||||
/*
|
||||
* These are the calls for accessing the policy parameters
|
||||
* of a particular task.
|
||||
*
|
||||
* 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 task_policy_flavor_t;
|
||||
typedef integer_t *task_policy_t;
|
||||
|
||||
/*
|
||||
* kern_return_t task_policy_set(
|
||||
* task_t task,
|
||||
* task_policy_flavor_t flavor,
|
||||
* task_policy_t policy_info,
|
||||
* mach_msg_type_number_t count);
|
||||
*
|
||||
* kern_return_t task_policy_get(
|
||||
* task_t task,
|
||||
* task_policy_flavor_t flavor,
|
||||
* task_policy_t policy_info,
|
||||
* mach_msg_type_number_t *count,
|
||||
* boolean_t *get_default);
|
||||
*/
|
||||
|
||||
/*
|
||||
* Defined flavors.
|
||||
*/
|
||||
/*
|
||||
* TASK_CATEGORY_POLICY:
|
||||
*
|
||||
* This provides information to the kernel about the role
|
||||
* of the task in the system.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* role: Enumerated as follows:
|
||||
*
|
||||
* TASK_UNSPECIFIED is the default, since the role is not
|
||||
* inherited from the parent.
|
||||
*
|
||||
* TASK_FOREGROUND_APPLICATION should be assigned when the
|
||||
* task is a normal UI application in the foreground from
|
||||
* the HI point of view.
|
||||
* **N.B. There may be more than one of these at a given time.
|
||||
*
|
||||
* TASK_BACKGROUND_APPLICATION should be assigned when the
|
||||
* task is a normal UI application in the background from
|
||||
* the HI point of view.
|
||||
*
|
||||
* TASK_CONTROL_APPLICATION should be assigned to the unique
|
||||
* UI application which implements the pop-up application dialog.
|
||||
* There can only be one task at a time with this designation,
|
||||
* which is assigned FCFS.
|
||||
*
|
||||
* TASK_GRAPHICS_SERVER should be assigned to the graphics
|
||||
* management (window) server. There can only be one task at
|
||||
* a time with this designation, which is assigned FCFS.
|
||||
*/
|
||||
|
||||
#define TASK_CATEGORY_POLICY 1
|
||||
|
||||
#define TASK_SUPPRESSION_POLICY 3
|
||||
#define TASK_POLICY_STATE 4
|
||||
#define TASK_BASE_QOS_POLICY 8
|
||||
#define TASK_OVERRIDE_QOS_POLICY 9
|
||||
#define TASK_BASE_LATENCY_QOS_POLICY 10
|
||||
#define TASK_BASE_THROUGHPUT_QOS_POLICY 11
|
||||
|
||||
|
||||
enum task_role {
|
||||
TASK_RENICED = -1,
|
||||
TASK_UNSPECIFIED = 0,
|
||||
TASK_FOREGROUND_APPLICATION = 1,
|
||||
TASK_BACKGROUND_APPLICATION = 2,
|
||||
TASK_CONTROL_APPLICATION = 3,
|
||||
TASK_GRAPHICS_SERVER = 4,
|
||||
TASK_THROTTLE_APPLICATION = 5,
|
||||
TASK_NONUI_APPLICATION = 6,
|
||||
TASK_DEFAULT_APPLICATION = 7,
|
||||
TASK_DARWINBG_APPLICATION = 8,
|
||||
};
|
||||
|
||||
typedef integer_t task_role_t;
|
||||
|
||||
struct task_category_policy {
|
||||
task_role_t role;
|
||||
};
|
||||
|
||||
typedef struct task_category_policy task_category_policy_data_t;
|
||||
typedef struct task_category_policy *task_category_policy_t;
|
||||
|
||||
#define TASK_CATEGORY_POLICY_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof (task_category_policy_data_t) / sizeof (integer_t)))
|
||||
|
||||
|
||||
enum task_latency_qos {
|
||||
LATENCY_QOS_TIER_UNSPECIFIED = 0x0,
|
||||
LATENCY_QOS_TIER_0 = ((0xFF << 16) | 1),
|
||||
LATENCY_QOS_TIER_1 = ((0xFF << 16) | 2),
|
||||
LATENCY_QOS_TIER_2 = ((0xFF << 16) | 3),
|
||||
LATENCY_QOS_TIER_3 = ((0xFF << 16) | 4),
|
||||
LATENCY_QOS_TIER_4 = ((0xFF << 16) | 5),
|
||||
LATENCY_QOS_TIER_5 = ((0xFF << 16) | 6)
|
||||
};
|
||||
typedef integer_t task_latency_qos_t;
|
||||
enum task_throughput_qos {
|
||||
THROUGHPUT_QOS_TIER_UNSPECIFIED = 0x0,
|
||||
THROUGHPUT_QOS_TIER_0 = ((0xFE << 16) | 1),
|
||||
THROUGHPUT_QOS_TIER_1 = ((0xFE << 16) | 2),
|
||||
THROUGHPUT_QOS_TIER_2 = ((0xFE << 16) | 3),
|
||||
THROUGHPUT_QOS_TIER_3 = ((0xFE << 16) | 4),
|
||||
THROUGHPUT_QOS_TIER_4 = ((0xFE << 16) | 5),
|
||||
THROUGHPUT_QOS_TIER_5 = ((0xFE << 16) | 6),
|
||||
};
|
||||
|
||||
#define LATENCY_QOS_LAUNCH_DEFAULT_TIER LATENCY_QOS_TIER_3
|
||||
#define THROUGHPUT_QOS_LAUNCH_DEFAULT_TIER THROUGHPUT_QOS_TIER_3
|
||||
|
||||
typedef integer_t task_throughput_qos_t;
|
||||
|
||||
struct task_qos_policy {
|
||||
task_latency_qos_t task_latency_qos_tier;
|
||||
task_throughput_qos_t task_throughput_qos_tier;
|
||||
};
|
||||
|
||||
typedef struct task_qos_policy *task_qos_policy_t;
|
||||
#define TASK_QOS_POLICY_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof (struct task_qos_policy) / sizeof (integer_t)))
|
||||
|
||||
/* These should be removed - they belong in proc_info.h */
|
||||
#define PROC_FLAG_DARWINBG 0x8000 /* process in darwin background */
|
||||
#define PROC_FLAG_EXT_DARWINBG 0x10000 /* process in darwin background - external enforcement */
|
||||
#define PROC_FLAG_IOS_APPLEDAEMON 0x20000 /* process is apple ios daemon */
|
||||
#define PROC_FLAG_IOS_IMPPROMOTION 0x80000 /* process is apple ios daemon */
|
||||
#define PROC_FLAG_ADAPTIVE 0x100000 /* Process is adaptive */
|
||||
#define PROC_FLAG_ADAPTIVE_IMPORTANT 0x200000 /* Process is adaptive, and is currently important */
|
||||
#define PROC_FLAG_IMPORTANCE_DONOR 0x400000 /* Process is marked as an importance donor */
|
||||
#define PROC_FLAG_SUPPRESSED 0x800000 /* Process is suppressed */
|
||||
#define PROC_FLAG_APPLICATION 0x1000000 /* Process is an application */
|
||||
#define PROC_FLAG_IOS_APPLICATION PROC_FLAG_APPLICATION /* Process is an application */
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* _MACH_TASK_POLICY_H_ */
|
||||
132
lib/libc/include/x86_64-macos-gnu/mach/task_special_ports.h
Normal file
132
lib/libc/include/x86_64-macos-gnu/mach/task_special_ports.h
Normal file
@ -0,0 +1,132 @@
|
||||
/*
|
||||
* 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 /* Represents task to the outside
|
||||
* world.*/
|
||||
|
||||
#define TASK_HOST_PORT 2 /* The host (priv) port for task. */
|
||||
|
||||
#define TASK_NAME_PORT 3 /* the name (unpriv) port for task */
|
||||
|
||||
#define TASK_BOOTSTRAP_PORT 4 /* Bootstrap environment 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_ */
|
||||
1336
lib/libc/include/x86_64-macos-gnu/mach/thread_act.h
Normal file
1336
lib/libc/include/x86_64-macos-gnu/mach/thread_act.h
Normal file
File diff suppressed because it is too large
Load Diff
211
lib/libc/include/x86_64-macos-gnu/mach/thread_info.h
Normal file
211
lib/libc/include/x86_64-macos-gnu/mach/thread_info.h
Normal file
@ -0,0 +1,211 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2005, 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@
|
||||
*/
|
||||
/*
|
||||
* @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/thread_info
|
||||
*
|
||||
* Thread information structure and definitions.
|
||||
*
|
||||
* The defintions in this file are exported to the user. The kernel
|
||||
* will translate its internal data structures to these structures
|
||||
* as appropriate.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MACH_THREAD_INFO_H_
|
||||
#define _MACH_THREAD_INFO_H_
|
||||
|
||||
#include <mach/boolean.h>
|
||||
#include <mach/policy.h>
|
||||
#include <mach/time_value.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/machine/vm_types.h>
|
||||
|
||||
/*
|
||||
* Generic information structure to allow for expansion.
|
||||
*/
|
||||
typedef natural_t thread_flavor_t;
|
||||
typedef integer_t *thread_info_t; /* varying array of int */
|
||||
|
||||
#define THREAD_INFO_MAX (32) /* maximum array size */
|
||||
typedef integer_t thread_info_data_t[THREAD_INFO_MAX];
|
||||
|
||||
/*
|
||||
* Currently defined information.
|
||||
*/
|
||||
#define THREAD_BASIC_INFO 3 /* basic information */
|
||||
|
||||
struct thread_basic_info {
|
||||
time_value_t user_time; /* user run time */
|
||||
time_value_t system_time; /* system run time */
|
||||
integer_t cpu_usage; /* scaled cpu usage percentage */
|
||||
policy_t policy; /* scheduling policy in effect */
|
||||
integer_t run_state; /* run state (see below) */
|
||||
integer_t flags; /* various flags (see below) */
|
||||
integer_t suspend_count; /* suspend count for thread */
|
||||
integer_t sleep_time; /* number of seconds that thread
|
||||
* has been sleeping */
|
||||
};
|
||||
|
||||
typedef struct thread_basic_info thread_basic_info_data_t;
|
||||
typedef struct thread_basic_info *thread_basic_info_t;
|
||||
#define THREAD_BASIC_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(thread_basic_info_data_t) / sizeof(natural_t)))
|
||||
|
||||
#define THREAD_IDENTIFIER_INFO 4 /* thread id and other information */
|
||||
|
||||
struct thread_identifier_info {
|
||||
uint64_t thread_id; /* system-wide unique 64-bit thread id */
|
||||
uint64_t thread_handle; /* handle to be used by libproc */
|
||||
uint64_t dispatch_qaddr; /* libdispatch queue address */
|
||||
};
|
||||
|
||||
typedef struct thread_identifier_info thread_identifier_info_data_t;
|
||||
typedef struct thread_identifier_info *thread_identifier_info_t;
|
||||
#define THREAD_IDENTIFIER_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(thread_identifier_info_data_t) / sizeof(natural_t)))
|
||||
|
||||
/*
|
||||
* Scale factor for usage field.
|
||||
*/
|
||||
|
||||
#define TH_USAGE_SCALE 1000
|
||||
|
||||
/*
|
||||
* Thread run states (state field).
|
||||
*/
|
||||
|
||||
#define TH_STATE_RUNNING 1 /* thread is running normally */
|
||||
#define TH_STATE_STOPPED 2 /* thread is stopped */
|
||||
#define TH_STATE_WAITING 3 /* thread is waiting normally */
|
||||
#define TH_STATE_UNINTERRUPTIBLE 4 /* thread is in an uninterruptible
|
||||
* wait */
|
||||
#define TH_STATE_HALTED 5 /* thread is halted at a
|
||||
* clean point */
|
||||
|
||||
/*
|
||||
* Thread flags (flags field).
|
||||
*/
|
||||
#define TH_FLAGS_SWAPPED 0x1 /* thread is swapped out */
|
||||
#define TH_FLAGS_IDLE 0x2 /* thread is an idle thread */
|
||||
#define TH_FLAGS_GLOBAL_FORCED_IDLE 0x4 /* thread performs global forced idle */
|
||||
|
||||
/*
|
||||
* Thread extended info (returns same info as proc_pidinfo(...,PROC_PIDTHREADINFO,...)
|
||||
*/
|
||||
#define THREAD_EXTENDED_INFO 5
|
||||
#define MAXTHREADNAMESIZE 64
|
||||
struct thread_extended_info { // same as proc_threadinfo (from proc_info.h) & proc_threadinfo_internal (from bsd_taskinfo.h)
|
||||
uint64_t pth_user_time; /* user run time */
|
||||
uint64_t pth_system_time; /* system run time */
|
||||
int32_t pth_cpu_usage; /* scaled cpu usage percentage */
|
||||
int32_t pth_policy; /* scheduling policy in effect */
|
||||
int32_t pth_run_state; /* run state (see below) */
|
||||
int32_t pth_flags; /* various flags (see below) */
|
||||
int32_t pth_sleep_time; /* number of seconds that thread */
|
||||
int32_t pth_curpri; /* cur priority*/
|
||||
int32_t pth_priority; /* priority*/
|
||||
int32_t pth_maxpriority; /* max priority*/
|
||||
char pth_name[MAXTHREADNAMESIZE]; /* thread name, if any */
|
||||
};
|
||||
typedef struct thread_extended_info thread_extended_info_data_t;
|
||||
typedef struct thread_extended_info * thread_extended_info_t;
|
||||
#define THREAD_EXTENDED_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(thread_extended_info_data_t) / sizeof (natural_t)))
|
||||
|
||||
#define THREAD_DEBUG_INFO_INTERNAL 6 /* for kernel development internal info */
|
||||
|
||||
|
||||
#define IO_NUM_PRIORITIES 4
|
||||
|
||||
#define UPDATE_IO_STATS(info, size) \
|
||||
{ \
|
||||
info.count++; \
|
||||
info.size += size; \
|
||||
}
|
||||
|
||||
#define UPDATE_IO_STATS_ATOMIC(info, io_size) \
|
||||
{ \
|
||||
OSIncrementAtomic64((SInt64 *)&(info.count)); \
|
||||
OSAddAtomic64(io_size, (SInt64 *)&(info.size)); \
|
||||
}
|
||||
|
||||
struct io_stat_entry {
|
||||
uint64_t count;
|
||||
uint64_t size;
|
||||
};
|
||||
|
||||
struct io_stat_info {
|
||||
struct io_stat_entry disk_reads;
|
||||
struct io_stat_entry io_priority[IO_NUM_PRIORITIES];
|
||||
struct io_stat_entry paging;
|
||||
struct io_stat_entry metadata;
|
||||
struct io_stat_entry total_io;
|
||||
};
|
||||
|
||||
typedef struct io_stat_info *io_stat_info_t;
|
||||
|
||||
|
||||
/*
|
||||
* Obsolete interfaces.
|
||||
*/
|
||||
|
||||
#define THREAD_SCHED_TIMESHARE_INFO 10
|
||||
#define THREAD_SCHED_RR_INFO 11
|
||||
#define THREAD_SCHED_FIFO_INFO 12
|
||||
|
||||
#endif /* _MACH_THREAD_INFO_H_ */
|
||||
266
lib/libc/include/x86_64-macos-gnu/mach/thread_policy.h
Normal file
266
lib/libc/include/x86_64-macos-gnu/mach/thread_policy.h
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_ */
|
||||
@ -0,0 +1,83 @@
|
||||
/*
|
||||
* 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/thread_special_ports.h
|
||||
*
|
||||
* Defines codes for special_purpose thread ports. These are NOT
|
||||
* port identifiers - they are only used for the thread_get_special_port
|
||||
* and thread_set_special_port routines.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MACH_THREAD_SPECIAL_PORTS_H_
|
||||
#define _MACH_THREAD_SPECIAL_PORTS_H_
|
||||
|
||||
#define THREAD_KERNEL_PORT 1 /* Represents the thread to the outside
|
||||
* world.*/
|
||||
|
||||
/*
|
||||
* Definitions for ease of use
|
||||
*/
|
||||
|
||||
#define thread_get_kernel_port(thread, port) \
|
||||
(thread_get_special_port((thread), THREAD_KERNEL_PORT, (port)))
|
||||
|
||||
#define thread_set_kernel_port(thread, port) \
|
||||
(thread_set_special_port((thread), THREAD_KERNEL_PORT, (port)))
|
||||
|
||||
#endif /* _MACH_THREAD_SPECIAL_PORTS_H_ */
|
||||
77
lib/libc/include/x86_64-macos-gnu/mach/thread_switch.h
Normal file
77
lib/libc/include/x86_64-macos-gnu/mach/thread_switch.h
Normal file
@ -0,0 +1,77 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
/*
|
||||
*/
|
||||
|
||||
#ifndef _MACH_THREAD_SWITCH_H_
|
||||
#define _MACH_THREAD_SWITCH_H_
|
||||
|
||||
#include <mach/mach_types.h>
|
||||
#include <mach/kern_return.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/mach_traps.h>
|
||||
|
||||
/*
|
||||
* Constant definitions for thread_switch trap.
|
||||
*/
|
||||
|
||||
#define SWITCH_OPTION_NONE 0
|
||||
#define SWITCH_OPTION_DEPRESS 1
|
||||
#define SWITCH_OPTION_WAIT 2
|
||||
|
||||
#define valid_switch_option(opt) (0 <= (opt) && (opt) <= 5)
|
||||
|
||||
#endif /* _MACH_THREAD_SWITCH_H_ */
|
||||
96
lib/libc/include/x86_64-macos-gnu/mach/time_value.h
Normal file
96
lib/libc/include/x86_64-macos-gnu/mach/time_value.h
Normal file
@ -0,0 +1,96 @@
|
||||
/*
|
||||
* 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_TIME_VALUE_H_
|
||||
#define _MACH_TIME_VALUE_H_
|
||||
|
||||
#include <mach/machine/vm_types.h>
|
||||
|
||||
/*
|
||||
* Time value returned by kernel.
|
||||
*/
|
||||
|
||||
struct time_value {
|
||||
integer_t seconds;
|
||||
integer_t microseconds;
|
||||
};
|
||||
|
||||
typedef struct time_value time_value_t;
|
||||
|
||||
/*
|
||||
* Macros to manipulate time values. Assume that time values
|
||||
* are normalized (microseconds <= 999999).
|
||||
*/
|
||||
#define TIME_MICROS_MAX (1000000)
|
||||
|
||||
#define time_value_add_usec(val, micros) { \
|
||||
if (((val)->microseconds += (micros)) \
|
||||
>= TIME_MICROS_MAX) { \
|
||||
(val)->microseconds -= TIME_MICROS_MAX; \
|
||||
(val)->seconds++; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define time_value_add(result, addend) { \
|
||||
(result)->microseconds += (addend)->microseconds; \
|
||||
(result)->seconds += (addend)->seconds; \
|
||||
if ((result)->microseconds >= TIME_MICROS_MAX) { \
|
||||
(result)->microseconds -= TIME_MICROS_MAX; \
|
||||
(result)->seconds++; \
|
||||
} \
|
||||
}
|
||||
|
||||
#endif /* _MACH_TIME_VALUE_H_ */
|
||||
99
lib/libc/include/x86_64-macos-gnu/mach/vm_attributes.h
Normal file
99
lib/libc/include/x86_64-macos-gnu/mach/vm_attributes.h
Normal file
@ -0,0 +1,99 @@
|
||||
/*
|
||||
* 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_attributes.h
|
||||
* Author: Alessandro Forin
|
||||
*
|
||||
* Virtual memory attributes definitions.
|
||||
*
|
||||
* These definitions are in addition to the machine-independent
|
||||
* ones (e.g. protection), and are only selectively supported
|
||||
* on specific machine architectures.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MACH_VM_ATTRIBUTES_H_
|
||||
#define _MACH_VM_ATTRIBUTES_H_
|
||||
|
||||
/*
|
||||
* Types of machine-dependent attributes
|
||||
*/
|
||||
typedef unsigned int vm_machine_attribute_t;
|
||||
|
||||
#define MATTR_CACHE 1 /* cachability */
|
||||
#define MATTR_MIGRATE 2 /* migrability */
|
||||
#define MATTR_REPLICATE 4 /* replicability */
|
||||
|
||||
/*
|
||||
* Values for the above, e.g. operations on attribute
|
||||
*/
|
||||
typedef int vm_machine_attribute_val_t;
|
||||
|
||||
#define MATTR_VAL_OFF 0 /* (generic) turn attribute off */
|
||||
#define MATTR_VAL_ON 1 /* (generic) turn attribute on */
|
||||
#define MATTR_VAL_GET 2 /* (generic) return current value */
|
||||
|
||||
#define MATTR_VAL_CACHE_FLUSH 6 /* flush from all caches */
|
||||
#define MATTR_VAL_DCACHE_FLUSH 7 /* flush from data caches */
|
||||
#define MATTR_VAL_ICACHE_FLUSH 8 /* flush from instruction caches */
|
||||
#define MATTR_VAL_CACHE_SYNC 9 /* sync I+D caches */
|
||||
#define MATTR_VAL_CACHE_SYNC 9 /* sync I+D caches */
|
||||
|
||||
#define MATTR_VAL_GET_INFO 10 /* get page info (stats) */
|
||||
|
||||
#endif /* _MACH_VM_ATTRIBUTES_H_ */
|
||||
79
lib/libc/include/x86_64-macos-gnu/mach/vm_behavior.h
Normal file
79
lib/libc/include/x86_64-macos-gnu/mach/vm_behavior.h
Normal file
@ -0,0 +1,79 @@
|
||||
/*
|
||||
* 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@
|
||||
*/
|
||||
/*
|
||||
* File: mach/vm_behavior.h
|
||||
*
|
||||
* Virtual memory map behavior definitions.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MACH_VM_BEHAVIOR_H_
|
||||
#define _MACH_VM_BEHAVIOR_H_
|
||||
|
||||
/*
|
||||
* Types defined:
|
||||
*
|
||||
* vm_behavior_t behavior codes.
|
||||
*/
|
||||
|
||||
typedef int vm_behavior_t;
|
||||
|
||||
/*
|
||||
* Enumeration of valid values for vm_behavior_t.
|
||||
* These describe expected page reference behavior for
|
||||
* for a given range of virtual memory. For implementation
|
||||
* details see vm/vm_fault.c
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* The following behaviors affect the memory region's future behavior
|
||||
* and are stored in the VM map entry data structure.
|
||||
*/
|
||||
#define VM_BEHAVIOR_DEFAULT ((vm_behavior_t) 0) /* default */
|
||||
#define VM_BEHAVIOR_RANDOM ((vm_behavior_t) 1) /* random */
|
||||
#define VM_BEHAVIOR_SEQUENTIAL ((vm_behavior_t) 2) /* forward sequential */
|
||||
#define VM_BEHAVIOR_RSEQNTL ((vm_behavior_t) 3) /* reverse sequential */
|
||||
|
||||
/*
|
||||
* The following "behaviors" affect the memory region only at the time of the
|
||||
* call and are not stored in the VM map entry.
|
||||
*/
|
||||
#define VM_BEHAVIOR_WILLNEED ((vm_behavior_t) 4) /* will need in near future */
|
||||
#define VM_BEHAVIOR_DONTNEED ((vm_behavior_t) 5) /* dont need in near future */
|
||||
#define VM_BEHAVIOR_FREE ((vm_behavior_t) 6) /* free memory without write-back */
|
||||
#define VM_BEHAVIOR_ZERO_WIRED_PAGES ((vm_behavior_t) 7) /* zero out the wired pages of an entry if it is being deleted without unwiring them first */
|
||||
#define VM_BEHAVIOR_REUSABLE ((vm_behavior_t) 8)
|
||||
#define VM_BEHAVIOR_REUSE ((vm_behavior_t) 9)
|
||||
#define VM_BEHAVIOR_CAN_REUSE ((vm_behavior_t) 10)
|
||||
#define VM_BEHAVIOR_PAGEOUT ((vm_behavior_t) 11)
|
||||
|
||||
#endif /*_MACH_VM_BEHAVIOR_H_*/
|
||||
89
lib/libc/include/x86_64-macos-gnu/mach/vm_inherit.h
Normal file
89
lib/libc/include/x86_64-macos-gnu/mach/vm_inherit.h
Normal file
@ -0,0 +1,89 @@
|
||||
/*
|
||||
* 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_inherit.h
|
||||
* Author: Avadis Tevanian, Jr., Michael Wayne Young
|
||||
*
|
||||
* Virtual memory map inheritance definitions.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MACH_VM_INHERIT_H_
|
||||
#define _MACH_VM_INHERIT_H_
|
||||
|
||||
/*
|
||||
* Types defined:
|
||||
*
|
||||
* vm_inherit_t inheritance codes.
|
||||
*/
|
||||
|
||||
typedef unsigned int vm_inherit_t; /* might want to change this */
|
||||
|
||||
/*
|
||||
* Enumeration of valid values for vm_inherit_t.
|
||||
*/
|
||||
|
||||
#define VM_INHERIT_SHARE ((vm_inherit_t) 0) /* share with child */
|
||||
#define VM_INHERIT_COPY ((vm_inherit_t) 1) /* copy into child */
|
||||
#define VM_INHERIT_NONE ((vm_inherit_t) 2) /* absent from child */
|
||||
#define VM_INHERIT_DONATE_COPY ((vm_inherit_t) 3) /* copy and delete */
|
||||
|
||||
#define VM_INHERIT_DEFAULT VM_INHERIT_COPY
|
||||
#define VM_INHERIT_LAST_VALID VM_INHERIT_NONE
|
||||
|
||||
#endif /* _MACH_VM_INHERIT_H_ */
|
||||
1440
lib/libc/include/x86_64-macos-gnu/mach/vm_map.h
Normal file
1440
lib/libc/include/x86_64-macos-gnu/mach/vm_map.h
Normal file
File diff suppressed because it is too large
Load Diff
68
lib/libc/include/x86_64-macos-gnu/mach/vm_page_size.h
Normal file
68
lib/libc/include/x86_64-macos-gnu/mach/vm_page_size.h
Normal file
@ -0,0 +1,68 @@
|
||||
/*
|
||||
* 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 _VM_PAGE_SIZE_H_
|
||||
#define _VM_PAGE_SIZE_H_
|
||||
|
||||
#include <Availability.h>
|
||||
#include <mach/mach_types.h>
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/*
|
||||
* Globally interesting numbers.
|
||||
* These macros assume vm_page_size is a power-of-2.
|
||||
*/
|
||||
extern vm_size_t vm_page_size;
|
||||
extern vm_size_t vm_page_mask;
|
||||
extern int vm_page_shift;
|
||||
|
||||
/*
|
||||
* These macros assume vm_page_size is a power-of-2.
|
||||
*/
|
||||
#define trunc_page(x) ((x) & (~(vm_page_size - 1)))
|
||||
#define round_page(x) trunc_page((x) + (vm_page_size - 1))
|
||||
|
||||
/*
|
||||
* Page-size rounding macros for the fixed-width VM types.
|
||||
*/
|
||||
#define mach_vm_trunc_page(x) ((mach_vm_offset_t)(x) & ~((signed)vm_page_mask))
|
||||
#define mach_vm_round_page(x) (((mach_vm_offset_t)(x) + vm_page_mask) & ~((signed)vm_page_mask))
|
||||
|
||||
|
||||
extern vm_size_t vm_kernel_page_size __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0);
|
||||
extern vm_size_t vm_kernel_page_mask __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0);
|
||||
extern int vm_kernel_page_shift __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0);
|
||||
|
||||
#define trunc_page_kernel(x) ((x) & (~vm_kernel_page_mask))
|
||||
#define round_page_kernel(x) trunc_page_kernel((x) + vm_kernel_page_mask)
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
162
lib/libc/include/x86_64-macos-gnu/mach/vm_purgable.h
Normal file
162
lib/libc/include/x86_64-macos-gnu/mach/vm_purgable.h
Normal file
@ -0,0 +1,162 @@
|
||||
/*
|
||||
* Copyright (c) 2003-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@
|
||||
*/
|
||||
|
||||
/*
|
||||
* Virtual memory map purgeable object definitions.
|
||||
* Objects that will be needed in the future (forward cached objects) should be queued LIFO.
|
||||
* Objects that have been used and are cached for reuse (backward cached) should be queued FIFO.
|
||||
* Every user of purgeable memory is entitled to using the highest volatile group (7).
|
||||
* Only if a client wants some of its objects to definitely be purged earlier, it can put those in
|
||||
* another group. This could be used to make all FIFO objects (in the lower group) go away before
|
||||
* any LIFO objects (in the higher group) go away.
|
||||
* Objects that should not get any chance to stay around can be marked as "obsolete". They will
|
||||
* be emptied before any other objects or pages are reclaimed. Obsolete objects are not emptied
|
||||
* in any particular order.
|
||||
* 'purgeable' is recognized as the correct spelling. For historical reasons, definitions
|
||||
* in this file are spelled 'purgable'.
|
||||
*/
|
||||
|
||||
#ifndef _MACH_VM_PURGABLE_H_
|
||||
#define _MACH_VM_PURGABLE_H_
|
||||
|
||||
/*
|
||||
* Types defined:
|
||||
*
|
||||
* vm_purgable_t purgeable object control codes.
|
||||
*/
|
||||
|
||||
typedef int vm_purgable_t;
|
||||
|
||||
/*
|
||||
* Enumeration of valid values for vm_purgable_t.
|
||||
*/
|
||||
#define VM_PURGABLE_SET_STATE ((vm_purgable_t) 0) /* set state of purgeable object */
|
||||
#define VM_PURGABLE_GET_STATE ((vm_purgable_t) 1) /* get state of purgeable object */
|
||||
#define VM_PURGABLE_PURGE_ALL ((vm_purgable_t) 2) /* purge all volatile objects now */
|
||||
#define VM_PURGABLE_SET_STATE_FROM_KERNEL ((vm_purgable_t) 3) /* set state from kernel */
|
||||
|
||||
/*
|
||||
* Purgeable state:
|
||||
*
|
||||
* 31 15 14 13 12 11 10 8 7 6 5 4 3 2 1 0
|
||||
* +-----+--+-----+--+----+-+-+---+---+---+
|
||||
* | |NA|DEBUG| | GRP| |B|ORD| |STA|
|
||||
* +-----+--+-----+--+----+-+-+---+---+---+
|
||||
* " ": unused (i.e. reserved)
|
||||
* STA: purgeable state
|
||||
* see: VM_PURGABLE_NONVOLATILE=0 to VM_PURGABLE_DENY=3
|
||||
* ORD: order
|
||||
* see:VM_VOLATILE_ORDER_*
|
||||
* B: behavior
|
||||
* see: VM_PURGABLE_BEHAVIOR_*
|
||||
* GRP: group
|
||||
* see: VM_VOLATILE_GROUP_*
|
||||
* DEBUG: debug
|
||||
* see: VM_PURGABLE_DEBUG_*
|
||||
* NA: no aging
|
||||
* see: VM_PURGABLE_NO_AGING*
|
||||
*/
|
||||
|
||||
#define VM_PURGABLE_NO_AGING_SHIFT 16
|
||||
#define VM_PURGABLE_NO_AGING_MASK (0x1 << VM_PURGABLE_NO_AGING_SHIFT)
|
||||
#define VM_PURGABLE_NO_AGING (0x1 << VM_PURGABLE_NO_AGING_SHIFT)
|
||||
|
||||
#define VM_PURGABLE_DEBUG_SHIFT 12
|
||||
#define VM_PURGABLE_DEBUG_MASK (0x3 << VM_PURGABLE_DEBUG_SHIFT)
|
||||
#define VM_PURGABLE_DEBUG_EMPTY (0x1 << VM_PURGABLE_DEBUG_SHIFT)
|
||||
#define VM_PURGABLE_DEBUG_FAULT (0x2 << VM_PURGABLE_DEBUG_SHIFT)
|
||||
|
||||
/*
|
||||
* Volatile memory ordering groups (group zero objects are purged before group 1, etc...
|
||||
* It is implementation dependent as to whether these groups are global or per-address space.
|
||||
* (for the moment, they are global).
|
||||
*/
|
||||
#define VM_VOLATILE_GROUP_SHIFT 8
|
||||
#define VM_VOLATILE_GROUP_MASK (7 << VM_VOLATILE_GROUP_SHIFT)
|
||||
#define VM_VOLATILE_GROUP_DEFAULT VM_VOLATILE_GROUP_0
|
||||
|
||||
#define VM_VOLATILE_GROUP_0 (0 << VM_VOLATILE_GROUP_SHIFT)
|
||||
#define VM_VOLATILE_GROUP_1 (1 << VM_VOLATILE_GROUP_SHIFT)
|
||||
#define VM_VOLATILE_GROUP_2 (2 << VM_VOLATILE_GROUP_SHIFT)
|
||||
#define VM_VOLATILE_GROUP_3 (3 << VM_VOLATILE_GROUP_SHIFT)
|
||||
#define VM_VOLATILE_GROUP_4 (4 << VM_VOLATILE_GROUP_SHIFT)
|
||||
#define VM_VOLATILE_GROUP_5 (5 << VM_VOLATILE_GROUP_SHIFT)
|
||||
#define VM_VOLATILE_GROUP_6 (6 << VM_VOLATILE_GROUP_SHIFT)
|
||||
#define VM_VOLATILE_GROUP_7 (7 << VM_VOLATILE_GROUP_SHIFT)
|
||||
|
||||
/*
|
||||
* Purgeable behavior
|
||||
* Within the same group, FIFO objects will be emptied before objects that are added later.
|
||||
* LIFO objects will be emptied after objects that are added later.
|
||||
* - Input only, not returned on state queries.
|
||||
*/
|
||||
#define VM_PURGABLE_BEHAVIOR_SHIFT 6
|
||||
#define VM_PURGABLE_BEHAVIOR_MASK (1 << VM_PURGABLE_BEHAVIOR_SHIFT)
|
||||
#define VM_PURGABLE_BEHAVIOR_FIFO (0 << VM_PURGABLE_BEHAVIOR_SHIFT)
|
||||
#define VM_PURGABLE_BEHAVIOR_LIFO (1 << VM_PURGABLE_BEHAVIOR_SHIFT)
|
||||
|
||||
/*
|
||||
* Obsolete object.
|
||||
* Disregard volatile group, and put object into obsolete queue instead, so it is the next object
|
||||
* to be purged.
|
||||
* - Input only, not returned on state queries.
|
||||
*/
|
||||
#define VM_PURGABLE_ORDERING_SHIFT 5
|
||||
#define VM_PURGABLE_ORDERING_MASK (1 << VM_PURGABLE_ORDERING_SHIFT)
|
||||
#define VM_PURGABLE_ORDERING_OBSOLETE (1 << VM_PURGABLE_ORDERING_SHIFT)
|
||||
#define VM_PURGABLE_ORDERING_NORMAL (0 << VM_PURGABLE_ORDERING_SHIFT)
|
||||
|
||||
|
||||
/*
|
||||
* Obsolete parameter - do not use
|
||||
*/
|
||||
#define VM_VOLATILE_ORDER_SHIFT 4
|
||||
#define VM_VOLATILE_ORDER_MASK (1 << VM_VOLATILE_ORDER_SHIFT)
|
||||
#define VM_VOLATILE_MAKE_FIRST_IN_GROUP (1 << VM_VOLATILE_ORDER_SHIFT)
|
||||
#define VM_VOLATILE_MAKE_LAST_IN_GROUP (0 << VM_VOLATILE_ORDER_SHIFT)
|
||||
|
||||
/*
|
||||
* Valid states of a purgeable object.
|
||||
*/
|
||||
#define VM_PURGABLE_STATE_MIN 0 /* minimum purgeable object state value */
|
||||
#define VM_PURGABLE_STATE_MAX 3 /* maximum purgeable object state value */
|
||||
#define VM_PURGABLE_STATE_MASK 3 /* mask to separate state from group */
|
||||
|
||||
#define VM_PURGABLE_NONVOLATILE 0 /* purgeable object is non-volatile */
|
||||
#define VM_PURGABLE_VOLATILE 1 /* purgeable object is volatile */
|
||||
#define VM_PURGABLE_EMPTY 2 /* purgeable object is volatile and empty */
|
||||
#define VM_PURGABLE_DENY 3 /* (mark) object not purgeable */
|
||||
|
||||
#define VM_PURGABLE_ALL_MASKS (VM_PURGABLE_STATE_MASK | \
|
||||
VM_VOLATILE_ORDER_MASK | \
|
||||
VM_PURGABLE_ORDERING_MASK | \
|
||||
VM_PURGABLE_BEHAVIOR_MASK | \
|
||||
VM_VOLATILE_GROUP_MASK | \
|
||||
VM_PURGABLE_DEBUG_MASK | \
|
||||
VM_PURGABLE_NO_AGING_MASK)
|
||||
#endif /* _MACH_VM_PURGABLE_H_ */
|
||||
349
lib/libc/include/x86_64-macos-gnu/mach/vm_region.h
Normal file
349
lib/libc/include/x86_64-macos-gnu/mach/vm_region.h
Normal file
@ -0,0 +1,349 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2016 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@
|
||||
*/
|
||||
/*
|
||||
* File: mach/vm_region.h
|
||||
*
|
||||
* Define the attributes of a task's memory region
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MACH_VM_REGION_H_
|
||||
#define _MACH_VM_REGION_H_
|
||||
|
||||
#include <mach/boolean.h>
|
||||
#include <mach/vm_prot.h>
|
||||
#include <mach/vm_inherit.h>
|
||||
#include <mach/vm_behavior.h>
|
||||
#include <mach/vm_types.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/machine/vm_param.h>
|
||||
#include <mach/machine/vm_types.h>
|
||||
#include <mach/memory_object_types.h>
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#pragma pack(push, 4)
|
||||
|
||||
// LP64todo: all the current tools are 32bit, obviously never worked for 64b
|
||||
// so probably should be a real 32b ID vs. ptr.
|
||||
// Current users just check for equality
|
||||
typedef uint32_t vm32_object_id_t;
|
||||
|
||||
/*
|
||||
* Types defined:
|
||||
*
|
||||
* vm_region_info_t memory region attributes
|
||||
*/
|
||||
|
||||
#define VM_REGION_INFO_MAX (1024)
|
||||
typedef int *vm_region_info_t;
|
||||
typedef int *vm_region_info_64_t;
|
||||
typedef int *vm_region_recurse_info_t;
|
||||
typedef int *vm_region_recurse_info_64_t;
|
||||
typedef int vm_region_flavor_t;
|
||||
typedef int vm_region_info_data_t[VM_REGION_INFO_MAX];
|
||||
|
||||
#define VM_REGION_BASIC_INFO_64 9
|
||||
struct vm_region_basic_info_64 {
|
||||
vm_prot_t protection;
|
||||
vm_prot_t max_protection;
|
||||
vm_inherit_t inheritance;
|
||||
boolean_t shared;
|
||||
boolean_t reserved;
|
||||
memory_object_offset_t offset;
|
||||
vm_behavior_t behavior;
|
||||
unsigned short user_wired_count;
|
||||
};
|
||||
typedef struct vm_region_basic_info_64 *vm_region_basic_info_64_t;
|
||||
typedef struct vm_region_basic_info_64 vm_region_basic_info_data_64_t;
|
||||
|
||||
#define VM_REGION_BASIC_INFO_COUNT_64 ((mach_msg_type_number_t) \
|
||||
(sizeof(vm_region_basic_info_data_64_t)/sizeof(int)))
|
||||
|
||||
/*
|
||||
* Passing VM_REGION_BASIC_INFO to vm_region_64
|
||||
* automatically converts it to a VM_REGION_BASIC_INFO_64.
|
||||
* Please use that explicitly instead.
|
||||
*/
|
||||
#define VM_REGION_BASIC_INFO 10
|
||||
|
||||
/*
|
||||
* This is the legacy basic info structure. It is
|
||||
* deprecated because it passes only a 32-bit memory object
|
||||
* offset back - too small for many larger objects (e.g. files).
|
||||
*/
|
||||
struct vm_region_basic_info {
|
||||
vm_prot_t protection;
|
||||
vm_prot_t max_protection;
|
||||
vm_inherit_t inheritance;
|
||||
boolean_t shared;
|
||||
boolean_t reserved;
|
||||
uint32_t offset; /* too small for a real offset */
|
||||
vm_behavior_t behavior;
|
||||
unsigned short user_wired_count;
|
||||
};
|
||||
|
||||
typedef struct vm_region_basic_info *vm_region_basic_info_t;
|
||||
typedef struct vm_region_basic_info vm_region_basic_info_data_t;
|
||||
|
||||
#define VM_REGION_BASIC_INFO_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(vm_region_basic_info_data_t)/sizeof(int)))
|
||||
|
||||
#define SM_COW 1
|
||||
#define SM_PRIVATE 2
|
||||
#define SM_EMPTY 3
|
||||
#define SM_SHARED 4
|
||||
#define SM_TRUESHARED 5
|
||||
#define SM_PRIVATE_ALIASED 6
|
||||
#define SM_SHARED_ALIASED 7
|
||||
#define SM_LARGE_PAGE 8
|
||||
|
||||
/*
|
||||
* For submap info, the SM flags above are overlayed when a submap
|
||||
* is encountered. The field denotes whether or not machine level mapping
|
||||
* information is being shared. PTE's etc. When such sharing is taking
|
||||
* place the value returned is SM_TRUESHARED otherwise SM_PRIVATE is passed
|
||||
* back.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
#define VM_REGION_EXTENDED_INFO 13
|
||||
struct vm_region_extended_info {
|
||||
vm_prot_t protection;
|
||||
unsigned int user_tag;
|
||||
unsigned int pages_resident;
|
||||
unsigned int pages_shared_now_private;
|
||||
unsigned int pages_swapped_out;
|
||||
unsigned int pages_dirtied;
|
||||
unsigned int ref_count;
|
||||
unsigned short shadow_depth;
|
||||
unsigned char external_pager;
|
||||
unsigned char share_mode;
|
||||
unsigned int pages_reusable;
|
||||
};
|
||||
typedef struct vm_region_extended_info *vm_region_extended_info_t;
|
||||
typedef struct vm_region_extended_info vm_region_extended_info_data_t;
|
||||
#define VM_REGION_EXTENDED_INFO_COUNT \
|
||||
((mach_msg_type_number_t) \
|
||||
(sizeof (vm_region_extended_info_data_t) / sizeof (natural_t)))
|
||||
|
||||
|
||||
|
||||
|
||||
#define VM_REGION_TOP_INFO 12
|
||||
|
||||
struct vm_region_top_info {
|
||||
unsigned int obj_id;
|
||||
unsigned int ref_count;
|
||||
unsigned int private_pages_resident;
|
||||
unsigned int shared_pages_resident;
|
||||
unsigned char share_mode;
|
||||
};
|
||||
|
||||
typedef struct vm_region_top_info *vm_region_top_info_t;
|
||||
typedef struct vm_region_top_info vm_region_top_info_data_t;
|
||||
|
||||
#define VM_REGION_TOP_INFO_COUNT \
|
||||
((mach_msg_type_number_t) \
|
||||
(sizeof(vm_region_top_info_data_t) / sizeof(natural_t)))
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* vm_region_submap_info will return information on a submap or object.
|
||||
* The user supplies a nesting level on the call. When a walk of the
|
||||
* user's map is done and a submap is encountered, the nesting count is
|
||||
* checked. If the nesting count is greater than 1 the submap is entered and
|
||||
* the offset relative to the address in the base map is examined. If the
|
||||
* nesting count is zero, the information on the submap is returned.
|
||||
* The caller may thus learn about a submap and its contents by judicious
|
||||
* choice of the base map address and nesting count. The nesting count
|
||||
* allows penetration of recursively mapped submaps. If a submap is
|
||||
* encountered as a mapped entry of another submap, the caller may bump
|
||||
* the nesting count and call vm_region_recurse again on the target address
|
||||
* range. The "is_submap" field tells the caller whether or not a submap
|
||||
* has been encountered.
|
||||
*
|
||||
* Object only fields are filled in through a walking of the object shadow
|
||||
* chain (where one is present), and a walking of the resident page queue.
|
||||
*
|
||||
*/
|
||||
|
||||
struct vm_region_submap_info {
|
||||
vm_prot_t protection; /* present access protection */
|
||||
vm_prot_t max_protection; /* max avail through vm_prot */
|
||||
vm_inherit_t inheritance;/* behavior of map/obj on fork */
|
||||
uint32_t offset; /* offset into object/map */
|
||||
unsigned int user_tag; /* user tag on map entry */
|
||||
unsigned int pages_resident; /* only valid for objects */
|
||||
unsigned int pages_shared_now_private; /* only for objects */
|
||||
unsigned int pages_swapped_out; /* only for objects */
|
||||
unsigned int pages_dirtied; /* only for objects */
|
||||
unsigned int ref_count; /* obj/map mappers, etc */
|
||||
unsigned short shadow_depth; /* only for obj */
|
||||
unsigned char external_pager; /* only for obj */
|
||||
unsigned char share_mode; /* see enumeration */
|
||||
boolean_t is_submap; /* submap vs obj */
|
||||
vm_behavior_t behavior; /* access behavior hint */
|
||||
vm32_object_id_t object_id; /* obj/map name, not a handle */
|
||||
unsigned short user_wired_count;
|
||||
};
|
||||
|
||||
typedef struct vm_region_submap_info *vm_region_submap_info_t;
|
||||
typedef struct vm_region_submap_info vm_region_submap_info_data_t;
|
||||
|
||||
#define VM_REGION_SUBMAP_INFO_COUNT \
|
||||
((mach_msg_type_number_t) \
|
||||
(sizeof(vm_region_submap_info_data_t) / sizeof(natural_t)))
|
||||
|
||||
struct vm_region_submap_info_64 {
|
||||
vm_prot_t protection; /* present access protection */
|
||||
vm_prot_t max_protection; /* max avail through vm_prot */
|
||||
vm_inherit_t inheritance;/* behavior of map/obj on fork */
|
||||
memory_object_offset_t offset; /* offset into object/map */
|
||||
unsigned int user_tag; /* user tag on map entry */
|
||||
unsigned int pages_resident; /* only valid for objects */
|
||||
unsigned int pages_shared_now_private; /* only for objects */
|
||||
unsigned int pages_swapped_out; /* only for objects */
|
||||
unsigned int pages_dirtied; /* only for objects */
|
||||
unsigned int ref_count; /* obj/map mappers, etc */
|
||||
unsigned short shadow_depth; /* only for obj */
|
||||
unsigned char external_pager; /* only for obj */
|
||||
unsigned char share_mode; /* see enumeration */
|
||||
boolean_t is_submap; /* submap vs obj */
|
||||
vm_behavior_t behavior; /* access behavior hint */
|
||||
vm32_object_id_t object_id; /* obj/map name, not a handle */
|
||||
unsigned short user_wired_count;
|
||||
unsigned int pages_reusable;
|
||||
vm_object_id_t object_id_full;
|
||||
};
|
||||
|
||||
typedef struct vm_region_submap_info_64 *vm_region_submap_info_64_t;
|
||||
typedef struct vm_region_submap_info_64 vm_region_submap_info_data_64_t;
|
||||
|
||||
#define VM_REGION_SUBMAP_INFO_V2_SIZE \
|
||||
(sizeof (vm_region_submap_info_data_64_t))
|
||||
#define VM_REGION_SUBMAP_INFO_V1_SIZE \
|
||||
(VM_REGION_SUBMAP_INFO_V2_SIZE - \
|
||||
sizeof (vm_object_id_t) /* object_id_full */ )
|
||||
#define VM_REGION_SUBMAP_INFO_V0_SIZE \
|
||||
(VM_REGION_SUBMAP_INFO_V1_SIZE - \
|
||||
sizeof (unsigned int) /* pages_reusable */ )
|
||||
|
||||
#define VM_REGION_SUBMAP_INFO_V2_COUNT_64 \
|
||||
((mach_msg_type_number_t) \
|
||||
(VM_REGION_SUBMAP_INFO_V2_SIZE / sizeof (natural_t)))
|
||||
#define VM_REGION_SUBMAP_INFO_V1_COUNT_64 \
|
||||
((mach_msg_type_number_t) \
|
||||
(VM_REGION_SUBMAP_INFO_V1_SIZE / sizeof (natural_t)))
|
||||
#define VM_REGION_SUBMAP_INFO_V0_COUNT_64 \
|
||||
((mach_msg_type_number_t) \
|
||||
(VM_REGION_SUBMAP_INFO_V0_SIZE / sizeof (natural_t)))
|
||||
|
||||
/* set this to the latest version */
|
||||
#define VM_REGION_SUBMAP_INFO_COUNT_64 VM_REGION_SUBMAP_INFO_V2_COUNT_64
|
||||
|
||||
struct vm_region_submap_short_info_64 {
|
||||
vm_prot_t protection; /* present access protection */
|
||||
vm_prot_t max_protection; /* max avail through vm_prot */
|
||||
vm_inherit_t inheritance;/* behavior of map/obj on fork */
|
||||
memory_object_offset_t offset; /* offset into object/map */
|
||||
unsigned int user_tag; /* user tag on map entry */
|
||||
unsigned int ref_count; /* obj/map mappers, etc */
|
||||
unsigned short shadow_depth; /* only for obj */
|
||||
unsigned char external_pager; /* only for obj */
|
||||
unsigned char share_mode; /* see enumeration */
|
||||
boolean_t is_submap; /* submap vs obj */
|
||||
vm_behavior_t behavior; /* access behavior hint */
|
||||
vm32_object_id_t object_id; /* obj/map name, not a handle */
|
||||
unsigned short user_wired_count;
|
||||
};
|
||||
|
||||
typedef struct vm_region_submap_short_info_64 *vm_region_submap_short_info_64_t;
|
||||
typedef struct vm_region_submap_short_info_64 vm_region_submap_short_info_data_64_t;
|
||||
|
||||
#define VM_REGION_SUBMAP_SHORT_INFO_COUNT_64 \
|
||||
((mach_msg_type_number_t) \
|
||||
(sizeof (vm_region_submap_short_info_data_64_t) / sizeof (natural_t)))
|
||||
|
||||
struct mach_vm_read_entry {
|
||||
mach_vm_address_t address;
|
||||
mach_vm_size_t size;
|
||||
};
|
||||
|
||||
struct vm_read_entry {
|
||||
vm_address_t address;
|
||||
vm_size_t size;
|
||||
};
|
||||
|
||||
#ifdef VM32_SUPPORT
|
||||
struct vm32_read_entry {
|
||||
vm32_address_t address;
|
||||
vm32_size_t size;
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
#define VM_MAP_ENTRY_MAX (256)
|
||||
|
||||
typedef struct mach_vm_read_entry mach_vm_read_entry_t[VM_MAP_ENTRY_MAX];
|
||||
typedef struct vm_read_entry vm_read_entry_t[VM_MAP_ENTRY_MAX];
|
||||
#ifdef VM32_SUPPORT
|
||||
typedef struct vm32_read_entry vm32_read_entry_t[VM_MAP_ENTRY_MAX];
|
||||
#endif
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
|
||||
#define VM_PAGE_INFO_MAX
|
||||
typedef int *vm_page_info_t;
|
||||
typedef int vm_page_info_data_t[VM_PAGE_INFO_MAX];
|
||||
typedef int vm_page_info_flavor_t;
|
||||
|
||||
#define VM_PAGE_INFO_BASIC 1
|
||||
struct vm_page_info_basic {
|
||||
int disposition;
|
||||
int ref_count;
|
||||
vm_object_id_t object_id;
|
||||
memory_object_offset_t offset;
|
||||
int depth;
|
||||
int __pad; /* pad to 64-bit boundary */
|
||||
};
|
||||
typedef struct vm_page_info_basic *vm_page_info_basic_t;
|
||||
typedef struct vm_page_info_basic vm_page_info_basic_data_t;
|
||||
|
||||
#define VM_PAGE_INFO_BASIC_COUNT ((mach_msg_type_number_t) \
|
||||
(sizeof(vm_page_info_basic_data_t)/sizeof(int)))
|
||||
|
||||
|
||||
#endif /*_MACH_VM_REGION_H_*/
|
||||
523
lib/libc/include/x86_64-macos-gnu/mach/vm_statistics.h
Normal file
523
lib/libc/include/x86_64-macos-gnu/mach/vm_statistics.h
Normal file
@ -0,0 +1,523 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2019 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_
|
||||
|
||||
#include <mach/machine/vm_types.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;
|
||||
|
||||
/*
|
||||
* 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_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_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_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
|
||||
|
||||
/* 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)
|
||||
|
||||
|
||||
|
||||
#endif /* _MACH_VM_STATISTICS_H_ */
|
||||
80
lib/libc/include/x86_64-macos-gnu/mach/vm_sync.h
Normal file
80
lib/libc/include/x86_64-macos-gnu/mach/vm_sync.h
Normal file
@ -0,0 +1,80 @@
|
||||
/*
|
||||
* 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_sync.h
|
||||
*
|
||||
* Virtual memory synchronisation definitions.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MACH_VM_SYNC_H_
|
||||
#define _MACH_VM_SYNC_H_
|
||||
|
||||
typedef unsigned vm_sync_t;
|
||||
|
||||
/*
|
||||
* Synchronization flags, defined as bits within the vm_sync_t type
|
||||
*/
|
||||
|
||||
#define VM_SYNC_ASYNCHRONOUS ((vm_sync_t) 0x01)
|
||||
#define VM_SYNC_SYNCHRONOUS ((vm_sync_t) 0x02)
|
||||
#define VM_SYNC_INVALIDATE ((vm_sync_t) 0x04)
|
||||
#define VM_SYNC_KILLPAGES ((vm_sync_t) 0x08)
|
||||
#define VM_SYNC_DEACTIVATE ((vm_sync_t) 0x10)
|
||||
#define VM_SYNC_CONTIGUOUS ((vm_sync_t) 0x20)
|
||||
#define VM_SYNC_REUSABLEPAGES ((vm_sync_t) 0x40)
|
||||
|
||||
#endif /* _MACH_VM_SYNC_H_ */
|
||||
95
lib/libc/include/x86_64-macos-gnu/mach/vm_types.h
Normal file
95
lib/libc/include/x86_64-macos-gnu/mach/vm_types.h
Normal file
@ -0,0 +1,95 @@
|
||||
/*
|
||||
* 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;
|
||||
|
||||
|
||||
#define VM_MAP_NULL ((vm_map_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_ */
|
||||
75
lib/libc/include/x86_64-macos-gnu/mach_debug/hash_info.h
Normal file
75
lib/libc/include/x86_64-macos-gnu/mach_debug/hash_info.h
Normal file
@ -0,0 +1,75 @@
|
||||
/*
|
||||
* 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 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_DEBUG_HASH_INFO_H_
|
||||
#define _MACH_DEBUG_HASH_INFO_H_
|
||||
|
||||
#include <mach/machine/vm_types.h> /* natural_t */
|
||||
|
||||
/*
|
||||
* Remember to update the mig type definitions
|
||||
* in mach_debug_types.defs when adding/removing fields.
|
||||
*/
|
||||
|
||||
typedef struct hash_info_bucket {
|
||||
natural_t hib_count; /* number of records in bucket */
|
||||
} hash_info_bucket_t;
|
||||
|
||||
typedef hash_info_bucket_t *hash_info_bucket_array_t;
|
||||
|
||||
#endif /* _MACH_DEBUG_HASH_INFO_H_ */
|
||||
116
lib/libc/include/x86_64-macos-gnu/mach_debug/ipc_info.h
Normal file
116
lib/libc/include/x86_64-macos-gnu/mach_debug/ipc_info.h
Normal file
@ -0,0 +1,116 @@
|
||||
/*
|
||||
* 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 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_debug/ipc_info.h
|
||||
* Author: Rich Draves
|
||||
* Date: March, 1990
|
||||
*
|
||||
* Definitions for the IPC debugging interface.
|
||||
*/
|
||||
|
||||
#ifndef _MACH_DEBUG_IPC_INFO_H_
|
||||
#define _MACH_DEBUG_IPC_INFO_H_
|
||||
|
||||
#include <mach/boolean.h>
|
||||
#include <mach/port.h>
|
||||
#include <mach/machine/vm_types.h>
|
||||
|
||||
/*
|
||||
* Remember to update the mig type definitions
|
||||
* in mach_debug_types.defs when adding/removing fields.
|
||||
*/
|
||||
|
||||
typedef struct ipc_info_space {
|
||||
natural_t iis_genno_mask; /* generation number mask */
|
||||
natural_t iis_table_size; /* size of table */
|
||||
natural_t iis_table_next; /* next possible size of table */
|
||||
natural_t iis_tree_size; /* size of tree (UNUSED) */
|
||||
natural_t iis_tree_small; /* # of small entries in tree (UNUSED) */
|
||||
natural_t iis_tree_hash; /* # of hashed entries in tree (UNUSED) */
|
||||
} ipc_info_space_t;
|
||||
|
||||
typedef struct ipc_info_space_basic {
|
||||
natural_t iisb_genno_mask; /* generation number mask */
|
||||
natural_t iisb_table_size; /* size of table */
|
||||
natural_t iisb_table_next; /* next possible size of table */
|
||||
natural_t iisb_table_inuse; /* number of entries in use */
|
||||
natural_t iisb_reserved[2]; /* future expansion */
|
||||
} ipc_info_space_basic_t;
|
||||
|
||||
typedef struct ipc_info_name {
|
||||
mach_port_name_t iin_name; /* port name, including gen number */
|
||||
/*boolean_t*/ integer_t iin_collision; /* collision at this entry? */
|
||||
mach_port_type_t iin_type; /* straight port type */
|
||||
mach_port_urefs_t iin_urefs; /* user-references */
|
||||
natural_t iin_object; /* object pointer/identifier */
|
||||
natural_t iin_next; /* marequest/next in free list */
|
||||
natural_t iin_hash; /* hash index */
|
||||
} ipc_info_name_t;
|
||||
|
||||
typedef ipc_info_name_t *ipc_info_name_array_t;
|
||||
|
||||
/* UNUSED */
|
||||
typedef struct ipc_info_tree_name {
|
||||
ipc_info_name_t iitn_name;
|
||||
mach_port_name_t iitn_lchild; /* name of left child */
|
||||
mach_port_name_t iitn_rchild; /* name of right child */
|
||||
} ipc_info_tree_name_t;
|
||||
|
||||
typedef ipc_info_tree_name_t *ipc_info_tree_name_array_t;
|
||||
|
||||
#endif /* _MACH_DEBUG_IPC_INFO_H_ */
|
||||
@ -0,0 +1,74 @@
|
||||
/*
|
||||
* Copyright (c) 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@
|
||||
*/
|
||||
/*
|
||||
* File: mach/lockgroup_info.h
|
||||
*
|
||||
* Definitions for host_lockgroup_info call.
|
||||
*/
|
||||
|
||||
#ifndef _MACH_DEBUG_LOCKGROUP_INFO_H_
|
||||
#define _MACH_DEBUG_LOCKGROUP_INFO_H_
|
||||
|
||||
#include <mach/mach_types.h>
|
||||
|
||||
#define LOCKGROUP_MAX_NAME 64
|
||||
|
||||
#define LOCKGROUP_ATTR_STAT 0x01ULL
|
||||
|
||||
typedef struct lockgroup_info {
|
||||
char lockgroup_name[LOCKGROUP_MAX_NAME];
|
||||
uint64_t lockgroup_attr;
|
||||
uint64_t lock_spin_cnt;
|
||||
uint64_t lock_spin_util_cnt;
|
||||
uint64_t lock_spin_held_cnt;
|
||||
uint64_t lock_spin_miss_cnt;
|
||||
uint64_t lock_spin_held_max;
|
||||
uint64_t lock_spin_held_cum;
|
||||
uint64_t lock_mtx_cnt;
|
||||
uint64_t lock_mtx_util_cnt;
|
||||
uint64_t lock_mtx_held_cnt;
|
||||
uint64_t lock_mtx_miss_cnt;
|
||||
uint64_t lock_mtx_wait_cnt;
|
||||
uint64_t lock_mtx_held_max;
|
||||
uint64_t lock_mtx_held_cum;
|
||||
uint64_t lock_mtx_wait_max;
|
||||
uint64_t lock_mtx_wait_cum;
|
||||
uint64_t lock_rw_cnt;
|
||||
uint64_t lock_rw_util_cnt;
|
||||
uint64_t lock_rw_held_cnt;
|
||||
uint64_t lock_rw_miss_cnt;
|
||||
uint64_t lock_rw_wait_cnt;
|
||||
uint64_t lock_rw_held_max;
|
||||
uint64_t lock_rw_held_cum;
|
||||
uint64_t lock_rw_wait_max;
|
||||
uint64_t lock_rw_wait_cum;
|
||||
} lockgroup_info_t;
|
||||
|
||||
typedef lockgroup_info_t *lockgroup_info_array_t;
|
||||
|
||||
#endif /* _MACH_DEBUG_LOCKGROUP_INFO_H_ */
|
||||
@ -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_ */
|
||||
64
lib/libc/include/x86_64-macos-gnu/mach_debug/page_info.h
Normal file
64
lib/libc/include/x86_64-macos-gnu/mach_debug/page_info.h
Normal file
@ -0,0 +1,64 @@
|
||||
/*
|
||||
* 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 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_DEBUG_PAGE_INFO_H
|
||||
#define MACH_DEBUG_PAGE_INFO_H
|
||||
|
||||
#include <mach/machine/vm_types.h>
|
||||
|
||||
typedef vm_offset_t *page_address_array_t;
|
||||
#endif /* MACH_DEBUG_PAGE_INFO_H */
|
||||
149
lib/libc/include/x86_64-macos-gnu/mach_debug/vm_info.h
Normal file
149
lib/libc/include/x86_64-macos-gnu/mach_debug/vm_info.h
Normal file
@ -0,0 +1,149 @@
|
||||
/*
|
||||
* 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 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_debug/vm_info.h
|
||||
* Author: Rich Draves
|
||||
* Date: March, 1990
|
||||
*
|
||||
* Definitions for the VM debugging interface.
|
||||
*/
|
||||
|
||||
#ifndef _MACH_DEBUG_VM_INFO_H_
|
||||
#define _MACH_DEBUG_VM_INFO_H_
|
||||
|
||||
#include <mach/boolean.h>
|
||||
#include <mach/machine/vm_types.h>
|
||||
#include <mach/vm_inherit.h>
|
||||
#include <mach/vm_prot.h>
|
||||
#include <mach/memory_object_types.h>
|
||||
|
||||
#pragma pack(4)
|
||||
|
||||
/*
|
||||
* Remember to update the mig type definitions
|
||||
* in mach_debug_types.defs when adding/removing fields.
|
||||
*/
|
||||
typedef struct mach_vm_info_region {
|
||||
mach_vm_offset_t vir_start; /* start of region */
|
||||
mach_vm_offset_t vir_end; /* end of region */
|
||||
mach_vm_offset_t vir_object; /* the mapped object(kernal addr) */
|
||||
memory_object_offset_t vir_offset; /* offset into object */
|
||||
boolean_t vir_needs_copy; /* does object need to be copied? */
|
||||
vm_prot_t vir_protection; /* protection code */
|
||||
vm_prot_t vir_max_protection; /* maximum protection */
|
||||
vm_inherit_t vir_inheritance; /* inheritance */
|
||||
natural_t vir_wired_count; /* number of times wired */
|
||||
natural_t vir_user_wired_count; /* number of times user has wired */
|
||||
} mach_vm_info_region_t;
|
||||
|
||||
typedef struct vm_info_region_64 {
|
||||
natural_t vir_start; /* start of region */
|
||||
natural_t vir_end; /* end of region */
|
||||
natural_t vir_object; /* the mapped object */
|
||||
memory_object_offset_t vir_offset; /* offset into object */
|
||||
boolean_t vir_needs_copy; /* does object need to be copied? */
|
||||
vm_prot_t vir_protection; /* protection code */
|
||||
vm_prot_t vir_max_protection; /* maximum protection */
|
||||
vm_inherit_t vir_inheritance; /* inheritance */
|
||||
natural_t vir_wired_count; /* number of times wired */
|
||||
natural_t vir_user_wired_count; /* number of times user has wired */
|
||||
} vm_info_region_64_t;
|
||||
|
||||
typedef struct vm_info_region {
|
||||
natural_t vir_start; /* start of region */
|
||||
natural_t vir_end; /* end of region */
|
||||
natural_t vir_object; /* the mapped object */
|
||||
natural_t vir_offset; /* offset into object */
|
||||
boolean_t vir_needs_copy; /* does object need to be copied? */
|
||||
vm_prot_t vir_protection; /* protection code */
|
||||
vm_prot_t vir_max_protection; /* maximum protection */
|
||||
vm_inherit_t vir_inheritance; /* inheritance */
|
||||
natural_t vir_wired_count; /* number of times wired */
|
||||
natural_t vir_user_wired_count; /* number of times user has wired */
|
||||
} vm_info_region_t;
|
||||
|
||||
|
||||
typedef struct vm_info_object {
|
||||
natural_t vio_object; /* this object */
|
||||
natural_t vio_size; /* object size (valid if internal - but too small) */
|
||||
unsigned int vio_ref_count; /* number of references */
|
||||
unsigned int vio_resident_page_count; /* number of resident pages */
|
||||
unsigned int vio_absent_count; /* number requested but not filled */
|
||||
natural_t vio_copy; /* copy object */
|
||||
natural_t vio_shadow; /* shadow object */
|
||||
natural_t vio_shadow_offset; /* offset into shadow object */
|
||||
natural_t vio_paging_offset; /* offset into memory object */
|
||||
memory_object_copy_strategy_t vio_copy_strategy;
|
||||
/* how to handle data copy */
|
||||
vm_offset_t vio_last_alloc; /* offset of last allocation */
|
||||
/* many random attributes */
|
||||
unsigned int vio_paging_in_progress;
|
||||
boolean_t vio_pager_created;
|
||||
boolean_t vio_pager_initialized;
|
||||
boolean_t vio_pager_ready;
|
||||
boolean_t vio_can_persist;
|
||||
boolean_t vio_internal;
|
||||
boolean_t vio_temporary;
|
||||
boolean_t vio_alive;
|
||||
boolean_t vio_purgable;
|
||||
boolean_t vio_purgable_volatile;
|
||||
} vm_info_object_t;
|
||||
|
||||
typedef vm_info_object_t *vm_info_object_array_t;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif /* _MACH_DEBUG_VM_INFO_H_ */
|
||||
201
lib/libc/include/x86_64-macos-gnu/mach_debug/zone_info.h
Normal file
201
lib/libc/include/x86_64-macos-gnu/mach_debug/zone_info.h
Normal file
@ -0,0 +1,201 @@
|
||||
/*
|
||||
* 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 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_DEBUG_ZONE_INFO_H_
|
||||
#define _MACH_DEBUG_ZONE_INFO_H_
|
||||
|
||||
#include <mach/boolean.h>
|
||||
#include <mach/machine/vm_types.h>
|
||||
|
||||
/*
|
||||
* Legacy definitions for host_zone_info(). This interface, and
|
||||
* these definitions have been deprecated in favor of the new
|
||||
* mach_zone_info() inteface and types below.
|
||||
*/
|
||||
|
||||
#define ZONE_NAME_MAX_LEN 80
|
||||
|
||||
typedef struct zone_name {
|
||||
char zn_name[ZONE_NAME_MAX_LEN];
|
||||
} zone_name_t;
|
||||
|
||||
typedef zone_name_t *zone_name_array_t;
|
||||
|
||||
|
||||
typedef struct zone_info {
|
||||
integer_t zi_count; /* Number of elements used now */
|
||||
vm_size_t zi_cur_size; /* current memory utilization */
|
||||
vm_size_t zi_max_size; /* how large can this zone grow */
|
||||
vm_size_t zi_elem_size; /* size of an element */
|
||||
vm_size_t zi_alloc_size; /* size used for more memory */
|
||||
integer_t zi_pageable; /* zone pageable? */
|
||||
integer_t zi_sleepable; /* sleep if empty? */
|
||||
integer_t zi_exhaustible; /* merely return if empty? */
|
||||
integer_t zi_collectable; /* garbage collect elements? */
|
||||
} zone_info_t;
|
||||
|
||||
typedef zone_info_t *zone_info_array_t;
|
||||
|
||||
|
||||
/*
|
||||
* Remember to update the mig type definitions
|
||||
* in mach_debug_types.defs when adding/removing fields.
|
||||
*/
|
||||
|
||||
#define MACH_ZONE_NAME_MAX_LEN 80
|
||||
|
||||
typedef struct mach_zone_name {
|
||||
char mzn_name[ZONE_NAME_MAX_LEN];
|
||||
} mach_zone_name_t;
|
||||
|
||||
typedef mach_zone_name_t *mach_zone_name_array_t;
|
||||
|
||||
typedef struct mach_zone_info_data {
|
||||
uint64_t mzi_count; /* count of elements in use */
|
||||
uint64_t mzi_cur_size; /* current memory utilization */
|
||||
uint64_t mzi_max_size; /* how large can this zone grow */
|
||||
uint64_t mzi_elem_size; /* size of an element */
|
||||
uint64_t mzi_alloc_size; /* size used for more memory */
|
||||
uint64_t mzi_sum_size; /* sum of all allocs (life of zone) */
|
||||
uint64_t mzi_exhaustible; /* merely return if empty? */
|
||||
uint64_t mzi_collectable; /* garbage collect elements? and how much? */
|
||||
} mach_zone_info_t;
|
||||
|
||||
typedef mach_zone_info_t *mach_zone_info_array_t;
|
||||
|
||||
/*
|
||||
* The lowest bit of mzi_collectable indicates whether or not the zone
|
||||
* is collectable by zone_gc(). The higher bits contain the size in bytes
|
||||
* that can be collected.
|
||||
*/
|
||||
#define GET_MZI_COLLECTABLE_BYTES(val) ((val) >> 1)
|
||||
#define GET_MZI_COLLECTABLE_FLAG(val) ((val) & 1)
|
||||
|
||||
#define SET_MZI_COLLECTABLE_BYTES(val, size) \
|
||||
(val) = ((val) & 1) | ((size) << 1)
|
||||
#define SET_MZI_COLLECTABLE_FLAG(val, flag) \
|
||||
(val) = (flag) ? ((val) | 1) : (val)
|
||||
|
||||
typedef struct task_zone_info_data {
|
||||
uint64_t tzi_count; /* count of elements in use */
|
||||
uint64_t tzi_cur_size; /* current memory utilization */
|
||||
uint64_t tzi_max_size; /* how large can this zone grow */
|
||||
uint64_t tzi_elem_size; /* size of an element */
|
||||
uint64_t tzi_alloc_size; /* size used for more memory */
|
||||
uint64_t tzi_sum_size; /* sum of all allocs (life of zone) */
|
||||
uint64_t tzi_exhaustible; /* merely return if empty? */
|
||||
uint64_t tzi_collectable; /* garbage collect elements? */
|
||||
uint64_t tzi_caller_acct; /* charged to caller (or kernel) */
|
||||
uint64_t tzi_task_alloc; /* sum of all allocs by this task */
|
||||
uint64_t tzi_task_free; /* sum of all frees by this task */
|
||||
} task_zone_info_t;
|
||||
|
||||
typedef task_zone_info_t *task_zone_info_array_t;
|
||||
|
||||
#define MACH_MEMORY_INFO_NAME_MAX_LEN 80
|
||||
|
||||
typedef struct mach_memory_info {
|
||||
uint64_t flags;
|
||||
uint64_t site;
|
||||
uint64_t size;
|
||||
uint64_t free;
|
||||
uint64_t largest;
|
||||
uint64_t collectable_bytes;
|
||||
uint64_t mapped;
|
||||
uint64_t peak;
|
||||
uint16_t tag;
|
||||
uint16_t zone;
|
||||
uint16_t _resvA[2];
|
||||
uint64_t _resv[3];
|
||||
char name[MACH_MEMORY_INFO_NAME_MAX_LEN];
|
||||
} mach_memory_info_t;
|
||||
|
||||
typedef mach_memory_info_t *mach_memory_info_array_t;
|
||||
|
||||
/*
|
||||
* MAX_ZTRACE_DEPTH configures how deep of a stack trace is taken on each zalloc in the zone of interest. 15
|
||||
* levels is usually enough to get past all the layers of code in kalloc and IOKit and see who the actual
|
||||
* caller is up above these lower levels.
|
||||
*
|
||||
* This is used both for the zone leak detector and the zone corruption log. Make sure this isn't greater than
|
||||
* BTLOG_MAX_DEPTH defined in btlog.h. Also make sure to update the definition of zone_btrecord_t in
|
||||
* mach_debug_types.defs if this changes.
|
||||
*/
|
||||
|
||||
#define MAX_ZTRACE_DEPTH 15
|
||||
|
||||
/*
|
||||
* Opcodes for the btlog operation field:
|
||||
*/
|
||||
|
||||
#define ZOP_ALLOC 1
|
||||
#define ZOP_FREE 0
|
||||
|
||||
/*
|
||||
* Structure used to copy out btlog records to userspace, via the MIG call
|
||||
* mach_zone_get_btlog_records().
|
||||
*/
|
||||
typedef struct zone_btrecord {
|
||||
uint32_t ref_count; /* no. of active references on the record */
|
||||
uint32_t operation_type; /* operation type (alloc/free) */
|
||||
uint64_t bt[MAX_ZTRACE_DEPTH]; /* backtrace */
|
||||
} zone_btrecord_t;
|
||||
|
||||
typedef zone_btrecord_t *zone_btrecord_array_t;
|
||||
|
||||
#endif /* _MACH_DEBUG_ZONE_INFO_H_ */
|
||||
165
lib/libc/include/x86_64-macos-gnu/os/availability.h
Normal file
165
lib/libc/include/x86_64-macos-gnu/os/availability.h
Normal file
@ -0,0 +1,165 @@
|
||||
/*
|
||||
* Copyright (c) 2008-2017 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_AVAILABILITY__
|
||||
#define __OS_AVAILABILITY__
|
||||
|
||||
/*
|
||||
* API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
|
||||
* in an upcoming release. This soft deprecation is an intermediate step before formal
|
||||
* deprecation to notify developers about the API before compiler warnings are generated.
|
||||
* You can find all places in your code that use soft deprecated API by redefining the
|
||||
* value of this macro to your current minimum deployment target, for example:
|
||||
* (macOS)
|
||||
* clang -DAPI_TO_BE_DEPRECATED=10.12 <other compiler flags>
|
||||
* (iOS)
|
||||
* clang -DAPI_TO_BE_DEPRECATED=11.0 <other compiler flags>
|
||||
*/
|
||||
|
||||
#ifndef API_TO_BE_DEPRECATED
|
||||
#define API_TO_BE_DEPRECATED 100000
|
||||
#endif
|
||||
|
||||
#include <AvailabilityInternal.h>
|
||||
|
||||
|
||||
|
||||
#if defined(__has_feature) && defined(__has_attribute)
|
||||
#if __has_attribute(availability)
|
||||
|
||||
/*
|
||||
* API Introductions
|
||||
*
|
||||
* Use to specify the release that a particular API became available.
|
||||
*
|
||||
* Platform names:
|
||||
* macos, ios, tvos, watchos
|
||||
*
|
||||
* Examples:
|
||||
* API_AVAILABLE(macos(10.10))
|
||||
* API_AVAILABLE(macos(10.9), ios(10.0))
|
||||
* API_AVAILABLE(macos(10.4), ios(8.0), watchos(2.0), tvos(10.0))
|
||||
*/
|
||||
|
||||
#define API_AVAILABLE(...) __API_AVAILABLE_GET_MACRO(__VA_ARGS__,__API_AVAILABLE7, __API_AVAILABLE6, __API_AVAILABLE5, __API_AVAILABLE4, __API_AVAILABLE3, __API_AVAILABLE2, __API_AVAILABLE1, 0)(__VA_ARGS__)
|
||||
|
||||
#define API_AVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_AVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_AVAILABLE_BEGIN7,__API_AVAILABLE_BEGIN6, __API_AVAILABLE_BEGIN5, __API_AVAILABLE_BEGIN4, __API_AVAILABLE_BEGIN3, __API_AVAILABLE_BEGIN2, __API_AVAILABLE_BEGIN1, 0)(__VA_ARGS__)
|
||||
#define API_AVAILABLE_END _Pragma("clang attribute pop")
|
||||
|
||||
/*
|
||||
* API Deprecations
|
||||
*
|
||||
* Use to specify the release that a particular API became unavailable.
|
||||
*
|
||||
* Platform names:
|
||||
* macos, ios, tvos, watchos
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* API_DEPRECATED("No longer supported", macos(10.4, 10.8))
|
||||
* API_DEPRECATED("No longer supported", macos(10.4, 10.8), ios(2.0, 3.0), watchos(2.0, 3.0), tvos(9.0, 10.0))
|
||||
*
|
||||
* API_DEPRECATED_WITH_REPLACEMENT("-setName:", tvos(10.0, 10.4), ios(9.0, 10.0))
|
||||
* API_DEPRECATED_WITH_REPLACEMENT("SomeClassName", macos(10.4, 10.6), watchos(2.0, 3.0))
|
||||
*/
|
||||
|
||||
#define API_DEPRECATED(...) __API_DEPRECATED_MSG_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_MSG8,__API_DEPRECATED_MSG7, __API_DEPRECATED_MSG6,__API_DEPRECATED_MSG5,__API_DEPRECATED_MSG4,__API_DEPRECATED_MSG3,__API_DEPRECATED_MSG2,__API_DEPRECATED_MSG1, 0)(__VA_ARGS__)
|
||||
#define API_DEPRECATED_WITH_REPLACEMENT(...) __API_DEPRECATED_REP_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_REP8,__API_DEPRECATED_REP7, __API_DEPRECATED_REP6,__API_DEPRECATED_REP5,__API_DEPRECATED_REP4,__API_DEPRECATED_REP3,__API_DEPRECATED_REP2,__API_DEPRECATED_REP1, 0)(__VA_ARGS__)
|
||||
|
||||
#define API_DEPRECATED_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_BEGIN_MSG_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_BEGIN_MSG8,__API_DEPRECATED_BEGIN_MSG7, __API_DEPRECATED_BEGIN_MSG6, __API_DEPRECATED_BEGIN_MSG5, __API_DEPRECATED_BEGIN_MSG4, __API_DEPRECATED_BEGIN_MSG3, __API_DEPRECATED_BEGIN_MSG2, __API_DEPRECATED_BEGIN_MSG1, 0)(__VA_ARGS__)
|
||||
#define API_DEPRECATED_END _Pragma("clang attribute pop")
|
||||
|
||||
#define API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_BEGIN_REP_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_BEGIN_REP8,__API_DEPRECATED_BEGIN_REP7, __API_DEPRECATED_BEGIN_REP6, __API_DEPRECATED_BEGIN_REP5, __API_DEPRECATED_BEGIN_REP4, __API_DEPRECATED_BEGIN_REP3, __API_DEPRECATED_BEGIN_REP2, __API_DEPRECATED_BEGIN_REP1, 0)(__VA_ARGS__)
|
||||
#define API_DEPRECATED_WITH_REPLACEMENT_END _Pragma("clang attribute pop")
|
||||
|
||||
|
||||
/*
|
||||
* API Unavailability
|
||||
* Use to specify that an API is unavailable for a particular platform.
|
||||
*
|
||||
* Example:
|
||||
* API_UNAVAILABLE(macos)
|
||||
* API_UNAVAILABLE(watchos, tvos)
|
||||
*/
|
||||
|
||||
#define API_UNAVAILABLE(...) __API_UNAVAILABLE_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE7,__API_UNAVAILABLE6, __API_UNAVAILABLE5, __API_UNAVAILABLE4,__API_UNAVAILABLE3,__API_UNAVAILABLE2,__API_UNAVAILABLE1, 0)(__VA_ARGS__)
|
||||
|
||||
#define API_UNAVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_UNAVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE_BEGIN7,__API_UNAVAILABLE_BEGIN6, __API_UNAVAILABLE_BEGIN5, __API_UNAVAILABLE_BEGIN4, __API_UNAVAILABLE_BEGIN3, __API_UNAVAILABLE_BEGIN2, __API_UNAVAILABLE_BEGIN1, 0)(__VA_ARGS__)
|
||||
#define API_UNAVAILABLE_END _Pragma("clang attribute pop")
|
||||
#else
|
||||
|
||||
/*
|
||||
* Evaluate to nothing for compilers that don't support availability.
|
||||
*/
|
||||
|
||||
#define API_AVAILABLE(...)
|
||||
#define API_AVAILABLE_BEGIN(...)
|
||||
#define API_AVAILABLE_END
|
||||
#define API_DEPRECATED(...)
|
||||
#define API_DEPRECATED_WITH_REPLACEMENT(...)
|
||||
#define API_DEPRECATED_BEGIN(...)
|
||||
#define API_DEPRECATED_END
|
||||
#define API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...)
|
||||
#define API_DEPRECATED_WITH_REPLACEMENT_END
|
||||
#define API_UNAVAILABLE(...)
|
||||
#define API_UNAVAILABLE_BEGIN(...)
|
||||
#define API_UNAVAILABLE_END
|
||||
#endif /* __has_attribute(availability) */
|
||||
#else
|
||||
|
||||
/*
|
||||
* Evaluate to nothing for compilers that don't support clang language extensions.
|
||||
*/
|
||||
|
||||
#define API_AVAILABLE(...)
|
||||
#define API_AVAILABLE_BEGIN(...)
|
||||
#define API_AVAILABLE_END
|
||||
#define API_DEPRECATED(...)
|
||||
#define API_DEPRECATED_WITH_REPLACEMENT(...)
|
||||
#define API_DEPRECATED_BEGIN(...)
|
||||
#define API_DEPRECATED_END
|
||||
#define API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...)
|
||||
#define API_DEPRECATED_WITH_REPLACEMENT_END
|
||||
#define API_UNAVAILABLE(...)
|
||||
#define API_UNAVAILABLE_BEGIN(...)
|
||||
#define API_UNAVAILABLE_END
|
||||
#endif /* #if defined(__has_feature) && defined(__has_attribute) */
|
||||
|
||||
#if __has_include(<AvailabilityProhibitedInternal.h>)
|
||||
#include <AvailabilityProhibitedInternal.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* If SPI decorations have not been defined elsewhere, disable them.
|
||||
*/
|
||||
|
||||
#ifndef SPI_AVAILABLE
|
||||
#define SPI_AVAILABLE(...)
|
||||
#endif
|
||||
|
||||
#ifndef SPI_DEPRECATED
|
||||
#define SPI_DEPRECATED(...)
|
||||
#endif
|
||||
|
||||
#ifndef SPI_DEPRECATED_WITH_REPLACEMENT
|
||||
#define SPI_DEPRECATED_WITH_REPLACEMENT(...)
|
||||
#endif
|
||||
|
||||
#endif /* __OS_AVAILABILITY__ */
|
||||
325
lib/libc/include/x86_64-macos-gnu/os/base.h
Normal file
325
lib/libc/include/x86_64-macos-gnu/os/base.h
Normal file
@ -0,0 +1,325 @@
|
||||
/*
|
||||
* Copyright (c) 2008-2013 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]]
|
||||
#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.
|
||||
*/
|
||||
#ifndef __OPEN_SOURCE__
|
||||
/*!
|
||||
* @internal
|
||||
* <rdar://problem/37799789>
|
||||
*/
|
||||
#endif // __OPEN_SOURCE__
|
||||
#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__
|
||||
32
lib/libc/include/x86_64-macos-gnu/sys/_types/_fsid_t.h
Normal file
32
lib/libc/include/x86_64-macos-gnu/sys/_types/_fsid_t.h
Normal file
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright (c) 2014 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 _FSID_T
|
||||
#define _FSID_T
|
||||
#include <sys/_types/_int32_t.h> /* int32_t */
|
||||
typedef struct fsid { int32_t val[2]; } fsid_t; /* file system id type */
|
||||
#endif /* _FSID_T */
|
||||
38
lib/libc/include/x86_64-macos-gnu/sys/_types/_fsobj_id_t.h
Normal file
38
lib/libc/include/x86_64-macos-gnu/sys/_types/_fsobj_id_t.h
Normal file
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright (c) 2016 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 _FSOBJ_ID_T
|
||||
#define _FSOBJ_ID_T
|
||||
|
||||
#include <sys/_types/_u_int32_t.h> /* u_int32_t */
|
||||
|
||||
typedef struct fsobj_id {
|
||||
u_int32_t fid_objno;
|
||||
u_int32_t fid_generation;
|
||||
} fsobj_id_t;
|
||||
|
||||
#endif /* _FSOBJ_ID_T */
|
||||
579
lib/libc/include/x86_64-macos-gnu/sys/attr.h
Normal file
579
lib/libc/include/x86_64-macos-gnu/sys/attr.h
Normal file
@ -0,0 +1,579 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2018 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@
|
||||
*/
|
||||
|
||||
/*
|
||||
* attr.h - attribute data structures and interfaces
|
||||
*
|
||||
* Copyright (c) 1998, Apple Computer, Inc. All Rights Reserved.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_ATTR_H_
|
||||
#define _SYS_ATTR_H_
|
||||
|
||||
#include <sys/appleapiopts.h>
|
||||
|
||||
#ifdef __APPLE_API_UNSTABLE
|
||||
#include <sys/types.h>
|
||||
#include <sys/ucred.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#define FSOPT_NOFOLLOW 0x00000001
|
||||
#define FSOPT_NOINMEMUPDATE 0x00000002
|
||||
#define FSOPT_REPORT_FULLSIZE 0x00000004
|
||||
/* The following option only valid when requesting ATTR_CMN_RETURNED_ATTRS */
|
||||
#define FSOPT_PACK_INVAL_ATTRS 0x00000008
|
||||
|
||||
|
||||
#define FSOPT_ATTR_CMN_EXTENDED 0x00000020
|
||||
|
||||
/* we currently aren't anywhere near this amount for a valid
|
||||
* fssearchblock.sizeofsearchparams1 or fssearchblock.sizeofsearchparams2
|
||||
* but we put a sanity check in to avoid abuse of the value passed in from
|
||||
* user land.
|
||||
*/
|
||||
#define SEARCHFS_MAX_SEARCHPARMS 4096
|
||||
|
||||
typedef u_int32_t text_encoding_t;
|
||||
|
||||
typedef u_int32_t fsobj_type_t;
|
||||
|
||||
typedef u_int32_t fsobj_tag_t;
|
||||
|
||||
typedef u_int32_t fsfile_type_t;
|
||||
|
||||
typedef u_int32_t fsvolid_t;
|
||||
|
||||
#include <sys/_types/_fsobj_id_t.h> /* file object id type */
|
||||
|
||||
typedef u_int32_t attrgroup_t;
|
||||
|
||||
struct attrlist {
|
||||
u_short bitmapcount; /* number of attr. bit sets in list (should be 5) */
|
||||
u_int16_t reserved; /* (to maintain 4-byte alignment) */
|
||||
attrgroup_t commonattr; /* common attribute group */
|
||||
attrgroup_t volattr; /* Volume attribute group */
|
||||
attrgroup_t dirattr; /* directory attribute group */
|
||||
attrgroup_t fileattr; /* file attribute group */
|
||||
attrgroup_t forkattr; /* fork attribute group */
|
||||
};
|
||||
#define ATTR_BIT_MAP_COUNT 5
|
||||
|
||||
typedef struct attribute_set {
|
||||
attrgroup_t commonattr; /* common attribute group */
|
||||
attrgroup_t volattr; /* Volume attribute group */
|
||||
attrgroup_t dirattr; /* directory attribute group */
|
||||
attrgroup_t fileattr; /* file attribute group */
|
||||
attrgroup_t forkattr; /* fork attribute group */
|
||||
} attribute_set_t;
|
||||
|
||||
typedef struct attrreference {
|
||||
int32_t attr_dataoffset;
|
||||
u_int32_t attr_length;
|
||||
} attrreference_t;
|
||||
|
||||
/* XXX PPD This is derived from HFSVolumePriv.h and should perhaps be referenced from there? */
|
||||
|
||||
struct diskextent {
|
||||
u_int32_t startblock; /* first block allocated */
|
||||
u_int32_t blockcount; /* number of blocks allocated */
|
||||
};
|
||||
|
||||
typedef struct diskextent extentrecord[8];
|
||||
|
||||
typedef u_int32_t vol_capabilities_set_t[4];
|
||||
|
||||
#define VOL_CAPABILITIES_FORMAT 0
|
||||
#define VOL_CAPABILITIES_INTERFACES 1
|
||||
#define VOL_CAPABILITIES_RESERVED1 2
|
||||
#define VOL_CAPABILITIES_RESERVED2 3
|
||||
|
||||
typedef struct vol_capabilities_attr {
|
||||
vol_capabilities_set_t capabilities;
|
||||
vol_capabilities_set_t valid;
|
||||
} vol_capabilities_attr_t;
|
||||
|
||||
/*
|
||||
* XXX this value needs to be raised - 3893388
|
||||
*/
|
||||
#define ATTR_MAX_BUFFER 8192
|
||||
|
||||
/*
|
||||
* VOL_CAP_FMT_PERSISTENTOBJECTIDS: When set, the volume has object IDs
|
||||
* that are persistent (retain their values even when the volume is
|
||||
* unmounted and remounted), and a file or directory can be looked up
|
||||
* by ID. Volumes that support VolFS and can support Carbon File ID
|
||||
* references should set this bit.
|
||||
*
|
||||
* VOL_CAP_FMT_SYMBOLICLINKS: When set, the volume supports symbolic
|
||||
* links. The symlink(), readlink(), and lstat() calls all use this
|
||||
* symbolic link.
|
||||
*
|
||||
* VOL_CAP_FMT_HARDLINKS: When set, the volume supports hard links.
|
||||
* The link() call creates hard links.
|
||||
*
|
||||
* VOL_CAP_FMT_JOURNAL: When set, the volume is capable of supporting
|
||||
* a journal used to speed recovery in case of unplanned shutdown
|
||||
* (such as a power outage or crash). This bit does not necessarily
|
||||
* mean the volume is actively using a journal for recovery.
|
||||
*
|
||||
* VOL_CAP_FMT_JOURNAL_ACTIVE: When set, the volume is currently using
|
||||
* a journal for use in speeding recovery after an unplanned shutdown.
|
||||
* This bit can be set only if VOL_CAP_FMT_JOURNAL is also set.
|
||||
*
|
||||
* VOL_CAP_FMT_NO_ROOT_TIMES: When set, the volume format does not
|
||||
* store reliable times for the root directory, so you should not
|
||||
* depend on them to detect changes, etc.
|
||||
*
|
||||
* VOL_CAP_FMT_SPARSE_FILES: When set, the volume supports sparse files.
|
||||
* That is, files which can have "holes" that have never been written
|
||||
* to, and are not allocated on disk. Sparse files may have an
|
||||
* allocated size that is less than the file's logical length.
|
||||
*
|
||||
* VOL_CAP_FMT_ZERO_RUNS: For security reasons, parts of a file (runs)
|
||||
* that have never been written to must appear to contain zeroes. When
|
||||
* this bit is set, the volume keeps track of allocated but unwritten
|
||||
* runs of a file so that it can substitute zeroes without actually
|
||||
* writing zeroes to the media. This provides performance similar to
|
||||
* sparse files, but not the space savings.
|
||||
*
|
||||
* VOL_CAP_FMT_CASE_SENSITIVE: When set, file and directory names are
|
||||
* case sensitive (upper and lower case are different). When clear,
|
||||
* an upper case character is equivalent to a lower case character,
|
||||
* and you can't have two names that differ solely in the case of
|
||||
* the characters.
|
||||
*
|
||||
* VOL_CAP_FMT_CASE_PRESERVING: When set, file and directory names
|
||||
* preserve the difference between upper and lower case. If clear,
|
||||
* the volume may change the case of some characters (typically
|
||||
* making them all upper or all lower case). A volume that sets
|
||||
* VOL_CAP_FMT_CASE_SENSITIVE should also set VOL_CAP_FMT_CASE_PRESERVING.
|
||||
*
|
||||
* VOL_CAP_FMT_FAST_STATFS: This bit is used as a hint to upper layers
|
||||
* (especially Carbon) that statfs() is fast enough that its results
|
||||
* need not be cached by those upper layers. A volume that caches
|
||||
* the statfs information in its in-memory structures should set this bit.
|
||||
* A volume that must always read from disk or always perform a network
|
||||
* transaction should not set this bit.
|
||||
*
|
||||
* VOL_CAP_FMT_2TB_FILESIZE: If this bit is set the volume format supports
|
||||
* file sizes larger than 4GB, and potentially up to 2TB; it does not
|
||||
* indicate whether the filesystem supports files larger than that.
|
||||
*
|
||||
* VOL_CAP_FMT_OPENDENYMODES: When set, the volume supports open deny
|
||||
* modes (e.g. "open for read write, deny write"; effectively, mandatory
|
||||
* file locking based on open modes).
|
||||
*
|
||||
* VOL_CAP_FMT_HIDDEN_FILES: When set, the volume supports the UF_HIDDEN
|
||||
* file flag, and the UF_HIDDEN flag is mapped to that volume's native
|
||||
* "hidden" or "invisible" bit (which may be the invisible bit from the
|
||||
* Finder Info extended attribute).
|
||||
*
|
||||
* VOL_CAP_FMT_PATH_FROM_ID: When set, the volume supports the ability
|
||||
* to derive a pathname to the root of the file system given only the
|
||||
* id of an object. This also implies that object ids on this file
|
||||
* system are persistent and not recycled. This is a very specialized
|
||||
* capability and it is assumed that most file systems will not support
|
||||
* it. Its use is for legacy non-posix APIs like ResolveFileIDRef.
|
||||
*
|
||||
* VOL_CAP_FMT_NO_VOLUME_SIZES: When set, the volume does not support
|
||||
* returning values for total data blocks, available blocks, or free blocks
|
||||
* (as in f_blocks, f_bavail, or f_bfree in "struct statfs"). Historically,
|
||||
* those values were set to 0xFFFFFFFF for volumes that did not support them.
|
||||
*
|
||||
* VOL_CAP_FMT_DECMPFS_COMPRESSION: When set, the volume supports transparent
|
||||
* decompression of compressed files using decmpfs.
|
||||
*
|
||||
* VOL_CAP_FMT_64BIT_OBJECT_IDS: When set, the volume uses object IDs that
|
||||
* are 64-bit. This means that ATTR_CMN_FILEID and ATTR_CMN_PARENTID are the
|
||||
* only legitimate attributes for obtaining object IDs from this volume and the
|
||||
* 32-bit fid_objno fields of the fsobj_id_t returned by ATTR_CMN_OBJID,
|
||||
* ATTR_CMN_OBJPERMID, and ATTR_CMN_PAROBJID are undefined.
|
||||
*
|
||||
* VOL_CAP_FMT_DIR_HARDLINKS: When set, the volume supports directory
|
||||
* hard links.
|
||||
*
|
||||
* VOL_CAP_FMT_DOCUMENT_ID: When set, the volume supports document IDs
|
||||
* (an ID which persists across object ID changes) for document revisions.
|
||||
*
|
||||
* VOL_CAP_FMT_WRITE_GENERATION_COUNT: When set, the volume supports write
|
||||
* generation counts (a count of how many times an object has been modified)
|
||||
*
|
||||
* VOL_CAP_FMT_NO_IMMUTABLE_FILES: When set, the volume does not support
|
||||
* setting the UF_IMMUTABLE flag.
|
||||
*
|
||||
* VOL_CAP_FMT_NO_PERMISSIONS: When set, the volume does not support setting
|
||||
* permissions.
|
||||
*
|
||||
* VOL_CAP_FMT_SHARED_SPACE: When set, the volume supports sharing space with
|
||||
* other filesystems i.e. multiple logical filesystems can exist in the same
|
||||
* "partition". An implication of this is that the filesystem which sets
|
||||
* this capability treats waitfor arguments to VFS_SYNC as bit flags.
|
||||
*
|
||||
* VOL_CAP_FMT_VOL_GROUPS: When set, this volume is part of a volume-group
|
||||
* that implies multiple volumes must be mounted in order to boot and root the
|
||||
* operating system. Typically, this means a read-only system volume and a
|
||||
* writable data volume.
|
||||
*/
|
||||
#define VOL_CAP_FMT_PERSISTENTOBJECTIDS 0x00000001
|
||||
#define VOL_CAP_FMT_SYMBOLICLINKS 0x00000002
|
||||
#define VOL_CAP_FMT_HARDLINKS 0x00000004
|
||||
#define VOL_CAP_FMT_JOURNAL 0x00000008
|
||||
#define VOL_CAP_FMT_JOURNAL_ACTIVE 0x00000010
|
||||
#define VOL_CAP_FMT_NO_ROOT_TIMES 0x00000020
|
||||
#define VOL_CAP_FMT_SPARSE_FILES 0x00000040
|
||||
#define VOL_CAP_FMT_ZERO_RUNS 0x00000080
|
||||
#define VOL_CAP_FMT_CASE_SENSITIVE 0x00000100
|
||||
#define VOL_CAP_FMT_CASE_PRESERVING 0x00000200
|
||||
#define VOL_CAP_FMT_FAST_STATFS 0x00000400
|
||||
#define VOL_CAP_FMT_2TB_FILESIZE 0x00000800
|
||||
#define VOL_CAP_FMT_OPENDENYMODES 0x00001000
|
||||
#define VOL_CAP_FMT_HIDDEN_FILES 0x00002000
|
||||
#define VOL_CAP_FMT_PATH_FROM_ID 0x00004000
|
||||
#define VOL_CAP_FMT_NO_VOLUME_SIZES 0x00008000
|
||||
#define VOL_CAP_FMT_DECMPFS_COMPRESSION 0x00010000
|
||||
#define VOL_CAP_FMT_64BIT_OBJECT_IDS 0x00020000
|
||||
#define VOL_CAP_FMT_DIR_HARDLINKS 0x00040000
|
||||
#define VOL_CAP_FMT_DOCUMENT_ID 0x00080000
|
||||
#define VOL_CAP_FMT_WRITE_GENERATION_COUNT 0x00100000
|
||||
#define VOL_CAP_FMT_NO_IMMUTABLE_FILES 0x00200000
|
||||
#define VOL_CAP_FMT_NO_PERMISSIONS 0x00400000
|
||||
#define VOL_CAP_FMT_SHARED_SPACE 0x00800000
|
||||
#define VOL_CAP_FMT_VOL_GROUPS 0x01000000
|
||||
|
||||
/*
|
||||
* VOL_CAP_INT_SEARCHFS: When set, the volume implements the
|
||||
* searchfs() system call (the vnop_searchfs vnode operation).
|
||||
*
|
||||
* VOL_CAP_INT_ATTRLIST: When set, the volume implements the
|
||||
* getattrlist() and setattrlist() system calls (vnop_getattrlist
|
||||
* and vnop_setattrlist vnode operations) for the volume, files,
|
||||
* and directories. The volume may or may not implement the
|
||||
* readdirattr() system call. XXX Is there any minimum set
|
||||
* of attributes that should be supported? To determine the
|
||||
* set of supported attributes, get the ATTR_VOL_ATTRIBUTES
|
||||
* attribute of the volume.
|
||||
*
|
||||
* VOL_CAP_INT_NFSEXPORT: When set, the volume implements exporting
|
||||
* of NFS volumes.
|
||||
*
|
||||
* VOL_CAP_INT_READDIRATTR: When set, the volume implements the
|
||||
* readdirattr() system call (vnop_readdirattr vnode operation).
|
||||
*
|
||||
* VOL_CAP_INT_EXCHANGEDATA: When set, the volume implements the
|
||||
* exchangedata() system call (VNOP_EXCHANGE vnode operation).
|
||||
*
|
||||
* VOL_CAP_INT_COPYFILE: When set, the volume implements the
|
||||
* VOP_COPYFILE vnode operation. (XXX There should be a copyfile()
|
||||
* system call in <unistd.h>.)
|
||||
*
|
||||
* VOL_CAP_INT_ALLOCATE: When set, the volume implements the
|
||||
* VNOP_ALLOCATE vnode operation, which means it implements the
|
||||
* F_PREALLOCATE selector of fcntl(2).
|
||||
*
|
||||
* VOL_CAP_INT_VOL_RENAME: When set, the volume implements the
|
||||
* ATTR_VOL_NAME attribute for both getattrlist() and setattrlist().
|
||||
* The volume can be renamed by setting ATTR_VOL_NAME with setattrlist().
|
||||
*
|
||||
* VOL_CAP_INT_ADVLOCK: When set, the volume implements POSIX style
|
||||
* byte range locks via vnop_advlock (accessible from fcntl(2)).
|
||||
*
|
||||
* VOL_CAP_INT_FLOCK: When set, the volume implements whole-file flock(2)
|
||||
* style locks via vnop_advlock. This includes the O_EXLOCK and O_SHLOCK
|
||||
* flags of the open(2) call.
|
||||
*
|
||||
* VOL_CAP_INT_EXTENDED_SECURITY: When set, the volume implements
|
||||
* extended security (ACLs).
|
||||
*
|
||||
* VOL_CAP_INT_USERACCESS: When set, the volume supports the
|
||||
* ATTR_CMN_USERACCESS attribute (used to get the user's access
|
||||
* mode to the file).
|
||||
*
|
||||
* VOL_CAP_INT_MANLOCK: When set, the volume supports AFP-style
|
||||
* mandatory byte range locks via an ioctl().
|
||||
*
|
||||
* VOL_CAP_INT_EXTENDED_ATTR: When set, the volume implements
|
||||
* native extended attribues.
|
||||
*
|
||||
* VOL_CAP_INT_NAMEDSTREAMS: When set, the volume supports
|
||||
* native named streams.
|
||||
*
|
||||
* VOL_CAP_INT_CLONE: When set, the volume supports clones.
|
||||
*
|
||||
* VOL_CAP_INT_SNAPSHOT: When set, the volume supports snapshots.
|
||||
*
|
||||
* VOL_CAP_INT_RENAME_SWAP: When set, the volume supports swapping
|
||||
* file system objects.
|
||||
*
|
||||
* VOL_CAP_INT_RENAME_EXCL: When set, the volume supports an
|
||||
* exclusive rename operation.
|
||||
*
|
||||
* VOL_CAP_INT_RENAME_OPENFAIL: When set, the volume may fail rename
|
||||
* operations on files that are open.
|
||||
*/
|
||||
#define VOL_CAP_INT_SEARCHFS 0x00000001
|
||||
#define VOL_CAP_INT_ATTRLIST 0x00000002
|
||||
#define VOL_CAP_INT_NFSEXPORT 0x00000004
|
||||
#define VOL_CAP_INT_READDIRATTR 0x00000008
|
||||
#define VOL_CAP_INT_EXCHANGEDATA 0x00000010
|
||||
#define VOL_CAP_INT_COPYFILE 0x00000020
|
||||
#define VOL_CAP_INT_ALLOCATE 0x00000040
|
||||
#define VOL_CAP_INT_VOL_RENAME 0x00000080
|
||||
#define VOL_CAP_INT_ADVLOCK 0x00000100
|
||||
#define VOL_CAP_INT_FLOCK 0x00000200
|
||||
#define VOL_CAP_INT_EXTENDED_SECURITY 0x00000400
|
||||
#define VOL_CAP_INT_USERACCESS 0x00000800
|
||||
#define VOL_CAP_INT_MANLOCK 0x00001000
|
||||
#define VOL_CAP_INT_NAMEDSTREAMS 0x00002000
|
||||
#define VOL_CAP_INT_EXTENDED_ATTR 0x00004000
|
||||
#define VOL_CAP_INT_CLONE 0x00010000
|
||||
#define VOL_CAP_INT_SNAPSHOT 0x00020000
|
||||
#define VOL_CAP_INT_RENAME_SWAP 0x00040000
|
||||
#define VOL_CAP_INT_RENAME_EXCL 0x00080000
|
||||
#define VOL_CAP_INT_RENAME_OPENFAIL 0x00100000
|
||||
|
||||
typedef struct vol_attributes_attr {
|
||||
attribute_set_t validattr;
|
||||
attribute_set_t nativeattr;
|
||||
} vol_attributes_attr_t;
|
||||
|
||||
#define ATTR_CMN_NAME 0x00000001
|
||||
#define ATTR_CMN_DEVID 0x00000002
|
||||
#define ATTR_CMN_FSID 0x00000004
|
||||
#define ATTR_CMN_OBJTYPE 0x00000008
|
||||
#define ATTR_CMN_OBJTAG 0x00000010
|
||||
#define ATTR_CMN_OBJID 0x00000020
|
||||
#define ATTR_CMN_OBJPERMANENTID 0x00000040
|
||||
#define ATTR_CMN_PAROBJID 0x00000080
|
||||
#define ATTR_CMN_SCRIPT 0x00000100
|
||||
#define ATTR_CMN_CRTIME 0x00000200
|
||||
#define ATTR_CMN_MODTIME 0x00000400
|
||||
#define ATTR_CMN_CHGTIME 0x00000800
|
||||
#define ATTR_CMN_ACCTIME 0x00001000
|
||||
#define ATTR_CMN_BKUPTIME 0x00002000
|
||||
#define ATTR_CMN_FNDRINFO 0x00004000
|
||||
#define ATTR_CMN_OWNERID 0x00008000
|
||||
#define ATTR_CMN_GRPID 0x00010000
|
||||
#define ATTR_CMN_ACCESSMASK 0x00020000
|
||||
#define ATTR_CMN_FLAGS 0x00040000
|
||||
|
||||
/* The following were defined as: */
|
||||
/* #define ATTR_CMN_NAMEDATTRCOUNT 0x00080000 */
|
||||
/* #define ATTR_CMN_NAMEDATTRLIST 0x00100000 */
|
||||
/* These bits have been salvaged for use as: */
|
||||
/* #define ATTR_CMN_GEN_COUNT 0x00080000 */
|
||||
/* #define ATTR_CMN_DOCUMENT_ID 0x00100000 */
|
||||
/* They can only be used with the FSOPT_ATTR_CMN_EXTENDED */
|
||||
/* option flag. */
|
||||
|
||||
#define ATTR_CMN_GEN_COUNT 0x00080000
|
||||
#define ATTR_CMN_DOCUMENT_ID 0x00100000
|
||||
|
||||
#define ATTR_CMN_USERACCESS 0x00200000
|
||||
#define ATTR_CMN_EXTENDED_SECURITY 0x00400000
|
||||
#define ATTR_CMN_UUID 0x00800000
|
||||
#define ATTR_CMN_GRPUUID 0x01000000
|
||||
#define ATTR_CMN_FILEID 0x02000000
|
||||
#define ATTR_CMN_PARENTID 0x04000000
|
||||
#define ATTR_CMN_FULLPATH 0x08000000
|
||||
#define ATTR_CMN_ADDEDTIME 0x10000000
|
||||
#define ATTR_CMN_ERROR 0x20000000
|
||||
#define ATTR_CMN_DATA_PROTECT_FLAGS 0x40000000
|
||||
|
||||
/*
|
||||
* ATTR_CMN_RETURNED_ATTRS is only valid with getattrlist(2) and
|
||||
* getattrlistbulk(2). It is always the first attribute in the return buffer.
|
||||
*/
|
||||
#define ATTR_CMN_RETURNED_ATTRS 0x80000000
|
||||
|
||||
#define ATTR_CMN_VALIDMASK 0xFFFFFFFF
|
||||
/*
|
||||
* The settable ATTR_CMN_* attributes include the following:
|
||||
* ATTR_CMN_SCRIPT
|
||||
* ATTR_CMN_CRTIME
|
||||
* ATTR_CMN_MODTIME
|
||||
* ATTR_CMN_CHGTIME
|
||||
*
|
||||
* ATTR_CMN_ACCTIME
|
||||
* ATTR_CMN_BKUPTIME
|
||||
* ATTR_CMN_FNDRINFO
|
||||
* ATTR_CMN_OWNERID
|
||||
*
|
||||
* ATTR_CMN_GRPID
|
||||
* ATTR_CMN_ACCESSMASK
|
||||
* ATTR_CMN_FLAGS
|
||||
*
|
||||
* ATTR_CMN_EXTENDED_SECURITY
|
||||
* ATTR_CMN_UUID
|
||||
*
|
||||
* ATTR_CMN_GRPUUID
|
||||
*
|
||||
* ATTR_CMN_DATA_PROTECT_FLAGS
|
||||
*/
|
||||
#define ATTR_CMN_SETMASK 0x51C7FF00
|
||||
#define ATTR_CMN_VOLSETMASK 0x00006700
|
||||
|
||||
#define ATTR_VOL_FSTYPE 0x00000001
|
||||
#define ATTR_VOL_SIGNATURE 0x00000002
|
||||
#define ATTR_VOL_SIZE 0x00000004
|
||||
#define ATTR_VOL_SPACEFREE 0x00000008
|
||||
#define ATTR_VOL_SPACEAVAIL 0x00000010
|
||||
#define ATTR_VOL_MINALLOCATION 0x00000020
|
||||
#define ATTR_VOL_ALLOCATIONCLUMP 0x00000040
|
||||
#define ATTR_VOL_IOBLOCKSIZE 0x00000080
|
||||
#define ATTR_VOL_OBJCOUNT 0x00000100
|
||||
#define ATTR_VOL_FILECOUNT 0x00000200
|
||||
#define ATTR_VOL_DIRCOUNT 0x00000400
|
||||
#define ATTR_VOL_MAXOBJCOUNT 0x00000800
|
||||
#define ATTR_VOL_MOUNTPOINT 0x00001000
|
||||
#define ATTR_VOL_NAME 0x00002000
|
||||
#define ATTR_VOL_MOUNTFLAGS 0x00004000
|
||||
#define ATTR_VOL_MOUNTEDDEVICE 0x00008000
|
||||
#define ATTR_VOL_ENCODINGSUSED 0x00010000
|
||||
#define ATTR_VOL_CAPABILITIES 0x00020000
|
||||
#define ATTR_VOL_UUID 0x00040000
|
||||
#define ATTR_VOL_QUOTA_SIZE 0x10000000
|
||||
#define ATTR_VOL_RESERVED_SIZE 0x20000000
|
||||
#define ATTR_VOL_ATTRIBUTES 0x40000000
|
||||
#define ATTR_VOL_INFO 0x80000000
|
||||
|
||||
#define ATTR_VOL_VALIDMASK 0xF007FFFF
|
||||
|
||||
/*
|
||||
* The list of settable ATTR_VOL_* attributes include the following:
|
||||
* ATTR_VOL_NAME
|
||||
* ATTR_VOL_INFO
|
||||
*/
|
||||
#define ATTR_VOL_SETMASK 0x80002000
|
||||
|
||||
|
||||
/* File/directory attributes: */
|
||||
#define ATTR_DIR_LINKCOUNT 0x00000001
|
||||
#define ATTR_DIR_ENTRYCOUNT 0x00000002
|
||||
#define ATTR_DIR_MOUNTSTATUS 0x00000004
|
||||
#define ATTR_DIR_ALLOCSIZE 0x00000008
|
||||
#define ATTR_DIR_IOBLOCKSIZE 0x00000010
|
||||
#define ATTR_DIR_DATALENGTH 0x00000020
|
||||
|
||||
/* ATTR_DIR_MOUNTSTATUS Flags: */
|
||||
#define DIR_MNTSTATUS_MNTPOINT 0x00000001
|
||||
#define DIR_MNTSTATUS_TRIGGER 0x00000002
|
||||
|
||||
#define ATTR_DIR_VALIDMASK 0x0000003f
|
||||
#define ATTR_DIR_SETMASK 0x00000000
|
||||
|
||||
#define ATTR_FILE_LINKCOUNT 0x00000001
|
||||
#define ATTR_FILE_TOTALSIZE 0x00000002
|
||||
#define ATTR_FILE_ALLOCSIZE 0x00000004
|
||||
#define ATTR_FILE_IOBLOCKSIZE 0x00000008
|
||||
#define ATTR_FILE_DEVTYPE 0x00000020
|
||||
#define ATTR_FILE_FORKCOUNT 0x00000080
|
||||
#define ATTR_FILE_FORKLIST 0x00000100
|
||||
#define ATTR_FILE_DATALENGTH 0x00000200
|
||||
#define ATTR_FILE_DATAALLOCSIZE 0x00000400
|
||||
#define ATTR_FILE_RSRCLENGTH 0x00001000
|
||||
#define ATTR_FILE_RSRCALLOCSIZE 0x00002000
|
||||
|
||||
#define ATTR_FILE_VALIDMASK 0x000037FF
|
||||
/*
|
||||
* Settable ATTR_FILE_* attributes include:
|
||||
* ATTR_FILE_DEVTYPE
|
||||
*/
|
||||
#define ATTR_FILE_SETMASK 0x00000020
|
||||
|
||||
/* CMNEXT attributes extend the common attributes, but in the forkattr field */
|
||||
#define ATTR_CMNEXT_RELPATH 0x00000004
|
||||
#define ATTR_CMNEXT_PRIVATESIZE 0x00000008
|
||||
#define ATTR_CMNEXT_LINKID 0x00000010
|
||||
#define ATTR_CMNEXT_NOFIRMLINKPATH 0x00000020
|
||||
#define ATTR_CMNEXT_REALDEVID 0x00000040
|
||||
#define ATTR_CMNEXT_REALFSID 0x00000080
|
||||
#define ATTR_CMNEXT_CLONEID 0x00000100
|
||||
#define ATTR_CMNEXT_EXT_FLAGS 0x00000200
|
||||
|
||||
#define ATTR_CMNEXT_VALIDMASK 0x000003fc
|
||||
#define ATTR_CMNEXT_SETMASK 0x00000000
|
||||
|
||||
/* Deprecated fork attributes */
|
||||
#define ATTR_FORK_TOTALSIZE 0x00000001
|
||||
#define ATTR_FORK_ALLOCSIZE 0x00000002
|
||||
#define ATTR_FORK_RESERVED 0xffffffff
|
||||
|
||||
#define ATTR_FORK_VALIDMASK 0x00000003
|
||||
#define ATTR_FORK_SETMASK 0x00000000
|
||||
|
||||
/* Obsolete, implemented, not supported */
|
||||
#define ATTR_CMN_NAMEDATTRCOUNT 0x00080000
|
||||
#define ATTR_CMN_NAMEDATTRLIST 0x00100000
|
||||
#define ATTR_FILE_CLUMPSIZE 0x00000010 /* obsolete */
|
||||
#define ATTR_FILE_FILETYPE 0x00000040 /* always zero */
|
||||
#define ATTR_FILE_DATAEXTENTS 0x00000800 /* obsolete, HFS-specific */
|
||||
#define ATTR_FILE_RSRCEXTENTS 0x00004000 /* obsolete, HFS-specific */
|
||||
|
||||
/* Required attributes for getattrlistbulk(2) */
|
||||
#define ATTR_BULK_REQUIRED (ATTR_CMN_NAME | ATTR_CMN_RETURNED_ATTRS)
|
||||
|
||||
/*
|
||||
* Searchfs
|
||||
*/
|
||||
#define SRCHFS_START 0x00000001
|
||||
#define SRCHFS_MATCHPARTIALNAMES 0x00000002
|
||||
#define SRCHFS_MATCHDIRS 0x00000004
|
||||
#define SRCHFS_MATCHFILES 0x00000008
|
||||
#define SRCHFS_SKIPLINKS 0x00000010
|
||||
#define SRCHFS_SKIPINVISIBLE 0x00000020
|
||||
#define SRCHFS_SKIPPACKAGES 0x00000040
|
||||
#define SRCHFS_SKIPINAPPROPRIATE 0x00000080
|
||||
|
||||
#define SRCHFS_NEGATEPARAMS 0x80000000
|
||||
#define SRCHFS_VALIDOPTIONSMASK 0x800000FF
|
||||
|
||||
struct fssearchblock {
|
||||
struct attrlist *returnattrs;
|
||||
void *returnbuffer;
|
||||
size_t returnbuffersize;
|
||||
u_long maxmatches;
|
||||
struct timeval timelimit;
|
||||
void *searchparams1;
|
||||
size_t sizeofsearchparams1;
|
||||
void *searchparams2;
|
||||
size_t sizeofsearchparams2;
|
||||
struct attrlist searchattrs;
|
||||
};
|
||||
|
||||
|
||||
struct searchstate {
|
||||
uint32_t ss_union_flags; // for SRCHFS_START
|
||||
uint32_t ss_union_layer; // 0 = top
|
||||
u_char ss_fsstate[548]; // fs private
|
||||
} __attribute__((packed));
|
||||
|
||||
#define FST_EOF (-1) /* end-of-file offset */
|
||||
|
||||
#endif /* __APPLE_API_UNSTABLE */
|
||||
#endif /* !_SYS_ATTR_H_ */
|
||||
423
lib/libc/include/x86_64-macos-gnu/sys/mount.h
Normal file
423
lib/libc/include/x86_64-macos-gnu/sys/mount.h
Normal file
@ -0,0 +1,423 @@
|
||||
/*
|
||||
* 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@
|
||||
*/
|
||||
/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
|
||||
/*
|
||||
* Copyright (c) 1989, 1991, 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.
|
||||
*
|
||||
* @(#)mount.h 8.21 (Berkeley) 5/20/95
|
||||
*/
|
||||
/*
|
||||
* NOTICE: This file was modified by SPARTA, Inc. in 2005 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.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _SYS_MOUNT_H_
|
||||
#define _SYS_MOUNT_H_
|
||||
|
||||
#include <sys/appleapiopts.h>
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/attr.h> /* needed for vol_capabilities_attr_t */
|
||||
#include <os/base.h>
|
||||
|
||||
#include <stdint.h>
|
||||
#include <sys/ucred.h>
|
||||
#include <sys/queue.h> /* XXX needed for user builds */
|
||||
#include <Availability.h>
|
||||
|
||||
#include <sys/_types/_fsid_t.h> /* file system id type */
|
||||
|
||||
/*
|
||||
* file system statistics
|
||||
*/
|
||||
|
||||
#define MFSNAMELEN 15 /* length of fs type name, not inc. null */
|
||||
#define MFSTYPENAMELEN 16 /* length of fs type name including null */
|
||||
|
||||
#if __DARWIN_64_BIT_INO_T
|
||||
#define MNAMELEN MAXPATHLEN /* length of buffer for returned name */
|
||||
#else /* ! __DARWIN_64_BIT_INO_T */
|
||||
#define MNAMELEN 90 /* length of buffer for returned name */
|
||||
#endif /* __DARWIN_64_BIT_INO_T */
|
||||
|
||||
#define MNT_EXT_ROOT_DATA_VOL 0x00000001 /* Data volume of root volume group */
|
||||
|
||||
#define __DARWIN_STRUCT_STATFS64 { \
|
||||
uint32_t f_bsize; /* fundamental file system block size */ \
|
||||
int32_t f_iosize; /* optimal transfer block size */ \
|
||||
uint64_t f_blocks; /* total data blocks in file system */ \
|
||||
uint64_t f_bfree; /* free blocks in fs */ \
|
||||
uint64_t f_bavail; /* free blocks avail to non-superuser */ \
|
||||
uint64_t f_files; /* total file nodes in file system */ \
|
||||
uint64_t f_ffree; /* free file nodes in fs */ \
|
||||
fsid_t f_fsid; /* file system id */ \
|
||||
uid_t f_owner; /* user that mounted the filesystem */ \
|
||||
uint32_t f_type; /* type of filesystem */ \
|
||||
uint32_t f_flags; /* copy of mount exported flags */ \
|
||||
uint32_t f_fssubtype; /* fs sub-type (flavor) */ \
|
||||
char f_fstypename[MFSTYPENAMELEN]; /* fs type name */ \
|
||||
char f_mntonname[MAXPATHLEN]; /* directory on which mounted */ \
|
||||
char f_mntfromname[MAXPATHLEN]; /* mounted filesystem */ \
|
||||
uint32_t f_flags_ext; /* extended flags */ \
|
||||
uint32_t f_reserved[7]; /* For future use */ \
|
||||
}
|
||||
|
||||
#if !__DARWIN_ONLY_64_BIT_INO_T
|
||||
|
||||
struct statfs64 __DARWIN_STRUCT_STATFS64;
|
||||
|
||||
#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
|
||||
|
||||
#if __DARWIN_64_BIT_INO_T
|
||||
|
||||
struct statfs __DARWIN_STRUCT_STATFS64;
|
||||
|
||||
#else /* !__DARWIN_64_BIT_INO_T */
|
||||
|
||||
/*
|
||||
* LP64 - WARNING - must be kept in sync with struct user_statfs in mount_internal.h.
|
||||
*/
|
||||
struct statfs {
|
||||
short f_otype; /* TEMPORARY SHADOW COPY OF f_type */
|
||||
short f_oflags; /* TEMPORARY SHADOW COPY OF f_flags */
|
||||
long f_bsize; /* fundamental file system block size */
|
||||
long f_iosize; /* optimal transfer block size */
|
||||
long f_blocks; /* total data blocks in file system */
|
||||
long f_bfree; /* free blocks in fs */
|
||||
long f_bavail; /* free blocks avail to non-superuser */
|
||||
long f_files; /* total file nodes in file system */
|
||||
long f_ffree; /* free file nodes in fs */
|
||||
fsid_t f_fsid; /* file system id */
|
||||
uid_t f_owner; /* user that mounted the filesystem */
|
||||
short f_reserved1; /* spare for later */
|
||||
short f_type; /* type of filesystem */
|
||||
long f_flags; /* copy of mount exported flags */
|
||||
long f_reserved2[2]; /* reserved for future use */
|
||||
char f_fstypename[MFSNAMELEN]; /* fs type name */
|
||||
char f_mntonname[MNAMELEN]; /* directory on which mounted */
|
||||
char f_mntfromname[MNAMELEN];/* mounted filesystem */
|
||||
char f_reserved3; /* For alignment */
|
||||
long f_reserved4[4]; /* For future use */
|
||||
};
|
||||
|
||||
#endif /* __DARWIN_64_BIT_INO_T */
|
||||
|
||||
#pragma pack(4)
|
||||
|
||||
struct vfsstatfs {
|
||||
uint32_t f_bsize; /* fundamental file system block size */
|
||||
size_t f_iosize; /* optimal transfer block size */
|
||||
uint64_t f_blocks; /* total data blocks in file system */
|
||||
uint64_t f_bfree; /* free blocks in fs */
|
||||
uint64_t f_bavail; /* free blocks avail to non-superuser */
|
||||
uint64_t f_bused; /* free blocks avail to non-superuser */
|
||||
uint64_t f_files; /* total file nodes in file system */
|
||||
uint64_t f_ffree; /* free file nodes in fs */
|
||||
fsid_t f_fsid; /* file system id */
|
||||
uid_t f_owner; /* user that mounted the filesystem */
|
||||
uint64_t f_flags; /* copy of mount exported flags */
|
||||
char f_fstypename[MFSTYPENAMELEN];/* fs type name inclus */
|
||||
char f_mntonname[MAXPATHLEN];/* directory on which mounted */
|
||||
char f_mntfromname[MAXPATHLEN];/* mounted filesystem */
|
||||
uint32_t f_fssubtype; /* fs sub-type (flavor) */
|
||||
void *f_reserved[2]; /* For future use == 0 */
|
||||
};
|
||||
|
||||
#pragma pack()
|
||||
|
||||
|
||||
/*
|
||||
* User specifiable flags.
|
||||
*
|
||||
* Unmount uses MNT_FORCE flag.
|
||||
*/
|
||||
#define MNT_RDONLY 0x00000001 /* read only filesystem */
|
||||
#define MNT_SYNCHRONOUS 0x00000002 /* file system written synchronously */
|
||||
#define MNT_NOEXEC 0x00000004 /* can't exec from filesystem */
|
||||
#define MNT_NOSUID 0x00000008 /* don't honor setuid bits on fs */
|
||||
#define MNT_NODEV 0x00000010 /* don't interpret special files */
|
||||
#define MNT_UNION 0x00000020 /* union with underlying filesystem */
|
||||
#define MNT_ASYNC 0x00000040 /* file system written asynchronously */
|
||||
#define MNT_CPROTECT 0x00000080 /* file system supports content protection */
|
||||
|
||||
/*
|
||||
* NFS export related mount flags.
|
||||
*/
|
||||
#define MNT_EXPORTED 0x00000100 /* file system is exported */
|
||||
|
||||
/*
|
||||
* Denotes storage which can be removed from the system by the user.
|
||||
*/
|
||||
|
||||
#define MNT_REMOVABLE 0x00000200
|
||||
|
||||
/*
|
||||
* MAC labeled / "quarantined" flag
|
||||
*/
|
||||
#define MNT_QUARANTINE 0x00000400 /* file system is quarantined */
|
||||
|
||||
/*
|
||||
* Flags set by internal operations.
|
||||
*/
|
||||
#define MNT_LOCAL 0x00001000 /* filesystem is stored locally */
|
||||
#define MNT_QUOTA 0x00002000 /* quotas are enabled on filesystem */
|
||||
#define MNT_ROOTFS 0x00004000 /* identifies the root filesystem */
|
||||
#define MNT_DOVOLFS 0x00008000 /* FS supports volfs (deprecated flag in Mac OS X 10.5) */
|
||||
|
||||
|
||||
#define MNT_DONTBROWSE 0x00100000 /* file system is not appropriate path to user data */
|
||||
#define MNT_IGNORE_OWNERSHIP 0x00200000 /* VFS will ignore ownership information on filesystem objects */
|
||||
#define MNT_AUTOMOUNTED 0x00400000 /* filesystem was mounted by automounter */
|
||||
#define MNT_JOURNALED 0x00800000 /* filesystem is journaled */
|
||||
#define MNT_NOUSERXATTR 0x01000000 /* Don't allow user extended attributes */
|
||||
#define MNT_DEFWRITE 0x02000000 /* filesystem should defer writes */
|
||||
#define MNT_MULTILABEL 0x04000000 /* MAC support for individual labels */
|
||||
#define MNT_NOATIME 0x10000000 /* disable update of file access time */
|
||||
#define MNT_SNAPSHOT 0x40000000 /* The mount is a snapshot */
|
||||
#define MNT_STRICTATIME 0x80000000 /* enable strict update of file access time */
|
||||
|
||||
/* backwards compatibility only */
|
||||
#define MNT_UNKNOWNPERMISSIONS MNT_IGNORE_OWNERSHIP
|
||||
|
||||
|
||||
/*
|
||||
* XXX I think that this could now become (~(MNT_CMDFLAGS))
|
||||
* but the 'mount' program may need changing to handle this.
|
||||
*/
|
||||
#define MNT_VISFLAGMASK (MNT_RDONLY | MNT_SYNCHRONOUS | MNT_NOEXEC | \
|
||||
MNT_NOSUID | MNT_NODEV | MNT_UNION | \
|
||||
MNT_ASYNC | MNT_EXPORTED | MNT_QUARANTINE | \
|
||||
MNT_LOCAL | MNT_QUOTA | MNT_REMOVABLE | \
|
||||
MNT_ROOTFS | MNT_DOVOLFS | MNT_DONTBROWSE | \
|
||||
MNT_IGNORE_OWNERSHIP | MNT_AUTOMOUNTED | MNT_JOURNALED | \
|
||||
MNT_NOUSERXATTR | MNT_DEFWRITE | MNT_MULTILABEL | \
|
||||
MNT_NOATIME | MNT_STRICTATIME | MNT_SNAPSHOT | MNT_CPROTECT)
|
||||
/*
|
||||
* External filesystem command modifier flags.
|
||||
* Unmount can use the MNT_FORCE flag.
|
||||
* XXX These are not STATES and really should be somewhere else.
|
||||
* External filesystem control flags.
|
||||
*/
|
||||
#define MNT_UPDATE 0x00010000 /* not a real mount, just an update */
|
||||
#define MNT_NOBLOCK 0x00020000 /* don't block unmount if not responding */
|
||||
#define MNT_RELOAD 0x00040000 /* reload filesystem data */
|
||||
#define MNT_FORCE 0x00080000 /* force unmount or readonly change */
|
||||
#define MNT_CMDFLAGS (MNT_UPDATE|MNT_NOBLOCK|MNT_RELOAD|MNT_FORCE)
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Sysctl CTL_VFS definitions.
|
||||
*
|
||||
* Second level identifier specifies which filesystem. Second level
|
||||
* identifier VFS_GENERIC returns information about all filesystems.
|
||||
*/
|
||||
#define VFS_GENERIC 0 /* generic filesystem information */
|
||||
#define VFS_NUMMNTOPS 1 /* int: total num of vfs mount/unmount operations */
|
||||
/*
|
||||
* Third level identifiers for VFS_GENERIC are given below; third
|
||||
* level identifiers for specific filesystems are given in their
|
||||
* mount specific header files.
|
||||
*/
|
||||
#define VFS_MAXTYPENUM 1 /* int: highest defined filesystem type */
|
||||
#define VFS_CONF 2 /* struct: vfsconf for filesystem given
|
||||
* as next argument */
|
||||
|
||||
/*
|
||||
* Flags for various system call interfaces.
|
||||
*
|
||||
* waitfor flags to vfs_sync() and getfsstat()
|
||||
*/
|
||||
#define MNT_WAIT 1 /* synchronized I/O file integrity completion */
|
||||
#define MNT_NOWAIT 2 /* start all I/O, but do not wait for it */
|
||||
#define MNT_DWAIT 4 /* synchronized I/O data integrity completion */
|
||||
|
||||
|
||||
#if !defined(KERNEL) && !defined(_KERN_SYS_KERNELTYPES_H_) /* also defined in kernel_types.h */
|
||||
struct mount;
|
||||
typedef struct mount * mount_t;
|
||||
struct vnode;
|
||||
typedef struct vnode * vnode_t;
|
||||
#endif
|
||||
|
||||
/* Reserved fields preserve binary compatibility */
|
||||
struct vfsconf {
|
||||
uint32_t vfc_reserved1; /* opaque */
|
||||
char vfc_name[MFSNAMELEN]; /* filesystem type name */
|
||||
int vfc_typenum; /* historic filesystem type number */
|
||||
int vfc_refcount; /* number mounted of this type */
|
||||
int vfc_flags; /* permanent flags */
|
||||
uint32_t vfc_reserved2; /* opaque */
|
||||
uint32_t vfc_reserved3; /* opaque */
|
||||
};
|
||||
|
||||
struct vfsidctl {
|
||||
int vc_vers; /* should be VFSIDCTL_VERS1 (below) */
|
||||
fsid_t vc_fsid; /* fsid to operate on. */
|
||||
void *vc_ptr; /* pointer to data structure. */
|
||||
size_t vc_len; /* sizeof said structure. */
|
||||
u_int32_t vc_spare[12]; /* spare (must be zero). */
|
||||
};
|
||||
|
||||
|
||||
/* vfsidctl API version. */
|
||||
#define VFS_CTL_VERS1 0x01
|
||||
|
||||
|
||||
/*
|
||||
* New style VFS sysctls, do not reuse/conflict with the namespace for
|
||||
* private sysctls.
|
||||
*/
|
||||
#define VFS_CTL_STATFS 0x00010001 /* statfs */
|
||||
#define VFS_CTL_UMOUNT 0x00010002 /* unmount */
|
||||
#define VFS_CTL_QUERY 0x00010003 /* anything wrong? (vfsquery) */
|
||||
#define VFS_CTL_NEWADDR 0x00010004 /* reconnect to new address */
|
||||
#define VFS_CTL_TIMEO 0x00010005 /* set timeout for vfs notification */
|
||||
#define VFS_CTL_NOLOCKS 0x00010006 /* disable file locking */
|
||||
#define VFS_CTL_SADDR 0x00010007 /* get server address */
|
||||
#define VFS_CTL_DISC 0x00010008 /* server disconnected */
|
||||
#define VFS_CTL_SERVERINFO 0x00010009 /* information about fs server */
|
||||
#define VFS_CTL_NSTATUS 0x0001000A /* netfs mount status */
|
||||
|
||||
struct vfsquery {
|
||||
u_int32_t vq_flags;
|
||||
u_int32_t vq_spare[31];
|
||||
};
|
||||
|
||||
struct vfs_server {
|
||||
int32_t vs_minutes; /* minutes until server goes down. */
|
||||
u_int8_t vs_server_name[MAXHOSTNAMELEN * 3]; /* UTF8 server name to display (null terminated) */
|
||||
};
|
||||
|
||||
/*
|
||||
* NetFS mount status - returned by VFS_CTL_NSTATUS
|
||||
*/
|
||||
struct netfs_status {
|
||||
u_int32_t ns_status; // Current status of mount (vfsquery flags)
|
||||
char ns_mountopts[512]; // Significant mount options
|
||||
uint32_t ns_waittime; // Time waiting for reply (sec)
|
||||
uint32_t ns_threadcount; // Number of threads blocked on network calls
|
||||
uint64_t ns_threadids[0]; // Thread IDs of those blocked threads
|
||||
};
|
||||
|
||||
/* vfsquery flags */
|
||||
#define VQ_NOTRESP 0x0001 /* server down */
|
||||
#define VQ_NEEDAUTH 0x0002 /* server bad auth */
|
||||
#define VQ_LOWDISK 0x0004 /* we're low on space */
|
||||
#define VQ_MOUNT 0x0008 /* new filesystem arrived */
|
||||
#define VQ_UNMOUNT 0x0010 /* filesystem has left */
|
||||
#define VQ_DEAD 0x0020 /* filesystem is dead, needs force unmount */
|
||||
#define VQ_ASSIST 0x0040 /* filesystem needs assistance from external program */
|
||||
#define VQ_NOTRESPLOCK 0x0080 /* server lockd down */
|
||||
#define VQ_UPDATE 0x0100 /* filesystem information has changed */
|
||||
#define VQ_VERYLOWDISK 0x0200 /* file system has *very* little disk space left */
|
||||
#define VQ_SYNCEVENT 0x0400 /* a sync just happened (not set by kernel starting Mac OS X 10.9) */
|
||||
#define VQ_SERVEREVENT 0x0800 /* server issued notification/warning */
|
||||
#define VQ_QUOTA 0x1000 /* a user quota has been hit */
|
||||
#define VQ_NEARLOWDISK 0x2000 /* Above lowdisk and below desired disk space */
|
||||
#define VQ_DESIRED_DISK 0x4000 /* the desired disk space */
|
||||
#define VQ_FREE_SPACE_CHANGE 0x8000 /* free disk space has significantly changed */
|
||||
#define VQ_FLAG10000 0x10000 /* placeholder */
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Generic file handle
|
||||
*/
|
||||
#define NFS_MAX_FH_SIZE NFSV4_MAX_FH_SIZE
|
||||
#define NFSV4_MAX_FH_SIZE 128
|
||||
#define NFSV3_MAX_FH_SIZE 64
|
||||
#define NFSV2_MAX_FH_SIZE 32
|
||||
struct fhandle {
|
||||
unsigned int fh_len; /* length of file handle */
|
||||
unsigned char fh_data[NFS_MAX_FH_SIZE]; /* file handle value */
|
||||
};
|
||||
typedef struct fhandle fhandle_t;
|
||||
|
||||
|
||||
__BEGIN_DECLS
|
||||
int fhopen(const struct fhandle *, int);
|
||||
int fstatfs(int, struct statfs *) __DARWIN_INODE64(fstatfs);
|
||||
#if !__DARWIN_ONLY_64_BIT_INO_T
|
||||
int fstatfs64(int, struct statfs64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
|
||||
#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
|
||||
int getfh(const char *, fhandle_t *);
|
||||
int getfsstat(struct statfs *, int, int) __DARWIN_INODE64(getfsstat);
|
||||
#if !__DARWIN_ONLY_64_BIT_INO_T
|
||||
int getfsstat64(struct statfs64 *, int, int) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
|
||||
#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
|
||||
int getmntinfo(struct statfs **, int) __DARWIN_INODE64(getmntinfo);
|
||||
int getmntinfo_r_np(struct statfs **, int) __DARWIN_INODE64(getmntinfo_r_np)
|
||||
__OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0)
|
||||
__TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0);
|
||||
#if !__DARWIN_ONLY_64_BIT_INO_T
|
||||
int getmntinfo64(struct statfs64 **, int) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
|
||||
#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
|
||||
int mount(const char *, const char *, int, void *);
|
||||
int fmount(const char *, int, int, void *) __OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0) __TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0);
|
||||
int statfs(const char *, struct statfs *) __DARWIN_INODE64(statfs);
|
||||
#if !__DARWIN_ONLY_64_BIT_INO_T
|
||||
int statfs64(const char *, struct statfs64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
|
||||
#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
|
||||
int unmount(const char *, int);
|
||||
int getvfsbyname(const char *, struct vfsconf *);
|
||||
__END_DECLS
|
||||
|
||||
#endif /* !_SYS_MOUNT_H_ */
|
||||
118
lib/libc/include/x86_64-macos-gnu/sysexits.h
Normal file
118
lib/libc/include/x86_64-macos-gnu/sysexits.h
Normal file
@ -0,0 +1,118 @@
|
||||
/*
|
||||
* Copyright (c) 1987, 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.
|
||||
*
|
||||
* @(#)sysexits.h 8.1 (Berkeley) 6/2/93
|
||||
*/
|
||||
|
||||
#ifndef _SYSEXITS_H_
|
||||
#define _SYSEXITS_H_
|
||||
|
||||
/*
|
||||
* SYSEXITS.H -- Exit status codes for system programs.
|
||||
*
|
||||
* This include file attempts to categorize possible error
|
||||
* exit statuses for system programs, notably delivermail
|
||||
* and the Berkeley network.
|
||||
*
|
||||
* Error numbers begin at EX__BASE to reduce the possibility of
|
||||
* clashing with other exit statuses that random programs may
|
||||
* already return. The meaning of the codes is approximately
|
||||
* as follows:
|
||||
*
|
||||
* EX_USAGE -- The command was used incorrectly, e.g., with
|
||||
* the wrong number of arguments, a bad flag, a bad
|
||||
* syntax in a parameter, or whatever.
|
||||
* EX_DATAERR -- The input data was incorrect in some way.
|
||||
* This should only be used for user's data & not
|
||||
* system files.
|
||||
* EX_NOINPUT -- An input file (not a system file) did not
|
||||
* exist or was not readable. This could also include
|
||||
* errors like "No message" to a mailer (if it cared
|
||||
* to catch it).
|
||||
* EX_NOUSER -- The user specified did not exist. This might
|
||||
* be used for mail addresses or remote logins.
|
||||
* EX_NOHOST -- The host specified did not exist. This is used
|
||||
* in mail addresses or network requests.
|
||||
* EX_UNAVAILABLE -- A service is unavailable. This can occur
|
||||
* if a support program or file does not exist. This
|
||||
* can also be used as a catchall message when something
|
||||
* you wanted to do doesn't work, but you don't know
|
||||
* why.
|
||||
* EX_SOFTWARE -- An internal software error has been detected.
|
||||
* This should be limited to non-operating system related
|
||||
* errors as possible.
|
||||
* EX_OSERR -- An operating system error has been detected.
|
||||
* This is intended to be used for such things as "cannot
|
||||
* fork", "cannot create pipe", or the like. It includes
|
||||
* things like getuid returning a user that does not
|
||||
* exist in the passwd file.
|
||||
* EX_OSFILE -- Some system file (e.g., /etc/passwd, /etc/utmp,
|
||||
* etc.) does not exist, cannot be opened, or has some
|
||||
* sort of error (e.g., syntax error).
|
||||
* EX_CANTCREAT -- A (user specified) output file cannot be
|
||||
* created.
|
||||
* EX_IOERR -- An error occurred while doing I/O on some file.
|
||||
* EX_TEMPFAIL -- temporary failure, indicating something that
|
||||
* is not really an error. In sendmail, this means
|
||||
* that a mailer (e.g.) could not create a connection,
|
||||
* and the request should be reattempted later.
|
||||
* EX_PROTOCOL -- the remote system returned something that
|
||||
* was "not possible" during a protocol exchange.
|
||||
* EX_NOPERM -- You did not have sufficient permission to
|
||||
* perform the operation. This is not intended for
|
||||
* file system problems, which should use NOINPUT or
|
||||
* CANTCREAT, but rather for higher level permissions.
|
||||
*/
|
||||
|
||||
#define EX_OK 0 /* successful termination */
|
||||
|
||||
#define EX__BASE 64 /* base value for error messages */
|
||||
|
||||
#define EX_USAGE 64 /* command line usage error */
|
||||
#define EX_DATAERR 65 /* data format error */
|
||||
#define EX_NOINPUT 66 /* cannot open input */
|
||||
#define EX_NOUSER 67 /* addressee unknown */
|
||||
#define EX_NOHOST 68 /* host name unknown */
|
||||
#define EX_UNAVAILABLE 69 /* service unavailable */
|
||||
#define EX_SOFTWARE 70 /* internal software error */
|
||||
#define EX_OSERR 71 /* system error (e.g., can't fork) */
|
||||
#define EX_OSFILE 72 /* critical OS file missing */
|
||||
#define EX_CANTCREAT 73 /* can't create (user) output file */
|
||||
#define EX_IOERR 74 /* input/output error */
|
||||
#define EX_TEMPFAIL 75 /* temp failure; user is invited to retry */
|
||||
#define EX_PROTOCOL 76 /* remote error in protocol */
|
||||
#define EX_NOPERM 77 /* permission denied */
|
||||
#define EX_CONFIG 78 /* configuration error */
|
||||
|
||||
#define EX__MAX 78 /* maximum listed value */
|
||||
|
||||
#endif /* !_SYSEXITS_H_ */
|
||||
Loading…
x
Reference in New Issue
Block a user