this repo has no description
at fixPythonPipStalling 145 lines 4.2 kB view raw
1/* 2 * Copyright (c) 2000-2004, 2006, 2009-2011, 2013, 2015-2019 Apple Inc. All rights reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. Please obtain a copy of the License at 10 * http://www.opensource.apple.com/apsl/ and read it before using this 11 * file. 12 * 13 * The Original Code and all software distributed under the License are 14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18 * Please see the License for the specific language governing rights and 19 * limitations under the License. 20 * 21 * @APPLE_LICENSE_HEADER_END@ 22 */ 23 24#ifndef _SCDYNAMICSTOREINTERNAL_H 25#define _SCDYNAMICSTOREINTERNAL_H 26 27#include <os/availability.h> 28#include <TargetConditionals.h> 29#include <sys/cdefs.h> 30#include <dispatch/dispatch.h> 31#include <sys/types.h> 32#include <mach/mach.h> 33#include <pthread.h> 34#include <regex.h> 35#include <os/log.h> 36#include <CoreFoundation/CoreFoundation.h> 37#include <CoreFoundation/CFRuntime.h> 38 39#ifndef SC_LOG_HANDLE 40#define SC_LOG_HANDLE __log_SCDynamicStore 41#endif // SC_LOG_HANDLE 42#include <SystemConfiguration/SystemConfiguration.h> 43#include <SystemConfiguration/SCPrivate.h> 44#include <SystemConfiguration/SCValidation.h> 45 46 47/* Define the status of any registered notification. */ 48typedef enum { 49 NotifierNotRegistered = 0, 50 Using_NotifierWait, 51 Using_NotifierInformViaMachPort, 52 Using_NotifierInformViaFD, 53 Using_NotifierInformViaRunLoop, 54 Using_NotifierInformViaDispatch 55} __SCDynamicStoreNotificationStatus; 56 57 58typedef struct { 59 60 /* base CFType information */ 61 CFRuntimeBase cfBase; 62 63 /* client side of the "configd" session */ 64 CFStringRef name; 65 CFDictionaryRef options; 66 67 /* server side of the "configd" session */ 68 mach_port_t server; 69 Boolean serverNullSession; 70 71 /* per-session flags */ 72 Boolean useSessionKeys; 73 74 /* current status of notification requests */ 75 __SCDynamicStoreNotificationStatus notifyStatus; 76 77 /* "client" information associated with SCDynamicStoreCreateRunLoopSource() */ 78 CFMutableArrayRef rlList; 79 CFRunLoopSourceRef rls; 80 SCDynamicStoreCallBack rlsFunction; 81 SCDynamicStoreContext rlsContext; 82 CFMachPortRef rlsNotifyPort; 83 CFRunLoopSourceRef rlsNotifyRLS; 84 85 /* "client" information associated with SCDynamicStoreSetDispatchQueue() */ 86 dispatch_group_t dispatchGroup; 87 dispatch_queue_t dispatchQueue; 88 dispatch_source_t dispatchSource; 89 90 /* "client" information associated with SCDynamicStoreSetDisconnectCallBack() */ 91 SCDynamicStoreDisconnectCallBack disconnectFunction; 92 Boolean disconnectForceCallBack; 93 94 /* SCDynamicStoreKeys being watched */ 95 CFMutableArrayRef keys; 96 CFMutableArrayRef patterns; 97 98 /* "server" information associated with mach port based notifications */ 99 mach_port_t notifyPort; 100 mach_msg_id_t notifyPortIdentifier; 101 102 /* "server" information associated with SCDynamicStoreNotifyFileDescriptor() */ 103 int notifyFile; 104 int notifyFileIdentifier; 105 106 /* caching */ 107 Boolean cache_active; 108 CFMutableDictionaryRef cached_keys; 109 CFMutableDictionaryRef cached_set; 110 CFMutableArrayRef cached_removals; 111 CFMutableArrayRef cached_notifys; 112 113} SCDynamicStorePrivate, *SCDynamicStorePrivateRef; 114 115 116__BEGIN_DECLS 117 118__private_extern__ 119os_log_t 120__log_SCDynamicStore (void); 121 122SCDynamicStorePrivateRef 123__SCDynamicStoreCreatePrivate (CFAllocatorRef allocator, 124 const CFStringRef name, 125 SCDynamicStoreCallBack callout, 126 SCDynamicStoreContext *context); 127 128__private_extern__ 129SCDynamicStoreRef 130__SCDynamicStoreNullSession (void); 131 132__private_extern__ 133Boolean 134__SCDynamicStoreCheckRetryAndHandleError(SCDynamicStoreRef store, 135 kern_return_t status, 136 int *sc_status, 137 const char *func); 138 139__private_extern__ 140Boolean 141__SCDynamicStoreReconnectNotifications (SCDynamicStoreRef store); 142 143__END_DECLS 144 145#endif /* _SCDYNAMICSTOREINTERNAL_H */